agentstudio 0.1.18 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/README.md +26 -505
  2. package/bin/agentstudio.js +305 -0
  3. package/bin/agentstudio.js.map +1 -0
  4. package/bin/serviceManager.d.ts +16 -0
  5. package/bin/serviceManager.d.ts.map +1 -0
  6. package/bin/serviceManager.js +434 -0
  7. package/bin/serviceManager.js.map +1 -0
  8. package/config/index.d.ts +74 -0
  9. package/config/index.d.ts.map +1 -0
  10. package/config/index.js +166 -0
  11. package/config/index.js.map +1 -0
  12. package/config/paths.d.ts +81 -0
  13. package/config/paths.d.ts.map +1 -0
  14. package/config/paths.js +98 -0
  15. package/config/paths.js.map +1 -0
  16. package/index.d.ts +4 -0
  17. package/index.d.ts.map +1 -0
  18. package/index.js +369 -0
  19. package/index.js.map +1 -0
  20. package/jobs/taskTimeoutMonitor.d.ts +25 -0
  21. package/jobs/taskTimeoutMonitor.d.ts.map +1 -0
  22. package/jobs/taskTimeoutMonitor.js +94 -0
  23. package/jobs/taskTimeoutMonitor.js.map +1 -0
  24. package/middleware/a2aAuth.d.ts +38 -0
  25. package/middleware/a2aAuth.d.ts.map +1 -0
  26. package/middleware/a2aAuth.js +134 -0
  27. package/middleware/a2aAuth.js.map +1 -0
  28. package/{backend/dist/middleware → middleware}/auth.d.ts +3 -1
  29. package/middleware/auth.d.ts.map +1 -0
  30. package/middleware/auth.js +35 -0
  31. package/middleware/auth.js.map +1 -0
  32. package/middleware/httpsOnly.d.ts +38 -0
  33. package/middleware/httpsOnly.d.ts.map +1 -0
  34. package/middleware/httpsOnly.js +105 -0
  35. package/middleware/httpsOnly.js.map +1 -0
  36. package/middleware/rateLimiting.d.ts +37 -0
  37. package/middleware/rateLimiting.d.ts.map +1 -0
  38. package/middleware/rateLimiting.js +118 -0
  39. package/middleware/rateLimiting.js.map +1 -0
  40. package/package.json +43 -38
  41. package/public/assets/AgentsPage-Nvg2xu6K.js +10 -0
  42. package/public/assets/Button-Co56C389.js +1 -0
  43. package/public/assets/ChatPage-D6sol0ad.js +442 -0
  44. package/public/assets/CommandForm-Bk7F_HU8.js +7 -0
  45. package/public/assets/CommandsPage-DZHyOdKd.js +1 -0
  46. package/public/assets/DashboardPage-29qC7Ev1.js +15 -0
  47. package/public/assets/FileBrowser-BYweUPH4.js +6 -0
  48. package/public/assets/FileExplorer-DNYj6Tsx.js +1 -0
  49. package/public/assets/GeneralSettingsPage-D9Xa7Nd8.js +1 -0
  50. package/public/assets/LandingPage-CjnT-cvO.js +1 -0
  51. package/public/assets/LoginPage-DcaGNCXH.js +16 -0
  52. package/public/assets/McpAdminSettingsPage-DgR3E2Bd.js +7 -0
  53. package/public/assets/McpPage-CtWf1CoL.js +40 -0
  54. package/public/assets/MemorySettingsPage-JTry4Ccp.js +1 -0
  55. package/public/assets/PluginsPage-D-BHjQ3P.js +1 -0
  56. package/public/assets/ProjectSelector-DSXOjMQC.js +1 -0
  57. package/public/assets/ProjectsPage-lLUk4-Xa.js +21 -0
  58. package/public/assets/ScheduledTasksPage-5hPbd9Vs.js +1 -0
  59. package/public/assets/SettingsLayout-DGJspXLp.js +1 -0
  60. package/public/assets/SkillsPage-DBw0m7D2.js +18 -0
  61. package/{backend/dist/frontend/assets/SubagentForm-DXtTTIKg.js → public/assets/SubagentForm-BdUK1U4y.js} +2 -2
  62. package/public/assets/SubagentsPage-Dnq70IFd.js +1 -0
  63. package/{backend/dist/frontend/assets/ToastTestPage-DT4wuN5C.js → public/assets/ToastTestPage-BfJQRFIm.js} +1 -1
  64. package/public/assets/ToolsList-Dl5F2fWk.js +1 -0
  65. package/public/assets/UnifiedToolSelector-CNbPsiuq.js +1 -0
  66. package/public/assets/VersionSettingsPage-BfoCcham.js +5 -0
  67. package/public/assets/_basePickBy-7C_e0Xv1.js +1 -0
  68. package/public/assets/_baseUniq-eGJNLBzx.js +1 -0
  69. package/public/assets/agents-ChrA1R0y.js +1 -0
  70. package/public/assets/arc-CuA752eE.js +1 -0
  71. package/public/assets/architectureDiagram-VXUJARFQ-BnPYh1OW.js +36 -0
  72. package/public/assets/blockDiagram-VD42YOAC-72nsMt_i.js +122 -0
  73. package/public/assets/c4Diagram-YG6GDRKO-BNJSAXcg.js +10 -0
  74. package/public/assets/channel-CIunGC5m.js +1 -0
  75. package/public/assets/chunk-4BX2VUAB-RPxkCWhH.js +1 -0
  76. package/public/assets/chunk-55IACEB6-3ePDt0kp.js +1 -0
  77. package/public/assets/chunk-B4BG7PRW-CBg_BBfl.js +165 -0
  78. package/public/assets/chunk-DI55MBZ5-DIh69TUJ.js +220 -0
  79. package/public/assets/chunk-FMBD7UC4-BbjwhyTe.js +15 -0
  80. package/public/assets/chunk-QN33PNHL-BpH-o_YR.js +1 -0
  81. package/public/assets/chunk-QZHKN3VN-DYB7rh5Q.js +1 -0
  82. package/public/assets/chunk-TZMSLE5B-DPCYEVb3.js +1 -0
  83. package/public/assets/classDiagram-2ON5EDUG-aUQHFsTA.js +1 -0
  84. package/public/assets/classDiagram-v2-WZHVMYZB-aUQHFsTA.js +1 -0
  85. package/public/assets/clone-Ckf7tA1V.js +1 -0
  86. package/public/assets/cose-bilkent-S5V4N54A-CnpfmL-Y.js +1 -0
  87. package/public/assets/cytoscape.esm-DtBltrT8.js +331 -0
  88. package/public/assets/dagre-6UL2VRFP-DR9x77Xf.js +4 -0
  89. package/{backend/dist/frontend/assets/data-structures-DLJedtzx.js → public/assets/data-structures-C0h9Oap1.js} +1 -1
  90. package/public/assets/defaultLocale-C4B-KCzX.js +1 -0
  91. package/public/assets/diagram-PSM6KHXK-SONPsQNx.js +24 -0
  92. package/public/assets/diagram-QEK2KX5R-BKYFSfC1.js +43 -0
  93. package/public/assets/diagram-S2PKOQOG-CkM0APZj.js +24 -0
  94. package/public/assets/erDiagram-Q2GNP2WA-BX1DpOGx.js +60 -0
  95. package/public/assets/flowDiagram-NV44I4VS-HAAlzNbq.js +162 -0
  96. package/public/assets/ganttDiagram-LVOFAZNH-BqzWexqa.js +267 -0
  97. package/public/assets/gitGraphDiagram-NY62KEGX-CIPmSp43.js +65 -0
  98. package/public/assets/graph-m515btDj.js +1 -0
  99. package/public/assets/index-Bn3v3S9-.js +293 -0
  100. package/public/assets/index-DWieeYj4.css +1 -0
  101. package/public/assets/infoDiagram-F6ZHWCRC-Pn4yNWrF.js +2 -0
  102. package/public/assets/init-Gi6I4Gst.js +1 -0
  103. package/public/assets/journeyDiagram-XKPGCS4Q-BfzTomS0.js +139 -0
  104. package/public/assets/kanban-definition-3W4ZIXB7-Cgju7b-L.js +89 -0
  105. package/public/assets/katex-qrhCpa0F.js +261 -0
  106. package/public/assets/layout-BKQfQSxJ.js +1 -0
  107. package/public/assets/linear-DigtLz3B.js +1 -0
  108. package/public/assets/mindmap-definition-VGOIOE7T-qopraVFy.js +68 -0
  109. package/public/assets/monaco-editor-DHKm5-VF.js +19 -0
  110. package/public/assets/ordinal-Cboi1Yqb.js +1 -0
  111. package/public/assets/pieDiagram-ADFJNKIX-BcoaAI-L.js +30 -0
  112. package/public/assets/quadrantDiagram-AYHSOK5B-D-DwcoSd.js +7 -0
  113. package/public/assets/requirementDiagram-UZGBJVZJ-DbQCpx77.js +64 -0
  114. package/public/assets/sankeyDiagram-TZEHDZUN-BVk8387S.js +10 -0
  115. package/public/assets/sequenceDiagram-WL72ISMW-BdzICjxO.js +145 -0
  116. package/public/assets/stateDiagram-FKZM4ZOC-CYY-uUvJ.js +1 -0
  117. package/public/assets/stateDiagram-v2-4FDKWEC3-Dh2Kvomq.js +1 -0
  118. package/{backend/dist/frontend/assets/syntax-highlighting-YWvMU4Hm.js → public/assets/syntax-highlighting-CnREyncB.js} +5 -5
  119. package/public/assets/tabManager-B2LQO_Ll.js +30 -0
  120. package/{backend/dist/frontend/assets/table-D6q1rytw.js → public/assets/table-D0L2RL5i.js} +1 -1
  121. package/public/assets/timeline-definition-IT6M3QCI-BAvjPYvX.js +61 -0
  122. package/public/assets/tools-IcPNZlPj.js +1 -0
  123. package/public/assets/treemap-KMMF4GRG-DtkpVA56.js +128 -0
  124. package/{backend/dist/frontend/assets/ui-components-Cw21Epuw.js → public/assets/ui-components-D1St49qC.js} +231 -96
  125. package/public/assets/useAgents-BnDTkOG8.js +2 -0
  126. package/public/assets/useClaudeVersions-CD59tFWM.js +1 -0
  127. package/public/assets/useCommands-mvMu3mMD.js +1 -0
  128. package/public/assets/useProjects-YXOjaOwL.js +1 -0
  129. package/public/assets/xychartDiagram-PRI3JC2R-ByBTDWE2.js +7 -0
  130. package/{backend/dist/frontend → public}/index.html +8 -8
  131. package/routes/__tests__/a2a.integration.test.d.ts +11 -0
  132. package/routes/__tests__/a2a.integration.test.d.ts.map +1 -0
  133. package/routes/__tests__/a2a.integration.test.js +314 -0
  134. package/routes/__tests__/a2a.integration.test.js.map +1 -0
  135. package/routes/__tests__/a2a.test.d.ts +6 -0
  136. package/routes/__tests__/a2a.test.d.ts.map +1 -0
  137. package/routes/__tests__/a2a.test.js +622 -0
  138. package/routes/__tests__/a2a.test.js.map +1 -0
  139. package/routes/__tests__/agents.test.d.ts +6 -0
  140. package/routes/__tests__/agents.test.d.ts.map +1 -0
  141. package/routes/__tests__/agents.test.js +315 -0
  142. package/routes/__tests__/agents.test.js.map +1 -0
  143. package/routes/__tests__/sessions.test.d.ts +7 -0
  144. package/routes/__tests__/sessions.test.d.ts.map +1 -0
  145. package/routes/__tests__/sessions.test.js +330 -0
  146. package/routes/__tests__/sessions.test.js.map +1 -0
  147. package/routes/a2a.d.ts +18 -0
  148. package/routes/a2a.d.ts.map +1 -0
  149. package/routes/a2a.js +649 -0
  150. package/routes/a2a.js.map +1 -0
  151. package/routes/a2a.streaming.test.d.ts +2 -0
  152. package/routes/a2a.streaming.test.d.ts.map +1 -0
  153. package/routes/a2a.streaming.test.js +167 -0
  154. package/routes/a2a.streaming.test.js.map +1 -0
  155. package/routes/a2aManagement.d.ts +21 -0
  156. package/routes/a2aManagement.d.ts.map +1 -0
  157. package/routes/a2aManagement.js +466 -0
  158. package/routes/a2aManagement.js.map +1 -0
  159. package/{backend/dist/routes → routes}/agents.d.ts.map +1 -1
  160. package/routes/agents.js +997 -0
  161. package/routes/agents.js.map +1 -0
  162. package/{backend/dist/routes → routes}/auth.d.ts.map +1 -1
  163. package/routes/auth.js +135 -0
  164. package/routes/auth.js.map +1 -0
  165. package/{backend/dist/routes → routes}/commands.d.ts.map +1 -1
  166. package/{backend/dist/routes → routes}/commands.js +115 -31
  167. package/routes/commands.js.map +1 -0
  168. package/routes/config.d.ts +4 -0
  169. package/routes/config.d.ts.map +1 -0
  170. package/routes/config.js +211 -0
  171. package/routes/config.js.map +1 -0
  172. package/{backend/dist/routes → routes}/files.d.ts.map +1 -1
  173. package/{backend/dist/routes → routes}/files.js +103 -43
  174. package/routes/files.js.map +1 -0
  175. package/routes/mcp.d.ts +27 -0
  176. package/routes/mcp.d.ts.map +1 -0
  177. package/{backend/dist/routes → routes}/mcp.js +195 -105
  178. package/routes/mcp.js.map +1 -0
  179. package/routes/mcpAdmin.d.ts +16 -0
  180. package/routes/mcpAdmin.d.ts.map +1 -0
  181. package/routes/mcpAdmin.js +308 -0
  182. package/routes/mcpAdmin.js.map +1 -0
  183. package/routes/mcpAdminManagement.d.ts +17 -0
  184. package/routes/mcpAdminManagement.d.ts.map +1 -0
  185. package/routes/mcpAdminManagement.js +345 -0
  186. package/routes/mcpAdminManagement.js.map +1 -0
  187. package/routes/media.d.ts.map +1 -0
  188. package/{backend/dist/routes → routes}/media.js +52 -42
  189. package/routes/media.js.map +1 -0
  190. package/routes/mediaAuth.d.ts +8 -0
  191. package/routes/mediaAuth.d.ts.map +1 -0
  192. package/routes/mediaAuth.js +136 -0
  193. package/routes/mediaAuth.js.map +1 -0
  194. package/routes/plugins.d.ts +4 -0
  195. package/routes/plugins.d.ts.map +1 -0
  196. package/routes/plugins.js +339 -0
  197. package/routes/plugins.js.map +1 -0
  198. package/{backend/dist/routes → routes}/projects.d.ts.map +1 -1
  199. package/routes/projects.js +884 -0
  200. package/routes/projects.js.map +1 -0
  201. package/routes/scheduledTasks.d.ts +9 -0
  202. package/routes/scheduledTasks.d.ts.map +1 -0
  203. package/routes/scheduledTasks.js +320 -0
  204. package/routes/scheduledTasks.js.map +1 -0
  205. package/{backend/dist/routes → routes}/sessions.d.ts.map +1 -1
  206. package/{backend/dist/routes → routes}/sessions.js +258 -39
  207. package/routes/sessions.js.map +1 -0
  208. package/{backend/dist/routes → routes}/settings.d.ts.map +1 -1
  209. package/{backend/dist/routes → routes}/settings.js +82 -241
  210. package/routes/settings.js.map +1 -0
  211. package/{backend/dist/routes/mcp.d.ts → routes/skills.d.ts} +1 -1
  212. package/routes/skills.d.ts.map +1 -0
  213. package/routes/skills.js +272 -0
  214. package/routes/skills.js.map +1 -0
  215. package/routes/slack.d.ts +10 -0
  216. package/routes/slack.d.ts.map +1 -0
  217. package/routes/slack.js +189 -0
  218. package/routes/slack.js.map +1 -0
  219. package/{backend/dist/routes → routes}/slides.d.ts.map +1 -1
  220. package/{backend/dist/routes → routes}/slides.js +29 -27
  221. package/routes/slides.js.map +1 -0
  222. package/{backend/dist/routes → routes}/subagents.js +27 -22
  223. package/routes/subagents.js.map +1 -0
  224. package/schemas/a2a.d.ts +858 -0
  225. package/schemas/a2a.d.ts.map +1 -0
  226. package/schemas/a2a.js +300 -0
  227. package/schemas/a2a.js.map +1 -0
  228. package/scripts/postinstall.js +10 -0
  229. package/services/__tests__/pluginInstaller.test.d.ts +5 -0
  230. package/services/__tests__/pluginInstaller.test.d.ts.map +1 -0
  231. package/services/__tests__/pluginInstaller.test.js +290 -0
  232. package/services/__tests__/pluginInstaller.test.js.map +1 -0
  233. package/services/__tests__/pluginParser.test.d.ts +5 -0
  234. package/services/__tests__/pluginParser.test.d.ts.map +1 -0
  235. package/services/__tests__/pluginParser.test.js +272 -0
  236. package/services/__tests__/pluginParser.test.js.map +1 -0
  237. package/services/__tests__/pluginPaths.test.d.ts +5 -0
  238. package/services/__tests__/pluginPaths.test.d.ts.map +1 -0
  239. package/services/__tests__/pluginPaths.test.js +221 -0
  240. package/services/__tests__/pluginPaths.test.js.map +1 -0
  241. package/services/__tests__/pluginScanner.test.d.ts +5 -0
  242. package/services/__tests__/pluginScanner.test.d.ts.map +1 -0
  243. package/services/__tests__/pluginScanner.test.js +272 -0
  244. package/services/__tests__/pluginScanner.test.js.map +1 -0
  245. package/services/__tests__/pluginSymlink.test.d.ts +5 -0
  246. package/services/__tests__/pluginSymlink.test.d.ts.map +1 -0
  247. package/services/__tests__/pluginSymlink.test.js +318 -0
  248. package/services/__tests__/pluginSymlink.test.js.map +1 -0
  249. package/services/__tests__/slackAIService.test.d.ts +5 -0
  250. package/services/__tests__/slackAIService.test.d.ts.map +1 -0
  251. package/services/__tests__/slackAIService.test.js +477 -0
  252. package/services/__tests__/slackAIService.test.js.map +1 -0
  253. package/services/__tests__/slackThreadMapper.test.d.ts +5 -0
  254. package/services/__tests__/slackThreadMapper.test.d.ts.map +1 -0
  255. package/services/__tests__/slackThreadMapper.test.js +194 -0
  256. package/services/__tests__/slackThreadMapper.test.js.map +1 -0
  257. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts +6 -0
  258. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts.map +1 -0
  259. package/services/a2a/__tests__/a2aClientTool.integration.test.js +264 -0
  260. package/services/a2a/__tests__/a2aClientTool.integration.test.js.map +1 -0
  261. package/services/a2a/__tests__/a2aClientTool.test.d.ts +6 -0
  262. package/services/a2a/__tests__/a2aClientTool.test.d.ts.map +1 -0
  263. package/services/a2a/__tests__/a2aClientTool.test.js +418 -0
  264. package/services/a2a/__tests__/a2aClientTool.test.js.map +1 -0
  265. package/services/a2a/__tests__/a2aConfigService.test.d.ts +6 -0
  266. package/services/a2a/__tests__/a2aConfigService.test.d.ts.map +1 -0
  267. package/services/a2a/__tests__/a2aConfigService.test.js +431 -0
  268. package/services/a2a/__tests__/a2aConfigService.test.js.map +1 -0
  269. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts +2 -0
  270. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts.map +1 -0
  271. package/services/a2a/__tests__/a2aConfigServicePath.test.js +49 -0
  272. package/services/a2a/__tests__/a2aConfigServicePath.test.js.map +1 -0
  273. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts +10 -0
  274. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts.map +1 -0
  275. package/services/a2a/__tests__/a2aSdkMcp.test.js +239 -0
  276. package/services/a2a/__tests__/a2aSdkMcp.test.js.map +1 -0
  277. package/services/a2a/__tests__/agentCardService.test.d.ts +6 -0
  278. package/services/a2a/__tests__/agentCardService.test.d.ts.map +1 -0
  279. package/services/a2a/__tests__/agentCardService.test.js +292 -0
  280. package/services/a2a/__tests__/agentCardService.test.js.map +1 -0
  281. package/services/a2a/__tests__/apiKeyService.test.d.ts +6 -0
  282. package/services/a2a/__tests__/apiKeyService.test.d.ts.map +1 -0
  283. package/services/a2a/__tests__/apiKeyService.test.js +284 -0
  284. package/services/a2a/__tests__/apiKeyService.test.js.map +1 -0
  285. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts +2 -0
  286. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts.map +1 -0
  287. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js +70 -0
  288. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js.map +1 -0
  289. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts +2 -0
  290. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts.map +1 -0
  291. package/services/a2a/__tests__/dynamic_config_verification.test.js +67 -0
  292. package/services/a2a/__tests__/dynamic_config_verification.test.js.map +1 -0
  293. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts +2 -0
  294. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts.map +1 -0
  295. package/services/a2a/__tests__/integrateA2AMcpServer.test.js +112 -0
  296. package/services/a2a/__tests__/integrateA2AMcpServer.test.js.map +1 -0
  297. package/services/a2a/__tests__/taskManager.integration.test.d.ts +7 -0
  298. package/services/a2a/__tests__/taskManager.integration.test.d.ts.map +1 -0
  299. package/services/a2a/__tests__/taskManager.integration.test.js +346 -0
  300. package/services/a2a/__tests__/taskManager.integration.test.js.map +1 -0
  301. package/services/a2a/__tests__/taskManager.test.d.ts +7 -0
  302. package/services/a2a/__tests__/taskManager.test.d.ts.map +1 -0
  303. package/services/a2a/__tests__/taskManager.test.js +423 -0
  304. package/services/a2a/__tests__/taskManager.test.js.map +1 -0
  305. package/services/a2a/a2aClientTool.d.ts +73 -0
  306. package/services/a2a/a2aClientTool.d.ts.map +1 -0
  307. package/services/a2a/a2aClientTool.js +572 -0
  308. package/services/a2a/a2aClientTool.js.map +1 -0
  309. package/services/a2a/a2aConfigService.d.ts +50 -0
  310. package/services/a2a/a2aConfigService.d.ts.map +1 -0
  311. package/services/a2a/a2aConfigService.js +186 -0
  312. package/services/a2a/a2aConfigService.js.map +1 -0
  313. package/services/a2a/a2aHistoryService.d.ts +32 -0
  314. package/services/a2a/a2aHistoryService.d.ts.map +1 -0
  315. package/services/a2a/a2aHistoryService.js +108 -0
  316. package/services/a2a/a2aHistoryService.js.map +1 -0
  317. package/services/a2a/a2aIntegration.d.ts +9 -0
  318. package/services/a2a/a2aIntegration.d.ts.map +1 -0
  319. package/services/a2a/a2aIntegration.js +41 -0
  320. package/services/a2a/a2aIntegration.js.map +1 -0
  321. package/services/a2a/a2aQueryService.d.ts +71 -0
  322. package/services/a2a/a2aQueryService.d.ts.map +1 -0
  323. package/services/a2a/a2aQueryService.js +166 -0
  324. package/services/a2a/a2aQueryService.js.map +1 -0
  325. package/services/a2a/a2aSdkMcp.d.ts +51 -0
  326. package/services/a2a/a2aSdkMcp.d.ts.map +1 -0
  327. package/services/a2a/a2aSdkMcp.js +185 -0
  328. package/services/a2a/a2aSdkMcp.js.map +1 -0
  329. package/services/a2a/a2aStreamEvents.d.ts +94 -0
  330. package/services/a2a/a2aStreamEvents.d.ts.map +1 -0
  331. package/services/a2a/a2aStreamEvents.js +92 -0
  332. package/services/a2a/a2aStreamEvents.js.map +1 -0
  333. package/services/a2a/agentCardService.d.ts +34 -0
  334. package/services/a2a/agentCardService.d.ts.map +1 -0
  335. package/services/a2a/agentCardService.js +228 -0
  336. package/services/a2a/agentCardService.js.map +1 -0
  337. package/services/a2a/agentMappingService.d.ts +53 -0
  338. package/services/a2a/agentMappingService.d.ts.map +1 -0
  339. package/services/a2a/agentMappingService.js +185 -0
  340. package/services/a2a/agentMappingService.js.map +1 -0
  341. package/services/a2a/apiKeyService.d.ts +101 -0
  342. package/services/a2a/apiKeyService.d.ts.map +1 -0
  343. package/services/a2a/apiKeyService.js +314 -0
  344. package/services/a2a/apiKeyService.js.map +1 -0
  345. package/services/a2a/taskCleanup.d.ts +30 -0
  346. package/services/a2a/taskCleanup.d.ts.map +1 -0
  347. package/services/a2a/taskCleanup.js +184 -0
  348. package/services/a2a/taskCleanup.js.map +1 -0
  349. package/services/a2a/taskManager.d.ts +86 -0
  350. package/services/a2a/taskManager.d.ts.map +1 -0
  351. package/services/a2a/taskManager.js +263 -0
  352. package/services/a2a/taskManager.js.map +1 -0
  353. package/services/agentStorage.d.ts +27 -0
  354. package/services/agentStorage.d.ts.map +1 -0
  355. package/services/agentStorage.js +487 -0
  356. package/services/agentStorage.js.map +1 -0
  357. package/services/askUserQuestion/askUserQuestionIntegration.d.ts +24 -0
  358. package/services/askUserQuestion/askUserQuestionIntegration.d.ts.map +1 -0
  359. package/services/askUserQuestion/askUserQuestionIntegration.js +52 -0
  360. package/services/askUserQuestion/askUserQuestionIntegration.js.map +1 -0
  361. package/services/askUserQuestion/askUserQuestionMcp.d.ts +103 -0
  362. package/services/askUserQuestion/askUserQuestionMcp.d.ts.map +1 -0
  363. package/services/askUserQuestion/askUserQuestionMcp.js +129 -0
  364. package/services/askUserQuestion/askUserQuestionMcp.js.map +1 -0
  365. package/services/askUserQuestion/index.d.ts +13 -0
  366. package/services/askUserQuestion/index.d.ts.map +1 -0
  367. package/services/askUserQuestion/index.js +35 -0
  368. package/services/askUserQuestion/index.js.map +1 -0
  369. package/services/askUserQuestion/init.d.ts +17 -0
  370. package/services/askUserQuestion/init.d.ts.map +1 -0
  371. package/services/askUserQuestion/init.js +47 -0
  372. package/services/askUserQuestion/init.js.map +1 -0
  373. package/services/askUserQuestion/notificationChannel.d.ts +97 -0
  374. package/services/askUserQuestion/notificationChannel.d.ts.map +1 -0
  375. package/services/askUserQuestion/notificationChannel.js +147 -0
  376. package/services/askUserQuestion/notificationChannel.js.map +1 -0
  377. package/services/askUserQuestion/slackNotificationChannel.d.ts +35 -0
  378. package/services/askUserQuestion/slackNotificationChannel.d.ts.map +1 -0
  379. package/services/askUserQuestion/slackNotificationChannel.js +129 -0
  380. package/services/askUserQuestion/slackNotificationChannel.js.map +1 -0
  381. package/services/askUserQuestion/sseNotificationChannel.d.ts +36 -0
  382. package/services/askUserQuestion/sseNotificationChannel.d.ts.map +1 -0
  383. package/services/askUserQuestion/sseNotificationChannel.js +88 -0
  384. package/services/askUserQuestion/sseNotificationChannel.js.map +1 -0
  385. package/services/askUserQuestion/userInputRegistry.d.ts +107 -0
  386. package/services/askUserQuestion/userInputRegistry.d.ts.map +1 -0
  387. package/services/askUserQuestion/userInputRegistry.js +253 -0
  388. package/services/askUserQuestion/userInputRegistry.js.map +1 -0
  389. package/{backend/dist/services → services}/claudeSession.d.ts +20 -5
  390. package/services/claudeSession.d.ts.map +1 -0
  391. package/{backend/dist/services → services}/claudeSession.js +123 -41
  392. package/services/claudeSession.js.map +1 -0
  393. package/services/claudeVersionStorage.d.ts +20 -0
  394. package/services/claudeVersionStorage.d.ts.map +1 -0
  395. package/services/claudeVersionStorage.js +331 -0
  396. package/services/claudeVersionStorage.js.map +1 -0
  397. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts +5 -0
  398. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts.map +1 -0
  399. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js +289 -0
  400. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js.map +1 -0
  401. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts +5 -0
  402. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts.map +1 -0
  403. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js +345 -0
  404. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js.map +1 -0
  405. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts +5 -0
  406. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts.map +1 -0
  407. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js +453 -0
  408. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js.map +1 -0
  409. package/services/mcpAdmin/__tests__/tools.test.d.ts +5 -0
  410. package/services/mcpAdmin/__tests__/tools.test.d.ts.map +1 -0
  411. package/services/mcpAdmin/__tests__/tools.test.js +371 -0
  412. package/services/mcpAdmin/__tests__/tools.test.js.map +1 -0
  413. package/services/mcpAdmin/adminApiKeyService.d.ts +61 -0
  414. package/services/mcpAdmin/adminApiKeyService.d.ts.map +1 -0
  415. package/services/mcpAdmin/adminApiKeyService.js +270 -0
  416. package/services/mcpAdmin/adminApiKeyService.js.map +1 -0
  417. package/services/mcpAdmin/index.d.ts +10 -0
  418. package/services/mcpAdmin/index.d.ts.map +1 -0
  419. package/services/mcpAdmin/index.js +43 -0
  420. package/services/mcpAdmin/index.js.map +1 -0
  421. package/services/mcpAdmin/mcpAdminServer.d.ts +76 -0
  422. package/services/mcpAdmin/mcpAdminServer.d.ts.map +1 -0
  423. package/services/mcpAdmin/mcpAdminServer.js +243 -0
  424. package/services/mcpAdmin/mcpAdminServer.js.map +1 -0
  425. package/services/mcpAdmin/tools/agentTools.d.ts +27 -0
  426. package/services/mcpAdmin/tools/agentTools.d.ts.map +1 -0
  427. package/services/mcpAdmin/tools/agentTools.js +359 -0
  428. package/services/mcpAdmin/tools/agentTools.js.map +1 -0
  429. package/services/mcpAdmin/tools/index.d.ts +15 -0
  430. package/services/mcpAdmin/tools/index.d.ts.map +1 -0
  431. package/services/mcpAdmin/tools/index.js +30 -0
  432. package/services/mcpAdmin/tools/index.js.map +1 -0
  433. package/services/mcpAdmin/tools/mcpServerTools.d.ts +27 -0
  434. package/services/mcpAdmin/tools/mcpServerTools.d.ts.map +1 -0
  435. package/services/mcpAdmin/tools/mcpServerTools.js +334 -0
  436. package/services/mcpAdmin/tools/mcpServerTools.js.map +1 -0
  437. package/services/mcpAdmin/tools/projectTools.d.ts +27 -0
  438. package/services/mcpAdmin/tools/projectTools.d.ts.map +1 -0
  439. package/services/mcpAdmin/tools/projectTools.js +353 -0
  440. package/services/mcpAdmin/tools/projectTools.js.map +1 -0
  441. package/services/mcpAdmin/tools/systemTools.d.ts +23 -0
  442. package/services/mcpAdmin/tools/systemTools.d.ts.map +1 -0
  443. package/services/mcpAdmin/tools/systemTools.js +241 -0
  444. package/services/mcpAdmin/tools/systemTools.js.map +1 -0
  445. package/services/mcpAdmin/types.d.ts +124 -0
  446. package/services/mcpAdmin/types.d.ts.map +1 -0
  447. package/services/mcpAdmin/types.js +18 -0
  448. package/services/mcpAdmin/types.js.map +1 -0
  449. package/{backend/dist/services → services}/messageQueue.d.ts.map +1 -1
  450. package/{backend/dist/services → services}/messageQueue.js +16 -3
  451. package/services/messageQueue.js.map +1 -0
  452. package/services/pluginInstaller.d.ts +58 -0
  453. package/services/pluginInstaller.d.ts.map +1 -0
  454. package/services/pluginInstaller.js +321 -0
  455. package/services/pluginInstaller.js.map +1 -0
  456. package/services/pluginParser.d.ts +45 -0
  457. package/services/pluginParser.d.ts.map +1 -0
  458. package/services/pluginParser.js +437 -0
  459. package/services/pluginParser.js.map +1 -0
  460. package/services/pluginPaths.d.ts +80 -0
  461. package/services/pluginPaths.d.ts.map +1 -0
  462. package/services/pluginPaths.js +274 -0
  463. package/services/pluginPaths.js.map +1 -0
  464. package/services/pluginScanner.d.ts +36 -0
  465. package/services/pluginScanner.d.ts.map +1 -0
  466. package/services/pluginScanner.js +251 -0
  467. package/services/pluginScanner.js.map +1 -0
  468. package/services/pluginSymlink.d.ts +54 -0
  469. package/services/pluginSymlink.d.ts.map +1 -0
  470. package/services/pluginSymlink.js +223 -0
  471. package/services/pluginSymlink.js.map +1 -0
  472. package/services/projectMetadataStorage.d.ts +114 -0
  473. package/services/projectMetadataStorage.d.ts.map +1 -0
  474. package/services/projectMetadataStorage.js +711 -0
  475. package/services/projectMetadataStorage.js.map +1 -0
  476. package/services/scheduledTaskStorage.d.ts +52 -0
  477. package/services/scheduledTaskStorage.d.ts.map +1 -0
  478. package/services/scheduledTaskStorage.js +285 -0
  479. package/services/scheduledTaskStorage.js.map +1 -0
  480. package/services/schedulerService.d.ts +81 -0
  481. package/services/schedulerService.d.ts.map +1 -0
  482. package/services/schedulerService.js +743 -0
  483. package/services/schedulerService.js.map +1 -0
  484. package/{backend/dist/services → services}/sessionManager.d.ts +6 -4
  485. package/services/sessionManager.d.ts.map +1 -0
  486. package/{backend/dist/services → services}/sessionManager.js +77 -16
  487. package/services/sessionManager.js.map +1 -0
  488. package/services/skillStorage.d.ts +60 -0
  489. package/services/skillStorage.d.ts.map +1 -0
  490. package/services/skillStorage.js +398 -0
  491. package/services/skillStorage.js.map +1 -0
  492. package/services/slackAIService.d.ts +81 -0
  493. package/services/slackAIService.d.ts.map +1 -0
  494. package/services/slackAIService.js +1091 -0
  495. package/services/slackAIService.js.map +1 -0
  496. package/services/slackClient.d.ts +46 -0
  497. package/services/slackClient.d.ts.map +1 -0
  498. package/services/slackClient.js +85 -0
  499. package/services/slackClient.js.map +1 -0
  500. package/services/slackSessionLock.d.ts +79 -0
  501. package/services/slackSessionLock.d.ts.map +1 -0
  502. package/services/slackSessionLock.js +353 -0
  503. package/services/slackSessionLock.js.map +1 -0
  504. package/services/slackThreadMapper.d.ts +57 -0
  505. package/services/slackThreadMapper.d.ts.map +1 -0
  506. package/services/slackThreadMapper.js +140 -0
  507. package/services/slackThreadMapper.js.map +1 -0
  508. package/types/a2a.d.ts +275 -0
  509. package/types/a2a.d.ts.map +1 -0
  510. package/types/a2a.js +23 -0
  511. package/types/a2a.js.map +1 -0
  512. package/types/agents.d.ts +95 -0
  513. package/types/agents.d.ts.map +1 -0
  514. package/types/agents.js +46 -0
  515. package/types/agents.js.map +1 -0
  516. package/types/claude-history.d.ts +62 -0
  517. package/types/claude-history.d.ts.map +1 -0
  518. package/types/claude-history.js +4 -0
  519. package/types/claude-history.js.map +1 -0
  520. package/types/claude-versions.d.ts +36 -0
  521. package/types/claude-versions.d.ts.map +1 -0
  522. package/types/claude-versions.js +3 -0
  523. package/types/claude-versions.js.map +1 -0
  524. package/types/commands.d.ts +50 -0
  525. package/types/commands.d.ts.map +1 -0
  526. package/types/commands.js +23 -0
  527. package/types/commands.js.map +1 -0
  528. package/types/plugins.d.ts +144 -0
  529. package/types/plugins.d.ts.map +1 -0
  530. package/types/plugins.js +8 -0
  531. package/types/plugins.js.map +1 -0
  532. package/types/projects.d.ts +42 -0
  533. package/types/projects.d.ts.map +1 -0
  534. package/types/projects.js +4 -0
  535. package/types/projects.js.map +1 -0
  536. package/types/scheduledTasks.d.ts +164 -0
  537. package/types/scheduledTasks.d.ts.map +1 -0
  538. package/types/scheduledTasks.js +17 -0
  539. package/types/scheduledTasks.js.map +1 -0
  540. package/types/skills.d.ts +91 -0
  541. package/types/skills.d.ts.map +1 -0
  542. package/types/skills.js +6 -0
  543. package/types/skills.js.map +1 -0
  544. package/types/slack.d.ts +97 -0
  545. package/types/slack.d.ts.map +1 -0
  546. package/types/slack.js +8 -0
  547. package/types/slack.js.map +1 -0
  548. package/types/streaming.d.ts +12 -0
  549. package/types/streaming.d.ts.map +1 -0
  550. package/types/streaming.js +8 -0
  551. package/types/streaming.js.map +1 -0
  552. package/types/subagents.d.ts +26 -0
  553. package/types/subagents.d.ts.map +1 -0
  554. package/types/subagents.js +3 -0
  555. package/types/subagents.js.map +1 -0
  556. package/utils/__tests__/claudeUtils.test.d.ts +5 -0
  557. package/utils/__tests__/claudeUtils.test.d.ts.map +1 -0
  558. package/utils/__tests__/claudeUtils.test.js +282 -0
  559. package/utils/__tests__/claudeUtils.test.js.map +1 -0
  560. package/utils/__tests__/sessionUtils.test.d.ts +5 -0
  561. package/utils/__tests__/sessionUtils.test.d.ts.map +1 -0
  562. package/utils/__tests__/sessionUtils.test.js +295 -0
  563. package/utils/__tests__/sessionUtils.test.js.map +1 -0
  564. package/utils/agentCardCache.d.ts +93 -0
  565. package/utils/agentCardCache.d.ts.map +1 -0
  566. package/utils/agentCardCache.js +212 -0
  567. package/utils/agentCardCache.js.map +1 -0
  568. package/utils/claudeUtils.d.ts +54 -0
  569. package/utils/claudeUtils.d.ts.map +1 -0
  570. package/utils/claudeUtils.js +387 -0
  571. package/utils/claudeUtils.js.map +1 -0
  572. package/utils/fileUtils.d.ts +2 -0
  573. package/utils/fileUtils.d.ts.map +1 -0
  574. package/utils/fileUtils.js +11 -0
  575. package/utils/fileUtils.js.map +1 -0
  576. package/utils/jwt.d.ts +30 -0
  577. package/utils/jwt.d.ts.map +1 -0
  578. package/utils/jwt.js +95 -0
  579. package/utils/jwt.js.map +1 -0
  580. package/utils/sessionUtils.d.ts +64 -0
  581. package/utils/sessionUtils.d.ts.map +1 -0
  582. package/utils/sessionUtils.js +266 -0
  583. package/utils/sessionUtils.js.map +1 -0
  584. package/README.zh-CN.md +0 -525
  585. package/backend/dist/bin/agentstudio.js +0 -120
  586. package/backend/dist/bin/agentstudio.js.map +0 -1
  587. package/backend/dist/frontend/assets/AgentsPage-Dqb_aqAA.js +0 -1
  588. package/backend/dist/frontend/assets/ChatPage-L8Paywyc.js +0 -91
  589. package/backend/dist/frontend/assets/CommandForm-DLl7EIMS.js +0 -7
  590. package/backend/dist/frontend/assets/CommandsPage-Bzavq0Ec.js +0 -1
  591. package/backend/dist/frontend/assets/DashboardPage-B3o4AYFT.js +0 -15
  592. package/backend/dist/frontend/assets/FileBrowser-DL3ayaqb.js +0 -1
  593. package/backend/dist/frontend/assets/GeneralSettingsPage-CBN_de-V.js +0 -1
  594. package/backend/dist/frontend/assets/LandingPage-Dl4ioKos.js +0 -1
  595. package/backend/dist/frontend/assets/LoginPage-4QqRdiSi.js +0 -12
  596. package/backend/dist/frontend/assets/McpPage-CY3tYiqj.js +0 -39
  597. package/backend/dist/frontend/assets/MemorySettingsPage-DGxrok5K.js +0 -1
  598. package/backend/dist/frontend/assets/ProjectSelector-hgmGYVFh.js +0 -1
  599. package/backend/dist/frontend/assets/ProjectsPage-D399IM0c.js +0 -14
  600. package/backend/dist/frontend/assets/SettingsLayout-CL_K-lzJ.js +0 -1
  601. package/backend/dist/frontend/assets/SubagentsPage-Chbhj8p2.js +0 -1
  602. package/backend/dist/frontend/assets/UnifiedToolSelector-CsM9qBvs.js +0 -1
  603. package/backend/dist/frontend/assets/VersionSettingsPage-74Q-LVgA.js +0 -5
  604. package/backend/dist/frontend/assets/agents-ClAzIJTw.js +0 -1
  605. package/backend/dist/frontend/assets/authFetch-BATQyPG5.js +0 -1
  606. package/backend/dist/frontend/assets/index-B9YHa7XT.css +0 -1
  607. package/backend/dist/frontend/assets/index-B_CTNvca.js +0 -268
  608. package/backend/dist/frontend/assets/monaco-editor-C7Z4sOhS.js +0 -19
  609. package/backend/dist/frontend/assets/tabManager-DV8urRBM.js +0 -30
  610. package/backend/dist/frontend/assets/tools-C4EPanYi.js +0 -1
  611. package/backend/dist/frontend/assets/useAgents-DwnOE1_k.js +0 -2
  612. package/backend/dist/frontend/assets/useClaudeVersions-CQdGnCqv.js +0 -1
  613. package/backend/dist/frontend/assets/useCommands-CCVaurbt.js +0 -1
  614. package/backend/dist/index.d.ts +0 -3
  615. package/backend/dist/index.d.ts.map +0 -1
  616. package/backend/dist/index.js +0 -157
  617. package/backend/dist/index.js.map +0 -1
  618. package/backend/dist/middleware/auth.d.ts.map +0 -1
  619. package/backend/dist/middleware/auth.js +0 -21
  620. package/backend/dist/middleware/auth.js.map +0 -1
  621. package/backend/dist/routes/agents.js +0 -803
  622. package/backend/dist/routes/agents.js.map +0 -1
  623. package/backend/dist/routes/auth.js +0 -60
  624. package/backend/dist/routes/auth.js.map +0 -1
  625. package/backend/dist/routes/commands.js.map +0 -1
  626. package/backend/dist/routes/files.js.map +0 -1
  627. package/backend/dist/routes/mcp.d.ts.map +0 -1
  628. package/backend/dist/routes/mcp.js.map +0 -1
  629. package/backend/dist/routes/media.d.ts.map +0 -1
  630. package/backend/dist/routes/media.js.map +0 -1
  631. package/backend/dist/routes/projects.js +0 -528
  632. package/backend/dist/routes/projects.js.map +0 -1
  633. package/backend/dist/routes/sessions.js.map +0 -1
  634. package/backend/dist/routes/settings.js.map +0 -1
  635. package/backend/dist/routes/slides.js.map +0 -1
  636. package/backend/dist/routes/subagents.js.map +0 -1
  637. package/backend/dist/services/claudeSession.d.ts.map +0 -1
  638. package/backend/dist/services/claudeSession.js.map +0 -1
  639. package/backend/dist/services/messageQueue.js.map +0 -1
  640. package/backend/dist/services/sessionManager.d.ts.map +0 -1
  641. package/backend/dist/services/sessionManager.js.map +0 -1
  642. package/backend/dist/utils/jwt.d.ts +0 -15
  643. package/backend/dist/utils/jwt.d.ts.map +0 -1
  644. package/backend/dist/utils/jwt.js +0 -28
  645. package/backend/dist/utils/jwt.js.map +0 -1
  646. /package/{backend/dist/bin → bin}/agentstudio.d.ts +0 -0
  647. /package/{backend/dist/bin → bin}/agentstudio.d.ts.map +0 -0
  648. /package/{backend/dist/frontend → public}/assets/ChatPage-BvQmXfcP.css +0 -0
  649. /package/{backend/dist/frontend → public}/assets/agents-DwCY2K8p.css +0 -0
  650. /package/{backend/dist/frontend → public}/assets/dateFormat-CXa8VnEC.js +0 -0
  651. /package/{backend/dist/frontend → public}/cc-studio.png +0 -0
  652. /package/{backend/dist/frontend → public}/vite.svg +0 -0
  653. /package/{backend/dist/routes → routes}/agents.d.ts +0 -0
  654. /package/{backend/dist/routes → routes}/auth.d.ts +0 -0
  655. /package/{backend/dist/routes → routes}/commands.d.ts +0 -0
  656. /package/{backend/dist/routes → routes}/files.d.ts +0 -0
  657. /package/{backend/dist/routes → routes}/media.d.ts +0 -0
  658. /package/{backend/dist/routes → routes}/projects.d.ts +0 -0
  659. /package/{backend/dist/routes → routes}/sessions.d.ts +0 -0
  660. /package/{backend/dist/routes → routes}/settings.d.ts +0 -0
  661. /package/{backend/dist/routes → routes}/slides.d.ts +0 -0
  662. /package/{backend/dist/routes → routes}/subagents.d.ts +0 -0
  663. /package/{backend/dist/routes → routes}/subagents.d.ts.map +0 -0
  664. /package/{backend/dist/services → services}/messageQueue.d.ts +0 -0
@@ -1,14 +0,0 @@
1
- import{j as e}from"./data-structures-DLJedtzx.js";import{r as h}from"./monaco-editor-C7Z4sOhS.js";import{A as F}from"./agents-ClAzIJTw.js";import{a as E}from"./authFetch-BATQyPG5.js";import{b as re,s as H}from"./index-B_CTNvca.js";import{f as B}from"./dateFormat-CXa8VnEC.js";import{u as U}from"./tools-C4EPanYi.js";import{z as Y,D as Z,x as G,u as D,a7 as ge,p as ae,a8 as ee,a9 as W,d as he,X as R,k as z,r as pe,T as ue,f as X,o as K,n as te,a5 as O,l as se,a3 as q}from"./ui-components-Cw21Epuw.js";import{u as je}from"./useAgents-DwnOE1_k.js";import{F as be}from"./FileBrowser-DL3ayaqb.js";import{T as le,a as de,b as _,c as A,d as ne,e as M}from"./table-D6q1rytw.js";import{a as ye,b as fe}from"./useCommands-CCVaurbt.js";import{C as Ne}from"./CommandForm-DLl7EIMS.js";import{g as J}from"./UnifiedToolSelector-CsM9qBvs.js";import{u as we,a as ve,S as ke}from"./SubagentForm-DXtTTIKg.js";import"./syntax-highlighting-YWvMU4Hm.js";const Ce=({projects:n,onOpenProject:y,onMemoryManagement:s,onCommandManagement:t,onSubAgentManagement:i,onDeleteProject:m,className:j=""})=>{const{t:c}=U("pages"),b=(r,f=!1)=>e.jsxs("div",{className:`${f?"flex items-start space-x-3":"flex items-center"}`,children:[e.jsx("div",{className:`flex-shrink-0 ${f?"text-2xl":"text-xl"}`,children:r.defaultAgentIcon||"❓"}),e.jsxs("div",{className:"min-w-0 flex-1 ",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{onClick:()=>y(r),className:`text-sm font-medium text-blue-600 dark:text-blue-400 hover:text-blue-800 dark:hover:text-blue-300 hover:underline cursor-pointer text-left truncate ${f?"text-base":""}`,children:r.name}),e.jsx("button",{onClick:()=>y(r),className:"text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 transition-colors flex-shrink-0",title:c("projects.actions.open"),children:e.jsx(ge,{className:"w-3 h-3"})})]}),r.description&&e.jsx("div",{className:`text-gray-500 dark:text-gray-400 truncate ${f?"text-sm mt-1":"text-sm max-w-xs"}`,children:r.description})]})]}),p=r=>r.defaultAgentName?e.jsx("span",{className:"inline-flex px-2 py-1 text-xs font-medium rounded-full bg-primary/20 text-primary",children:r.defaultAgentName}):e.jsx("span",{className:"text-xs text-gray-400 italic",children:c("projects.status.never")}),N=r=>e.jsxs("div",{className:"flex items-center space-x-2 text-sm text-gray-500 dark:text-gray-400",children:[e.jsx(ae,{className:"w-4 h-4"}),e.jsx("span",{className:"truncate",title:r.path,children:r.path})]}),x=(r,f)=>e.jsxs("div",{className:"flex items-center space-x-1 text-sm text-gray-500 dark:text-gray-400",children:[f,e.jsx("span",{children:B(r)})]}),l=r=>e.jsxs("div",{className:"flex items-center justify-end space-x-1",children:[e.jsx("button",{onClick:()=>s(r),className:"p-1.5 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-md transition-colors",title:c("components:projectMemory.title"),children:e.jsx(Y,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onClick:()=>t(r),className:"p-1.5 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-md transition-colors",title:c("components:projectCommands.title"),children:e.jsx(Z,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onClick:()=>i(r),className:"p-1.5 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-md transition-colors",title:c("components:projectSubAgents.title"),children:e.jsx(G,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onClick:()=>m(r),className:"p-1.5 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-md transition-colors",title:c("projects.actions.delete"),children:e.jsx(D,{className:"w-3.5 h-3.5"})})]});return e.jsxs("div",{className:`space-y-4 ${j}`,children:[e.jsx("div",{className:"md:hidden space-y-4",children:n.map(r=>e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 hover:shadow-md transition-shadow",children:[e.jsx("div",{className:"p-4 cursor-pointer",onClick:()=>y(r),children:b(r,!0)}),e.jsxs("div",{className:"grid grid-cols-1 gap-2 text-sm mb-3 px-4",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400",children:[c("projects.table.agent"),":"]}),e.jsx("div",{children:p(r)})]}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400",children:[c("projects.table.lastActive"),":"]}),e.jsx("div",{className:"text-right",children:x(r.lastAccessed,e.jsx(ee,{className:"w-4 h-4"}))})]}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400",children:[c("common:path"),":"]}),e.jsx("div",{className:"text-right text-xs truncate ml-2 max-w-[200px]",children:r.path})]})]}),e.jsx("div",{className:"border-t border-gray-200 dark:border-gray-700 p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-gray-500 dark:text-gray-400",children:c("projects.table.actions")}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{onClick:()=>s(r),className:"p-2 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-md transition-colors",title:c("components:projectMemory.title"),children:e.jsx(Y,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>t(r),className:"p-2 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-md transition-colors",title:c("components:projectCommands.title"),children:e.jsx(Z,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>i(r),className:"p-2 text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-md transition-colors",title:c("components:projectSubAgents.title"),children:e.jsx(G,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>m(r),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-md transition-colors",title:c("projects.actions.delete"),children:e.jsx(D,{className:"w-4 h-4"})})]})]})})]},r.id))}),e.jsx("div",{className:"hidden md:block overflow-x-auto",children:e.jsxs("table",{className:"min-w-full bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden",children:[e.jsx("thead",{className:"bg-gray-50 dark:bg-gray-700",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:c("projects.table.project")}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:c("projects.table.agent")}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:c("common:path")}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:c("common:createdAt")}),e.jsx("th",{className:"px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider",children:c("projects.table.lastActive")}),e.jsx("th",{className:"px-6 py-3 text-right text-xs font-medium text-gray-500 uppercase tracking-wider",children:c("projects.table.actions")})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:n.map((r,f)=>e.jsxs("tr",{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:[e.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:b(r)}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:p(r)}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap",children:N(r)}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400",children:x(r.createdAt,e.jsx(W,{className:"w-4 h-4"}))}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400",children:x(r.lastAccessed,e.jsx(ee,{className:"w-4 h-4"}))}),e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:l(r)})]},r.id+"-"+f))})]})})]})},Se=({project:n,onClose:y})=>{const[s,t]=h.useState(""),[i,m]=h.useState(!0),[j,c]=h.useState(!1),[b,p]=h.useState(null);h.useEffect(()=>{(async()=>{try{m(!0),p(null);const l=await E(`${F}/projects/${n.id}/claude-md`);if(l.ok){const r=await l.json();t(r.content||"")}else if(l.status===404)t("");else throw new Error("加载 CLAUDE.md 文件失败")}catch(l){console.error("Failed to load CLAUDE.md:",l),p(l instanceof Error?l.message:"未知错误")}finally{m(!1)}})()},[n.id]);const N=async()=>{try{if(c(!0),p(null),!(await E(`${F}/projects/${n.id}/claude-md`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:s})})).ok)throw new Error("保存 CLAUDE.md 文件失败");const l=document.getElementById("save-button");if(l){const r=l.textContent;l.textContent="已保存",setTimeout(()=>{l.textContent==="已保存"&&(l.textContent=r)},2e3)}}catch(x){console.error("Failed to save CLAUDE.md:",x),p(x instanceof Error?x.message:"保存失败")}finally{c(!1)}};return e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow-xl w-full max-w-4xl h-[80vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700",children:[e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx(he,{className:"w-6 h-6 text-blue-600"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:"项目记忆管理"}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400",children:n.name})]})]}),e.jsx("button",{onClick:y,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",children:e.jsx(R,{className:"w-5 h-5"})})]}),e.jsx("div",{className:"flex-1 flex flex-col p-6 overflow-hidden",children:i?e.jsx("div",{className:"flex-1 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:"正在加载 CLAUDE.md..."})]})}):b?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx(z,{className:"h-12 w-12 text-red-500 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-gray-900 dark:text-white mb-2",children:"加载失败"}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:b})]})}):e.jsxs("div",{className:"flex-1 flex flex-col space-y-4",children:[e.jsx("div",{className:"text-sm text-gray-600 dark:text-gray-400",children:"编辑项目的记忆文件 (CLAUDE.md),用于存储项目相关的上下文信息和指导。"}),e.jsx("div",{className:"flex-1 border border-gray-300 dark:border-gray-600 rounded-lg overflow-hidden",children:e.jsx("textarea",{value:s,onChange:x=>t(x.target.value),placeholder:`# 项目记忆
2
-
3
- 此文件用于存储项目相关的上下文信息、开发指导和重要注意事项。
4
-
5
- ## 项目概述
6
- 描述项目的主要功能和目标...
7
-
8
- ## 开发规范
9
- 记录代码规范、架构决策等...
10
-
11
- ## 重要注意事项
12
- 记录需要特别注意的地方...`,className:"w-full h-full p-4 border-0 resize-none focus:outline-none font-mono text-sm dark:bg-gray-700 dark:text-white dark:placeholder-gray-400",style:{minHeight:"400px"}})})]})}),!i&&!b&&e.jsxs("div",{className:"flex justify-end space-x-3 p-6 border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900",children:[e.jsx("button",{onClick:y,className:"px-4 py-2 text-gray-700 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors",children:"取消"}),e.jsxs("button",{id:"save-button",onClick:N,disabled:j,className:"px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors flex items-center space-x-2",children:[j?e.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-2 border-white border-t-transparent"}):e.jsx(pe,{className:"w-4 h-4"}),e.jsx("span",{children:j?"保存中...":"保存"})]})]})]})})},$e=({project:n,onClose:y})=>{const{t:s}=U("components"),{isMobile:t}=re(),[i,m]=h.useState(""),[j,c]=h.useState(!1),[b,p]=h.useState(null),[N,x]=h.useState(null),{data:l=[],isLoading:r,error:f,refetch:k}=ye({projectId:n.id,search:i.trim()||void 0}),C=fe(n.id),P=async d=>{try{await C.mutateAsync(d.id),x(null),k()}catch(T){console.error("Failed to delete command:",T)}},S=()=>{c(!1),p(null),k()};return r?e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow-xl w-full max-w-6xl h-[80vh] 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:s("projectCommandsModal.loading")})]})})}):f?e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow-xl w-full max-w-6xl h-[80vh] flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx(z,{className:"h-12 w-12 text-red-500 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-gray-900 dark:text-white mb-2",children:s("projectCommandsModal.error.title")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-4",children:s("projectCommandsModal.error.message")}),e.jsxs("div",{className:"flex justify-center space-x-3",children:[e.jsx("button",{onClick:()=>k(),className:"px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:s("projectCommandsModal.error.retry")}),e.jsx("button",{onClick:y,className:"px-4 py-2 text-gray-700 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors",children:s("projectCommandsModal.error.close")})]})]})})}):e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl w-full ${t?"max-w-full h-[95vh]":"max-w-6xl h-[80vh]"} flex flex-col`,children:[e.jsx("div",{className:`${t?"p-4":"p-6"} border-b border-gray-200 dark:border-gray-700`,children:e.jsxs("div",{className:`flex items-center ${t?"space-x-2":"space-x-3"}`,children:[e.jsx(ue,{className:`${t?"w-5 h-5":"w-6 h-6"} text-green-600`}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:`${t?"text-lg":"text-xl"} font-semibold text-gray-900 dark:text-white truncate`,children:s("projectCommandsModal.title")}),e.jsx("p",{className:`${t?"text-xs":"text-sm"} text-gray-600 dark:text-gray-400 truncate`,children:n.name})]}),e.jsx("button",{onClick:y,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors flex-shrink-0",children:e.jsx(R,{className:`${t?"w-4 h-4":"w-5 h-5"}`})})]})}),e.jsx("div",{className:`${t?"p-4":"p-6"} border-b border-gray-200 dark:border-gray-700`,children:e.jsxs("div",{className:`${t?"space-y-3":"flex items-center space-x-4"}`,children:[e.jsxs("div",{className:t?"":"flex-1 relative",children:[e.jsx(X,{className:`absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 ${t?"w-4 h-4":"w-5 h-5"}`}),e.jsx("input",{type:"text",placeholder:s("projectCommandsModal.searchPlaceholder"),value:i,onChange:d=>m(d.target.value),className:`pl-10 pr-4 py-2 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 dark:placeholder-gray-400 ${t?"text-sm":""}`})]}),e.jsxs("button",{onClick:()=>{p(null),c(!0)},className:`${t?"w-full py-2.5 px-4 flex items-center justify-center space-x-2":"flex items-center space-x-2 px-4 py-2"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors whitespace-nowrap ${t?"text-sm":""}`,children:[e.jsx(K,{className:"w-4 h-4"}),e.jsx("span",{children:s("projectCommandsModal.createButton")})]})]})}),e.jsx("div",{className:"flex-1 overflow-auto",children:l.length===0?e.jsxs("div",{className:`text-center ${t?"py-8":"py-16"}`,children:[e.jsx("div",{className:`${t?"text-4xl":"text-6xl"} mb-4`,children:"⚡"}),e.jsx("h3",{className:`${t?"text-lg":"text-xl"} font-medium text-gray-900 dark:text-white mb-2`,children:s(i?"projectCommandsModal.emptyState.noMatchTitle":"projectCommandsModal.emptyState.noCommandsTitle")}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${t?"mb-4":"mb-6"}`,children:s(i?"projectCommandsModal.emptyState.noMatchDescription":"projectCommandsModal.emptyState.noCommandsDescription")}),!i&&e.jsx("button",{onClick:()=>{p(null),c(!0)},className:`${t?"w-full py-3 px-4":"px-6 py-3"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors`,children:s("projectCommandsModal.createButton")})]}):e.jsx(e.Fragment,{children:t?e.jsx("div",{className:"p-4 space-y-4",children:l.map((d,T)=>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-3",children:[e.jsx("div",{className:"text-xl mr-3",children:"⚡"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"text-base font-medium text-gray-900 dark:text-white mb-1",children:[d.namespace?`/${d.namespace}:${d.name}`:`/${d.name}`,d.argumentHint&&e.jsx("code",{className:"ml-2 bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-300 px-1.5 py-0.5 rounded text-xs",children:d.argumentHint})]}),d.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:d.description})]})]}),e.jsxs("div",{className:"space-y-2 mb-4",children:[e.jsxs("div",{className:"flex items-center text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2",children:[s("projectCommandsModal.table.model"),":"]}),d.model?e.jsxs("div",{className:"flex items-center text-gray-900 dark:text-white",children:[e.jsx(te,{className:"w-3 h-3 mr-1"}),e.jsx("span",{className:"text-sm",children:d.model})]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("projectCommandsModal.table.inheritSettings")})]}),e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:[s("projectCommandsModal.table.tools"),":"]}),d.allowedTools&&d.allowedTools.length>0?e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center space-x-1 text-gray-500 dark:text-gray-400 mb-1",children:[e.jsx(O,{className:"w-3 h-3"}),e.jsx("span",{className:"text-xs",children:s("projectCommandsModal.table.toolsCount",{count:d.allowedTools.length})})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:d.allowedTools.map((o,w)=>e.jsx("code",{className:"bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-400 px-1.5 py-0.5 rounded text-xs",children:J(o)},w))})]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("projectCommandsModal.table.inheritSettings")})]}),e.jsxs("div",{className:"flex items-center text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2",children:[s("projectCommandsModal.table.createdAt"),":"]}),e.jsxs("div",{className:"flex items-center text-gray-500 dark:text-gray-400",children:[e.jsx(se,{className:"w-4 h-4 mr-1"}),e.jsx("span",{children:B(d.createdAt||d.updatedAt)})]})]})]}),e.jsxs("div",{className:"flex items-center justify-end space-x-2 pt-3 border-t border-gray-200 dark:border-gray-700",children:[e.jsxs("button",{onClick:()=>{p(d),c(!0)},className:"inline-flex items-center px-3 py-2 text-sm font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",children:[e.jsx(q,{className:"w-3 h-3 mr-1"}),s("projectCommandsModal.actions.edit")]}),e.jsx("button",{onClick:()=>x(d),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:s("projectCommandsModal.actions.deleteTooltip"),children:e.jsx(D,{className:"w-4 h-4"})})]})]},d.id+"-"+T))}):e.jsxs(le,{children:[e.jsx(de,{children:e.jsxs(_,{children:[e.jsx(A,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:s("projectCommandsModal.table.command")}),e.jsx(A,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:s("projectCommandsModal.table.model")}),e.jsx(A,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:s("projectCommandsModal.table.tools")}),e.jsx(A,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:s("projectCommandsModal.table.createdAt")}),e.jsx(A,{className:"px-6 py-3 text-right text-xs font-medium text-gray-500 uppercase tracking-wider",children:s("projectCommandsModal.table.actions")})]})}),e.jsx(ne,{children:l.map((d,T)=>e.jsxs(_,{className:"hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors",children:[e.jsx(M,{className:"px-6 py-4 whitespace-nowrap",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"text-xl mr-3",children:"⚡"}),e.jsxs("div",{children:[e.jsxs("div",{className:"text-sm font-medium text-gray-900 dark:text-white",children:[d.namespace?`/${d.namespace}:${d.name}`:`/${d.name}`,d.argumentHint&&e.jsx("code",{className:"ml-2 bg-gray-100 dark:bg-gray-700 text-gray-800 dark:text-gray-200 px-1.5 py-0.5 rounded text-xs",children:d.argumentHint})]}),d.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 truncate max-w-xs",children:d.description})]})]})}),e.jsx(M,{className:"px-6 py-4",children:d.model?e.jsxs("div",{className:"text-sm text-gray-900 dark:text-white",children:[e.jsx(te,{className:"w-3 h-3 inline mr-1"}),d.model]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("projectCommandsModal.table.inheritSettings")})}),e.jsx(M,{className:"px-6 py-4",children:d.allowedTools&&d.allowedTools.length>0?e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center space-x-1 text-sm text-gray-500 dark:text-gray-400 mb-1",children:[e.jsx(O,{className:"w-3 h-3"}),e.jsx("span",{children:s("projectCommandsModal.table.toolsCount",{count:d.allowedTools.length})})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:d.allowedTools.map((o,w)=>e.jsx("code",{className:"bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-400 px-1.5 py-0.5 rounded text-xs",children:J(o)},w))})]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("projectCommandsModal.table.inheritSettings")})}),e.jsx(M,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400",children:e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(se,{className:"w-4 h-4"}),e.jsx("span",{children:B(d.createdAt||d.updatedAt)})]})}),e.jsx(M,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:e.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[e.jsxs("button",{onClick:()=>{p(d),c(!0)},className:"inline-flex items-center px-3 py-1.5 text-xs font-medium text-blue-600 bg-blue-50 rounded-md hover:bg-blue-100 transition-colors",title:s("projectCommandsModal.actions.editTooltip"),children:[e.jsx(q,{className:"w-3 h-3 mr-1"}),s("projectCommandsModal.actions.edit")]}),e.jsx("button",{onClick:()=>x(d),className:"p-2 text-red-600 hover:bg-red-50 rounded-lg transition-colors",title:s("projectCommandsModal.actions.deleteTooltip"),children:e.jsx(D,{className:"w-4 h-4"})})]})})]},d.id+"-"+T))})]})})}),j&&e.jsx(Ne,{command:b,projectId:n.id,onClose:()=>{c(!1),p(null)},onSuccess:S}),N&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[60] p-4",children:e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl ${t?"w-full max-w-sm":"max-w-md w-full mx-4"} p-6`,children:[e.jsxs("div",{className:"flex items-center space-x-3 mb-4",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx(z,{className:`${t?"h-5 w-5":"h-6 w-6"} text-red-600`})}),e.jsx("div",{className:"flex-1",children:e.jsx("h3",{className:`${t?"text-base":"text-lg"} font-medium text-gray-900 dark:text-white`,children:s("projectCommandsModal.deleteConfirm.title")})})]}),e.jsx("p",{className:`${t?"text-sm mb-4":"mb-6"} text-gray-600 dark:text-gray-400`,children:s("projectCommandsModal.deleteConfirm.message",{name:N.name})}),e.jsxs("div",{className:`${t?"grid grid-cols-2 gap-2":"flex justify-end space-x-3"}`,children:[e.jsx("button",{onClick:()=>x(null),className:`${t?"px-3 py-2.5 text-sm":"px-4 py-2"} text-gray-700 dark:text-gray-300 bg-gray-200 dark:bg-gray-700 hover:bg-gray-300 dark:hover:bg-gray-600 rounded-lg transition-colors`,children:s("projectCommandsModal.deleteConfirm.cancel")}),e.jsx("button",{onClick:()=>P(N),disabled:C.isPending,className:`${t?"px-3 py-2.5 text-sm":"px-4 py-2"} bg-red-600 hover:bg-red-700 text-white rounded-lg transition-colors disabled:opacity-50`,children:C.isPending?s("projectCommandsModal.deleteConfirm.deleting"):s("projectCommandsModal.deleteConfirm.confirm")})]})]})})]})})},Ae=({project:n,onClose:y})=>{const{t:s}=U("components"),{isMobile:t}=re(),[i,m]=h.useState(""),[j,c]=h.useState(!1),[b,p]=h.useState(null),[N,x]=h.useState(null),{data:l=[],isLoading:r,error:f,refetch:k}=we({projectId:n.id,search:i.trim()||void 0}),C=ve(n.id),P=async o=>{try{await C.mutateAsync(o.id),x(null),k()}catch(w){console.error("Failed to delete subagent:",w)}},S=o=>{p(o),c(!0)},d=()=>{c(!1),p(null)},T=()=>{k(),c(!1),p(null)};return r?e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsx("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl w-full ${t?"max-w-full h-[95vh]":"max-w-6xl h-[80vh]"} 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:s("projectSubAgentsModal.loading")})]})})}):f?e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsx("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl w-full ${t?"max-w-full h-[95vh]":"max-w-6xl h-[80vh]"} flex items-center justify-center`,children:e.jsxs("div",{className:`text-center ${t?"px-6":""}`,children:[e.jsx(z,{className:`${t?"h-10 w-10":"h-12 w-12"} text-red-500 mx-auto mb-4`}),e.jsx("h3",{className:`${t?"text-base":"text-lg"} font-medium text-gray-900 dark:text-white mb-2`,children:s("projectSubAgentsModal.error.loadFailed")}),e.jsx("p",{className:`${t?"text-sm":""} text-gray-600 dark:text-gray-400 mb-4`,children:s("projectSubAgentsModal.error.loadFailedMessage")}),e.jsxs("div",{className:`${t?"grid grid-cols-2 gap-2":"flex justify-center space-x-3"}`,children:[e.jsx("button",{onClick:()=>k(),className:`${t?"px-3 py-2.5 text-sm":"px-4 py-2"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors`,children:s("projectSubAgentsModal.actions.retry")}),e.jsx("button",{onClick:y,className:`${t?"px-3 py-2.5 text-sm":"px-4 py-2"} text-gray-700 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors`,children:s("projectSubAgentsModal.actions.close")})]})]})})}):e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl w-full ${t?"max-w-full h-[95vh]":"max-w-6xl h-[80vh]"} flex flex-col`,children:[e.jsx("div",{className:`${t?"p-4":"p-6"} border-b border-gray-200 dark:border-gray-700`,children:e.jsxs("div",{className:`flex items-center ${t?"space-x-2":"space-x-3"}`,children:[e.jsx(G,{className:`${t?"w-5 h-5":"w-6 h-6"} text-purple-600`}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h2",{className:`${t?"text-lg":"text-xl"} font-semibold text-gray-900 dark:text-white truncate`,children:s("projectSubAgentsModal.title")}),e.jsx("p",{className:`${t?"text-xs":"text-sm"} text-gray-600 dark:text-gray-400 truncate`,children:n.name})]}),e.jsx("button",{onClick:y,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors flex-shrink-0",children:e.jsx(R,{className:`${t?"w-4 h-4":"w-5 h-5"}`})})]})}),e.jsx("div",{className:`${t?"p-4":"p-6"} border-b border-gray-200 dark:border-gray-700`,children:e.jsxs("div",{className:`${t?"space-y-3":"flex items-center space-x-4"}`,children:[e.jsxs("div",{className:t?"":"flex-1 relative",children:[e.jsx(X,{className:`absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 ${t?"w-4 h-4":"w-5 h-5"}`}),e.jsx("input",{type:"text",placeholder:s("projectSubAgentsModal.searchPlaceholder"),value:i,onChange:o=>m(o.target.value),className:`pl-10 pr-4 py-2 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 dark:placeholder-gray-400 ${t?"text-sm":""}`})]}),e.jsxs("button",{onClick:()=>{p(null),c(!0)},className:`${t?"w-full py-2.5 px-4 flex items-center justify-center space-x-2":"flex items-center space-x-2 px-4 py-2"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors whitespace-nowrap ${t?"text-sm":""}`,children:[e.jsx(K,{className:"w-4 h-4"}),e.jsx("span",{children:s("projectSubAgentsModal.actions.create")})]})]})}),e.jsx("div",{className:"flex-1 overflow-auto",children:l.length===0?e.jsxs("div",{className:`text-center ${t?"py-8":"py-16"}`,children:[e.jsx("div",{className:`${t?"text-4xl":"text-6xl"} mb-4`,children:"🤖"}),e.jsx("h3",{className:`${t?"text-lg":"text-xl"} font-medium text-gray-900 dark:text-white mb-2`,children:s(i?"projectSubAgentsModal.emptyState.noResults":"projectSubAgentsModal.emptyState.noSubagents")}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${t?"mb-4":"mb-6"}`,children:s(i?"projectSubAgentsModal.emptyState.tryAdjust":"projectSubAgentsModal.emptyState.description")}),!i&&e.jsx("button",{onClick:()=>{p(null),c(!0)},className:`${t?"w-full py-3 px-4":"px-6 py-3"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors`,children:s("projectSubAgentsModal.actions.create")})]}):e.jsx(e.Fragment,{children:t?e.jsx("div",{className:"p-4 space-y-4",children:l.map((o,w)=>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-3",children:[e.jsx("div",{className:"text-xl mr-3",children:"🤖"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-base font-medium text-gray-900 dark:text-white mb-1",children:o.name}),o.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:o.description})]})]}),e.jsxs("div",{className:"space-y-2 mb-4",children:[e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:[s("projectSubAgentsModal.table.tools"),":"]}),o.tools&&o.tools.length>0?e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center space-x-1 text-gray-500 dark:text-gray-400 mb-1",children:[e.jsx(O,{className:"w-3 h-3"}),e.jsx("span",{className:"text-xs",children:s("projectSubAgentsModal.table.toolsCount",{count:o.tools.length})})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:o.tools.map((L,I)=>e.jsx("code",{className:"bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-400 px-1.5 py-0.5 rounded text-xs",children:J(L)},I))})]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("projectSubAgentsModal.table.inheritSettings")})]}),e.jsxs("div",{className:"flex items-center text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2",children:[s("projectSubAgentsModal.table.createdAt"),":"]}),e.jsxs("div",{className:"flex items-center text-gray-500 dark:text-gray-400",children:[e.jsx(W,{className:"w-4 h-4 mr-1"}),e.jsx("span",{children:B(o.createdAt)})]})]})]}),e.jsxs("div",{className:"flex items-center justify-end space-x-2 pt-3 border-t border-gray-200 dark:border-gray-700",children:[e.jsxs("button",{onClick:()=>S(o),className:"inline-flex items-center px-3 py-2 text-sm font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",children:[e.jsx(q,{className:"w-3 h-3 mr-1"}),s("projectSubAgentsModal.actions.edit")]}),e.jsx("button",{onClick:()=>x(o),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:s("projectSubAgentsModal.actions.deleteTooltip"),children:e.jsx(D,{className:"w-4 h-4"})})]})]},o.id+"-"+w))}):e.jsxs(le,{children:[e.jsx(de,{children:e.jsxs(_,{children:[e.jsx(A,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:s("projectSubAgentsModal.table.subagent")}),e.jsx(A,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:s("projectSubAgentsModal.table.tools")}),e.jsx(A,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider",children:s("projectSubAgentsModal.table.createdAt")}),e.jsx(A,{className:"px-6 py-3 text-right text-xs font-medium text-gray-500 uppercase tracking-wider",children:s("projectSubAgentsModal.table.actions")})]})}),e.jsx(ne,{children:l.map((o,w)=>e.jsxs(_,{className:"hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors",children:[e.jsx(M,{className:"px-6 py-4 whitespace-nowrap",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"text-xl mr-3",children:"🤖"}),e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-medium text-gray-900 dark:text-white",children:o.name}),o.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 truncate max-w-xs",children:o.description})]})]})}),e.jsx(M,{className:"px-6 py-4",children:o.tools&&o.tools.length>0?e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center space-x-1 text-sm text-gray-500 dark:text-gray-400 mb-1",children:[e.jsx(O,{className:"w-3 h-3"}),e.jsx("span",{children:s("projectSubAgentsModal.table.toolsCount",{count:o.tools.length})})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:o.tools.map((L,I)=>e.jsx("code",{className:"bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-400 px-1.5 py-0.5 rounded text-xs",children:J(L)},I))})]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("projectSubAgentsModal.table.inheritSettings")})}),e.jsx(M,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400",children:e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(W,{className:"w-4 h-4"}),e.jsx("span",{children:B(o.createdAt)})]})}),e.jsx(M,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:e.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[e.jsxs("button",{onClick:()=>S(o),className:"inline-flex items-center px-3 py-1.5 text-xs font-medium text-blue-600 bg-blue-50 rounded-md hover:bg-blue-100 transition-colors",title:s("projectSubAgentsModal.actions.editTooltip"),children:[e.jsx(q,{className:"w-3 h-3 mr-1"}),s("projectSubAgentsModal.actions.edit")]}),e.jsx("button",{onClick:()=>x(o),className:"p-2 text-red-600 hover:bg-red-50 rounded-lg transition-colors",title:s("projectSubAgentsModal.actions.deleteTooltip"),children:e.jsx(D,{className:"w-4 h-4"})})]})})]},o.id+"-"+w))})]})})}),j&&e.jsx(ke,{subagent:b,projectId:n.id,onClose:d,onSuccess:T}),N&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[60] p-4",children:e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl ${t?"w-full max-w-sm":"max-w-md w-full mx-4"} p-6`,children:[e.jsxs("div",{className:"flex items-center space-x-3 mb-4",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx(z,{className:`${t?"h-5 w-5":"h-6 w-6"} text-red-600`})}),e.jsx("div",{className:"flex-1",children:e.jsx("h3",{className:`${t?"text-base":"text-lg"} font-medium text-gray-900 dark:text-white`,children:s("projectSubAgentsModal.deleteConfirm.title")})})]}),e.jsx("p",{className:`${t?"text-sm mb-4":"mb-6"} text-gray-600 dark:text-gray-400`,children:s("projectSubAgentsModal.deleteConfirm.message",{name:N.name})}),e.jsxs("div",{className:`${t?"grid grid-cols-2 gap-2":"flex justify-end space-x-3"}`,children:[e.jsx("button",{onClick:()=>x(null),className:`${t?"px-3 py-2.5 text-sm":"px-4 py-2"} text-gray-700 dark:text-gray-300 bg-gray-200 dark:bg-gray-700 hover:bg-gray-300 dark:hover:bg-gray-600 rounded-lg transition-colors`,children:s("projectSubAgentsModal.actions.cancel")}),e.jsx("button",{onClick:()=>P(N),disabled:C.isPending,className:`${t?"px-3 py-2.5 text-sm":"px-4 py-2"} bg-red-600 hover:bg-red-700 text-white rounded-lg transition-colors disabled:opacity-50`,children:C.isPending?e.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-2 border-white border-t-transparent"}):s("projectSubAgentsModal.actions.delete")})]})]})})]})})},Me=({isOpen:n,onClose:y,onConfirm:s,agents:t})=>{const{t:i}=U("pages"),[m,j]=h.useState({name:"",agentId:"",directory:"~/claude-code-projects",description:""}),[c,b]=h.useState(!1);h.useEffect(()=>{n&&j({name:"",agentId:t.length>0?t[0].id:"",directory:"~/claude-code-projects",description:""})},[n,t]);const p=l=>{if(!l.startsWith("~/"))return l},N=l=>{l.preventDefault(),m.name&&m.agentId&&s(m)},x=t.find(l=>l.id===m.agentId);return n?e.jsxs("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:[e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg w-full max-w-md mx-4",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700",children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:i("projects.form.create")}),e.jsx("button",{onClick:y,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:e.jsx(R,{className:"w-5 h-5"})})]}),e.jsxs("form",{onSubmit:N,className:"p-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-2",children:i("projects.form.nameRequired")}),e.jsx("input",{type:"text",value:m.name,onChange:l=>j({...m,name:l.target.value}),placeholder:i("projects.form.namePlaceholder"),className:"w-full px-3 py-2 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",required:!0})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:i("projects.form.agentType")}),e.jsx("select",{value:m.agentId,onChange:l=>j({...m,agentId:l.target.value}),className:"w-full px-3 py-2 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",required:!0,children:t.filter(l=>l.enabled).map(l=>e.jsxs("option",{value:l.id,children:[l.ui.icon," ",l.name]},l.id))}),x&&e.jsx("div",{className:"mt-2 p-3 bg-gray-50 dark:bg-gray-700 rounded-lg",children:e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("div",{className:"text-2xl",children:x.ui.icon}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-gray-900 dark:text-white",children:x.name}),e.jsx("div",{className:"text-sm text-gray-600 dark:text-gray-400",children:x.description})]})]})})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:i("projects.form.directory")}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx("input",{type:"text",value:m.directory,onChange:l=>j({...m,directory:l.target.value}),className:"flex-1 px-3 py-2 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.jsx("button",{type:"button",onClick:()=>b(!0),className:"px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700",title:i("projects.form.directory"),children:e.jsx(ae,{className:"w-4 h-4 text-gray-600 dark:text-gray-400"})})]}),e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400 mt-1",children:i("projects.form.directoryNote")})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:i("projects.form.description")}),e.jsx("textarea",{value:m.description,onChange:l=>j({...m,description:l.target.value}),placeholder:i("projects.form.descriptionPlaceholder"),rows:3,className:"w-full px-3 py-2 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("div",{className:"flex justify-end space-x-3 mt-6",children:[e.jsx("button",{type:"button",onClick:y,className:"px-4 py-2 text-gray-700 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700",children:i("projects.form.cancel")}),e.jsx("button",{type:"submit",disabled:!m.name||!m.agentId,className:"px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",children:i("projects.createButton")})]})]})]}),c&&e.jsx(be,{title:i("projects.form.directory"),initialPath:p(m.directory),allowFiles:!1,allowDirectories:!0,allowNewDirectory:!0,onSelect:(l,r)=>{r&&(j({...m,directory:l}),b(!1))},onClose:()=>b(!1)})]}):null},Qe=()=>{const{t:n}=U("pages"),{data:y}=je(),[s,t]=h.useState([]),[i,m]=h.useState(!0),[j,c]=h.useState(""),[b,p]=h.useState("all"),[N,x]=h.useState(!1),[l,r]=h.useState(null),[f,k]=h.useState(null),[C,P]=h.useState(null),[S,d]=h.useState(null),o=(y?.agents||[]).filter(a=>a.enabled);h.useEffect(()=>{(async()=>{try{m(!0);const g=await E(`${F}/projects`);if(g.ok){const u=await g.json();t(u.projects||[])}else console.error("Failed to fetch projects:",g.status),t([])}catch(g){console.error("Failed to fetch projects:",g),t([])}finally{m(!1)}})()},[]);const w=s.filter(a=>{const g=a.name.toLowerCase().includes(j.toLowerCase())||a.description?.toLowerCase().includes(j.toLowerCase())||a.defaultAgentName.toLowerCase().includes(j.toLowerCase()),u=b==="all"||a.defaultAgent===b;return g&&u}).sort((a,g)=>new Date(g.lastAccessed).getTime()-new Date(a.lastAccessed).getTime()),L=async a=>{try{const g=await E(`${F}/projects/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:a.agentId,projectName:a.name,parentDirectory:a.directory,description:a.description})});if(g.ok){const u=await g.json();t(Q=>[u.project,...Q]),x(!1);const v=new URLSearchParams;v.set("project",u.project.path);const $=`/chat/${a.agentId}?${v.toString()}`;window.open($,"_blank")}else{const u=await g.json();throw new Error(u.error||n("projects.errors.createFailed"))}}catch(g){console.error("Failed to create project:",g),H(n("projects.errors.createFailed"),g instanceof Error?g.message:n("errors:common.unknownError"))}},I=async a=>{if(!a.defaultAgent||a.agents.length===0){d(a);return}console.log("Opening project:",a.name,"with agent:",a.defaultAgent);const g=new URLSearchParams;g.set("project",a.path);const u=`/chat/${a.defaultAgent}?${g.toString()}`;console.log("Generated URL:",u),window.open(u,"_blank"),t(v=>v.map($=>$.id===a.id?{...$,lastAccessed:new Date().toISOString()}:$))},ce=async a=>{if(window.confirm(`${n("projects.deleteConfirm")}
13
-
14
- ${n("projects.deleteNote")}`))try{const u=await E(`${F}/projects/by-id/${a.id}`,{method:"DELETE"});if(u.ok)t(v=>v.filter($=>$.id!==a.id));else{const v=await u.json();throw new Error(v.error||n("projects.errors.deleteFailed"))}}catch(u){console.error("Failed to delete project:",u),H(n("projects.errors.deleteFailed"),u instanceof Error?u.message:n("errors:common.unknownError"))}},oe=a=>{r(a)},ie=a=>{k(a)},xe=a=>{P(a)},me=async a=>{if(S)try{const g=await E(`${F}/projects/${S.dirName}/select-agent`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:a})});if(g.ok){const u=await g.json();t(Q=>Q.map(V=>V.id===S.id?u.project:V)),d(null);const v=new URLSearchParams;v.set("project",u.project.path);const $=`/chat/${a}?${v.toString()}`;window.open($,"_blank")}else{const u=await g.json();H(n("errors:agent.setFailed"),u.error||n("errors:common.unknownError"))}}catch(g){console.error("Failed to select agent:",g),H(n("errors:agent.setFailed"),g instanceof Error?g.message:n("errors:common.unknownError"))}};return i?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:n("projects.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:n("projects.title")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mt-2",children:n("projects.subtitle")})]})}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx("div",{className:"flex-1 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-center space-x-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(X,{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:n("projects.searchPlaceholder"),value:j,onChange:a=>c(a.target.value),className:"pl-10 pr-4 py-2 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("div",{className:"flex items-center space-x-2",children:[e.jsxs("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:[n("projects.table.agent"),":"]}),e.jsxs("select",{value:b,onChange:a=>p(a.target.value),className:"border border-gray-300 dark:border-gray-600 rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-gray-700 dark:text-white",children:[e.jsx("option",{value:"all",children:n("projects.filter.all")}),o.map(a=>e.jsxs("option",{value:a.id,children:[a.ui.icon," ",a.name]},a.id))]})]})]})}),e.jsxs("button",{onClick:()=>x(!0),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(K,{className:"w-5 h-5"}),e.jsx("span",{children:n("projects.createButton")})]})]})]}),w.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:n("projects.noProjects")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:n("projects.selectType")}),!j&&b==="all"&&e.jsx("button",{onClick:()=>x(!0),className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:n("projects.createButton")})]}):e.jsx(Ce,{projects:w,onOpenProject:I,onMemoryManagement:oe,onCommandManagement:ie,onSubAgentManagement:xe,onDeleteProject:ce}),e.jsx(Me,{isOpen:N,onClose:()=>x(!1),onConfirm:L,agents:o}),l&&e.jsx(Se,{project:l,onClose:()=>r(null)}),f&&e.jsx($e,{project:f,onClose:()=>k(null)}),C&&e.jsx(Ae,{project:C,onClose:()=>P(null)}),S&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg w-full max-w-md mx-4",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700",children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:n("projects.selectType")}),e.jsx("button",{onClick:()=>d(null),className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:e.jsx(R,{className:"w-5 h-5"})})]}),e.jsxs("div",{className:"p-6",children:[e.jsx("div",{className:"mb-4",children:e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mb-4",children:n("projects.selectType")})}),e.jsx("div",{className:"space-y-3",children:o.map(a=>e.jsx("button",{onClick:()=>me(a.id),className:"w-full p-4 text-left border border-gray-200 dark:border-gray-700 rounded-lg hover:border-blue-300 dark:hover:border-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 transition-colors",children:e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("div",{className:"text-2xl",children:a.ui.icon}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-gray-900 dark:text-white",children:a.name}),e.jsx("div",{className:"text-sm text-gray-600 dark:text-gray-400",children:a.description})]})]})},a.id))}),e.jsx("div",{className:"flex justify-end mt-6",children:e.jsx("button",{onClick:()=>d(null),className:"px-4 py-2 text-gray-700 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700",children:n("projects.form.cancel")})})]})]})})]})};export{Qe as ProjectsPage};
@@ -1 +0,0 @@
1
- import{j as t}from"./data-structures-DLJedtzx.js";import{b as i,O as r}from"./index-B_CTNvca.js";import"./monaco-editor-C7Z4sOhS.js";import"./syntax-highlighting-YWvMU4Hm.js";import"./agents-ClAzIJTw.js";import"./tools-C4EPanYi.js";import"./ui-components-Cw21Epuw.js";const l=()=>{const{isMobile:o}=i();return t.jsx("div",{className:o?"p-4":"p-8",children:t.jsx("div",{children:t.jsx(r,{})})})};export{l as SettingsLayout};
@@ -1 +0,0 @@
1
- import{j as e}from"./data-structures-DLJedtzx.js";import{r as x}from"./monaco-editor-C7Z4sOhS.js";import{T as B,a as M,b as N,c,d as R,e as o}from"./table-D6q1rytw.js";import{b as H,c as q,S as z}from"./SubagentForm-DXtTTIKg.js";import{f}from"./dateFormat-CXa8VnEC.js";import{g as k}from"./UnifiedToolSelector-CsM9qBvs.js";import{b as L}from"./index-B_CTNvca.js";import{u as G}from"./tools-C4EPanYi.js";import{k as I,f as J,o as K,a5 as v,a9 as w,a3 as $,u}from"./ui-components-Cw21Epuw.js";import"./syntax-highlighting-YWvMU4Hm.js";import"./agents-ClAzIJTw.js";import"./authFetch-BATQyPG5.js";const ae=()=>{const{t}=G("pages"),{isMobile:s}=L(),[r,C]=x.useState(""),[S,n]=x.useState(!1),[T,i]=x.useState(null),[m,d]=x.useState(null),{data:g=[],isLoading:F,error:A,refetch:y}=H({search:r.trim()||void 0}),b=q(),P=async a=>{try{await b.mutateAsync(a.id),d(null)}catch(l){console.error("Failed to delete subagent:",l)}},j=a=>{i(a),n(!0)},D=()=>{n(!1),i(null)},E=()=>{y()};return F?e.jsx("div",{className:`${s?"p-4":"p-8"} flex items-center justify-center`,children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:`animate-spin rounded-full ${s?"h-8 w-8":"h-12 w-12"} border-b-2 border-blue-600 mx-auto ${s?"mb-3":"mb-4"}`}),e.jsx("div",{className:`text-gray-600 dark:text-gray-400 ${s?"text-sm":""}`,children:t("settings.subagents.loading")})]})}):A?e.jsx("div",{className:`${s?"p-4":"p-8"} flex items-center justify-center`,children:e.jsxs("div",{className:"text-center",children:[e.jsx(I,{className:`${s?"h-8 w-8":"h-12 w-12"} text-red-500 mx-auto ${s?"mb-3":"mb-4"}`}),e.jsx("h3",{className:`${s?"text-base":"text-lg"} font-medium text-gray-900 dark:text-white mb-2`,children:t("settings.subagents.loadFailed")}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${s?"mb-4 text-sm":"mb-4"}`,children:t("settings.subagents.loadFailedMessage")}),e.jsx("button",{onClick:()=>y(),className:`${s?"px-4 py-2.5 text-sm":"px-4 py-2"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors`,children:t("settings.subagents.retry")})]})}):e.jsxs("div",{className:s?"p-4":"p-8",children:[e.jsxs("div",{className:s?"mb-6":"mb-8",children:[e.jsx("div",{className:s?"mb-4":"flex items-center justify-between mb-6",children:e.jsxs("div",{children:[e.jsx("h1",{className:`${s?"text-2xl":"text-3xl"} font-bold text-gray-900 dark:text-white`,children:t("settings.subagents.title")}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${s?"mt-1":"mt-2"}`,children:t("settings.subagents.subtitle")})]})}),e.jsxs("div",{className:s?"space-y-3":"flex items-center space-x-4",children:[e.jsx("div",{className:`${s?"":"flex-1"} bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4`,children:e.jsxs("div",{className:`${s?"flex items-center space-x-2":"relative"}`,children:[e.jsx(J,{className:`${s?"text-gray-400 w-4 h-4":"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("settings.subagents.searchPlaceholder"),value:r,onChange:a=>C(a.target.value),className:`pl-10 pr-4 py-2 w-full border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent ${s?"text-sm":""}`})]})}),e.jsxs("button",{onClick:()=>{i(null),n(!0)},className:`${s?"w-full py-2.5 px-4 flex items-center justify-center space-x-2":"flex items-center space-x-2 px-6 py-3"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors ${s?"text-sm":"whitespace-nowrap"}`,children:[e.jsx(K,{className:s?"w-4 h-4":"w-5 h-5"}),e.jsx("span",{children:t("settings.subagents.createButton")})]})]})]}),g.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:`${s?"text-4xl":"text-6xl"} mb-4`,children:"🤖"}),e.jsx("h3",{className:`${s?"text-lg":"text-xl"} font-medium text-gray-900 dark:text-white mb-2`,children:t(r?"settings.subagents.noSubagentsSearch":"settings.subagents.noSubagents")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:t(r?"settings.subagents.adjustSearch":"settings.subagents.createFirst")}),!r&&e.jsx("button",{onClick:()=>{i(null),n(!0)},className:`${s?"w-full py-3 px-4":"px-6 py-3"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors`,children:t("settings.subagents.createButton")})]}):e.jsx(e.Fragment,{children:s?e.jsx("div",{className:"space-y-4",children:g.map((a,l)=>e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsx("div",{className:"flex items-start justify-between mb-3",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:`${s?"text-lg":"text-xl"} mr-3`,children:"🤖"}),e.jsxs("div",{children:[e.jsx("div",{className:`${s?"text-sm":"text-base"} font-medium text-gray-900 dark:text-white`,children:a.name}),a.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:a.description})]})]})}),e.jsxs("div",{className:"space-y-2 mb-4",children:[e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:[t("settings.subagents.table.tools"),":"]}),a.tools&&a.tools.length>0?e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center space-x-1 text-gray-500 dark:text-gray-400 mb-1",children:[e.jsx(v,{className:"w-3 h-3"}),e.jsx("span",{className:"text-xs",children:t("settings.subagents.table.toolsCount",{count:a.tools.length})})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:a.tools.map((h,p)=>e.jsx("code",{className:"bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-400 px-1.5 py-0.5 rounded text-xs",children:k(h)},p))})]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:t("settings.subagents.table.inheritSettings")})]}),e.jsxs("div",{className:"flex items-center text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2",children:[t("settings.subagents.table.createdAt"),":"]}),e.jsxs("div",{className:"flex items-center text-gray-500 dark:text-gray-400",children:[e.jsx(w,{className:"w-4 h-4 mr-1"}),e.jsx("span",{children:f(a.createdAt)})]})]})]}),e.jsxs("div",{className:"flex items-center justify-end space-x-2 pt-3 border-t border-gray-200 dark:border-gray-700",children:[e.jsxs("button",{onClick:()=>j(a),className:"inline-flex items-center px-3 py-2 text-sm font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",children:[e.jsx($,{className:"w-3 h-3 mr-1"}),t("settings.subagents.actions.edit")]}),e.jsx("button",{onClick:()=>d(a),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:t("settings.subagents.actions.deleteTitle"),children:e.jsx(u,{className:"w-4 h-4"})})]})]},a.id+"-"+l))}):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(B,{children:[e.jsx(M,{children:e.jsxs(N,{children:[e.jsx(c,{className:"px-6 py-3 text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:t("settings.subagents.table.subagent")}),e.jsx(c,{className:"px-6 py-3 text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:t("settings.subagents.table.tools")}),e.jsx(c,{className:"px-6 py-3 text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:t("settings.subagents.table.createdAt")}),e.jsx(c,{className:"px-6 py-3 text-right text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:t("settings.subagents.table.actions")})]})}),e.jsx(R,{children:g.map((a,l)=>e.jsxs(N,{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:[e.jsx(o,{className:"px-6 py-4 whitespace-nowrap",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"text-xl mr-3",children:"🤖"}),e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-medium text-gray-900 dark:text-white",children:a.name}),a.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 truncate max-w-xs",children:a.description})]})]})}),e.jsx(o,{className:"px-6 py-4",children:a.tools&&a.tools.length>0?e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center space-x-1 text-sm text-gray-500 dark:text-gray-400 mb-1",children:[e.jsx(v,{className:"w-3 h-3"}),e.jsx("span",{children:t("settings.subagents.table.toolsCount",{count:a.tools.length})})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:a.tools.map((h,p)=>e.jsx("code",{className:"bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-400 px-1.5 py-0.5 rounded text-xs",children:k(h)},p))})]}):e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:t("settings.subagents.table.inheritSettings")})}),e.jsx(o,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400",children:e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(w,{className:"w-4 h-4"}),e.jsx("span",{children:f(a.createdAt)})]})}),e.jsx(o,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:e.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[e.jsxs("button",{onClick:()=>j(a),className:"inline-flex items-center px-3 py-1.5 text-xs font-medium text-blue-600 bg-blue-50 dark:bg-blue-900/50 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900/70 transition-colors",title:t("settings.subagents.actions.editTitle"),children:[e.jsx($,{className:"w-3 h-3 mr-1"}),t("settings.subagents.actions.edit")]}),e.jsx("button",{onClick:()=>d(a),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:t("settings.subagents.actions.deleteTitle"),children:e.jsx(u,{className:"w-4 h-4"})})]})})]},a.id+"-"+l))})]})})}),S&&e.jsx(z,{subagent:T,onClose:D,onSuccess:E}),m&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl ${s?"w-full max-w-sm":"max-w-md w-full"}`,children:[e.jsx("div",{className:`${s?"px-4 py-3":"px-6 py-4"} border-b border-gray-200 dark:border-gray-700`,children:e.jsx("h3",{className:`${s?"text-base":"text-lg"} font-semibold text-gray-900 dark:text-white`,children:t("settings.subagents.deleteConfirm.title")})}),e.jsxs("div",{className:`${s?"px-4 py-3":"px-6 py-4"}`,children:[e.jsx("p",{className:`${s?"text-sm":""} text-gray-600 dark:text-gray-400`,children:t("settings.subagents.deleteConfirm.message",{name:m.name})}),e.jsx("p",{className:`text-gray-500 dark:text-gray-400 ${s?"mt-1 text-xs":"mt-2"}`,children:t("settings.subagents.deleteConfirm.warning")})]}),e.jsxs("div",{className:`${s?"grid grid-cols-2 gap-2 px-4 py-3":"flex items-center justify-end space-x-3 px-6 py-4"} border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-700/50`,children:[e.jsx("button",{onClick:()=>d(null),className:`${s?"px-3 py-2.5 text-sm":"px-4 py-2"} text-gray-700 dark:text-gray-300 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors`,children:t("settings.subagents.deleteConfirm.cancel")}),e.jsxs("button",{onClick:()=>P(m),disabled:b.isPending,className:`${s?"flex items-center justify-center space-x-1 px-3 py-2.5 text-sm":"flex items-center space-x-2 px-4 py-2"} bg-red-600 hover:bg-red-700 disabled:bg-red-400 text-white rounded-lg transition-colors`,children:[b.isPending?e.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-2 border-white border-t-transparent"}):e.jsx(u,{className:`${s?"h-3 w-3":"h-4 w-4"}`}),e.jsx("span",{children:t("settings.subagents.deleteConfirm.delete")})]})]})]})})]})};export{ae as SubagentsPage};
@@ -1 +0,0 @@
1
- import{j as t}from"./data-structures-DLJedtzx.js";import{r as g}from"./monaco-editor-C7Z4sOhS.js";import{A as M}from"./agents-ClAzIJTw.js";import{a as Q}from"./authFetch-BATQyPG5.js";import{u as Z}from"./tools-C4EPanYi.js";import{X as R,a4 as ee,ax as te,s as N,ay as B,az as E,O as re,k as D,i as se,j as ae}from"./ui-components-Cw21Epuw.js";const I={Bash:"终端命令",BashOutput:"终端命令输出",KillBash:"杀死终端命令",Edit:"文件编辑",MultiEdit:"多文件编辑",Read:"读取文件",Write:"写入文件",Glob:"文件搜索",Grep:"文本搜索",NotebookEdit:"笔记本编辑",WebFetch:"网页获取",WebSearch:"网络搜索",TodoWrite:"任务管理",Task:"任务执行",ExitPlanMode:"退出计划模式"},ne={Bash:"执行命令行操作",BashOutput:"获取终端命令输出",KillBash:"杀死终端命令",Edit:"编辑文件内容",MultiEdit:"批量编辑多个文件",Read:"读取文件内容",Write:"创建或覆盖文件",Glob:"使用通配符搜索文件",Grep:"在文件中搜索文本",NotebookEdit:"编辑Jupyter笔记本",WebFetch:"获取网页内容",WebSearch:"搜索网络信息",TodoWrite:"创建和管理待办事项",Task:"执行复杂任务",ExitPlanMode:"退出计划模式"};function F(d){return I[d]||d}function ie(d){return ne[d]||""}function le(){const d=new Set([...Object.keys(I)]);return Array.from(d).map(m=>({name:m,label:F(m),description:ie(m)}))}const b=le(),he=({isOpen:d,onClose:m,selectedRegularTools:i,onRegularToolsChange:f,selectedMcpTools:l,onMcpToolsChange:h,mcpToolsEnabled:G,onMcpEnabledChange:U,presetTools:y=[],readonly:P=!1})=>{const{t:c}=Z("components"),[u,z]=g.useState([]),[v,A]=g.useState(!1),[p,T]=g.useState(null),[C,K]=g.useState(new Set),[S,W]=g.useState("regular");g.useEffect(()=>{d&&q()},[d]);const q=async()=>{A(!0),T(null);try{const e=await Q(`${M}/mcp`);if(!e.ok)throw new Error("Failed to fetch MCP configurations");const r=await e.json();z(r.servers||[])}catch(e){console.error("Failed to fetch MCP servers:",e),T(e instanceof Error?e.message:"Unknown error")}finally{A(!1)}},L=e=>y.some(r=>r.name===e&&r.enabled),j=e=>{if(y.some(s=>s.name===e&&s.enabled))return!0;const r=e.split("__");if(r.length===3&&r[0]==="mcp"){const s=`${r[1]}.${r[2]}`;if(y.some(x=>x.name===s&&x.enabled))return!0;const a=`mcp__${r[1]}__${r[2]}`;if(y.some(x=>x.name===a&&x.enabled))return!0}return!1},H=e=>{L(e)&&i.includes(e)||(i.includes(e)?f(i.filter(r=>r!==e)):f([...i,e]))},J=e=>{j(e)&&l.includes(e)||(l.includes(e)?h(l.filter(r=>r!==e)):h([...l,e]))},V=e=>{const r=new Set(C);r.has(e)?r.delete(e):r.add(e),K(r)},O=e=>{const r=u.find(s=>s.name===e);return!r||!r.tools?!1:r.tools.some(s=>{const a=`mcp__${e}__${s}`;return j(a)})},X=(e,r)=>{const s=u.find(n=>n.name===e);if(!s||!s.tools)return;const a=s.tools.map(n=>`mcp__${e}__${n}`),x=O(e);if(r)if(x){const n=a.filter(o=>!j(o));h(l.filter(o=>!n.includes(o)))}else h(l.filter(n=>!a.includes(n)));else{const n=[...l];a.forEach(o=>{n.includes(o)||n.push(o)}),h(n)}},Y=e=>{const r=u.find(a=>a.name===e);return!r||!r.tools?!1:r.tools.map(a=>`mcp__${e}__${a}`).every(a=>l.includes(a))};return d?t.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[60]",onClick:m,children:t.jsxs("div",{className:"unified-tool-selector-popup w-96 max-h-[500px] bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg flex flex-col",onClick:e=>e.stopPropagation(),children:[t.jsxs("div",{className:"p-4 flex-shrink-0",children:[t.jsxs("div",{className:"flex items-center justify-between mb-4",children:[t.jsx("h3",{className:"text-lg font-medium text-gray-900 dark:text-white",children:c("unifiedToolSelector.title")}),t.jsx("button",{type:"button",onClick:m,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 transition-colors",children:t.jsx(R,{className:"w-5 h-5"})})]}),t.jsxs("div",{className:"flex space-x-1 mb-2 bg-gray-100 dark:bg-gray-700 rounded-lg p-1",children:[t.jsxs("button",{type:"button",onClick:()=>W("regular"),className:`flex-1 flex items-center justify-center space-x-2 px-3 py-2 rounded-md text-sm font-medium transition-colors ${S==="regular"?"bg-white dark:bg-gray-800 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"}`,children:[t.jsx(ee,{className:"w-4 h-4"}),t.jsx("span",{children:c("unifiedToolSelector.tabs.regular")}),i.length>0&&t.jsx("span",{className:"bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 text-xs rounded-full px-2 py-0.5 min-w-[20px] text-center",children:i.length})]}),t.jsxs("button",{type:"button",onClick:()=>W("mcp"),className:`flex-1 flex items-center justify-center space-x-2 px-3 py-2 rounded-md text-sm font-medium transition-colors ${S==="mcp"?"bg-white dark:bg-gray-800 text-gray-900 dark:text-white shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"}`,children:[t.jsx(te,{className:"w-4 h-4"}),t.jsx("span",{children:c("unifiedToolSelector.tabs.mcp")}),l.length>0&&t.jsx("span",{className:"bg-green-100 dark:bg-green-900/30 text-green-600 dark:text-green-400 text-xs rounded-full px-2 py-0.5 min-w-[20px] text-center",children:l.filter(e=>e.startsWith("mcp__")&&e.split("__").length===3).length})]})]})]}),t.jsx("div",{className:"px-4 pb-4 overflow-y-auto flex-1",children:S==="regular"?t.jsx("div",{className:"space-y-2",children:t.jsxs("div",{className:"space-y-2",children:[t.jsx("div",{className:"flex items-center justify-end p-2 hover:bg-gray-50 dark:hover:bg-gray-700 rounded",children:t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx("span",{className:"text-sm text-gray-700 dark:text-gray-300 font-medium",children:c("unifiedToolSelector.selectAll")}),t.jsx("button",{type:"button",onClick:()=>{i.length===b.length?f([]):f(b.map(e=>e.name))},className:`w-4 h-4 border-2 rounded flex items-center justify-center transition-colors ${i.length===b.length||i.length>0?"bg-blue-600 border-blue-600 text-white":"border-gray-300 dark:border-gray-600 hover:border-blue-500"}`,children:i.length===b.length?t.jsx(N,{className:"w-3 h-3"}):i.length>0?t.jsx(B,{className:"w-3 h-3"}):null})]})}),b.map(e=>{const r=i.includes(e.name),s=L(e.name),a=P||s&&r;return t.jsx("div",{className:`flex items-center justify-between p-2 rounded ${a?"bg-gray-50 dark:bg-gray-700":"hover:bg-gray-50 dark:hover:bg-gray-700"}`,children:t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx("button",{type:"button",onClick:()=>H(e.name),disabled:a,className:`w-4 h-4 border-2 rounded flex items-center justify-center transition-colors ${r?s?"bg-orange-500 border-orange-500 text-white cursor-not-allowed":"bg-blue-600 border-blue-600 text-white":a?"border-gray-200 dark:border-gray-600 cursor-not-allowed":"border-gray-300 dark:border-gray-600 hover:border-blue-500"}`,children:r&&(s?t.jsx(E,{className:"w-3 h-3"}):t.jsx(N,{className:"w-3 h-3"}))}),t.jsxs("span",{className:`text-sm ${a?"text-gray-400 dark:text-gray-500":"text-gray-700 dark:text-gray-300"}`,children:[F(e.name)," (",e.name,")",s&&t.jsxs("span",{className:"ml-1 text-xs text-orange-600 dark:text-orange-400",children:["[",c("unifiedToolSelector.preset"),"]"]})]})]})},e.name)})]})}):t.jsxs("div",{className:"space-y-4",children:[t.jsx("div",{className:"flex items-center justify-end p-2",children:t.jsxs("label",{className:"flex items-center space-x-2",children:[t.jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:c("unifiedToolSelector.enableMcpTools")}),t.jsx("input",{type:"checkbox",checked:G,onChange:e=>U(e.target.checked),className:"w-4 h-4 text-green-600 border-gray-300 dark:border-gray-600 rounded focus:ring-green-500"})]})}),v&&t.jsxs("div",{className:"flex items-center justify-center py-4",children:[t.jsx(re,{className:"w-4 h-4 text-gray-400 animate-spin mr-2"}),t.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:c("unifiedToolSelector.loading")})]}),p&&t.jsxs("div",{className:"flex items-center justify-center py-4 text-red-600 dark:text-red-400",children:[t.jsx(D,{className:"w-4 h-4 mr-2"}),t.jsx("span",{className:"text-sm",children:p})]}),!v&&!p&&u.length===0&&t.jsx("div",{className:"text-center py-4 text-gray-500 dark:text-gray-400",children:t.jsx("span",{className:"text-sm",children:c("unifiedToolSelector.noMcpServers")})}),!v&&!p&&u.map(e=>{const r=C.has(e.name),s=e.status==="active",a=Y(e.name),x=e.tools?.some(o=>l.includes(`mcp__${e.name}__${o}`)),n=O(e.name);return t.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg",children:[t.jsxs("div",{className:"flex items-center justify-between p-3",children:[t.jsxs("button",{type:"button",onClick:()=>V(e.name),className:"flex items-center space-x-2 flex-1 text-left hover:bg-gray-50 dark:hover:bg-gray-700 -m-1 p-1 rounded transition-colors",disabled:!s,children:[r?t.jsx(se,{className:"w-4 h-4 text-gray-400"}):t.jsx(ae,{className:"w-4 h-4 text-gray-400"}),t.jsx("div",{className:`w-2 h-2 rounded-full ${s?"bg-green-500":"bg-red-500"}`}),t.jsx("span",{className:`font-medium ${s?"text-gray-900 dark:text-white":"text-gray-500 dark:text-gray-400"}`,children:e.name}),t.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:c("unifiedToolSelector.toolsCount",{count:e.tools?.length||0})})]}),s&&e.tools&&e.tools.length>0&&t.jsx("button",{type:"button",onClick:()=>X(e.name,a),className:`w-4 h-4 border-2 rounded flex items-center justify-center transition-colors ${a?n?"bg-orange-500 border-orange-500 text-white":"bg-green-600 border-green-600 text-white":x?n?"bg-orange-400 border-orange-400 text-white":"bg-blue-600 border-blue-600 text-white":"border-gray-300 dark:border-gray-600 hover:border-green-500"}`,children:a?n?t.jsx(E,{className:"w-3 h-3"}):t.jsx(N,{className:"w-3 h-3"}):x?t.jsx(B,{className:"w-3 h-3"}):null})]}),r&&s&&e.tools&&t.jsx("div",{className:"border-t border-gray-200 dark:border-gray-700 p-3 space-y-2",children:e.tools.map(o=>{const _=`mcp__${e.name}__${o}`,$=l.includes(_),k=j(_),w=P||k&&$;return t.jsx("div",{className:`flex items-center justify-between p-2 rounded ${w?"bg-gray-50 dark:bg-gray-700":"hover:bg-gray-50 dark:hover:bg-gray-700"}`,children:t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx("button",{type:"button",onClick:()=>J(_),disabled:w,className:`w-4 h-4 border-2 rounded flex items-center justify-center transition-colors ${$?k?"bg-orange-500 border-orange-500 text-white cursor-not-allowed":"bg-green-600 border-green-600 text-white":w?"border-gray-200 dark:border-gray-600 cursor-not-allowed":"border-gray-300 dark:border-gray-600 hover:border-green-500"}`,children:$&&(k?t.jsx(E,{className:"w-3 h-3"}):t.jsx(N,{className:"w-3 h-3"}))}),t.jsxs("span",{className:`text-sm ${w?"text-gray-400 dark:text-gray-500":"text-gray-700 dark:text-gray-300"}`,children:[o,k&&t.jsxs("span",{className:"ml-1 text-xs text-orange-600 dark:text-orange-400",children:["[",c("unifiedToolSelector.preset"),"]"]})]})]})},o)})}),!s&&t.jsx("div",{className:"border-t border-gray-200 dark:border-gray-700 p-3",children:t.jsxs("div",{className:"flex items-center text-red-600 dark:text-red-400",children:[t.jsx(D,{className:"w-4 h-4 mr-2"}),t.jsx("span",{className:"text-sm",children:e.error||c("unifiedToolSelector.serverUnavailable")})]})})]},e.name)})]})})]})}):null};export{he as U,F as g};
@@ -1,5 +0,0 @@
1
- import{j as e}from"./data-structures-DLJedtzx.js";import{r as d}from"./monaco-editor-C7Z4sOhS.js";import{A as de}from"./agents-ClAzIJTw.js";import{a as ce}from"./authFetch-BATQyPG5.js";import{u as me,r as xe,d as f,s as p}from"./index-B_CTNvca.js";import{u as ue,a as ge,b as pe,c as be,d as he}from"./useClaudeVersions-CQdGnCqv.js";import{F as ye}from"./FileBrowser-DL3ayaqb.js";import{u as fe}from"./tools-C4EPanYi.js";import{o as T,H as ve,ad as ke,E as O,U as je,ae as Ne,a3 as we,u as Ve,t as F,X as D,af as Ce,e as Se,a7 as Ae,r as Ee}from"./ui-components-Cw21Epuw.js";import"./syntax-highlighting-YWvMU4Hm.js";const M=[{id:"glm",name:"GLM (智谱AI)",alias:"glm",description:"使用智谱AI的GLM模型服务,兼容Anthropic API",versionDescription:"智谱AI GLM模型 - Anthropic兼容版本",apiTokenUrl:"https://www.bigmodel.cn/claude-code?ic=IHK4TGHUDI",logoUrl:"https://chatglm.cn/img/icons/favicon-32x32.png",envVars:[{key:"ANTHROPIC_BASE_URL",value:"https://open.bigmodel.cn/api/anthropic",isRequired:!0,description:"智谱AI的Anthropic兼容端点"},{key:"ANTHROPIC_AUTH_TOKEN",value:"",isRequired:!0,placeholder:"YOUR_API_KEY",description:"您的智谱AI API密钥(必填)"}],models:[{id:"glm-4.6",name:"GLM-4.6",isVision:!1,description:"智谱AI GLM-4.6 最新版本"},{id:"glm-4.5",name:"GLM-4.5",isVision:!1,description:"智谱AI GLM-4.5 模型"},{id:"glm-4.5v",name:"GLM-4.5V",isVision:!0,description:"智谱AI GLM-4.5V 视觉模型"},{id:"glm-4.5-flash",name:"GLM-4.5-Flash",isVision:!1,description:"智谱AI GLM-4.5-Flash 快速模型"},{id:"glm-4.5-air",name:"GLM-4.5-Air",isVision:!1,description:"智谱AI GLM-4.5-Air 轻量级模型"}]},{id:"deepseek",name:"DeepSeek",alias:"deepseek",description:"使用DeepSeek的高性能模型服务",versionDescription:"DeepSeek高性能模型 - Anthropic兼容版本",apiTokenUrl:"https://platform.deepseek.com/api_keys",logoUrl:"https://chat.deepseek.com/favicon.svg",envVars:[{key:"ANTHROPIC_BASE_URL",value:"https://api.deepseek.com/anthropic",isRequired:!0,description:"DeepSeek的Anthropic兼容端点"},{key:"ANTHROPIC_AUTH_TOKEN",value:"",isRequired:!0,placeholder:"YOUR_DEEPSEEK_API_KEY",description:"您的DeepSeek API密钥(必填)"},{key:"API_TIMEOUT_MS",value:"600000",isRequired:!1,description:"API请求超时时间(毫秒)"},{key:"ANTHROPIC_MODEL",value:"deepseek-chat",isRequired:!1,description:"使用的DeepSeek模型名称"},{key:"ANTHROPIC_SMALL_FAST_MODEL",value:"deepseek-chat",isRequired:!1,description:"快速轻量级模型名称"},{key:"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",value:"1",isRequired:!1,description:"禁用非必要流量(1=启用,0=禁用)"}],models:[{id:"deepseek-chat",name:"DeepSeek Chat",isVision:!1,description:"DeepSeek Chat 最新对话模型"},{id:"deepseek-reasoner",name:"DeepSeek Reasoner",isVision:!1,description:"DeepSeek Reasoner 推理模型"}]},{id:"kimi",name:"Kimi K2 (月之暗面)",alias:"kimi-k2",description:"使用Kimi K2模型服务,支持Anthropic API兼容",versionDescription:"Kimi K2模型 - Anthropic兼容版本",apiTokenUrl:"https://platform.moonshot.cn/console/api-keys",logoUrl:"https://statics.moonshot.cn/kimi-web-seo/favicon.ico",envVars:[{key:"ANTHROPIC_BASE_URL",value:"https://api.moonshot.an/anthropic",isRequired:!0,description:"Kimi的Anthropic兼容端点"},{key:"ANTHROPIC_AUTH_TOKEN",value:"",isRequired:!0,placeholder:"sk-YOURKEY",description:"您的Kimi API密钥(必填,以sk-开头)"}],models:[{id:"kimi-k2-0905-preview",name:"Kimi K2 0905 Preview",isVision:!1,description:"Kimi K2 2024年9月5日预览版"},{id:"kimi-k2-0711-preview",name:"Kimi K2 0711 Preview",isVision:!1,description:"Kimi K2 2024年7月11日预览版"},{id:"kimi-k2-turbo-preview",name:"Kimi K2 Turbo Preview",isVision:!1,description:"Kimi K2 Turbo 预览版"},{id:"kimi-latest",name:"Kimi Latest",isVision:!0,description:"Kimi 最新版本视觉模型"}]}];function Pe(r){const i=r.environmentVariables||{},b=r.executablePath||"claude",h=[];for(const[L,x]of Object.entries(i))if(x){const R=x.includes(" ")||x.includes('"')||x.includes("'")?`"${x.replace(/"/g,'\\"')}"`:x;h.push(`${L}=${R}`)}const k=[];h.length>0&&k.push(h.join(" "));const j=b.includes(" ")?`"${b}"`:b;return k.push(j),k.join(" ")}async function Ie(r){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(r),!0;{const i=document.createElement("textarea");i.value=r,i.style.position="fixed",i.style.left="-999999px",i.style.top="-999999px",document.body.appendChild(i),i.focus(),i.select();const b=document.execCommand("copy");return document.body.removeChild(i),b}}catch(i){return console.error("Failed to copy to clipboard:",i),!1}}const He=()=>{const{t:r}=fe("pages"),{currentServiceId:i}=me(),[b,h]=d.useState(null),[k,j]=d.useState(!1),[L,x]=d.useState(!1),[R,H]=d.useState(null),[_,N]=d.useState(!1),[l,w]=d.useState(null),[n,o]=d.useState({name:"",alias:"",description:"",executablePath:"",environmentVariables:{},models:[]}),[m,V]=d.useState({key:"",value:""}),[c,v]=d.useState({id:"",name:"",isVision:!1}),[G,C]=d.useState(!1),[K,q]=d.useState(null),{data:y,isLoading:$}=ue(),S=ge(),A=pe(),B=be(),Y=he();d.useEffect(()=>{z()},[]);const z=async()=>{j(!0),H(null);try{const s=await ce(`${de}/settings/versions`);if(s.ok){const t=await s.json();h(t)}else throw new Error("Failed to load versions")}catch(s){console.error("Failed to load versions:",s),h({nodejs:"Error",npm:"Error",claudeCode:"Error",lastChecked:new Date().toISOString()})}finally{j(!1)}},E=()=>{o({name:"",alias:"",description:"",executablePath:"",environmentVariables:{},models:[]}),V({key:"",value:""}),v({id:"",name:"",isVision:!1})},Q=()=>{N(!0),w(null),E()},W=s=>{N(!0),w(null),E(),setTimeout(()=>{U(s)},0)},U=s=>{const t={};s.envVars.forEach(g=>{t[g.key]=g.value});const a=r(`settings.version.templates.providers.${s.id}.name`),u=r(`settings.version.templates.providers.${s.id}.description`);o(g=>({...g,name:a,alias:s.alias,description:u,environmentVariables:t,models:s.models||[]})),q(s.apiTokenUrl||null)},X=s=>{w(s),N(!1),o({name:s.name,alias:s.alias,description:s.description||"",executablePath:s.executablePath,environmentVariables:s.environmentVariables||{},models:s.models||[]})},P=()=>{N(!1),w(null),E()},J=()=>{i&&(xe(i),f(r("settings.version.reinitializeSuccess")),setTimeout(()=>{window.location.reload()},1e3))},Z=()=>{m.key&&m.value&&(o(s=>({...s,environmentVariables:{...s.environmentVariables,[m.key]:m.value}})),V({key:"",value:""}))},ee=()=>{c.id&&c.name&&(o(s=>({...s,models:[...s.models||[],{id:c.id,name:c.name,isVision:c.isVision,description:c.name}]})),v({id:"",name:"",isVision:!1}))},se=s=>{o(t=>({...t,models:(t.models||[]).filter(a=>a.id!==s)}))},I=(s,t)=>{o(a=>({...a,models:(a.models||[]).map(u=>u.id===s?{...u,...t}:u)}))},re=s=>{o(t=>{if(!t.environmentVariables)return t;const a={...t.environmentVariables};return delete a[s],{...t,environmentVariables:a}})},te=()=>{C(!0)},ae=(s,t)=>{t||o(a=>({...a,executablePath:s})),C(!1)},ie=async()=>{try{if(!n.name||!n.alias){p(r("settings.version.errors.requiredFields"));return}const s={...n,executablePath:n.executablePath?.trim()||void 0,description:n.description?.trim()||void 0};l?(await A.mutateAsync({id:l.id,data:s}),f(r("settings.version.success.updateVersion"))):(await S.mutateAsync(s),f(r("settings.version.success.createVersion"))),P()}catch(s){console.error("Error saving version:",s),p(r("settings.version.errors.saveFailed"),s instanceof Error?s.message:void 0)}},ne=async s=>{if(s.isSystem){p(r("settings.version.errors.cannotDeleteSystem"));return}if(confirm(r("settings.version.confirmDelete",{alias:s.alias})))try{await B.mutateAsync(s.id),f(r("settings.version.success.deleteVersion"))}catch(t){console.error("Error deleting version:",t),p(r("settings.version.errors.deleteFailed"),t instanceof Error?t.message:void 0)}},oe=async s=>{try{await Y.mutateAsync(s.id),f(r("settings.version.success.setDefault",{alias:s.alias}))}catch(t){console.error("Error setting default version:",t),p(r("settings.version.errors.setDefaultFailed"),t instanceof Error?t.message:void 0)}},le=async s=>{try{const t=Pe(s);await Ie(t)?f(r("settings.version.success.copyCommand")):p(r("settings.version.errors.copyFailed"),t)}catch(t){console.error("Error copying command:",t),p(r("settings.version.errors.copyFailed"))}};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white mb-2",children:r("settings.version.title")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:r("settings.version.subtitle")})]}),e.jsxs("div",{className:"flex items-center space-x-3",children:[M.map(s=>e.jsxs("button",{onClick:()=>W(s),className:`flex items-center space-x-2 px-3 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600
2
- text-gray-700 dark:text-gray-300 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700
3
- hover:border-purple-400 dark:hover:border-purple-500 transition-all duration-200 group`,title:r(`settings.version.templates.providers.${s.id}.description`),children:[s.logoUrl&&e.jsx("img",{src:s.logoUrl,alt:s.name,className:"w-5 h-5 flex-shrink-0",onError:t=>{t.currentTarget.style.display="none"}}),e.jsx("span",{className:"text-sm font-medium group-hover:text-purple-600 dark:group-hover:text-purple-400",children:r(`settings.version.templates.providers.${s.id}.name`)})]},s.id)),e.jsxs("button",{onClick:Q,className:"flex items-center space-x-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:[e.jsx(T,{className:"w-4 h-4"}),e.jsx("span",{children:r("settings.version.addVersion")})]}),e.jsxs("button",{onClick:J,className:"flex items-center space-x-2 px-4 py-2 bg-purple-600 text-white rounded-lg hover:bg-purple-700 transition-colors",title:r("settings.version.reinitializeTitle"),children:[e.jsx(ve,{className:"w-4 h-4"}),e.jsx("span",{children:r("settings.version.reinitialize")})]})]})]}),!1,e.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-6",children:e.jsx("div",{className:"space-y-6",children:$?e.jsx("div",{className:"flex items-center justify-center h-32",children:e.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"})}):y?.versions&&y.versions.length>0?e.jsx("div",{className:"space-y-3",children:y.versions.map(s=>e.jsx("div",{className:`p-4 border rounded-lg ${s.id===y.defaultVersionId?"border-blue-200 bg-blue-50 dark:border-blue-700 dark:bg-blue-900/20":"border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-700/50"}`,children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"flex items-center space-x-3",children:e.jsxs("h4",{className:"font-medium text-gray-900 dark:text-white flex items-center space-x-2",children:[e.jsx("span",{children:s.name}),e.jsxs("span",{className:"text-sm font-normal text-gray-500 dark:text-gray-400",children:["(",s.alias,")"]}),s.isSystem&&e.jsx("span",{className:"px-2 py-1 text-xs bg-gray-200 dark:bg-gray-600 text-gray-700 dark:text-gray-300 rounded",children:r("settings.version.systemLabel")}),s.id===y.defaultVersionId&&e.jsxs("span",{className:"px-2 py-1 text-xs bg-blue-200 dark:bg-blue-700 text-blue-700 dark:text-blue-200 rounded flex items-center space-x-1",children:[e.jsx(ke,{className:"w-3 h-3"}),e.jsx("span",{children:r("settings.version.defaultLabel")})]})]})}),s.description&&e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 mt-1",children:s.description}),e.jsxs("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:[e.jsxs("span",{className:"font-medium",children:[r("settings.version.pathLabel"),":"]})," ",s.executablePath]}),s.environmentVariables&&Object.keys(s.environmentVariables).length>0&&e.jsxs("div",{className:"mt-2",children:[e.jsxs("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:[r("settings.version.envVarsLabel"),":"]}),e.jsx("div",{className:"flex flex-wrap gap-2 mt-1",children:Object.entries(s.environmentVariables).map(([t,a])=>e.jsxs("span",{className:"px-2 py-1 text-xs bg-gray-100 dark:bg-gray-600 text-gray-700 dark:text-gray-300 rounded",children:[t,"=",a]},t))})]}),s.models&&s.models.length>0&&e.jsxs("div",{className:"mt-2",children:[e.jsxs("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:[r("settings.version.modelsLabel"),":"]}),e.jsx("div",{className:"flex flex-wrap gap-2 mt-1",children:s.models.map(t=>e.jsxs("span",{className:"px-2 py-1 text-xs bg-blue-100 dark:bg-blue-900 text-blue-700 dark:text-blue-300 rounded flex items-center space-x-1",children:[e.jsx("span",{children:t.name}),t.isVision&&e.jsx(O,{className:"w-3 h-3"})]},t.id))})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{onClick:()=>le(s),className:"p-2 text-gray-500 dark:text-gray-400 hover:text-green-600 rounded-lg hover:bg-green-50 dark:hover:bg-green-900/20 transition-colors",title:r("settings.version.copyCommand"),children:e.jsx(je,{className:"w-4 h-4"})}),s.id!==y.defaultVersionId&&e.jsx("button",{onClick:()=>oe(s),className:"p-2 text-gray-500 dark:text-gray-400 hover:text-yellow-600 rounded-lg hover:bg-yellow-50 dark:hover:bg-yellow-900/20 transition-colors",title:r("settings.version.setAsDefault"),children:e.jsx(Ne,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>X(s),className:"p-2 text-gray-500 dark:text-gray-400 hover:text-blue-600 rounded-lg hover:bg-blue-50 dark:hover:bg-blue-900/20 transition-colors",title:r("settings.version.edit"),children:e.jsx(we,{className:"w-4 h-4"})}),!s.isSystem&&e.jsx("button",{onClick:()=>ne(s),className:"p-2 text-gray-500 dark:text-gray-400 hover:text-red-600 rounded-lg hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors",title:r("settings.version.delete"),children:e.jsx(Ve,{className:"w-4 h-4"})})]})]})},s.id))}):e.jsxs("div",{className:"text-center py-8 text-gray-500 dark:text-gray-400",children:[e.jsx(F,{className:"w-12 h-12 mx-auto mb-3 text-gray-300 dark:text-gray-600"}),e.jsx("p",{children:r("settings.version.noVersions")}),e.jsx("p",{className:"text-sm",children:r("settings.version.clickToAddFirst")})]})})}),(_||l)&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg w-full max-w-2xl max-h-[90vh] mx-4 flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700",children:[e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:r(l?"settings.version.form.editTitle":"settings.version.form.createTitle")}),l?.isSystem&&e.jsx("span",{className:"px-2 py-1 text-xs bg-gray-200 dark:bg-gray-600 text-gray-700 dark:text-gray-300 rounded",children:r("settings.version.systemLabel")})]}),e.jsx("button",{onClick:P,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:e.jsx(D,{className:"w-5 h-5"})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-6",children:e.jsxs("div",{className:"space-y-4",children:[l?.isSystem&&e.jsxs("div",{className:"p-4 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(F,{className:"w-5 h-5 text-blue-600 dark:text-blue-400"}),e.jsx("h4",{className:"text-sm font-medium text-blue-800 dark:text-blue-300",children:"系统版本编辑"})]}),e.jsx("p",{className:"text-xs text-blue-700 dark:text-blue-400 mt-2",children:"系统版本是自动检测的 Claude Code 版本,某些字段(如可执行路径)无法修改,但您可以配置支持的模型。"})]}),_&&e.jsxs("div",{className:"p-4 bg-purple-50 dark:bg-purple-900/20 border border-purple-200 dark:border-purple-800 rounded-lg",children:[e.jsxs("div",{className:"flex items-center space-x-2 mb-3",children:[e.jsx(Ce,{className:"w-5 h-5 text-purple-600 dark:text-purple-400"}),e.jsx("h4",{className:"text-sm font-medium text-purple-800 dark:text-purple-300",children:r("settings.version.templates.title")})]}),e.jsx("p",{className:"text-xs text-purple-700 dark:text-purple-400 mb-3",children:r("settings.version.templates.description")}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:M.map(s=>e.jsx("button",{onClick:()=>U(s),className:`p-3 bg-white dark:bg-gray-800 border border-purple-200 dark:border-purple-700
4
- hover:border-purple-400 dark:hover:border-purple-500 rounded-md text-left
5
- transition-all duration-200 group`,children:e.jsxs("div",{className:"flex flex-col space-y-2",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[s.logoUrl&&e.jsx("img",{src:s.logoUrl,alt:s.name,className:"w-6 h-6 flex-shrink-0",onError:t=>{t.currentTarget.style.display="none"}}),e.jsx("h5",{className:"font-medium text-gray-900 dark:text-white group-hover:text-purple-600 dark:group-hover:text-purple-400",children:r(`settings.version.templates.providers.${s.id}.name`)})]}),e.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400",children:r(`settings.version.templates.providers.${s.id}.description`)})]})},s.id))})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[r("settings.version.form.versionName")," ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx("input",{type:"text",value:n.name||"",onChange:s=>o(t=>({...t,name:s.target.value})),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.versionNamePlaceholder"),disabled:l?.isSystem})]}),e.jsxs("div",{children:[e.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[r("settings.version.form.alias")," ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx("input",{type:"text",value:n.alias||"",onChange:s=>o(t=>({...t,alias:s.target.value})),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.aliasPlaceholder"),disabled:l?.isSystem})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("settings.version.form.description")}),e.jsx("textarea",{value:n.description||"",onChange:s=>o(t=>({...t,description:s.target.value})),rows:2,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.descriptionPlaceholder"),disabled:l?.isSystem})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("settings.version.form.executablePath")}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx("input",{type:"text",value:n.executablePath||"",onChange:s=>o(t=>({...t,executablePath:s.target.value})),className:"flex-1 px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.executablePathPlaceholder"),disabled:l?.isSystem}),e.jsx("button",{onClick:te,className:"px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",title:r("settings.version.form.browseFile"),disabled:l?.isSystem,children:e.jsx(Se,{className:"w-4 h-4 text-gray-600 dark:text-gray-400"})})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("settings.version.form.models")}),e.jsxs("div",{className:"space-y-3",children:[n.models&&n.models.length>0&&e.jsx("div",{className:"space-y-2",children:n.models.map(s=>e.jsxs("div",{className:"flex items-center space-x-2 p-2 bg-blue-50 dark:bg-blue-900/20 rounded",children:[e.jsxs("div",{className:"flex-1 grid grid-cols-3 gap-2",children:[e.jsx("input",{type:"text",value:s.id,onChange:t=>I(s.id,{id:t.target.value}),className:"px-2 py-1 text-sm border border-gray-300 dark:border-gray-600 dark:bg-gray-800 dark:text-white rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.modelId")}),e.jsx("input",{type:"text",value:s.name,onChange:t=>I(s.id,{name:t.target.value}),className:"px-2 py-1 text-sm border border-gray-300 dark:border-gray-600 dark:bg-gray-800 dark:text-white rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.modelName")}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsxs("label",{className:"flex items-center space-x-1 text-sm text-gray-700 dark:text-gray-300",children:[e.jsx("input",{type:"checkbox",checked:s.isVision,onChange:t=>I(s.id,{isVision:t.target.checked}),className:"rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"}),e.jsx("span",{children:r("settings.version.form.visionModel")})]}),s.isVision&&e.jsx(O,{className:"w-4 h-4 text-blue-600 dark:text-blue-400"})]})]}),e.jsx("button",{onClick:()=>se(s.id),className:"p-1 text-red-500 hover:text-red-700 rounded flex-shrink-0",children:e.jsx(D,{className:"w-4 h-4"})})]},s.id))}),e.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[e.jsx("input",{type:"text",value:c.id,onChange:s=>v(t=>({...t,id:s.target.value})),className:"px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.modelId")}),e.jsx("input",{type:"text",value:c.name,onChange:s=>v(t=>({...t,name:s.target.value})),className:"px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.modelName")}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsxs("label",{className:"flex items-center space-x-1 text-sm text-gray-700 dark:text-gray-300",children:[e.jsx("input",{type:"checkbox",checked:c.isVision,onChange:s=>v(t=>({...t,isVision:s.target.checked})),className:"rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"}),e.jsx("span",{children:r("settings.version.form.visionModel")})]}),e.jsxs("button",{onClick:ee,disabled:!c.id||!c.name,className:"px-3 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:bg-gray-300 disabled:cursor-not-allowed transition-colors flex items-center space-x-1",children:[e.jsx(T,{className:"w-4 h-4"}),e.jsx("span",{children:r("settings.version.form.addModel")})]})]})]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("settings.version.form.envVars")}),e.jsxs("div",{className:"space-y-3",children:[n.environmentVariables&&Object.keys(n.environmentVariables).length>0&&e.jsx("div",{className:"space-y-2",children:Object.entries(n.environmentVariables).map(([s,t])=>e.jsxs("div",{className:"flex items-center space-x-2 p-2 bg-gray-50 dark:bg-gray-700 rounded",children:[e.jsxs("div",{className:"flex-1 flex items-center space-x-2",children:[e.jsxs("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 whitespace-nowrap",children:[s," ="]}),e.jsx("input",{type:"text",value:t,onChange:a=>{const u=a.target.value;o(g=>({...g,environmentVariables:{...g.environmentVariables,[s]:u}}))},placeholder:r("settings.version.form.emptyValue"),className:"flex-1 px-2 py-1 text-sm border border-gray-300 dark:border-gray-600 dark:bg-gray-800 dark:text-white rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent"}),s==="ANTHROPIC_AUTH_TOKEN"&&K&&!t&&e.jsxs("a",{href:K,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center space-x-1 text-xs text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 whitespace-nowrap",children:[e.jsx(Ae,{className:"w-3 h-3"}),e.jsx("span",{children:r("settings.version.form.getApiKey")})]})]}),e.jsx("button",{onClick:()=>re(s),className:"p-1 text-red-500 hover:text-red-700 rounded flex-shrink-0",children:e.jsx(D,{className:"w-4 h-4"})})]},s))}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx("input",{type:"text",value:m.key,onChange:s=>V(t=>({...t,key:s.target.value})),className:"flex-1 px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.varName")}),e.jsx("input",{type:"text",value:m.value,onChange:s=>V(t=>({...t,value:s.target.value})),className:"flex-1 px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:r("settings.version.form.varValue")}),e.jsx("button",{onClick:Z,disabled:!m.key||!m.value,className:"px-3 py-2 bg-green-600 text-white rounded-lg hover:bg-green-700 disabled:bg-gray-300 disabled:cursor-not-allowed transition-colors",children:e.jsx(T,{className:"w-4 h-4"})})]})]})]})]})}),e.jsxs("div",{className:"flex justify-end space-x-3 p-6 border-t border-gray-200 dark:border-gray-700",children:[e.jsx("button",{onClick:P,className:"px-4 py-2 border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:r("settings.version.form.cancel")}),e.jsxs("button",{onClick:ie,disabled:S.isPending||A.isPending,className:"px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:bg-blue-300 disabled:cursor-not-allowed transition-colors flex items-center space-x-2",children:[e.jsx(Ee,{className:"w-4 h-4"}),e.jsx("span",{children:S.isPending||A.isPending?r("settings.version.form.saving"):r(l?"settings.version.form.update":"settings.version.form.create")})]})]})]})}),G&&e.jsx(ye,{title:r("settings.version.form.selectExecutable"),allowFiles:!0,allowDirectories:!1,onSelect:ae,onClose:()=>C(!1)})]})};export{He as VersionSettingsPage};
@@ -1 +0,0 @@
1
- import{r as p,g as De}from"./monaco-editor-C7Z4sOhS.js";import{j as u}from"./data-structures-DLJedtzx.js";import{r as Ae}from"./syntax-highlighting-YWvMU4Hm.js";import{u as Y}from"./tools-C4EPanYi.js";import{E as Qe,n as me,d as ie,o as ye,p as Ne}from"./ui-components-Cw21Epuw.js";var N=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ue={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},qe=class{#e=Ue;#t=!1;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}},I=new qe;function Le(e){setTimeout(e,0)}var D=typeof window>"u"||"Deno"in globalThis;function C(){}function _e(e,t){return typeof e=="function"?e(t):e}function B(e){return typeof e=="number"&&e>=0&&e!==1/0}function ge(e,t){return Math.max(e+(t||0)-Date.now(),0)}function M(e,t){return typeof e=="function"?e(t):e}function R(e,t){return typeof e=="function"?e(t):e}function re(e,t){const{type:s="all",exact:i,fetchStatus:r,predicate:a,queryKey:o,stale:n}=e;if(o){if(i){if(t.queryHash!==X(o,t.options))return!1}else if(!U(t.queryKey,o))return!1}if(s!=="all"){const c=t.isActive();if(s==="active"&&!c||s==="inactive"&&c)return!1}return!(typeof n=="boolean"&&t.isStale()!==n||r&&r!==t.state.fetchStatus||a&&!a(t))}function ne(e,t){const{exact:s,status:i,predicate:r,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(s){if(A(t.options.mutationKey)!==A(a))return!1}else if(!U(t.options.mutationKey,a))return!1}return!(i&&t.state.status!==i||r&&!r(t))}function X(e,t){return(t?.queryKeyHashFn||A)(e)}function A(e){return JSON.stringify(e,(t,s)=>G(s)?Object.keys(s).sort().reduce((i,r)=>(i[r]=s[r],i),{}):s)}function U(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(s=>U(e[s],t[s])):!1}var Ke=Object.prototype.hasOwnProperty;function ve(e,t){if(e===t)return e;const s=ae(e)&&ae(t);if(!s&&!(G(e)&&G(t)))return t;const r=(s?e:Object.keys(e)).length,a=s?t:Object.keys(t),o=a.length,n=s?new Array(o):{};let c=0;for(let d=0;d<o;d++){const l=s?d:a[d],m=e[l],h=t[l];if(m===h){n[l]=m,(s?d<r:Ke.call(e,l))&&c++;continue}if(m===null||h===null||typeof m!="object"||typeof h!="object"){n[l]=h;continue}const b=ve(m,h);n[l]=b,b===m&&c++}return r===o&&c===r?e:n}function K(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const s in e)if(e[s]!==t[s])return!1;return!0}function ae(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function G(e){if(!oe(e))return!1;const t=e.constructor;if(t===void 0)return!0;const s=t.prototype;return!(!oe(s)||!s.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function oe(e){return Object.prototype.toString.call(e)==="[object Object]"}function $e(e){return new Promise(t=>{I.setTimeout(t,e)})}function z(e,t,s){return typeof s.structuralSharing=="function"?s.structuralSharing(e,t):s.structuralSharing!==!1?ve(e,t):t}function He(e,t,s=0){const i=[...e,t];return s&&i.length>s?i.slice(1):i}function Be(e,t,s=0){const i=[t,...e];return s&&i.length>s?i.slice(0,-1):i}var Z=Symbol();function be(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===Z?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function xe(e,t){return typeof e=="function"?e(...t):!!e}var Ge=class extends N{#e;#t;#s;constructor(){super(),this.#s=e=>{if(!D&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#s=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},ee=new Ge;function W(){let e,t;const s=new Promise((r,a)=>{e=r,t=a});s.status="pending",s.catch(()=>{});function i(r){Object.assign(s,r),delete s.resolve,delete s.reject}return s.resolve=r=>{i({status:"fulfilled",value:r}),e(r)},s.reject=r=>{i({status:"rejected",reason:r}),t(r)},s}var ze=Le;function We(){let e=[],t=0,s=n=>{n()},i=n=>{n()},r=ze;const a=n=>{t?e.push(n):r(()=>{s(n)})},o=()=>{const n=e;e=[],n.length&&r(()=>{i(()=>{n.forEach(c=>{s(c)})})})};return{batch:n=>{let c;t++;try{c=n()}finally{t--,t||o()}return c},batchCalls:n=>(...c)=>{a(()=>{n(...c)})},schedule:a,setNotifyFunction:n=>{s=n},setBatchNotifyFunction:n=>{i=n},setScheduler:n=>{r=n}}}var S=We(),Ve=class extends N{#e=!0;#t;#s;constructor(){super(),this.#s=e=>{if(!D&&window.addEventListener){const t=()=>e(!0),s=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",s)}}}}onSubscribe(){this.#t||this.setEventListener(this.#s)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#s=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(s=>{s(e)}))}isOnline(){return this.#e}},$=new Ve;function Je(e){return Math.min(1e3*2**e,3e4)}function we(e){return(e??"online")==="online"?$.isOnline():!0}var V=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function Se(e){let t=!1,s=0,i;const r=W(),a=()=>r.status!=="pending",o=f=>{if(!a()){const O=new V(f);h(O),e.onCancel?.(O)}},n=()=>{t=!0},c=()=>{t=!1},d=()=>ee.isFocused()&&(e.networkMode==="always"||$.isOnline())&&e.canRun(),l=()=>we(e.networkMode)&&e.canRun(),m=f=>{a()||(i?.(),r.resolve(f))},h=f=>{a()||(i?.(),r.reject(f))},b=()=>new Promise(f=>{i=O=>{(a()||d())&&f(O)},e.onPause?.()}).then(()=>{i=void 0,a()||e.onContinue?.()}),y=()=>{if(a())return;let f;const O=s===0?e.initialPromise:void 0;try{f=O??e.fn()}catch(w){f=Promise.reject(w)}Promise.resolve(f).then(m).catch(w=>{if(a())return;const P=e.retry??(D?0:3),E=e.retryDelay??Je,F=typeof E=="function"?E(s,w):E,j=P===!0||typeof P=="number"&&s<P||typeof P=="function"&&P(s,w);if(t||!j){h(w);return}s++,e.onFail?.(s,w),$e(F).then(()=>d()?void 0:b()).then(()=>{t?h(w):y()})})};return{promise:r,status:()=>r.status,cancel:o,continue:()=>(i?.(),r),cancelRetry:n,continueRetry:c,canStart:l,start:()=>(l()?y():b().then(y),r)}}var Oe=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),B(this.gcTime)&&(this.#e=I.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(D?1/0:300*1e3))}clearGcTimeout(){this.#e&&(I.clearTimeout(this.#e),this.#e=void 0)}},Ye=class extends Oe{#e;#t;#s;#r;#i;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#r=e.client,this.#s=this.#r.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=ue(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#i?.promise}setOptions(e){if(this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const t=ue(this.options);t.data!==void 0&&(this.setData(t.data,{updatedAt:t.dataUpdatedAt,manual:!0}),this.#e=t)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#s.remove(this)}setData(e,t){const s=z(this.state.data,e,this.options);return this.#n({data:s,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),s}setState(e,t){this.#n({type:"setState",state:e,setStateOptions:t})}cancel(e){const t=this.#i?.promise;return this.#i?.cancel(e),t?t.then(C).catch(C):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>R(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Z||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>M(e.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e==="static"?!1:this.state.isInvalidated?!0:!ge(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#i&&(this.#o?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#s.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#n({type:"invalidate"})}async fetch(e,t){if(this.state.fetchStatus!=="idle"&&this.#i?.status()!=="rejected"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(e&&this.setOptions(e),!this.options.queryFn){const n=this.observers.find(c=>c.options.queryFn);n&&this.setOptions(n.options)}const s=new AbortController,i=n=>{Object.defineProperty(n,"signal",{enumerable:!0,get:()=>(this.#o=!0,s.signal)})},r=()=>{const n=be(this.options,t),d=(()=>{const l={client:this.#r,queryKey:this.queryKey,meta:this.meta};return i(l),l})();return this.#o=!1,this.options.persister?this.options.persister(n,d,this):n(d)},o=(()=>{const n={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:r};return i(n),n})();this.options.behavior?.onFetch(o,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==o.fetchOptions?.meta)&&this.#n({type:"fetch",meta:o.fetchOptions?.meta}),this.#i=Se({initialPromise:t?.initialPromise,fn:o.fetchFn,onCancel:n=>{n instanceof V&&n.revert&&this.setState({...this.#t,fetchStatus:"idle"}),s.abort()},onFail:(n,c)=>{this.#n({type:"failed",failureCount:n,error:c})},onPause:()=>{this.#n({type:"pause"})},onContinue:()=>{this.#n({type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0});try{const n=await this.#i.start();if(n===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(n),this.#s.config.onSuccess?.(n,this),this.#s.config.onSettled?.(n,this.state.error,this),n}catch(n){if(n instanceof V){if(n.silent)return this.#i.promise;if(n.revert){if(this.state.data===void 0)throw n;return this.state.data}}throw this.#n({type:"error",error:n}),this.#s.config.onError?.(n,this),this.#s.config.onSettled?.(this.state.data,n,this),n}finally{this.scheduleGc()}}#n(e){const t=s=>{switch(e.type){case"failed":return{...s,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...s,fetchStatus:"paused"};case"continue":return{...s,fetchStatus:"fetching"};case"fetch":return{...s,...Ce(s.data,this.options),fetchMeta:e.meta??null};case"success":const i={...s,data:e.data,dataUpdateCount:s.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#t=e.manual?i:void 0,i;case"error":const r=e.error;return{...s,error:r,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:"idle",status:"error"};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...e.state}}};this.state=t(this.state),S.batch(()=>{this.observers.forEach(s=>{s.onQueryUpdate()}),this.#s.notify({query:this,type:"updated",action:e})})}};function Ce(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:we(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function ue(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,s=t!==void 0,i=s?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:s?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}var Xe=class extends N{constructor(e,t){super(),this.options=t,this.#e=e,this.#n=null,this.#o=W(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#s=void 0;#r=void 0;#i;#a;#o;#n;#m;#d;#f;#c;#l;#u;#p=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),ce(this.#t,this.options)?this.#h():this.updateResult(),this.#b())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return J(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return J(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#x(),this.#w(),this.#t.removeObserver(this)}setOptions(e){const t=this.options,s=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof R(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#S(),this.#t.setOptions(this.options),t._defaulted&&!K(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const i=this.hasListeners();i&&le(this.#t,s,this.options,t)&&this.#h(),this.updateResult(),i&&(this.#t!==s||R(this.options.enabled,this.#t)!==R(t.enabled,this.#t)||M(this.options.staleTime,this.#t)!==M(t.staleTime,this.#t))&&this.#y();const r=this.#g();i&&(this.#t!==s||R(this.options.enabled,this.#t)!==R(t.enabled,this.#t)||r!==this.#u)&&this.#v(r)}getOptimisticResult(e){const t=this.#e.getQueryCache().build(this.#e,e),s=this.createResult(t,e);return et(this,s)&&(this.#r=s,this.#a=this.options,this.#i=this.#t.state),s}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(s,i)=>(this.trackProp(i),t?.(i),i==="promise"&&!this.options.experimental_prefetchInRender&&this.#o.status==="pending"&&this.#o.reject(new Error("experimental_prefetchInRender feature flag is not enabled")),Reflect.get(s,i))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){const t=this.#e.defaultQueryOptions(e),s=this.#e.getQueryCache().build(this.#e,t);return s.fetch().then(()=>this.createResult(s,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(C)),t}#y(){this.#x();const e=M(this.options.staleTime,this.#t);if(D||this.#r.isStale||!B(e))return;const s=ge(this.#r.dataUpdatedAt,e)+1;this.#c=I.setTimeout(()=>{this.#r.isStale||this.updateResult()},s)}#g(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#w(),this.#u=e,!(D||R(this.options.enabled,this.#t)===!1||!B(this.#u)||this.#u===0)&&(this.#l=I.setInterval(()=>{(this.options.refetchIntervalInBackground||ee.isFocused())&&this.#h()},this.#u))}#b(){this.#y(),this.#v(this.#g())}#x(){this.#c&&(I.clearTimeout(this.#c),this.#c=void 0)}#w(){this.#l&&(I.clearInterval(this.#l),this.#l=void 0)}createResult(e,t){const s=this.#t,i=this.options,r=this.#r,a=this.#i,o=this.#a,c=e!==s?e.state:this.#s,{state:d}=e;let l={...d},m=!1,h;if(t._optimisticResults){const v=this.hasListeners(),k=!v&&ce(e,t),T=v&&le(e,s,t,i);(k||T)&&(l={...l,...Ce(d.data,e.options)}),t._optimisticResults==="isRestoring"&&(l.fetchStatus="idle")}let{error:b,errorUpdatedAt:y,status:f}=l;h=l.data;let O=!1;if(t.placeholderData!==void 0&&h===void 0&&f==="pending"){let v;r?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(v=r.data,O=!0):v=typeof t.placeholderData=="function"?t.placeholderData(this.#f?.state.data,this.#f):t.placeholderData,v!==void 0&&(f="success",h=z(r?.data,v,t),m=!0)}if(t.select&&h!==void 0&&!O)if(r&&h===a?.data&&t.select===this.#m)h=this.#d;else try{this.#m=t.select,h=t.select(h),h=z(r?.data,h,t),this.#d=h,this.#n=null}catch(v){this.#n=v}this.#n&&(b=this.#n,h=this.#d,y=Date.now(),f="error");const w=l.fetchStatus==="fetching",P=f==="pending",E=f==="error",F=P&&w,j=h!==void 0,g={status:f,fetchStatus:l.fetchStatus,isPending:P,isSuccess:f==="success",isError:E,isInitialLoading:F,isLoading:F,data:h,dataUpdatedAt:l.dataUpdatedAt,error:b,errorUpdatedAt:y,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:l.dataUpdateCount>0||l.errorUpdateCount>0,isFetchedAfterMount:l.dataUpdateCount>c.dataUpdateCount||l.errorUpdateCount>c.errorUpdateCount,isFetching:w,isRefetching:w&&!P,isLoadingError:E&&!j,isPaused:l.fetchStatus==="paused",isPlaceholderData:m,isRefetchError:E&&j,isStale:te(e,t),refetch:this.refetch,promise:this.#o,isEnabled:R(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){const v=Q=>{g.status==="error"?Q.reject(g.error):g.data!==void 0&&Q.resolve(g.data)},k=()=>{const Q=this.#o=g.promise=W();v(Q)},T=this.#o;switch(T.status){case"pending":e.queryHash===s.queryHash&&v(T);break;case"fulfilled":(g.status==="error"||g.data!==T.value)&&k();break;case"rejected":(g.status!=="error"||g.error!==T.reason)&&k();break}}return g}updateResult(){const e=this.#r,t=this.createResult(this.#t,this.options);if(this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#f=this.#t),K(t,e))return;this.#r=t;const s=()=>{if(!e)return!0;const{notifyOnChangeProps:i}=this.options,r=typeof i=="function"?i():i;if(r==="all"||!r&&!this.#p.size)return!0;const a=new Set(r??this.#p);return this.options.throwOnError&&a.add("error"),Object.keys(this.#r).some(o=>{const n=o;return this.#r[n]!==e[n]&&a.has(n)})};this.#O({listeners:s()})}#S(){const e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;const t=this.#t;this.#t=e,this.#s=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#b()}#O(e){S.batch(()=>{e.listeners&&this.listeners.forEach(t=>{t(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function Ze(e,t){return R(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function ce(e,t){return Ze(e,t)||e.state.data!==void 0&&J(e,t,t.refetchOnMount)}function J(e,t,s){if(R(t.enabled,e)!==!1&&M(t.staleTime,e)!=="static"){const i=typeof s=="function"?s(e):s;return i==="always"||i!==!1&&te(e,t)}return!1}function le(e,t,s,i){return(e!==t||R(i.enabled,e)===!1)&&(!s.suspense||e.state.status!=="error")&&te(e,s)}function te(e,t){return R(t.enabled,e)!==!1&&e.isStaleByTime(M(t.staleTime,e))}function et(e,t){return!K(e.getCurrentResult(),t)}function he(e){return{onFetch:(t,s)=>{const i=t.options,r=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[];let n={pages:[],pageParams:[]},c=0;const d=async()=>{let l=!1;const m=y=>{Object.defineProperty(y,"signal",{enumerable:!0,get:()=>(t.signal.aborted?l=!0:t.signal.addEventListener("abort",()=>{l=!0}),t.signal)})},h=be(t.options,t.fetchOptions),b=async(y,f,O)=>{if(l)return Promise.reject();if(f==null&&y.pages.length)return Promise.resolve(y);const P=(()=>{const x={client:t.client,queryKey:t.queryKey,pageParam:f,direction:O?"backward":"forward",meta:t.options.meta};return m(x),x})(),E=await h(P),{maxPages:F}=t.options,j=O?Be:He;return{pages:j(y.pages,E,F),pageParams:j(y.pageParams,f,F)}};if(r&&a.length){const y=r==="backward",f=y?tt:de,O={pages:a,pageParams:o},w=f(i,O);n=await b(O,w,y)}else{const y=e??a.length;do{const f=c===0?o[0]??i.initialPageParam:de(i,n);if(c>0&&f==null)break;n=await b(n,f),c++}while(c<y)}return n};t.options.persister?t.fetchFn=()=>t.options.persister?.(d,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},s):t.fetchFn=d}}}function de(e,{pages:t,pageParams:s}){const i=t.length-1;return t.length>0?e.getNextPageParam(t[i],t,s[i],s):void 0}function tt(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}var st=class extends Oe{#e;#t;#s;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#s=e.mutationCache,this.#t=[],this.state=e.state||Pe(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#s.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#s.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status==="pending"?this.scheduleGc():this.#s.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){const t=()=>{this.#i({type:"continue"})},s={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=Se({fn:()=>this.options.mutationFn?this.options.mutationFn(e,s):Promise.reject(new Error("No mutationFn found")),onFail:(a,o)=>{this.#i({type:"failed",failureCount:a,error:o})},onPause:()=>{this.#i({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#s.canRun(this)});const i=this.state.status==="pending",r=!this.#r.canStart();try{if(i)t();else{this.#i({type:"pending",variables:e,isPaused:r}),await this.#s.config.onMutate?.(e,this,s);const o=await this.options.onMutate?.(e,s);o!==this.state.context&&this.#i({type:"pending",context:o,variables:e,isPaused:r})}const a=await this.#r.start();return await this.#s.config.onSuccess?.(a,e,this.state.context,this,s),await this.options.onSuccess?.(a,e,this.state.context,s),await this.#s.config.onSettled?.(a,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(a,null,e,this.state.context,s),this.#i({type:"success",data:a}),a}catch(a){try{throw await this.#s.config.onError?.(a,e,this.state.context,this,s),await this.options.onError?.(a,e,this.state.context,s),await this.#s.config.onSettled?.(void 0,a,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(void 0,a,e,this.state.context,s),a}finally{this.#i({type:"error",error:a})}}finally{this.#s.runNext(this)}}#i(e){const t=s=>{switch(e.type){case"failed":return{...s,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...s,isPaused:!0};case"continue":return{...s,isPaused:!1};case"pending":return{...s,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...s,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...s,data:void 0,error:e.error,failureCount:s.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),S.batch(()=>{this.#t.forEach(s=>{s.onMutationUpdate(e)}),this.#s.notify({mutation:this,type:"updated",action:e})})}};function Pe(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var it=class extends N{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#s=0}#e;#t;#s;build(e,t,s){const i=new st({client:e,mutationCache:this,mutationId:++this.#s,options:e.defaultMutationOptions(t),state:s});return this.add(i),i}add(e){this.#e.add(e);const t=L(e);if(typeof t=="string"){const s=this.#t.get(t);s?s.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){const t=L(e);if(typeof t=="string"){const s=this.#t.get(t);if(s)if(s.length>1){const i=s.indexOf(e);i!==-1&&s.splice(i,1)}else s[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){const t=L(e);if(typeof t=="string"){const i=this.#t.get(t)?.find(r=>r.state.status==="pending");return!i||i===e}else return!0}runNext(e){const t=L(e);return typeof t=="string"?this.#t.get(t)?.find(i=>i!==e&&i.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){S.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){const t={exact:!0,...e};return this.getAll().find(s=>ne(t,s))}findAll(e={}){return this.getAll().filter(t=>ne(e,t))}notify(e){S.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){const e=this.getAll().filter(t=>t.state.isPaused);return S.batch(()=>Promise.all(e.map(t=>t.continue().catch(C))))}};function L(e){return e.options.scope?.id}var rt=class extends N{#e;#t=void 0;#s;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){const t=this.options;this.options=this.#e.defaultMutationOptions(e),K(this.options,t)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#s,observer:this}),t?.mutationKey&&this.options.mutationKey&&A(t.mutationKey)!==A(this.options.mutationKey)?this.reset():this.#s?.state.status==="pending"&&this.#s.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#s?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#s?.removeObserver(this),this.#s=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#s?.removeObserver(this),this.#s=this.#e.getMutationCache().build(this.#e,this.options),this.#s.addObserver(this),this.#s.execute(e)}#i(){const e=this.#s?.state??Pe();this.#t={...e,isPending:e.status==="pending",isSuccess:e.status==="success",isError:e.status==="error",isIdle:e.status==="idle",mutate:this.mutate,reset:this.reset}}#a(e){S.batch(()=>{if(this.#r&&this.hasListeners()){const t=this.#t.variables,s=this.#t.context,i={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};e?.type==="success"?(this.#r.onSuccess?.(e.data,t,s,i),this.#r.onSettled?.(e.data,null,t,s,i)):e?.type==="error"&&(this.#r.onError?.(e.error,t,s,i),this.#r.onSettled?.(void 0,e.error,t,s,i))}this.listeners.forEach(t=>{t(this.#t)})})}},nt=class extends N{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,s){const i=t.queryKey,r=t.queryHash??X(i,t);let a=this.get(r);return a||(a=new Ye({client:e,queryKey:i,queryHash:r,options:e.defaultQueryOptions(t),state:s,defaultOptions:e.getQueryDefaults(i)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){S.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){const t={exact:!0,...e};return this.getAll().find(s=>re(t,s))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter(s=>re(e,s)):t}notify(e){S.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){S.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){S.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Ft=class{#e;#t;#s;#r;#i;#a;#o;#n;constructor(e={}){this.#e=e.queryCache||new nt,this.#t=e.mutationCache||new it,this.#s=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=ee.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#n=$.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#n?.(),this.#n=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),s=this.#e.build(this,t),i=s.state.data;return i===void 0?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime(M(t.staleTime,s))&&this.prefetchQuery(t),Promise.resolve(i))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:s})=>{const i=s.data;return[t,i]})}setQueryData(e,t,s){const i=this.defaultQueryOptions({queryKey:e}),a=this.#e.get(i.queryHash)?.state.data,o=_e(t,a);if(o!==void 0)return this.#e.build(this,i).setData(o,{...s,manual:!0})}setQueriesData(e,t,s){return S.batch(()=>this.#e.findAll(e).map(({queryKey:i})=>[i,this.setQueryData(i,t,s)]))}getQueryState(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){const t=this.#e;S.batch(()=>{t.findAll(e).forEach(s=>{t.remove(s)})})}resetQueries(e,t){const s=this.#e;return S.batch(()=>(s.findAll(e).forEach(i=>{i.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const s={revert:!0,...t},i=S.batch(()=>this.#e.findAll(e).map(r=>r.cancel(s)));return Promise.all(i).then(C).catch(C)}invalidateQueries(e,t={}){return S.batch(()=>(this.#e.findAll(e).forEach(s=>{s.invalidate()}),e?.refetchType==="none"?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t)))}refetchQueries(e,t={}){const s={...t,cancelRefetch:t.cancelRefetch??!0},i=S.batch(()=>this.#e.findAll(e).filter(r=>!r.isDisabled()&&!r.isStatic()).map(r=>{let a=r.fetch(void 0,s);return s.throwOnError||(a=a.catch(C)),r.state.fetchStatus==="paused"?Promise.resolve():a}));return Promise.all(i).then(C)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const s=this.#e.build(this,t);return s.isStaleByTime(M(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(C).catch(C)}fetchInfiniteQuery(e){return e.behavior=he(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(C).catch(C)}ensureInfiniteQueryData(e){return e.behavior=he(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return $.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#s}setDefaultOptions(e){this.#s=e}setQueryDefaults(e,t){this.#r.set(A(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#r.values()],s={};return t.forEach(i=>{U(e,i.queryKey)&&Object.assign(s,i.defaultOptions)}),s}setMutationDefaults(e,t){this.#i.set(A(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#i.values()],s={};return t.forEach(i=>{U(e,i.mutationKey)&&Object.assign(s,i.defaultOptions)}),s}defaultQueryOptions(e){if(e._defaulted)return e;const t={...this.#s.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=X(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Z&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#s.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Ee=p.createContext(void 0),Re=e=>{const t=p.useContext(Ee);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},jt=({client:e,children:t})=>(p.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),u.jsx(Ee.Provider,{value:e,children:t})),Fe=p.createContext(!1),at=()=>p.useContext(Fe);Fe.Provider;function ot(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var ut=p.createContext(ot()),ct=()=>p.useContext(ut),lt=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},ht=e=>{p.useEffect(()=>{e.clearReset()},[e])},dt=({result:e,errorResetBoundary:t,throwOnError:s,query:i,suspense:r})=>e.isError&&!t.isReset()&&!e.isFetching&&i&&(r&&e.data===void 0||xe(s,[e.error,i])),ft=e=>{if(e.suspense){const s=r=>r==="static"?r:Math.max(r??1e3,1e3),i=e.staleTime;e.staleTime=typeof i=="function"?(...r)=>s(i(...r)):s(i),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},pt=(e,t)=>e.isLoading&&e.isFetching&&!t,mt=(e,t)=>e?.suspense&&t.isPending,fe=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function yt(e,t,s){const i=at(),r=ct(),a=Re(),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o),o._optimisticResults=i?"isRestoring":"optimistic",ft(o),lt(o,r),ht(r);const n=!a.getQueryCache().get(o.queryHash),[c]=p.useState(()=>new t(a,o)),d=c.getOptimisticResult(o),l=!i&&e.subscribed!==!1;if(p.useSyncExternalStore(p.useCallback(m=>{const h=l?c.subscribe(S.batchCalls(m)):C;return c.updateResult(),h},[c,l]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),p.useEffect(()=>{c.setOptions(o)},[o,c]),mt(o,d))throw fe(o,c,r);if(dt({result:d,errorResetBoundary:r,throwOnError:o.throwOnError,query:a.getQueryCache().get(o.queryHash),suspense:o.suspense}))throw d.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,d),o.experimental_prefetchInRender&&!D&&pt(d,i)&&(n?fe(o,c,r):a.getQueryCache().get(o.queryHash)?.promise)?.catch(C).finally(()=>{c.updateResult()}),o.notifyOnChangeProps?d:c.trackResult(d)}function je(e,t){return yt(e,Xe)}function kt(e,t){const s=Re(),[i]=p.useState(()=>new rt(s,e));p.useEffect(()=>{i.setOptions(e)},[i,e]);const r=p.useSyncExternalStore(p.useCallback(o=>i.subscribe(S.batchCalls(o)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),a=p.useCallback((o,n)=>{i.mutate(o,n).catch(C)},[i]);if(r.error&&xe(i.options.throwOnError,[r.error]))throw r.error;return{...r,mutate:a,mutateAsync:r.mutate}}const _=[{id:"default",name:"默认服务",url:"http://127.0.0.1:4936",isDefault:!0}],ke="backendServices",Te=()=>{try{const e=localStorage.getItem(ke);if(e){const t=JSON.parse(e);return!t.services||t.services.length===0?{services:_,currentServiceId:_[0].id}:t}}catch(e){console.error("Failed to load backend services:",e)}return{services:_,currentServiceId:_[0].id}},H=e=>{try{localStorage.setItem(ke,JSON.stringify(e))}catch(t){console.error("Failed to save backend services:",t)}},Me=e=>e.services.find(t=>t.id===e.currentServiceId)||null,Tt=(e,t,s)=>{const i={...e,services:e.services.map(r=>r.id===t?{...r,...s}:r)};return H(i),i},Mt=(e,t)=>{if(e.services.find(r=>r.id===t)?.isDefault)return e;const i={...e,services:e.services.filter(r=>r.id!==t),currentServiceId:e.currentServiceId===t?e.services.find(r=>r.id!==t)?.id||null:e.currentServiceId};return H(i),i},It=(e,t)=>{if(!e.services.find(r=>r.id===t))return e;const i={...e,currentServiceId:t};return H(i),i},se=()=>{const e=Te(),t=Me(e);return t?t.url:"http://127.0.0.1:4936"},gt=()=>se()+"/api",vt=()=>se()+"/media",pe=vt(),q=gt(),Dt=()=>se(),At=e=>{const t=Te(),s=Me(t);if(s){const i=t.services.map(r=>r.id===s.id?{...r,url:e}:r);H({...t,services:i})}window.location.reload()},Qt=e=>e?!!(e.name==="TypeError"&&e.message?.includes("fetch")||e.name==="AbortError"||e.message?.includes("AbortError")||e.message?.includes("ERR_CONNECTION_REFUSED")||e.message?.includes("ERR_NETWORK")||e.message?.includes("Failed to fetch")||e.message?.includes("NetworkError")||e.status&&(e.status===0||e.status===502||e.status===503||e.status===504)):!1,Ie=e=>{let t=e.match(/window\.presentationConfig\s*=\s*\{[\s\S]*?slides:\s*\[([\s\S]*?)\]/),s=e.match(/title:\s*["']([^"']+)["']/);if(t||(t=e.match(/presentationConfig\s*=\s*\{[\s\S]*?slides:\s*\[([\s\S]*?)\]/)),t||(t=e.match(/slides:\s*\[([\s\S]*?)\]/)),t||(t=e.match(/window\.slidesConfig\s*=\s*\[([\s\S]*?)\]/)),t||(t=e.match(/slidesConfig\s*=\s*\[([\s\S]*?)\]/)),!t)throw new Error("Invalid slides configuration format");const r=t[1].match(/"([^"]+)"/g),a=r?r.map(n=>n.replace(/"/g,"")):[],o=s?s[1]:"Presentation";return{slides:a,title:o}},bt=e=>{const t=e.match(/<title>(.*?)<\/title>/i)||e.match(/<h1[^>]*>(.*?)<\/h1>/i);return t?t[1].replace(/<[^>]*>/g,"").trim():""},Nt=e=>je({queryKey:["slides",e],queryFn:async()=>{const t=new URL(`${q}/files/read`,window.location.origin);t.searchParams.set("path","slides.js"),e&&t.searchParams.set("projectPath",e);const s=await fetch(t);if(!s.ok){if(s.status===404)return{slides:[],title:"Presentation",total:0};throw new Error("Failed to fetch slides configuration")}const i=await s.json(),{slides:r,title:a}=Ie(i.content),o=new URL(`${q}/files/read-multiple`,window.location.origin);e&&o.searchParams.set("projectPath",e);const n=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:r})});if(!n.ok)throw new Error("Failed to fetch slide files");const c=await n.json();return{slides:r.map((l,m)=>{const h=c.files.find(y=>y.path===l);let b=l.split("/").pop()?.replace(".html","")||`Slide ${m+1}`;if(h?.exists&&h.content){const y=bt(h.content);y&&(b=y)}return{path:l,title:b,exists:h?.exists||!1,index:m}}),total:r.length,title:a}}}),xt=(e,t)=>je({queryKey:["slide-content",e,t],queryFn:async()=>{const s=new URL(`${q}/files/read`,window.location.origin);s.searchParams.set("path","slides.js"),t&&s.searchParams.set("projectPath",t);const i=await fetch(s);if(!i.ok)throw i.status===404?new Error("No slides configuration found. Please create slides.js file first."):new Error("Failed to fetch slides configuration");const r=await i.json(),{slides:a}=Ie(r.content);if(e>=a.length)throw new Error("Slide not found");const o=a[e],n=new URL(`${q}/files/read`,window.location.origin);n.searchParams.set("path",o),t&&n.searchParams.set("projectPath",t);const c=await fetch(n);if(!c.ok)throw new Error("Failed to fetch slide content");return{content:(await c.json()).content,path:o,index:e}},enabled:e>=0});var wt=Ae();const St=De(wt);Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&amp;/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(t,s){var i={};i["language-"+s]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[s]},i.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:i}};r["language-"+s]={pattern:/[\s\S]+/,inside:Prism.languages[s]};var a={};a[t]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return t}),"i"),lookbehind:!0,greedy:!0,inside:r},Prism.languages.insertBefore("markup","cdata",a)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(e,t){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:Prism.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml;(function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var s=e.languages.markup;s&&(s.tag.addInlined("style","css"),s.tag.addAttribute("style","css"))})(Prism);const Ut=p.forwardRef(({slide:e,totalSlides:t,projectPath:s},i)=>{const{t:r}=Y("agents"),a=p.useRef(null),o=p.useRef(null),[n,c]=p.useState(!0),[d,l]=p.useState(!1),[m,h]=p.useState("preview"),[b,y]=p.useState(null),[f,O]=p.useState(1),{data:w}=xt(e.index,s);p.useImperativeHandle(i,()=>({refreshIframe:()=>{const x=a.current;if(x&&b&&e.path){const g=Date.now(),v=`${pe}/${b}/${e.path}?t=${g}`;x.src=v}}}),[b,e.path]),p.useEffect(()=>{if(!s)return;(async()=>{try{const g=new URL(`${q}/files/project-id`,window.location.origin);g.searchParams.set("projectPath",s);const v=await fetch(g);if(v.ok){const k=await v.json();y(k.projectId)}}catch(g){console.error("Failed to fetch project ID:",g)}})()},[s]),p.useEffect(()=>{const x=a.current;if(!x||m!=="preview"||!b||!e.path)return;c(!0),l(!1);const g=()=>{c(!1),l(!1)},v=()=>{c(!1),l(!0)};return x.addEventListener("load",g),x.addEventListener("error",v),x.src=`${pe}/${b}/${e.path}`,()=>{x.removeEventListener("load",g),x.removeEventListener("error",v)}},[m,b,e.path]),p.useEffect(()=>{m==="code"&&w&&setTimeout(()=>{St.highlightAll()},0)},[m,w]);const P=1280/720,E=1280,F=720,j=()=>{if(!o.current)return 1;const g=o.current.getBoundingClientRect(),v=g.width,k=g.height,T=v/E,Q=k/F;return Math.min(T,Q,1)};return p.useEffect(()=>{const x=()=>{const v=j();O(v)};x(),window.addEventListener("resize",x);const g=setTimeout(x,100);return()=>{window.removeEventListener("resize",x),clearTimeout(g)}},[m]),u.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow-md overflow-hidden",children:[u.jsx("div",{className:"px-4 py-3 bg-gray-50 dark:bg-gray-700 border-b border-gray-200 dark:border-gray-600",children:u.jsxs("div",{className:"flex items-center justify-between",children:[u.jsxs("div",{className:"flex space-x-1",children:[u.jsxs("button",{onClick:()=>h("preview"),className:`flex items-center space-x-2 px-3 py-1.5 text-sm rounded-md transition-colors ${m==="preview"?"bg-blue-100 dark:bg-blue-900/50 text-blue-700 dark:text-blue-300 border border-blue-200 dark:border-blue-700":"text-gray-600 dark:text-gray-300 hover:text-gray-800 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-600"}`,children:[u.jsx(Qe,{className:"w-4 h-4"}),u.jsx("span",{children:r("slidePreview.tabs.preview")})]}),u.jsxs("button",{onClick:()=>h("code"),className:`flex items-center space-x-2 px-3 py-1.5 text-sm rounded-md transition-colors ${m==="code"?"bg-blue-100 dark:bg-blue-900/50 text-blue-700 dark:text-blue-300 border border-blue-200 dark:border-blue-700":"text-gray-600 dark:text-gray-300 hover:text-gray-800 dark:hover:text-white hover:bg-gray-100 dark:hover:bg-gray-600"}`,children:[u.jsx(me,{className:"w-4 h-4"}),u.jsx("span",{children:r("slidePreview.tabs.code")})]})]}),u.jsxs("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-medium",children:[e.index+1,"/",t]})]})}),u.jsx("div",{className:"p-4",children:m==="preview"?u.jsxs("div",{ref:o,className:"relative w-full bg-gray-100 dark:bg-gray-900 rounded-lg overflow-hidden",style:{aspectRatio:`${P}`},children:[n&&u.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:u.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:r("slidePreview.loading")})}),d&&u.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:u.jsx("div",{className:"text-sm text-red-500 dark:text-red-400",children:r("slidePreview.loadFailed")})}),e.exists&&b&&u.jsx("div",{className:"absolute top-0 left-0",style:{width:`${E}px`,height:`${F}px`,transform:`scale(${f})`,transformOrigin:"top left"},children:u.jsx("iframe",{ref:a,className:"w-full h-full border-none",style:{display:n||d?"none":"block",width:`${E}px`,height:`${F}px`},scrolling:"no"})}),!e.exists&&!n&&u.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:u.jsx("div",{className:"text-sm text-orange-500 dark:text-orange-400",children:r("slidePreview.fileNotFound")})})]}):u.jsx("div",{className:"relative bg-gray-100 dark:bg-gray-900 rounded-lg overflow-hidden",style:{aspectRatio:`${P}`},children:w?u.jsx("div",{className:"h-full overflow-y-auto",children:u.jsx("pre",{className:"language-html h-full m-0 p-4 text-sm",style:{backgroundColor:"#2d3748"},children:u.jsx("code",{className:"language-html text-gray-100",children:w.content})})}):u.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:u.jsx("div",{className:"text-gray-500 dark:text-gray-400",children:r("slidePreview.loadingCode")})})})})]})}),qt=()=>{const{t:e}=Y("agents"),t=()=>{console.log("Create new section")};return u.jsxs("div",{className:"flex flex-col h-full bg-gray-50",children:[u.jsxs("div",{className:"px-5 py-4 bg-white border-b border-gray-200 flex items-center justify-between",children:[u.jsxs("div",{className:"flex flex-col",children:[u.jsxs("div",{className:"flex items-center space-x-3 mb-1",children:[u.jsx(ie,{className:"w-5 h-5 text-purple-600"}),u.jsx("h2",{className:"text-lg font-semibold text-gray-800",children:e("documentOutline.title")})]}),u.jsx("div",{className:"text-sm text-gray-600",children:e("documentOutline.description")})]}),u.jsxs("button",{onClick:t,className:"flex items-center space-x-1 px-3 py-1.5 bg-purple-600 text-white text-sm rounded-md hover:bg-purple-700 transition-colors",children:[u.jsx(ye,{className:"w-4 h-4"}),u.jsx("span",{children:e("documentOutline.createSection")})]})]}),u.jsx("div",{className:"flex-1 overflow-y-auto p-5",children:u.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-gray-500",children:[u.jsx(ie,{className:"w-12 h-12 text-gray-300 mb-4"}),u.jsx("div",{className:"text-lg mb-2",children:e("documentOutline.featureTitle")}),u.jsxs("div",{className:"text-sm text-center",children:[e("documentOutline.comingSoon"),u.jsx("br",{}),e("documentOutline.chatManagement")]})]})})]})},Lt=({projectPath:e})=>{const{t}=Y("agents"),s=()=>{console.log("Open file")};return u.jsxs("div",{className:"flex flex-col h-full bg-gray-50",children:[u.jsxs("div",{className:"px-5 py-4 bg-white border-b border-gray-200 flex items-center justify-between",children:[u.jsxs("div",{className:"flex flex-col",children:[u.jsxs("div",{className:"flex items-center space-x-3 mb-1",children:[u.jsx(me,{className:"w-5 h-5 text-green-600"}),u.jsx("h2",{className:"text-lg font-semibold text-gray-800",children:t("codeExplorer.title")})]}),u.jsx("div",{className:"text-sm text-gray-600",children:e?t("codeExplorer.projectWithPath",{path:e}):t("codeExplorer.description")})]}),u.jsxs("button",{onClick:s,className:"flex items-center space-x-1 px-3 py-1.5 bg-green-600 text-white text-sm rounded-md hover:bg-green-700 transition-colors",children:[u.jsx(ye,{className:"w-4 h-4"}),u.jsx("span",{children:t("codeExplorer.openFile")})]})]}),u.jsx("div",{className:"flex-1 overflow-y-auto p-5",children:u.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-gray-500",children:[u.jsx(Ne,{className:"w-12 h-12 text-gray-300 mb-4"}),u.jsx("div",{className:"text-lg mb-2",children:t("codeExplorer.featureTitle")}),u.jsxs("div",{className:"text-sm text-center",children:[t("codeExplorer.comingSoon"),u.jsx("br",{}),t("codeExplorer.chatManagement")]})]})})]})};export{q as A,Lt as C,qt as D,Ft as Q,Ut as S,H as a,Me as b,It as c,jt as d,Re as e,je as f,Dt as g,kt as h,Qt as i,Nt as j,Te as l,Mt as r,At as s,Tt as u};
@@ -1 +0,0 @@
1
- import{k as s,l as c}from"./index-B_CTNvca.js";async function u(n,t={}){const o=s.getState().token,e=c(o),a=new Headers(t.headers||{});e&&a.set("Authorization",`Bearer ${e}`);const r={...t,headers:a};return fetch(n,r)}export{u as a};