agentstudio 0.1.17 → 0.1.20

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 (602) 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 +364 -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-CKTz2ND6.js +10 -0
  42. package/public/assets/Button-Dg6ni5Yl.js +1 -0
  43. package/public/assets/ChatPage-DkO3kzY2.js +442 -0
  44. package/public/assets/CommandForm-CIfw9mVj.js +7 -0
  45. package/public/assets/CommandsPage-BgN0E41K.js +1 -0
  46. package/public/assets/DashboardPage-Duu6pBON.js +15 -0
  47. package/public/assets/FileBrowser-Bnm7ZyGT.js +6 -0
  48. package/public/assets/FileExplorer-Dy8ZFDtK.js +1 -0
  49. package/public/assets/GeneralSettingsPage-BJTiwSqP.js +1 -0
  50. package/public/assets/LandingPage-CCqtSDce.js +1 -0
  51. package/public/assets/LoginPage-DCI_RABC.js +16 -0
  52. package/public/assets/McpPage-Dj4bE6a2.js +40 -0
  53. package/public/assets/MemorySettingsPage-v7kI6DEB.js +1 -0
  54. package/public/assets/PluginsPage-CQ08px0h.js +1 -0
  55. package/public/assets/ProjectSelector-DKkhmVGz.js +1 -0
  56. package/public/assets/ProjectsPage-6nGz1v6U.js +21 -0
  57. package/public/assets/ScheduledTasksPage-Dv8qPeLY.js +1 -0
  58. package/public/assets/SettingsLayout-stXQCl6u.js +1 -0
  59. package/public/assets/SkillsPage-DlQPlwG5.js +18 -0
  60. package/{backend/dist/frontend/assets/SubagentForm-DXtTTIKg.js → public/assets/SubagentForm-iYJ0l9vh.js} +2 -2
  61. package/public/assets/SubagentsPage-ksh-LWAC.js +1 -0
  62. package/{backend/dist/frontend/assets/ToastTestPage-DT4wuN5C.js → public/assets/ToastTestPage-pxyInZeD.js} +1 -1
  63. package/public/assets/ToolsList-CWZLcBx2.js +1 -0
  64. package/public/assets/UnifiedToolSelector-A2UIt1Xn.js +1 -0
  65. package/public/assets/VersionSettingsPage-ClLBqAIC.js +5 -0
  66. package/public/assets/_basePickBy-Ce1_TuBk.js +1 -0
  67. package/public/assets/_baseUniq-Dt6C4BgZ.js +1 -0
  68. package/public/assets/agents-C4aCwcCz.js +1 -0
  69. package/public/assets/arc-c63c3GDw.js +1 -0
  70. package/public/assets/architectureDiagram-VXUJARFQ-rnurJGX4.js +36 -0
  71. package/public/assets/blockDiagram-VD42YOAC-CM33sjhb.js +122 -0
  72. package/public/assets/c4Diagram-YG6GDRKO-B1tJjciL.js +10 -0
  73. package/public/assets/channel-6fK1csbi.js +1 -0
  74. package/public/assets/chunk-4BX2VUAB-vbzk_8Ta.js +1 -0
  75. package/public/assets/chunk-55IACEB6-CNXjTgeK.js +1 -0
  76. package/public/assets/chunk-B4BG7PRW-CykotMKj.js +165 -0
  77. package/public/assets/chunk-DI55MBZ5-DbZodDrP.js +220 -0
  78. package/public/assets/chunk-FMBD7UC4-u0h-4JXb.js +15 -0
  79. package/public/assets/chunk-QN33PNHL-B7VLbRpC.js +1 -0
  80. package/public/assets/chunk-QZHKN3VN-DfcZEdwM.js +1 -0
  81. package/public/assets/chunk-TZMSLE5B-BP4O9iGm.js +1 -0
  82. package/public/assets/classDiagram-2ON5EDUG-PrDkNsdA.js +1 -0
  83. package/public/assets/classDiagram-v2-WZHVMYZB-PrDkNsdA.js +1 -0
  84. package/public/assets/clone-CXX9AxT7.js +1 -0
  85. package/public/assets/cose-bilkent-S5V4N54A-CSV8iDOr.js +1 -0
  86. package/public/assets/cytoscape.esm-DtBltrT8.js +331 -0
  87. package/public/assets/dagre-6UL2VRFP-S5vHkFwY.js +4 -0
  88. package/{backend/dist/frontend/assets/data-structures-DLJedtzx.js → public/assets/data-structures-C0h9Oap1.js} +1 -1
  89. package/public/assets/defaultLocale-C4B-KCzX.js +1 -0
  90. package/public/assets/diagram-PSM6KHXK-Bl4NbJsm.js +24 -0
  91. package/public/assets/diagram-QEK2KX5R-D-6ipdkt.js +43 -0
  92. package/public/assets/diagram-S2PKOQOG-DBuN3kfb.js +24 -0
  93. package/public/assets/erDiagram-Q2GNP2WA-DEhlyUw1.js +60 -0
  94. package/public/assets/flowDiagram-NV44I4VS-PsSk5-Xf.js +162 -0
  95. package/public/assets/ganttDiagram-LVOFAZNH-PfD-vtKp.js +267 -0
  96. package/public/assets/gitGraphDiagram-NY62KEGX-CUq51Mt1.js +65 -0
  97. package/public/assets/graph-Bc5M3bvZ.js +1 -0
  98. package/public/assets/index-ImPzdvfG.js +293 -0
  99. package/public/assets/index-TEVaBQiv.css +1 -0
  100. package/public/assets/infoDiagram-F6ZHWCRC-BTR1hJCm.js +2 -0
  101. package/public/assets/init-Gi6I4Gst.js +1 -0
  102. package/public/assets/journeyDiagram-XKPGCS4Q-CTyau8Sh.js +139 -0
  103. package/public/assets/kanban-definition-3W4ZIXB7-2R3dHQq1.js +89 -0
  104. package/public/assets/katex-qrhCpa0F.js +261 -0
  105. package/public/assets/layout-BCktuL_6.js +1 -0
  106. package/public/assets/linear-lHuinZOC.js +1 -0
  107. package/public/assets/mindmap-definition-VGOIOE7T-Dl8qR3zk.js +68 -0
  108. package/public/assets/monaco-editor-DHKm5-VF.js +19 -0
  109. package/public/assets/ordinal-Cboi1Yqb.js +1 -0
  110. package/public/assets/pieDiagram-ADFJNKIX-Bqcukh_c.js +30 -0
  111. package/public/assets/quadrantDiagram-AYHSOK5B-C_uML1JV.js +7 -0
  112. package/public/assets/requirementDiagram-UZGBJVZJ-QUbH9ShO.js +64 -0
  113. package/public/assets/sankeyDiagram-TZEHDZUN-CEomXpQ1.js +10 -0
  114. package/public/assets/sequenceDiagram-WL72ISMW-DNsDMjTd.js +145 -0
  115. package/public/assets/stateDiagram-FKZM4ZOC-BA_Narwp.js +1 -0
  116. package/public/assets/stateDiagram-v2-4FDKWEC3-Cy5am68v.js +1 -0
  117. package/{backend/dist/frontend/assets/syntax-highlighting-YWvMU4Hm.js → public/assets/syntax-highlighting-CnREyncB.js} +5 -5
  118. package/public/assets/tabManager-CkNKjP4G.js +30 -0
  119. package/{backend/dist/frontend/assets/table-D6q1rytw.js → public/assets/table-CSWCaVuS.js} +1 -1
  120. package/public/assets/timeline-definition-IT6M3QCI-DeEgHBeI.js +61 -0
  121. package/public/assets/tools-C7xmF_rB.js +1 -0
  122. package/public/assets/treemap-KMMF4GRG-5HQSTjk6.js +128 -0
  123. package/{backend/dist/frontend/assets/ui-components-Cw21Epuw.js → public/assets/ui-components-BNdpaz32.js} +221 -96
  124. package/public/assets/useAgents-C9aEFOWD.js +2 -0
  125. package/public/assets/useClaudeVersions-CcFqpR2o.js +1 -0
  126. package/public/assets/useCommands-BadxYHf2.js +1 -0
  127. package/public/assets/useProjects-Dgk7ldPq.js +1 -0
  128. package/public/assets/xychartDiagram-PRI3JC2R-C7BNHmgo.js +7 -0
  129. package/{backend/dist/frontend → public}/index.html +8 -8
  130. package/routes/__tests__/a2a.integration.test.d.ts +11 -0
  131. package/routes/__tests__/a2a.integration.test.d.ts.map +1 -0
  132. package/routes/__tests__/a2a.integration.test.js +314 -0
  133. package/routes/__tests__/a2a.integration.test.js.map +1 -0
  134. package/routes/__tests__/a2a.test.d.ts +6 -0
  135. package/routes/__tests__/a2a.test.d.ts.map +1 -0
  136. package/routes/__tests__/a2a.test.js +622 -0
  137. package/routes/__tests__/a2a.test.js.map +1 -0
  138. package/routes/__tests__/agents.test.d.ts +6 -0
  139. package/routes/__tests__/agents.test.d.ts.map +1 -0
  140. package/routes/__tests__/agents.test.js +315 -0
  141. package/routes/__tests__/agents.test.js.map +1 -0
  142. package/routes/__tests__/sessions.test.d.ts +7 -0
  143. package/routes/__tests__/sessions.test.d.ts.map +1 -0
  144. package/routes/__tests__/sessions.test.js +330 -0
  145. package/routes/__tests__/sessions.test.js.map +1 -0
  146. package/routes/a2a.d.ts +18 -0
  147. package/routes/a2a.d.ts.map +1 -0
  148. package/routes/a2a.js +649 -0
  149. package/routes/a2a.js.map +1 -0
  150. package/routes/a2a.streaming.test.d.ts +2 -0
  151. package/routes/a2a.streaming.test.d.ts.map +1 -0
  152. package/routes/a2a.streaming.test.js +167 -0
  153. package/routes/a2a.streaming.test.js.map +1 -0
  154. package/routes/a2aManagement.d.ts +21 -0
  155. package/routes/a2aManagement.d.ts.map +1 -0
  156. package/routes/a2aManagement.js +466 -0
  157. package/routes/a2aManagement.js.map +1 -0
  158. package/{backend/dist/routes → routes}/agents.d.ts.map +1 -1
  159. package/routes/agents.js +997 -0
  160. package/routes/agents.js.map +1 -0
  161. package/{backend/dist/routes → routes}/auth.d.ts.map +1 -1
  162. package/routes/auth.js +135 -0
  163. package/routes/auth.js.map +1 -0
  164. package/{backend/dist/routes → routes}/commands.d.ts.map +1 -1
  165. package/{backend/dist/routes → routes}/commands.js +115 -31
  166. package/routes/commands.js.map +1 -0
  167. package/routes/config.d.ts +4 -0
  168. package/routes/config.d.ts.map +1 -0
  169. package/routes/config.js +211 -0
  170. package/routes/config.js.map +1 -0
  171. package/{backend/dist/routes → routes}/files.d.ts.map +1 -1
  172. package/{backend/dist/routes → routes}/files.js +103 -43
  173. package/routes/files.js.map +1 -0
  174. package/{backend/dist/routes → routes}/mcp.d.ts.map +1 -1
  175. package/{backend/dist/routes → routes}/mcp.js +175 -88
  176. package/routes/mcp.js.map +1 -0
  177. package/routes/media.d.ts.map +1 -0
  178. package/{backend/dist/routes → routes}/media.js +52 -42
  179. package/routes/media.js.map +1 -0
  180. package/routes/mediaAuth.d.ts +8 -0
  181. package/routes/mediaAuth.d.ts.map +1 -0
  182. package/routes/mediaAuth.js +136 -0
  183. package/routes/mediaAuth.js.map +1 -0
  184. package/routes/plugins.d.ts +4 -0
  185. package/routes/plugins.d.ts.map +1 -0
  186. package/routes/plugins.js +339 -0
  187. package/routes/plugins.js.map +1 -0
  188. package/{backend/dist/routes → routes}/projects.d.ts.map +1 -1
  189. package/routes/projects.js +884 -0
  190. package/routes/projects.js.map +1 -0
  191. package/routes/scheduledTasks.d.ts +9 -0
  192. package/routes/scheduledTasks.d.ts.map +1 -0
  193. package/routes/scheduledTasks.js +320 -0
  194. package/routes/scheduledTasks.js.map +1 -0
  195. package/{backend/dist/routes → routes}/sessions.d.ts.map +1 -1
  196. package/{backend/dist/routes → routes}/sessions.js +258 -39
  197. package/routes/sessions.js.map +1 -0
  198. package/{backend/dist/routes → routes}/settings.d.ts.map +1 -1
  199. package/{backend/dist/routes → routes}/settings.js +82 -241
  200. package/routes/settings.js.map +1 -0
  201. package/routes/skills.d.ts +4 -0
  202. package/routes/skills.d.ts.map +1 -0
  203. package/routes/skills.js +272 -0
  204. package/routes/skills.js.map +1 -0
  205. package/routes/slack.d.ts +10 -0
  206. package/routes/slack.d.ts.map +1 -0
  207. package/routes/slack.js +189 -0
  208. package/routes/slack.js.map +1 -0
  209. package/{backend/dist/routes → routes}/slides.d.ts.map +1 -1
  210. package/{backend/dist/routes → routes}/slides.js +29 -27
  211. package/routes/slides.js.map +1 -0
  212. package/{backend/dist/routes → routes}/subagents.js +27 -22
  213. package/routes/subagents.js.map +1 -0
  214. package/schemas/a2a.d.ts +858 -0
  215. package/schemas/a2a.d.ts.map +1 -0
  216. package/schemas/a2a.js +300 -0
  217. package/schemas/a2a.js.map +1 -0
  218. package/scripts/postinstall.js +10 -0
  219. package/services/__tests__/pluginInstaller.test.d.ts +5 -0
  220. package/services/__tests__/pluginInstaller.test.d.ts.map +1 -0
  221. package/services/__tests__/pluginInstaller.test.js +290 -0
  222. package/services/__tests__/pluginInstaller.test.js.map +1 -0
  223. package/services/__tests__/pluginParser.test.d.ts +5 -0
  224. package/services/__tests__/pluginParser.test.d.ts.map +1 -0
  225. package/services/__tests__/pluginParser.test.js +272 -0
  226. package/services/__tests__/pluginParser.test.js.map +1 -0
  227. package/services/__tests__/pluginPaths.test.d.ts +5 -0
  228. package/services/__tests__/pluginPaths.test.d.ts.map +1 -0
  229. package/services/__tests__/pluginPaths.test.js +221 -0
  230. package/services/__tests__/pluginPaths.test.js.map +1 -0
  231. package/services/__tests__/pluginScanner.test.d.ts +5 -0
  232. package/services/__tests__/pluginScanner.test.d.ts.map +1 -0
  233. package/services/__tests__/pluginScanner.test.js +272 -0
  234. package/services/__tests__/pluginScanner.test.js.map +1 -0
  235. package/services/__tests__/pluginSymlink.test.d.ts +5 -0
  236. package/services/__tests__/pluginSymlink.test.d.ts.map +1 -0
  237. package/services/__tests__/pluginSymlink.test.js +318 -0
  238. package/services/__tests__/pluginSymlink.test.js.map +1 -0
  239. package/services/__tests__/slackAIService.test.d.ts +5 -0
  240. package/services/__tests__/slackAIService.test.d.ts.map +1 -0
  241. package/services/__tests__/slackAIService.test.js +477 -0
  242. package/services/__tests__/slackAIService.test.js.map +1 -0
  243. package/services/__tests__/slackThreadMapper.test.d.ts +5 -0
  244. package/services/__tests__/slackThreadMapper.test.d.ts.map +1 -0
  245. package/services/__tests__/slackThreadMapper.test.js +194 -0
  246. package/services/__tests__/slackThreadMapper.test.js.map +1 -0
  247. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts +6 -0
  248. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts.map +1 -0
  249. package/services/a2a/__tests__/a2aClientTool.integration.test.js +264 -0
  250. package/services/a2a/__tests__/a2aClientTool.integration.test.js.map +1 -0
  251. package/services/a2a/__tests__/a2aClientTool.test.d.ts +6 -0
  252. package/services/a2a/__tests__/a2aClientTool.test.d.ts.map +1 -0
  253. package/services/a2a/__tests__/a2aClientTool.test.js +418 -0
  254. package/services/a2a/__tests__/a2aClientTool.test.js.map +1 -0
  255. package/services/a2a/__tests__/a2aConfigService.test.d.ts +6 -0
  256. package/services/a2a/__tests__/a2aConfigService.test.d.ts.map +1 -0
  257. package/services/a2a/__tests__/a2aConfigService.test.js +431 -0
  258. package/services/a2a/__tests__/a2aConfigService.test.js.map +1 -0
  259. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts +2 -0
  260. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts.map +1 -0
  261. package/services/a2a/__tests__/a2aConfigServicePath.test.js +49 -0
  262. package/services/a2a/__tests__/a2aConfigServicePath.test.js.map +1 -0
  263. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts +10 -0
  264. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts.map +1 -0
  265. package/services/a2a/__tests__/a2aSdkMcp.test.js +239 -0
  266. package/services/a2a/__tests__/a2aSdkMcp.test.js.map +1 -0
  267. package/services/a2a/__tests__/agentCardService.test.d.ts +6 -0
  268. package/services/a2a/__tests__/agentCardService.test.d.ts.map +1 -0
  269. package/services/a2a/__tests__/agentCardService.test.js +292 -0
  270. package/services/a2a/__tests__/agentCardService.test.js.map +1 -0
  271. package/services/a2a/__tests__/apiKeyService.test.d.ts +6 -0
  272. package/services/a2a/__tests__/apiKeyService.test.d.ts.map +1 -0
  273. package/services/a2a/__tests__/apiKeyService.test.js +284 -0
  274. package/services/a2a/__tests__/apiKeyService.test.js.map +1 -0
  275. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts +2 -0
  276. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts.map +1 -0
  277. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js +70 -0
  278. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js.map +1 -0
  279. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts +2 -0
  280. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts.map +1 -0
  281. package/services/a2a/__tests__/dynamic_config_verification.test.js +67 -0
  282. package/services/a2a/__tests__/dynamic_config_verification.test.js.map +1 -0
  283. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts +2 -0
  284. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts.map +1 -0
  285. package/services/a2a/__tests__/integrateA2AMcpServer.test.js +112 -0
  286. package/services/a2a/__tests__/integrateA2AMcpServer.test.js.map +1 -0
  287. package/services/a2a/__tests__/taskManager.integration.test.d.ts +7 -0
  288. package/services/a2a/__tests__/taskManager.integration.test.d.ts.map +1 -0
  289. package/services/a2a/__tests__/taskManager.integration.test.js +346 -0
  290. package/services/a2a/__tests__/taskManager.integration.test.js.map +1 -0
  291. package/services/a2a/__tests__/taskManager.test.d.ts +7 -0
  292. package/services/a2a/__tests__/taskManager.test.d.ts.map +1 -0
  293. package/services/a2a/__tests__/taskManager.test.js +423 -0
  294. package/services/a2a/__tests__/taskManager.test.js.map +1 -0
  295. package/services/a2a/a2aClientTool.d.ts +73 -0
  296. package/services/a2a/a2aClientTool.d.ts.map +1 -0
  297. package/services/a2a/a2aClientTool.js +572 -0
  298. package/services/a2a/a2aClientTool.js.map +1 -0
  299. package/services/a2a/a2aConfigService.d.ts +50 -0
  300. package/services/a2a/a2aConfigService.d.ts.map +1 -0
  301. package/services/a2a/a2aConfigService.js +186 -0
  302. package/services/a2a/a2aConfigService.js.map +1 -0
  303. package/services/a2a/a2aHistoryService.d.ts +32 -0
  304. package/services/a2a/a2aHistoryService.d.ts.map +1 -0
  305. package/services/a2a/a2aHistoryService.js +108 -0
  306. package/services/a2a/a2aHistoryService.js.map +1 -0
  307. package/services/a2a/a2aIntegration.d.ts +9 -0
  308. package/services/a2a/a2aIntegration.d.ts.map +1 -0
  309. package/services/a2a/a2aIntegration.js +41 -0
  310. package/services/a2a/a2aIntegration.js.map +1 -0
  311. package/services/a2a/a2aQueryService.d.ts +71 -0
  312. package/services/a2a/a2aQueryService.d.ts.map +1 -0
  313. package/services/a2a/a2aQueryService.js +166 -0
  314. package/services/a2a/a2aQueryService.js.map +1 -0
  315. package/services/a2a/a2aSdkMcp.d.ts +51 -0
  316. package/services/a2a/a2aSdkMcp.d.ts.map +1 -0
  317. package/services/a2a/a2aSdkMcp.js +185 -0
  318. package/services/a2a/a2aSdkMcp.js.map +1 -0
  319. package/services/a2a/a2aStreamEvents.d.ts +94 -0
  320. package/services/a2a/a2aStreamEvents.d.ts.map +1 -0
  321. package/services/a2a/a2aStreamEvents.js +92 -0
  322. package/services/a2a/a2aStreamEvents.js.map +1 -0
  323. package/services/a2a/agentCardService.d.ts +34 -0
  324. package/services/a2a/agentCardService.d.ts.map +1 -0
  325. package/services/a2a/agentCardService.js +228 -0
  326. package/services/a2a/agentCardService.js.map +1 -0
  327. package/services/a2a/agentMappingService.d.ts +53 -0
  328. package/services/a2a/agentMappingService.d.ts.map +1 -0
  329. package/services/a2a/agentMappingService.js +185 -0
  330. package/services/a2a/agentMappingService.js.map +1 -0
  331. package/services/a2a/apiKeyService.d.ts +101 -0
  332. package/services/a2a/apiKeyService.d.ts.map +1 -0
  333. package/services/a2a/apiKeyService.js +314 -0
  334. package/services/a2a/apiKeyService.js.map +1 -0
  335. package/services/a2a/taskCleanup.d.ts +30 -0
  336. package/services/a2a/taskCleanup.d.ts.map +1 -0
  337. package/services/a2a/taskCleanup.js +184 -0
  338. package/services/a2a/taskCleanup.js.map +1 -0
  339. package/services/a2a/taskManager.d.ts +86 -0
  340. package/services/a2a/taskManager.d.ts.map +1 -0
  341. package/services/a2a/taskManager.js +263 -0
  342. package/services/a2a/taskManager.js.map +1 -0
  343. package/services/agentStorage.d.ts +27 -0
  344. package/services/agentStorage.d.ts.map +1 -0
  345. package/services/agentStorage.js +487 -0
  346. package/services/agentStorage.js.map +1 -0
  347. package/services/askUserQuestion/askUserQuestionIntegration.d.ts +24 -0
  348. package/services/askUserQuestion/askUserQuestionIntegration.d.ts.map +1 -0
  349. package/services/askUserQuestion/askUserQuestionIntegration.js +52 -0
  350. package/services/askUserQuestion/askUserQuestionIntegration.js.map +1 -0
  351. package/services/askUserQuestion/askUserQuestionMcp.d.ts +103 -0
  352. package/services/askUserQuestion/askUserQuestionMcp.d.ts.map +1 -0
  353. package/services/askUserQuestion/askUserQuestionMcp.js +129 -0
  354. package/services/askUserQuestion/askUserQuestionMcp.js.map +1 -0
  355. package/services/askUserQuestion/index.d.ts +13 -0
  356. package/services/askUserQuestion/index.d.ts.map +1 -0
  357. package/services/askUserQuestion/index.js +35 -0
  358. package/services/askUserQuestion/index.js.map +1 -0
  359. package/services/askUserQuestion/init.d.ts +17 -0
  360. package/services/askUserQuestion/init.d.ts.map +1 -0
  361. package/services/askUserQuestion/init.js +47 -0
  362. package/services/askUserQuestion/init.js.map +1 -0
  363. package/services/askUserQuestion/notificationChannel.d.ts +97 -0
  364. package/services/askUserQuestion/notificationChannel.d.ts.map +1 -0
  365. package/services/askUserQuestion/notificationChannel.js +147 -0
  366. package/services/askUserQuestion/notificationChannel.js.map +1 -0
  367. package/services/askUserQuestion/slackNotificationChannel.d.ts +35 -0
  368. package/services/askUserQuestion/slackNotificationChannel.d.ts.map +1 -0
  369. package/services/askUserQuestion/slackNotificationChannel.js +129 -0
  370. package/services/askUserQuestion/slackNotificationChannel.js.map +1 -0
  371. package/services/askUserQuestion/sseNotificationChannel.d.ts +36 -0
  372. package/services/askUserQuestion/sseNotificationChannel.d.ts.map +1 -0
  373. package/services/askUserQuestion/sseNotificationChannel.js +88 -0
  374. package/services/askUserQuestion/sseNotificationChannel.js.map +1 -0
  375. package/services/askUserQuestion/userInputRegistry.d.ts +107 -0
  376. package/services/askUserQuestion/userInputRegistry.d.ts.map +1 -0
  377. package/services/askUserQuestion/userInputRegistry.js +253 -0
  378. package/services/askUserQuestion/userInputRegistry.js.map +1 -0
  379. package/{backend/dist/services → services}/claudeSession.d.ts +20 -5
  380. package/services/claudeSession.d.ts.map +1 -0
  381. package/{backend/dist/services → services}/claudeSession.js +123 -41
  382. package/services/claudeSession.js.map +1 -0
  383. package/services/claudeVersionStorage.d.ts +20 -0
  384. package/services/claudeVersionStorage.d.ts.map +1 -0
  385. package/services/claudeVersionStorage.js +331 -0
  386. package/services/claudeVersionStorage.js.map +1 -0
  387. package/{backend/dist/services → services}/messageQueue.d.ts.map +1 -1
  388. package/{backend/dist/services → services}/messageQueue.js +16 -3
  389. package/services/messageQueue.js.map +1 -0
  390. package/services/pluginInstaller.d.ts +58 -0
  391. package/services/pluginInstaller.d.ts.map +1 -0
  392. package/services/pluginInstaller.js +321 -0
  393. package/services/pluginInstaller.js.map +1 -0
  394. package/services/pluginParser.d.ts +45 -0
  395. package/services/pluginParser.d.ts.map +1 -0
  396. package/services/pluginParser.js +437 -0
  397. package/services/pluginParser.js.map +1 -0
  398. package/services/pluginPaths.d.ts +80 -0
  399. package/services/pluginPaths.d.ts.map +1 -0
  400. package/services/pluginPaths.js +274 -0
  401. package/services/pluginPaths.js.map +1 -0
  402. package/services/pluginScanner.d.ts +36 -0
  403. package/services/pluginScanner.d.ts.map +1 -0
  404. package/services/pluginScanner.js +251 -0
  405. package/services/pluginScanner.js.map +1 -0
  406. package/services/pluginSymlink.d.ts +54 -0
  407. package/services/pluginSymlink.d.ts.map +1 -0
  408. package/services/pluginSymlink.js +223 -0
  409. package/services/pluginSymlink.js.map +1 -0
  410. package/services/projectMetadataStorage.d.ts +114 -0
  411. package/services/projectMetadataStorage.d.ts.map +1 -0
  412. package/services/projectMetadataStorage.js +711 -0
  413. package/services/projectMetadataStorage.js.map +1 -0
  414. package/services/scheduledTaskStorage.d.ts +52 -0
  415. package/services/scheduledTaskStorage.d.ts.map +1 -0
  416. package/services/scheduledTaskStorage.js +285 -0
  417. package/services/scheduledTaskStorage.js.map +1 -0
  418. package/services/schedulerService.d.ts +81 -0
  419. package/services/schedulerService.d.ts.map +1 -0
  420. package/services/schedulerService.js +743 -0
  421. package/services/schedulerService.js.map +1 -0
  422. package/{backend/dist/services → services}/sessionManager.d.ts +6 -4
  423. package/services/sessionManager.d.ts.map +1 -0
  424. package/{backend/dist/services → services}/sessionManager.js +77 -16
  425. package/services/sessionManager.js.map +1 -0
  426. package/services/skillStorage.d.ts +60 -0
  427. package/services/skillStorage.d.ts.map +1 -0
  428. package/services/skillStorage.js +398 -0
  429. package/services/skillStorage.js.map +1 -0
  430. package/services/slackAIService.d.ts +81 -0
  431. package/services/slackAIService.d.ts.map +1 -0
  432. package/services/slackAIService.js +1091 -0
  433. package/services/slackAIService.js.map +1 -0
  434. package/services/slackClient.d.ts +46 -0
  435. package/services/slackClient.d.ts.map +1 -0
  436. package/services/slackClient.js +85 -0
  437. package/services/slackClient.js.map +1 -0
  438. package/services/slackSessionLock.d.ts +79 -0
  439. package/services/slackSessionLock.d.ts.map +1 -0
  440. package/services/slackSessionLock.js +353 -0
  441. package/services/slackSessionLock.js.map +1 -0
  442. package/services/slackThreadMapper.d.ts +57 -0
  443. package/services/slackThreadMapper.d.ts.map +1 -0
  444. package/services/slackThreadMapper.js +140 -0
  445. package/services/slackThreadMapper.js.map +1 -0
  446. package/types/a2a.d.ts +275 -0
  447. package/types/a2a.d.ts.map +1 -0
  448. package/types/a2a.js +23 -0
  449. package/types/a2a.js.map +1 -0
  450. package/types/agents.d.ts +95 -0
  451. package/types/agents.d.ts.map +1 -0
  452. package/types/agents.js +46 -0
  453. package/types/agents.js.map +1 -0
  454. package/types/claude-history.d.ts +62 -0
  455. package/types/claude-history.d.ts.map +1 -0
  456. package/types/claude-history.js +4 -0
  457. package/types/claude-history.js.map +1 -0
  458. package/types/claude-versions.d.ts +36 -0
  459. package/types/claude-versions.d.ts.map +1 -0
  460. package/types/claude-versions.js +3 -0
  461. package/types/claude-versions.js.map +1 -0
  462. package/types/commands.d.ts +50 -0
  463. package/types/commands.d.ts.map +1 -0
  464. package/types/commands.js +23 -0
  465. package/types/commands.js.map +1 -0
  466. package/types/plugins.d.ts +144 -0
  467. package/types/plugins.d.ts.map +1 -0
  468. package/types/plugins.js +8 -0
  469. package/types/plugins.js.map +1 -0
  470. package/types/projects.d.ts +42 -0
  471. package/types/projects.d.ts.map +1 -0
  472. package/types/projects.js +4 -0
  473. package/types/projects.js.map +1 -0
  474. package/types/scheduledTasks.d.ts +164 -0
  475. package/types/scheduledTasks.d.ts.map +1 -0
  476. package/types/scheduledTasks.js +17 -0
  477. package/types/scheduledTasks.js.map +1 -0
  478. package/types/skills.d.ts +91 -0
  479. package/types/skills.d.ts.map +1 -0
  480. package/types/skills.js +6 -0
  481. package/types/skills.js.map +1 -0
  482. package/types/slack.d.ts +97 -0
  483. package/types/slack.d.ts.map +1 -0
  484. package/types/slack.js +8 -0
  485. package/types/slack.js.map +1 -0
  486. package/types/streaming.d.ts +12 -0
  487. package/types/streaming.d.ts.map +1 -0
  488. package/types/streaming.js +8 -0
  489. package/types/streaming.js.map +1 -0
  490. package/types/subagents.d.ts +26 -0
  491. package/types/subagents.d.ts.map +1 -0
  492. package/types/subagents.js +3 -0
  493. package/types/subagents.js.map +1 -0
  494. package/utils/__tests__/claudeUtils.test.d.ts +5 -0
  495. package/utils/__tests__/claudeUtils.test.d.ts.map +1 -0
  496. package/utils/__tests__/claudeUtils.test.js +282 -0
  497. package/utils/__tests__/claudeUtils.test.js.map +1 -0
  498. package/utils/__tests__/sessionUtils.test.d.ts +5 -0
  499. package/utils/__tests__/sessionUtils.test.d.ts.map +1 -0
  500. package/utils/__tests__/sessionUtils.test.js +295 -0
  501. package/utils/__tests__/sessionUtils.test.js.map +1 -0
  502. package/utils/agentCardCache.d.ts +93 -0
  503. package/utils/agentCardCache.d.ts.map +1 -0
  504. package/utils/agentCardCache.js +212 -0
  505. package/utils/agentCardCache.js.map +1 -0
  506. package/utils/claudeUtils.d.ts +54 -0
  507. package/utils/claudeUtils.d.ts.map +1 -0
  508. package/utils/claudeUtils.js +387 -0
  509. package/utils/claudeUtils.js.map +1 -0
  510. package/utils/fileUtils.d.ts +2 -0
  511. package/utils/fileUtils.d.ts.map +1 -0
  512. package/utils/fileUtils.js +11 -0
  513. package/utils/fileUtils.js.map +1 -0
  514. package/utils/jwt.d.ts +30 -0
  515. package/utils/jwt.d.ts.map +1 -0
  516. package/utils/jwt.js +95 -0
  517. package/utils/jwt.js.map +1 -0
  518. package/utils/sessionUtils.d.ts +64 -0
  519. package/utils/sessionUtils.d.ts.map +1 -0
  520. package/utils/sessionUtils.js +266 -0
  521. package/utils/sessionUtils.js.map +1 -0
  522. package/README.zh-CN.md +0 -525
  523. package/backend/dist/bin/agentstudio.js +0 -120
  524. package/backend/dist/bin/agentstudio.js.map +0 -1
  525. package/backend/dist/frontend/assets/AgentsPage-Dqb_aqAA.js +0 -1
  526. package/backend/dist/frontend/assets/ChatPage-L8Paywyc.js +0 -91
  527. package/backend/dist/frontend/assets/CommandForm-DLl7EIMS.js +0 -7
  528. package/backend/dist/frontend/assets/CommandsPage-Bzavq0Ec.js +0 -1
  529. package/backend/dist/frontend/assets/DashboardPage-B3o4AYFT.js +0 -15
  530. package/backend/dist/frontend/assets/FileBrowser-DL3ayaqb.js +0 -1
  531. package/backend/dist/frontend/assets/GeneralSettingsPage-CBN_de-V.js +0 -1
  532. package/backend/dist/frontend/assets/LandingPage-Dl4ioKos.js +0 -1
  533. package/backend/dist/frontend/assets/LoginPage-4QqRdiSi.js +0 -12
  534. package/backend/dist/frontend/assets/McpPage-CY3tYiqj.js +0 -39
  535. package/backend/dist/frontend/assets/MemorySettingsPage-DGxrok5K.js +0 -1
  536. package/backend/dist/frontend/assets/ProjectSelector-hgmGYVFh.js +0 -1
  537. package/backend/dist/frontend/assets/ProjectsPage-D399IM0c.js +0 -14
  538. package/backend/dist/frontend/assets/SettingsLayout-CL_K-lzJ.js +0 -1
  539. package/backend/dist/frontend/assets/SubagentsPage-Chbhj8p2.js +0 -1
  540. package/backend/dist/frontend/assets/UnifiedToolSelector-CsM9qBvs.js +0 -1
  541. package/backend/dist/frontend/assets/VersionSettingsPage-74Q-LVgA.js +0 -5
  542. package/backend/dist/frontend/assets/agents-ClAzIJTw.js +0 -1
  543. package/backend/dist/frontend/assets/authFetch-BATQyPG5.js +0 -1
  544. package/backend/dist/frontend/assets/index-B9YHa7XT.css +0 -1
  545. package/backend/dist/frontend/assets/index-B_CTNvca.js +0 -268
  546. package/backend/dist/frontend/assets/monaco-editor-C7Z4sOhS.js +0 -19
  547. package/backend/dist/frontend/assets/tabManager-DV8urRBM.js +0 -30
  548. package/backend/dist/frontend/assets/tools-C4EPanYi.js +0 -1
  549. package/backend/dist/frontend/assets/useAgents-DwnOE1_k.js +0 -2
  550. package/backend/dist/frontend/assets/useClaudeVersions-CQdGnCqv.js +0 -1
  551. package/backend/dist/frontend/assets/useCommands-CCVaurbt.js +0 -1
  552. package/backend/dist/index.d.ts +0 -3
  553. package/backend/dist/index.d.ts.map +0 -1
  554. package/backend/dist/index.js +0 -154
  555. package/backend/dist/index.js.map +0 -1
  556. package/backend/dist/middleware/auth.d.ts.map +0 -1
  557. package/backend/dist/middleware/auth.js +0 -21
  558. package/backend/dist/middleware/auth.js.map +0 -1
  559. package/backend/dist/routes/agents.js +0 -803
  560. package/backend/dist/routes/agents.js.map +0 -1
  561. package/backend/dist/routes/auth.js +0 -60
  562. package/backend/dist/routes/auth.js.map +0 -1
  563. package/backend/dist/routes/commands.js.map +0 -1
  564. package/backend/dist/routes/files.js.map +0 -1
  565. package/backend/dist/routes/mcp.js.map +0 -1
  566. package/backend/dist/routes/media.d.ts.map +0 -1
  567. package/backend/dist/routes/media.js.map +0 -1
  568. package/backend/dist/routes/projects.js +0 -528
  569. package/backend/dist/routes/projects.js.map +0 -1
  570. package/backend/dist/routes/sessions.js.map +0 -1
  571. package/backend/dist/routes/settings.js.map +0 -1
  572. package/backend/dist/routes/slides.js.map +0 -1
  573. package/backend/dist/routes/subagents.js.map +0 -1
  574. package/backend/dist/services/claudeSession.d.ts.map +0 -1
  575. package/backend/dist/services/claudeSession.js.map +0 -1
  576. package/backend/dist/services/messageQueue.js.map +0 -1
  577. package/backend/dist/services/sessionManager.d.ts.map +0 -1
  578. package/backend/dist/services/sessionManager.js.map +0 -1
  579. package/backend/dist/utils/jwt.d.ts +0 -15
  580. package/backend/dist/utils/jwt.d.ts.map +0 -1
  581. package/backend/dist/utils/jwt.js +0 -28
  582. package/backend/dist/utils/jwt.js.map +0 -1
  583. /package/{backend/dist/bin → bin}/agentstudio.d.ts +0 -0
  584. /package/{backend/dist/bin → bin}/agentstudio.d.ts.map +0 -0
  585. /package/{backend/dist/frontend → public}/assets/ChatPage-BvQmXfcP.css +0 -0
  586. /package/{backend/dist/frontend → public}/assets/agents-DwCY2K8p.css +0 -0
  587. /package/{backend/dist/frontend → public}/assets/dateFormat-CXa8VnEC.js +0 -0
  588. /package/{backend/dist/frontend → public}/cc-studio.png +0 -0
  589. /package/{backend/dist/frontend → public}/vite.svg +0 -0
  590. /package/{backend/dist/routes → routes}/agents.d.ts +0 -0
  591. /package/{backend/dist/routes → routes}/auth.d.ts +0 -0
  592. /package/{backend/dist/routes → routes}/commands.d.ts +0 -0
  593. /package/{backend/dist/routes → routes}/files.d.ts +0 -0
  594. /package/{backend/dist/routes → routes}/mcp.d.ts +0 -0
  595. /package/{backend/dist/routes → routes}/media.d.ts +0 -0
  596. /package/{backend/dist/routes → routes}/projects.d.ts +0 -0
  597. /package/{backend/dist/routes → routes}/sessions.d.ts +0 -0
  598. /package/{backend/dist/routes → routes}/settings.d.ts +0 -0
  599. /package/{backend/dist/routes → routes}/slides.d.ts +0 -0
  600. /package/{backend/dist/routes → routes}/subagents.d.ts +0 -0
  601. /package/{backend/dist/routes → routes}/subagents.d.ts.map +0 -0
  602. /package/{backend/dist/services → services}/messageQueue.d.ts +0 -0
@@ -0,0 +1,18 @@
1
+ import{j as e}from"./data-structures-C0h9Oap1.js";import{r as c}from"./monaco-editor-DHKm5-VF.js";import{T as ge,a as be,b as Z,c as q,d as fe,e as O}from"./table-CSWCaVuS.js";import{g as ye,a as f,u as te,b as X,c as V,A as Q}from"./agents-C4aCwcCz.js";import{U as ke}from"./UnifiedToolSelector-A2UIt1Xn.js";import{u as J}from"./tools-C7xmF_rB.js";import{Q as we,e as je,az as ve,X as _,p as ae,g as Ne,E as Se,f as Te,u as Ce,v as Fe}from"./ui-components-BNdpaz32.js";import{B as z}from"./Button-Dg6ni5Yl.js";import{F as $e}from"./FileExplorer-Dy8ZFDtK.js";import{T as Ee}from"./ToolsList-CWZLcBx2.js";import"./syntax-highlighting-CnREyncB.js";import"./index-ImPzdvfG.js";class De{baseURL=`${ye()}/skills`;async getAllSkills(r){const s=new URLSearchParams;r?.scope&&s.append("scope",r.scope),r?.includeDisabled&&s.append("includeDisabled","true");const l=await f(`${this.baseURL}?${s.toString()}`);if(!l.ok)throw new Error(`Failed to fetch skills: ${l.statusText}`);const o=await l.json();return this.transformToSkillListItems(o.skills)}async getSkill(r,s){const l=s?`?scope=${s}`:"",o=await f(`${this.baseURL}/${r}${l}`);if(o.status===404)return null;if(!o.ok)throw new Error(`Failed to fetch skill: ${o.statusText}`);return(await o.json()).skill}async createSkill(r){const s=await f(`${this.baseURL}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!s.ok){const o=await s.json();throw new Error(o.error||"Failed to create skill")}return(await s.json()).skill}async updateSkill(r,s){const l=await f(`${this.baseURL}/${r}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!l.ok){const x=await l.json();throw new Error(x.error||"Failed to update skill")}return(await l.json()).skill}async deleteSkill(r,s){const l=s?`?scope=${s}`:"",o=await f(`${this.baseURL}/${r}${l}`,{method:"DELETE"});if(o.status===404)return!1;if(!o.ok)throw new Error(`Failed to delete skill: ${o.statusText}`);return!0}async getSkillDirectoryInfo(r){const s=await f(`${this.baseURL}/${r}/directory`);if(s.status===404)return null;if(!s.ok)throw new Error(`Failed to fetch skill directory info: ${s.statusText}`);return(await s.json()).directoryInfo}async validateSkillManifest(r){const s=await f(`${this.baseURL}/validate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:r})});if(!s.ok)throw new Error(`Failed to validate skill manifest: ${s.statusText}`);return await s.json()}async getSkillFile(r,s){const l=await f(`${this.baseURL}/${r}/files/${s}`);if(!l.ok)throw new Error(`Failed to fetch skill file: ${l.statusText}`);return(await l.json()).content}async updateSkillFile(r,s,l){const o=await f(`${this.baseURL}/${r}/files/${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:l})});if(!o.ok)throw new Error(`Failed to update skill file: ${o.statusText}`)}transformToSkillListItems(r){return r.map(s=>({id:s.id,name:s.name,description:s.description,scope:s.scope,projectName:s.scope==="project"?"Current Project":void 0,source:s.source,enabled:s.enabled,createdAt:s.createdAt,updatedAt:s.updatedAt,allowedTools:s.allowedTools,toolCount:s.allowedTools?.length||0,usageCount:0,lastUsed:void 0}))}}const A=new De,y={all:["skills"],lists:()=>[...y.all,"list"],list:a=>[...y.lists(),a],details:()=>[...y.all,"detail"],detail:a=>[...y.details(),a],directory:a=>[...y.all,"directory",a]},Le=a=>te({queryKey:y.list(a||{}),queryFn:()=>A.getAllSkills(a),staleTime:300*1e3}),Me=(a,r)=>te({queryKey:y.detail(a),queryFn:()=>A.getSkill(a,r),enabled:!!a,staleTime:300*1e3}),Pe=()=>{const a=X();return V({mutationFn:r=>A.createSkill(r),onSuccess:r=>{a.invalidateQueries({queryKey:y.lists()}),a.setQueryData(y.detail(r.id),r)},onError:r=>{console.error("Failed to create skill:",r)}})},Ae=()=>{const a=X();return V({mutationFn:({skillId:r,updates:s})=>A.updateSkill(r,s),onSuccess:r=>{a.setQueryData(y.detail(r.id),r),a.invalidateQueries({queryKey:y.lists()})},onError:r=>{console.error("Failed to update skill:",r)}})},Ie=()=>{const a=X();return V({mutationFn:({skillId:r,scope:s})=>A.deleteSkill(r,s),onSuccess:(r,{skillId:s})=>{a.removeQueries({queryKey:y.detail(s)}),a.invalidateQueries({queryKey:y.lists()})},onError:r=>{console.error("Failed to delete skill:",r)}})},Re=()=>V({mutationFn:a=>A.validateSkillManifest(a),onError:a=>{console.error("Failed to validate skill manifest:",a)}}),Ue=({onClose:a,onSuccess:r,editSkill:s})=>{const{t:l}=J(["skills","common"]),o=!!s,[x,p]=c.useState("basic"),[n,h]=c.useState({name:"",description:"",allowedTools:[],content:"",additionalFiles:[]}),[m,j]=c.useState([]),[k,F]=c.useState(""),[$,M]=c.useState(!1),[S,E]=c.useState([]),[g,v]=c.useState([]),[T,I]=c.useState(!1),P=Pe(),R=Ae(),U=Re(),B=Me(s?.id||"",s?.scope||"user"),C=o?B.data:null,K=o?B.isLoading:!1,[d,N]=c.useState(0),[H,D]=c.useState(0),[L,Y]=c.useState(!1);c.useEffect(()=>{if(!L){const t=[...S];T&&t.push(...g),h(i=>({...i,allowedTools:t})),N(Date.now())}},[S,g,T,L]),c.useEffect(()=>{!L&&(n.name||n.description)&&N(Date.now())},[n.name,n.description,L]),c.useEffect(()=>{!L&&n.content&&D(Date.now())},[n.content,L]),c.useEffect(()=>{if(o&&C){h({name:C.name,description:C.description,allowedTools:C.allowedTools||[],content:"",additionalFiles:(C.files||[]).filter(u=>!u.path.endsWith("SKILL.md")).map(u=>({id:Math.random().toString(36).substr(2,9),name:u.name,path:u.path,type:u.type,content:""}))});const t=C.allowedTools||[],i=t.filter(u=>!u.startsWith("mcp__")),b=t.filter(u=>u.startsWith("mcp__"));E(i),v(b),I(b.length>0),(async()=>{try{const u=await fetch(`/api/skills/${s.id}/files/SKILL.md`);if(u.ok){const he=await u.json();h(pe=>({...pe,content:he.content})),D(Date.now())}}catch(u){console.error("Failed to load skill manifest:",u)}})()}},[o,C,s]),c.useEffect(()=>{if(n.content){const i=setTimeout(async()=>{try{const b=await U.mutateAsync(n.content);j(b.errors.map(w=>w.message)||[])}catch{j(["Validation failed"])}},500);return()=>clearTimeout(i)}},[n.content,U]);const se=async()=>{try{if(o){const t={name:n.name,description:n.description,allowedTools:n.allowedTools,content:n.content,additionalFiles:n.additionalFiles.map(i=>({name:i.name,path:i.path,type:i.type,content:i.content}))};await R.mutateAsync({skillId:s.id,updates:t})}else{const t={name:n.name,description:n.description,scope:"user",allowedTools:n.allowedTools,content:n.content,additionalFiles:n.additionalFiles.map(i=>({name:i.name,path:i.path,type:i.type,content:i.content}))};await P.mutateAsync(t)}r()}catch(t){console.error(o?"Failed to update skill:":"Failed to create skill:",t),alert(l(o?"errors.updateFailed":"errors.createFailed"))}},re=()=>{const t={id:Math.random().toString(36).substr(2,9),name:"New File",path:"new-file.md",type:"markdown",content:""};h(i=>({...i,additionalFiles:[...i.additionalFiles,t]}))},le=t=>{h(i=>({...i,additionalFiles:i.additionalFiles.filter(b=>b.id!==t)}))},W=(t,i)=>{h(b=>({...b,additionalFiles:b.additionalFiles.map(w=>w.id===t?{...w,...i}:w)}))},ne=n.name.trim()!==""&&!k&&n.description.trim()!==""&&n.content.trim()!==""&&m.length===0,oe=()=>{switch(x){case"basic":return n.name.trim()!==""&&!k&&n.description.trim()!=="";case"manifest":return n.content.trim()!==""&&m.length===0;case"files":return!0;default:return!1}},G=()=>{if(!L){if(Y(!0),d>H){if(n.name&&n.description){const t=ee(n.name,n.description,n.allowedTools);h(i=>({...i,content:t})),D(Date.now())}}else if(H>d){const t=Be(n.content);if(t&&(t.name&&t.name!==n.name||t.description&&t.description!==n.description||t.allowedTools&&JSON.stringify(t.allowedTools)!==JSON.stringify(n.allowedTools))){h(u=>({...u,name:t.name||u.name,description:t.description||u.description,allowedTools:t.allowedTools||u.allowedTools}));const b=(t.allowedTools||[]).filter(u=>!u.startsWith("mcp__")),w=(t.allowedTools||[]).filter(u=>u.startsWith("mcp__"));E(b),v(w),I(w.length>0),N(Date.now())}}else if(!n.content&&n.name&&n.description){const t=ee(n.name,n.description,n.allowedTools);h(i=>({...i,content:t})),D(Date.now())}setTimeout(()=>Y(!1),100)}},ie=()=>{G(),x==="basic"?p("manifest"):x==="manifest"&&p("files")},de=t=>{G(),p(t)},ce=[{id:"basic",label:l("create.tabs.basic"),icon:we},{id:"manifest",label:l("create.tabs.manifest"),icon:je},{id:"files",label:l("create.tabs.files"),icon:ve}],xe=t=>t?t.length>64?"技能名称不能超过64个字符":/^[a-z0-9-]+$/.test(t)?t.startsWith("-")||t.endsWith("-")?"不能以连字符开始或结束":t.includes("--")?"不能包含连续的连字符":"":"只能使用小写字母、数字和连字符":"",ue=t=>{h(i=>({...i,name:t})),F(xe(t))},me=t=>{t.key==="Escape"&&a()};return o&&K?e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",children:e.jsx("div",{className:"bg-white rounded-lg p-6 w-full max-w-md",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"})})})}):e.jsxs("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",onKeyDown:me,children:[e.jsxs("div",{className:"bg-white rounded-lg w-full max-w-3xl max-h-[90vh] overflow-hidden flex flex-col dark:bg-gray-800 dark:text-white",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",{children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:o?`编辑技能 - ${s?.name}`:l("create.title")}),e.jsx("p",{className:"text-sm text-gray-600 mt-1 dark:text-gray-300",children:o?"修改现有技能的配置和功能":l("create.subtitle")})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[x!=="files"?e.jsx("button",{onClick:ie,disabled:!oe(),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 dark:bg-blue-500 dark:hover:bg-blue-600",children:l("common:actions.next")}):e.jsx("button",{onClick:se,disabled:!ne||P.isPending||R.isPending,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 dark:bg-blue-500 dark:hover:bg-blue-600",children:P.isPending||R.isPending?l("common:status.saving"):l(o?"common:actions.save":"common:actions.create")}),e.jsx("button",{onClick:a,className:"p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded-lg transition-colors dark:text-gray-400 dark:hover:text-gray-200 dark:hover:bg-gray-700",children:e.jsx(_,{className:"w-5 h-5"})})]})]}),e.jsx("div",{className:"flex border-b border-gray-200 dark:border-gray-700",children:ce.map(t=>{const i=t.icon,b=x===t.id,w=t.id==="basic"&&n.name.trim()!==""&&n.description.trim()!==""||t.id==="manifest"&&n.content.trim()!==""&&m.length===0||t.id==="files";return e.jsxs("button",{onClick:()=>de(t.id),className:`flex items-center gap-2 px-6 py-3 font-medium text-sm transition-colors ${b?"text-blue-600 border-b-2 border-blue-600 dark:text-blue-400 dark:border-blue-400":"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"}`,children:[e.jsx(i,{className:"w-4 h-4"}),t.label,w&&e.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500"})]},t.id)})}),e.jsxs("div",{className:"flex-1 overflow-auto p-6",children:[x==="basic"&&e.jsxs("div",{className:"space-y-6 max-w-2xl",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2 dark:text-gray-300",children:"技能名称 (Slug)"}),e.jsx("input",{type:"text",value:n.name,onChange:t=>ue(t.target.value),disabled:o,className:`w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:placeholder-gray-400 dark:focus:ring-blue-400 dark:focus:border-blue-400 font-mono ${o?"bg-gray-100 text-gray-500 cursor-not-allowed dark:bg-gray-600 dark:text-gray-400":k?"border-red-500 focus:ring-red-500 focus:border-red-500":"border-gray-300"}`,placeholder:"my-awesome-skill"}),k?e.jsx("p",{className:"text-xs text-red-500 mt-1 dark:text-red-400",children:k}):e.jsx("p",{className:"text-xs text-gray-500 mt-1 dark:text-gray-400",children:o?"技能名称在编辑模式下不能修改":"只能使用小写字母、数字和连字符,最多64个字符"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2 dark:text-gray-300",children:l("create.basic.description")}),e.jsx("textarea",{value:n.description,onChange:t=>{h(i=>({...i,description:t.target.value}))},rows:3,className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none resize-none dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:placeholder-gray-400 dark:focus:ring-blue-400 dark:focus:border-blue-400",placeholder:l("create.basic.descriptionPlaceholder")}),e.jsx("p",{className:"text-xs text-gray-500 mt-1 dark:text-gray-400",children:l("create.basic.descriptionHint")})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2 dark:text-gray-300",children:l("create.basic.allowedTools")}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>M(!$),className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded-lg transition-colors text-sm",children:l("create.basic.selectTools")}),(S.length>0||g.length>0)&&e.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:["常规工具 ",S.length," 个",g.length>0&&`, MCP工具 ${g.length} 个`]})]}),e.jsx("p",{className:"text-xs text-gray-500 mt-1 dark:text-gray-400",children:l("create.basic.allowedToolsHint")})]})]}),x==="manifest"&&e.jsx("div",{className:"space-y-6 max-w-2xl",children:e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2 dark:text-gray-300",children:l("create.content.skillManifest")}),e.jsx("textarea",{value:n.content,onChange:t=>h(i=>({...i,content:t.target.value})),rows:15,className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none font-mono text-sm resize-none dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:focus:ring-blue-400 dark:focus:border-blue-400"}),m.length>0&&e.jsxs("div",{className:"mt-2 p-3 bg-red-50 border border-red-200 rounded-lg dark:bg-red-900/20 dark:border-red-800",children:[e.jsxs("h4",{className:"text-sm font-medium text-red-800 mb-1 dark:text-red-400",children:[l("editor.errors.validationErrors"),":"]}),e.jsx("ul",{className:"text-sm text-red-700 space-y-1 dark:text-red-300",children:m.map((t,i)=>e.jsxs("li",{children:["• ",t]},i))})]})]})}),x==="files"&&e.jsxs("div",{className:"space-y-6 max-w-2xl",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h3",{className:"text-lg font-medium text-gray-900 dark:text-white",children:l("create.content.additionalFiles")}),e.jsxs("button",{onClick:re,className:"flex items-center gap-2 px-3 py-2 bg-green-600 text-white rounded-lg hover:bg-green-700 transition-colors dark:bg-green-500 dark:hover:bg-green-600",children:[e.jsx(ae,{className:"w-4 h-4"}),l("create.content.addFile")]})]}),n.additionalFiles.length===0?e.jsxs("div",{className:"text-center py-8 border-2 border-dashed border-gray-300 rounded-lg",children:[e.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:l("create.content.noFiles")}),e.jsx("p",{className:"text-sm text-gray-500 mt-1 dark:text-gray-400",children:l("create.content.noFilesHint")})]}):e.jsx("div",{className:"space-y-4",children:n.additionalFiles.map(t=>e.jsxs("div",{className:"border border-gray-200 rounded-lg p-4 dark:border-gray-700",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1",children:[e.jsx("input",{type:"text",value:t.name,onChange:i=>W(t.id,{name:i.target.value}),className:"flex-1 px-2 py-1 border border-gray-300 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:focus:ring-blue-400 dark:focus:border-blue-400",placeholder:l("create.content.fileName")}),e.jsx("input",{type:"text",value:t.path,onChange:i=>W(t.id,{path:i.target.value}),className:"flex-1 px-2 py-1 border border-gray-300 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none font-mono text-sm dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:focus:ring-blue-400 dark:focus:border-blue-400",placeholder:l("create.content.filePath")}),e.jsxs("select",{value:t.type,onChange:i=>W(t.id,{type:i.target.value}),className:"px-2 py-1 border border-gray-300 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:focus:ring-blue-400 dark:focus:border-blue-400",children:[e.jsx("option",{value:"markdown",children:l("create.content.fileType.markdown")}),e.jsx("option",{value:"text",children:l("create.content.fileType.text")}),e.jsx("option",{value:"script",children:l("create.content.fileType.script")}),e.jsx("option",{value:"template",children:l("create.content.fileType.template")}),e.jsx("option",{value:"other",children:l("create.content.fileType.other")})]})]}),e.jsx("button",{onClick:()=>le(t.id),className:"p-1 text-red-500 hover:text-red-700 hover:bg-red-50 rounded transition-colors dark:text-red-400 dark:hover:text-red-300 dark:hover:bg-red-900/20",children:e.jsx(_,{className:"w-4 h-4"})})]}),e.jsx("textarea",{value:t.content,onChange:i=>W(t.id,{content:i.target.value}),rows:6,className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none font-mono text-sm resize-none dark:bg-gray-700 dark:border-gray-600 dark:text-white dark:placeholder-gray-400 dark:focus:ring-blue-400 dark:focus:border-blue-400",placeholder:l("create.content.fileContent")})]},t.id))})]})]})]}),e.jsx(ke,{isOpen:$,onClose:()=>M(!1),selectedRegularTools:S,onRegularToolsChange:E,selectedMcpTools:g,onMcpToolsChange:v,mcpToolsEnabled:T,onMcpEnabledChange:I})]})};function Be(a){try{const r=a.match(/^---\s*\n(.*?)\n---/s);if(!r)return null;const l=r[1].split(`
2
+ `),o={};for(const x of l){const p=x.trim();if(p.startsWith("name:"))o.name=p.replace("name:","").trim();else if(p.startsWith("description:"))o.description=p.replace("description:","").trim();else if(p.startsWith("allowed-tools:")){const n=p.replace("allowed-tools:","").trim();if(n.startsWith("[")&&n.endsWith("]")){const h=n.slice(1,-1).split(",").map(m=>m.trim().replace(/^"(.*)"$/,"$1")).filter(m=>m.length>0);o.allowedTools=h}}}return o}catch(r){return console.error("Failed to parse skill content:",r),null}}function ee(a,r,s){const l=s.length>0?`
3
+ allowed-tools: [${s.map(x=>`"${x}"`).join(", ")}]`:"",o=a.split("-").map(x=>x.charAt(0).toUpperCase()+x.slice(1)).join(" ");return`---
4
+ name: ${a}
5
+ description: ${r}${l}
6
+ ---
7
+
8
+ # ${o}
9
+
10
+ ## Description
11
+ ${r}
12
+
13
+ ## Instructions
14
+ Provide clear, step-by-step guidance for Claude on how to use this skill.
15
+
16
+ ## Examples
17
+ Show concrete examples of using this skill.
18
+ `}const Ke=({skill:a,onClose:r})=>{const{t:s}=J("skills"),[l,o]=c.useState(""),[x,p]=c.useState(!0),[n,h]=c.useState([]);return c.useEffect(()=>{(async()=>{try{p(!0);const j=await f(`${Q}/skills/${a.id}/files/SKILL.md`);if(j.ok){const F=await j.json();o(F.content)}const k=await f(`${Q}/skills/${a.id}?scope=${a.scope}`);if(k.ok){const S=((await k.json()).skill?.files||[]).filter(g=>!g.path.endsWith("SKILL.md")),E=await Promise.all(S.map(async g=>{try{const v=await f(`${Q}/skills/${a.id}/files/${g.path}`);if(v.ok){const T=await v.json();return{name:g.path,content:T.content}}}catch(v){console.error(`Failed to load file ${g.path}:`,v)}return null}));h(E.filter(Boolean))}}catch(j){console.error("Failed to load skill content:",j)}finally{p(!1)}})()},[a.id,a.scope]),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 shadow-xl max-w-4xl w-full max-h-[90vh] overflow-hidden flex flex-col",children:[e.jsxs("div",{className:"px-6 py-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:a.name}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300",children:s("scope.user")}),e.jsx("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300",children:a.source==="plugin"?s("source.plugin"):s("source.local")})]})]}),e.jsx(z,{variant:"ghost",onClick:r,className:"ml-4",children:e.jsx(_,{className:"w-5 h-5"})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-6",children:x?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"})}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:s("detail.description")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:a.description})]}),a.allowedTools&&a.allowedTools.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:s("detail.allowedTools")}),e.jsx("div",{className:"flex flex-wrap gap-2",children:a.allowedTools.map(m=>e.jsx("span",{className:"inline-flex items-center px-2 py-1 rounded-md text-xs font-mono bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300",children:m},m))})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"SKILL.md"}),e.jsx("pre",{className:"bg-gray-50 dark:bg-gray-900 rounded-lg p-4 text-sm overflow-x-auto",children:e.jsx("code",{className:"text-gray-800 dark:text-gray-200",children:l})})]}),n.length>0&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:s("detail.additionalFiles")}),e.jsx("div",{className:"space-y-4",children:n.map(m=>e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-gray-600 dark:text-gray-400 mb-1",children:m.name}),e.jsx("pre",{className:"bg-gray-50 dark:bg-gray-900 rounded-lg p-4 text-sm overflow-x-auto",children:e.jsx("code",{className:"text-gray-800 dark:text-gray-200",children:m.content})})]},m.name))})]})]})}),e.jsx("div",{className:"px-6 py-4 border-t border-gray-200 dark:border-gray-700 flex justify-end",children:e.jsx(z,{variant:"outline",onClick:r,children:s("detail.close")})})]})})},We=({isOpen:a,onClose:r,skillName:s,installPath:l})=>{const{t:o}=J("skills");return a?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 shadow-xl max-w-[1200px] w-full h-[90vh] overflow-hidden flex flex-col",children:[e.jsxs("div",{className:"px-6 py-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:[s," - ",o("detail.files")]}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:l})]}),e.jsx(z,{variant:"ghost",onClick:r,className:"ml-4",children:e.jsx(_,{className:"w-5 h-5"})})]}),e.jsx("div",{className:"flex-1 overflow-hidden min-h-0",children:e.jsx($e,{projectPath:l,onFileSelect:x=>{console.log("Selected file:",x)},className:"h-full"})}),e.jsx("div",{className:"px-6 py-4 border-t border-gray-200 dark:border-gray-700 flex justify-end",children:e.jsx(z,{variant:"outline",onClick:r,children:o("detail.close")})})]})}):null},qe=()=>{const{t:a}=J("skills"),[r,s]=c.useState(""),[l,o]=c.useState(null),[x,p]=c.useState(!1),[n,h]=c.useState(!1),[m,j]=c.useState(null),[k,F]=c.useState(!1),[$,M]=c.useState(null),[S,E]=c.useState({}),{data:g=[],isLoading:v,error:T}=Le({scope:"user",includeDisabled:!1}),I=Ie(),P=g.filter(d=>d.name.toLowerCase().includes(r.toLowerCase())||d.description.toLowerCase().includes(r.toLowerCase())),R=d=>{j(d),h(!0)},U=d=>{o(d),p(!0)},B=async d=>{try{const N=await f(`${Q}/skills/${d.id}?scope=${d.scope}`);if(N.ok){const D=(await N.json()).skill;D.installPath&&(M({name:d.name,installPath:D.installPath}),F(!0))}}catch(N){console.error("Failed to fetch skill data:",N)}},C=async d=>{if(window.confirm(a("deleteConfirm",{name:d.name})))try{await I.mutateAsync({skillId:d.id,scope:"user"})}catch(N){console.error("Failed to delete skill:",N),alert(a("errors.deleteFailed"))}},K=()=>{o(null),p(!0)};return T?e.jsx("div",{className:"p-6",children:e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded-lg p-4 dark:bg-red-900/20 dark:border-red-800",children:[e.jsx("h3",{className:"text-red-800 font-medium dark:text-red-400",children:a("errors.loadFailed")}),e.jsx("p",{className:"text-red-600 text-sm mt-1 dark:text-red-300",children:T instanceof Error?T.message:"An unknown error occurred"})]})}):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:a("title")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mt-2",children:a("subtitle")})]})}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(Ne,{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:a("searchPlaceholder"),value:r,onChange:d=>s(d.target.value),className:"pl-10 pr-4 py-3 w-full border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-gray-700 dark:text-white"})]}),e.jsxs("button",{onClick:K,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(ae,{className:"w-5 h-5"}),e.jsx("span",{children:a("createButton")})]})]})]}),v?e.jsx("div",{className:"flex items-center justify-center h-64",children:e.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"})}):P.length===0?e.jsxs("div",{className:"text-center py-16 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx("div",{className:"text-6xl mb-4",children:"⚡"}),e.jsx("h3",{className:"text-xl font-medium text-gray-900 dark:text-white mb-2",children:a(r?"noSkillsSearch":"noSkills")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:a(r?"adjustSearch":"createFirst")}),!r&&e.jsx("button",{onClick:K,className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:a("createButton")})]}):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(ge,{children:[e.jsx(be,{children:e.jsxs(Z,{children:[e.jsx(q,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:a("table.skill")}),e.jsx(q,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-96",children:a("table.tools")}),e.jsx(q,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-40",children:a("table.updated")}),e.jsx(q,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-32",children:a("table.actions")})]})}),e.jsx(fe,{children:P.map(d=>e.jsxs(Z,{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:[e.jsx(O,{className:"px-6 py-4 max-w-xs",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"text-2xl mr-4 flex-shrink-0",children:"⚡"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("div",{className:`text-sm font-medium ${d.enabled?"text-gray-900 dark:text-white":"text-gray-600 dark:text-gray-400"} truncate`,children:d.name}),e.jsx("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-300 flex-shrink-0",children:a("scope.user")}),e.jsx("span",{className:`inline-flex items-center px-2 py-1 rounded-full text-xs font-medium flex-shrink-0 ${d.source==="plugin"?"bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300":"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300"}`,children:d.source==="plugin"?a("source.plugin"):a("source.local")})]}),e.jsx("div",{className:`text-sm ${d.enabled?"text-gray-500 dark:text-gray-400":"text-gray-400 dark:text-gray-500"} line-clamp-2`,children:d.description})]})]})}),e.jsx(O,{className:"px-6 py-4",children:e.jsx(Ee,{tools:d.allowedTools||[],id:d.id,expandedTools:S,setExpandedTools:E,isMobile:!1,emptyMessage:"无工具限制"})}),e.jsxs(O,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-500 dark:text-gray-400 w-40",children:[new Date(d.updatedAt).toLocaleDateString(),d.usageCount!==void 0&&d.usageCount>0&&e.jsx("div",{className:"text-xs text-gray-400 dark:text-gray-500",children:a("preview.usage",{count:d.usageCount})})]}),e.jsx(O,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium w-32",children:e.jsx("div",{className:"flex items-center space-x-2",children:d.source==="plugin"?e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>R(d),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded transition-colors",title:a("preview.actions.view"),children:e.jsx(Se,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>B(d),className:"p-1 text-purple-600 hover:bg-purple-50 dark:hover:bg-purple-900/50 rounded transition-colors",title:a("preview.actions.browseFiles"),children:e.jsx(Te,{className:"w-4 h-4"})})]}):e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:()=>U(d),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded transition-colors",title:a("preview.actions.edit"),children:e.jsx(Ce,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>C(d),className:"p-1 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded transition-colors",title:a("preview.actions.delete"),children:e.jsx(Fe,{className:"w-4 h-4"})})]})})})]},d.id))})]})}),x&&e.jsx(Ue,{onClose:()=>{p(!1),o(null)},onSuccess:()=>{p(!1),o(null)},editSkill:l||void 0}),n&&m&&e.jsx(Ke,{skill:m,onClose:()=>{h(!1),j(null)}}),k&&$&&e.jsx(We,{isOpen:k,skillName:$.name,installPath:$.installPath,onClose:()=>{F(!1),M(null)}})]})},tt=()=>e.jsx(qe,{});export{tt as SkillsPage};
@@ -1,7 +1,7 @@
1
- import{j as e}from"./data-structures-DLJedtzx.js";import{r as b}from"./monaco-editor-C7Z4sOhS.js";import{f as A,e as w,h as k,A as m,i as H}from"./agents-ClAzIJTw.js";import{a as g}from"./authFetch-BATQyPG5.js";import{U as V}from"./UnifiedToolSelector-CsM9qBvs.js";import{u as X}from"./tools-C4EPanYi.js";import{c as Y,n as Z,r as I,ag as ee,Q as te,k as F}from"./ui-components-Cw21Epuw.js";const se=async(t={})=>{try{const o=new URLSearchParams;t.search&&o.append("search",t.search);const n=await g(`${m}/subagents?${o}`);if(!n.ok)throw new Error("Failed to fetch subagents");return n.json()}catch(o){if(H(o))return[];throw o}},re=async t=>{const o=await g(`${m}/subagents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const n=await o.json();throw new Error(n.error||"Failed to create subagent")}return o.json()},oe=async({id:t,...o})=>{const n=await g(`${m}/subagents/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok){const h=await n.json();throw new Error(h.error||"Failed to update subagent")}return n.json()},ae=async t=>{const o=await g(`${m}/subagents/${t}`,{method:"DELETE"});if(!o.ok){const n=await o.json();throw new Error(n.error||"Failed to delete subagent")}},ke=(t={})=>A({queryKey:["subagents",t],queryFn:()=>se(t),retry:!1}),ne=()=>{const t=w();return k({mutationFn:re,onSuccess:()=>{t.invalidateQueries({queryKey:["subagents"]})}})},ce=()=>{const t=w();return k({mutationFn:oe,onSuccess:o=>{t.invalidateQueries({queryKey:["subagents"]}),t.invalidateQueries({queryKey:["subagent",o.id]})}})},ve=()=>{const t=w();return k({mutationFn:ae,onSuccess:()=>{t.invalidateQueries({queryKey:["subagents"]})}})},ie=async(t,o={})=>{const n=await g(`${m}/projects`);if(!n.ok)throw new Error("Failed to fetch project info");const r=(await n.json()).projects.find(i=>i.id===t);if(!r)throw new Error("Project not found");const c=new URLSearchParams;c.append("projectPath",r.path),o.search&&c.append("search",o.search);const l=await g(`${m}/subagents?${c}`);if(!l.ok)throw new Error("Failed to fetch project subagents");return l.json()},Se=t=>A({queryKey:["subagents","project",t.projectId,t.search],queryFn:()=>ie(t.projectId,{search:t.search}),staleTime:1e3*60*5}),le=async(t,o)=>{const n=await g(`${m}/projects`);if(!n.ok)throw new Error("Failed to fetch project info");const r=(await n.json()).projects.find(i=>i.id===t);if(!r)throw new Error("Project not found");const c=new URLSearchParams;c.append("projectPath",r.path);const l=await g(`${m}/subagents?${c}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!l.ok){const i=await l.json();throw new Error(i.error||"Failed to create subagent")}return l.json()},de=async(t,o)=>{const n=await g(`${m}/projects`);if(!n.ok)throw new Error("Failed to fetch project info");const r=(await n.json()).projects.find(u=>u.id===t);if(!r)throw new Error("Project not found");const{id:c,...l}=o,i=new URLSearchParams;i.append("projectPath",r.path);const f=await g(`${m}/subagents/${c}?${i}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!f.ok){const u=await f.json();throw new Error(u.error||"Failed to update subagent")}return f.json()},ue=async(t,o)=>{const n=await g(`${m}/projects`);if(!n.ok)throw new Error("Failed to fetch project info");const r=(await n.json()).projects.find(i=>i.id===t);if(!r)throw new Error("Project not found");const c=new URLSearchParams;c.append("projectPath",r.path);const l=await g(`${m}/subagents/${o}?${c}`,{method:"DELETE"});if(!l.ok){const i=await l.json();throw new Error(i.error||"Failed to delete subagent")}},me=t=>{const o=w();return k({mutationFn:n=>le(t,n),onSuccess:()=>{o.invalidateQueries({queryKey:["subagents","project",t]})}})},ge=t=>{const o=w();return k({mutationFn:n=>de(t,n),onSuccess:n=>{o.invalidateQueries({queryKey:["subagents","project",t]}),o.invalidateQueries({queryKey:["subagent",n.id]})}})},Fe=t=>{const o=w();return k({mutationFn:n=>ue(t,n),onSuccess:()=>{o.invalidateQueries({queryKey:["subagents","project",t]})}})},pe=[{value:"user",label:"个人Subagent",description:"存储在用户配置中,仅个人使用"},{value:"project",label:"项目Subagent",description:"存储在项目中,项目成员共享"}],Ne=({subagent:t,projectId:o,onClose:n,onSuccess:h})=>{const{t:r}=X("components"),[c,l]=b.useState({name:"",description:"",content:"",scope:o?"project":"user",tools:[]}),[i,f]=b.useState({}),[u,J]=b.useState(!1),[N,C]=b.useState(""),[M,R]=b.useState(!1),[y,E]=b.useState([]),[j,v]=b.useState([]),[D,T]=b.useState(!1),U=o?me(o):ne(),Q=o?ge(o):ce(),S=!!t,K=s=>{const a=[];return a.push(`name: ${s.name}`),s.description&&a.push(`description: ${s.description}`),s.tools&&s.tools.length>0&&a.push(`tools: ${s.tools.join(", ")}`),a.length>0?`---
1
+ import{j as e}from"./data-structures-C0h9Oap1.js";import{r as b}from"./monaco-editor-DHKm5-VF.js";import{u as A,b as w,c as k,a as m,A as g,i as H}from"./agents-C4aCwcCz.js";import{U as V}from"./UnifiedToolSelector-A2UIt1Xn.js";import{u as X}from"./tools-C7xmF_rB.js";import{d as Y,o as Z,y as I,a5 as ee,a6 as te,j as F}from"./ui-components-BNdpaz32.js";const se=async(t={})=>{try{const o=new URLSearchParams;t.search&&o.append("search",t.search);const n=await m(`${g}/subagents?${o}`);if(!n.ok)throw new Error("Failed to fetch subagents");return n.json()}catch(o){if(H(o))return[];throw o}},re=async t=>{const o=await m(`${g}/subagents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!o.ok){const n=await o.json();throw new Error(n.error||"Failed to create subagent")}return o.json()},oe=async({id:t,...o})=>{const n=await m(`${g}/subagents/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!n.ok){const h=await n.json();throw new Error(h.error||"Failed to update subagent")}return n.json()},ae=async t=>{const o=await m(`${g}/subagents/${t}`,{method:"DELETE"});if(!o.ok){const n=await o.json();throw new Error(n.error||"Failed to delete subagent")}},we=(t={})=>A({queryKey:["subagents",t],queryFn:()=>se(t),retry:!1}),ne=()=>{const t=w();return k({mutationFn:re,onSuccess:()=>{t.invalidateQueries({queryKey:["subagents"]})}})},ce=()=>{const t=w();return k({mutationFn:oe,onSuccess:o=>{t.invalidateQueries({queryKey:["subagents"]}),t.invalidateQueries({queryKey:["subagent",o.id]})}})},ke=()=>{const t=w();return k({mutationFn:ae,onSuccess:()=>{t.invalidateQueries({queryKey:["subagents"]})}})},ie=async(t,o={})=>{const n=await m(`${g}/projects`);if(!n.ok)throw new Error("Failed to fetch project info");const r=(await n.json()).projects.find(i=>i.id===t);if(!r)throw new Error("Project not found");const c=new URLSearchParams;c.append("projectPath",r.path),o.search&&c.append("search",o.search);const l=await m(`${g}/subagents?${c}`);if(!l.ok)throw new Error("Failed to fetch project subagents");return l.json()},ve=t=>A({queryKey:["subagents","project",t.projectId,t.search],queryFn:()=>ie(t.projectId,{search:t.search}),staleTime:1e3*60*5}),le=async(t,o)=>{const n=await m(`${g}/projects`);if(!n.ok)throw new Error("Failed to fetch project info");const r=(await n.json()).projects.find(i=>i.id===t);if(!r)throw new Error("Project not found");const c=new URLSearchParams;c.append("projectPath",r.path);const l=await m(`${g}/subagents?${c}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!l.ok){const i=await l.json();throw new Error(i.error||"Failed to create subagent")}return l.json()},de=async(t,o)=>{const n=await m(`${g}/projects`);if(!n.ok)throw new Error("Failed to fetch project info");const r=(await n.json()).projects.find(u=>u.id===t);if(!r)throw new Error("Project not found");const{id:c,...l}=o,i=new URLSearchParams;i.append("projectPath",r.path);const f=await m(`${g}/subagents/${c}?${i}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!f.ok){const u=await f.json();throw new Error(u.error||"Failed to update subagent")}return f.json()},ue=async(t,o)=>{const n=await m(`${g}/projects`);if(!n.ok)throw new Error("Failed to fetch project info");const r=(await n.json()).projects.find(i=>i.id===t);if(!r)throw new Error("Project not found");const c=new URLSearchParams;c.append("projectPath",r.path);const l=await m(`${g}/subagents/${o}?${c}`,{method:"DELETE"});if(!l.ok){const i=await l.json();throw new Error(i.error||"Failed to delete subagent")}},me=t=>{const o=w();return k({mutationFn:n=>le(t,n),onSuccess:()=>{o.invalidateQueries({queryKey:["subagents","project",t]})}})},ge=t=>{const o=w();return k({mutationFn:n=>de(t,n),onSuccess:n=>{o.invalidateQueries({queryKey:["subagents","project",t]}),o.invalidateQueries({queryKey:["subagent",n.id]})}})},Se=t=>{const o=w();return k({mutationFn:n=>ue(t,n),onSuccess:()=>{o.invalidateQueries({queryKey:["subagents","project",t]})}})},pe=[{value:"user",label:"个人Subagent",description:"存储在用户配置中,仅个人使用"},{value:"project",label:"项目Subagent",description:"存储在项目中,项目成员共享"}],Fe=({subagent:t,projectId:o,onClose:n,onSuccess:h})=>{const{t:r}=X("components"),[c,l]=b.useState({name:"",description:"",content:"",scope:o?"project":"user",tools:[]}),[i,f]=b.useState({}),[u,J]=b.useState(!1),[N,C]=b.useState(""),[M,R]=b.useState(!1),[y,E]=b.useState([]),[j,v]=b.useState([]),[D,T]=b.useState(!1),U=o?me(o):ne(),Q=o?ge(o):ce(),S=!!t,K=s=>{const a=[];return a.push(`name: ${s.name}`),s.description&&a.push(`description: ${s.description}`),s.tools&&s.tools.length>0&&a.push(`tools: ${s.tools.join(", ")}`),a.length>0?`---
2
2
  ${a.join(`
3
3
  `)}
4
4
  ---
5
5
 
6
6
  ${s.content}`:s.content},O=s=>{const a=s.match(/^---\n(.*?)\n---\n\n?(.*)/s);if(!a)return{content:s};const[,d,x]=a,p={content:x};return d.split(`
7
- `).forEach($=>{const P=$.indexOf(":");if(P===-1)return;const B=$.substring(0,P).trim(),q=$.substring(P+1).trim();switch(B){case"name":p.name=q;break;case"description":p.description=q;break;case"tools":p.tools=q.split(",").map(G=>G.trim()).filter(Boolean);break}}),p};b.useEffect(()=>{if(t){const s=t.tools||[],a=s.filter(x=>x.startsWith("mcp__")),d=s.filter(x=>!x.startsWith("mcp__"));l({name:t.name,description:t.description,content:t.content,scope:t.scope,tools:s}),E(d),v(a),T(a.length>0),C(K({name:t.name,description:t.description,content:t.content,scope:t.scope,tools:s}))}},[t]);const W=()=>{const s={};return c.name.trim()?/^[a-z0-9-]+$/.test(c.name)||(s.name=r("subagentForm.validation.nameFormat")):s.name=r("subagentForm.validation.nameRequired"),c.description.trim()||(s.description=r("subagentForm.validation.descriptionRequired")),c.content.trim()||(s.content=r("subagentForm.validation.contentRequired")),f(s),Object.keys(s).length===0},z=async s=>{s.preventDefault();let a=c;if(u){const d=O(N);a={...c,...d}}if(W())try{if(S&&t){const d={description:a.description,content:a.content,tools:a.tools};await Q.mutateAsync({id:t.id,...d})}else await U.mutateAsync(a);h(),n()}catch(d){console.error("Error saving subagent:",d),f({submit:d instanceof Error?d.message:r("subagentForm.errors.saveFailed")})}},_=()=>{if(u){const s=O(N),a=s.tools||[],d=a.filter(p=>p.startsWith("mcp__")),x=a.filter(p=>!p.startsWith("mcp__"));l(p=>({...p,...s,tools:a})),E(x),v(d),T(d.length>0)}else C(K(c));J(!u)},L=U.isPending||Q.isPending;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 max-w-4xl w-full max-h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700 flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:r(S?"subagentForm.title.edit":"subagentForm.title.create")}),e.jsxs("div",{className:"flex items-center bg-gray-100 dark:bg-gray-700 rounded-lg p-1",children:[e.jsxs("button",{type:"button",onClick:()=>!u||_(),className:`flex items-center space-x-1 px-3 py-1.5 rounded-md text-sm transition-colors ${u?"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white":"bg-white dark:bg-gray-800 text-blue-600 shadow-sm"}`,children:[e.jsx(Y,{className:"h-4 w-4"}),e.jsx("span",{children:r("subagentForm.mode.form")})]}),e.jsxs("button",{type:"button",onClick:()=>u||_(),className:`flex items-center space-x-1 px-3 py-1.5 rounded-md text-sm transition-colors ${u?"bg-white dark:bg-gray-800 text-blue-600 shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"}`,children:[e.jsx(Z,{className:"h-4 w-4"}),e.jsx("span",{children:r("subagentForm.mode.code")})]})]})]}),e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("button",{type:"button",onClick:n,className:"px-4 py-2 text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700 rounded-lg transition-colors",children:r("subagentForm.actions.cancel")}),e.jsxs("button",{type:"submit",form:"subagent-form",disabled:L,className:"flex items-center space-x-2 px-4 py-2 bg-blue-600 hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed text-white rounded-lg transition-colors",children:[e.jsx(I,{className:"h-4 w-4"}),e.jsx("span",{children:r(L?"subagentForm.actions.saving":S?"subagentForm.actions.saveChanges":"subagentForm.actions.create")})]})]})]}),e.jsx("form",{id:"subagent-form",onSubmit:z,className:"flex-1 overflow-y-auto",children:e.jsxs("div",{className:"p-6 space-y-6",children:[u?e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start space-x-2 p-3 bg-blue-50 dark:bg-blue-900/30 rounded-lg",children:[e.jsx(ee,{className:"h-5 w-5 text-blue-600 dark:text-blue-400 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"text-sm text-blue-800 dark:text-blue-300",children:[e.jsx("p",{className:"font-medium",children:r("subagentForm.codeMode.title")}),e.jsx("p",{children:r("subagentForm.codeMode.description")})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.codeMode.label")}),e.jsx("textarea",{value:N,onChange:s=>C(s.target.value),className:"w-full h-96 px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-sm",placeholder:r("subagentForm.codeMode.placeholder")})]})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[r("subagentForm.fields.name.label"),e.jsx(te,{className:"inline h-4 w-4 ml-1 text-gray-400"})]}),e.jsx("input",{type:"text",value:c.name,onChange:s=>l(a=>({...a,name:s.target.value})),className:`w-full px-3 py-2 border rounded-lg dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 ${i.name?"border-red-500":"border-gray-300 dark:border-gray-600"}`,placeholder:r("subagentForm.fields.name.placeholder"),disabled:S}),i.name&&e.jsxs("p",{className:"mt-1 text-sm text-red-600 flex items-center",children:[e.jsx(F,{className:"h-4 w-4 mr-1"}),i.name]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.fields.scope.label")}),e.jsx("select",{value:c.scope,onChange:s=>l(a=>({...a,scope: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 bg-gray-100",disabled:!0,children:o?e.jsx("option",{value:"project",children:r("subagentForm.fields.scope.projectScope")}):pe.map(s=>e.jsx("option",{value:s.value,children:s.label},s.value))})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.fields.description.label")}),e.jsx("input",{type:"text",value:c.description,onChange:s=>l(a=>({...a,description:s.target.value})),className:`w-full px-3 py-2 border rounded-lg dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 ${i.description?"border-red-500":"border-gray-300 dark:border-gray-600"}`,placeholder:r("subagentForm.fields.description.placeholder")}),i.description&&e.jsxs("p",{className:"mt-1 text-sm text-red-600 flex items-center",children:[e.jsx(F,{className:"h-4 w-4 mr-1"}),i.description]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.fields.tools.label")}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>R(!M),className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded-lg transition-colors text-sm",children:r("subagentForm.fields.tools.selectTools")}),(y.length>0||j.length>0)&&e.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:[r("subagentForm.fields.tools.regularToolsCount",{count:y.length}),j.length>0&&`, ${r("subagentForm.fields.tools.mcpToolsCount",{count:j.length})}`]}),e.jsx(V,{isOpen:M,onClose:()=>R(!1),selectedRegularTools:y,selectedMcpTools:j,mcpToolsEnabled:D,onRegularToolsChange:s=>{E(s);const a=D?[...s,...j]:s;l({...c,tools:a})},onMcpToolsChange:s=>{v(s);const a=[...y,...s];l({...c,tools:a})},onMcpEnabledChange:s=>{if(T(s),!s)v([]),l({...c,tools:y});else{const a=[...y,...j];l({...c,tools:a})}}})]}),e.jsx("p",{className:"mt-1 text-sm text-gray-500 dark:text-gray-400",children:r("subagentForm.fields.tools.hint")})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.fields.content.label")}),e.jsx("textarea",{value:c.content,onChange:s=>l(a=>({...a,content:s.target.value})),className:`w-full h-48 px-3 py-2 border rounded-lg dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y ${i.content?"border-red-500":"border-gray-300 dark:border-gray-600"}`,placeholder:r("subagentForm.fields.content.placeholder")}),i.content&&e.jsxs("p",{className:"mt-1 text-sm text-red-600 flex items-center",children:[e.jsx(F,{className:"h-4 w-4 mr-1"}),i.content]})]})]}),i.submit&&e.jsx("div",{className:"mt-4 p-3 bg-red-50 dark:bg-red-900/30 border border-red-200 dark:border-red-800 rounded-lg",children:e.jsxs("p",{className:"text-sm text-red-600 dark:text-red-400 flex items-center",children:[e.jsx(F,{className:"h-4 w-4 mr-2"}),i.submit]})})]})})]})})};export{Ne as S,Fe as a,ke as b,ve as c,Se as u};
7
+ `).forEach($=>{const P=$.indexOf(":");if(P===-1)return;const B=$.substring(0,P).trim(),q=$.substring(P+1).trim();switch(B){case"name":p.name=q;break;case"description":p.description=q;break;case"tools":p.tools=q.split(",").map(G=>G.trim()).filter(Boolean);break}}),p};b.useEffect(()=>{if(t){const s=t.tools||[],a=s.filter(x=>x.startsWith("mcp__")),d=s.filter(x=>!x.startsWith("mcp__"));l({name:t.name,description:t.description,content:t.content,scope:t.scope,tools:s}),E(d),v(a),T(a.length>0),C(K({name:t.name,description:t.description,content:t.content,scope:t.scope,tools:s}))}},[t]);const W=()=>{const s={};return c.name.trim()?/^[a-z0-9-]+$/.test(c.name)||(s.name=r("subagentForm.validation.nameFormat")):s.name=r("subagentForm.validation.nameRequired"),c.description.trim()||(s.description=r("subagentForm.validation.descriptionRequired")),c.content.trim()||(s.content=r("subagentForm.validation.contentRequired")),f(s),Object.keys(s).length===0},z=async s=>{s.preventDefault();let a=c;if(u){const d=O(N);a={...c,...d}}if(W())try{if(S&&t){const d={description:a.description,content:a.content,tools:a.tools};await Q.mutateAsync({id:t.id,...d})}else await U.mutateAsync(a);h(),n()}catch(d){console.error("Error saving subagent:",d),f({submit:d instanceof Error?d.message:r("subagentForm.errors.saveFailed")})}},_=()=>{if(u){const s=O(N),a=s.tools||[],d=a.filter(p=>p.startsWith("mcp__")),x=a.filter(p=>!p.startsWith("mcp__"));l(p=>({...p,...s,tools:a})),E(x),v(d),T(d.length>0)}else C(K(c));J(!u)},L=U.isPending||Q.isPending;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 max-w-4xl w-full max-h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700 flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:r(S?"subagentForm.title.edit":"subagentForm.title.create")}),e.jsxs("div",{className:"flex items-center bg-gray-100 dark:bg-gray-700 rounded-lg p-1",children:[e.jsxs("button",{type:"button",onClick:()=>!u||_(),className:`flex items-center space-x-1 px-3 py-1.5 rounded-md text-sm transition-colors ${u?"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white":"bg-white dark:bg-gray-800 text-blue-600 shadow-sm"}`,children:[e.jsx(Y,{className:"h-4 w-4"}),e.jsx("span",{children:r("subagentForm.mode.form")})]}),e.jsxs("button",{type:"button",onClick:()=>u||_(),className:`flex items-center space-x-1 px-3 py-1.5 rounded-md text-sm transition-colors ${u?"bg-white dark:bg-gray-800 text-blue-600 shadow-sm":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"}`,children:[e.jsx(Z,{className:"h-4 w-4"}),e.jsx("span",{children:r("subagentForm.mode.code")})]})]})]}),e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("button",{type:"button",onClick:n,className:"px-4 py-2 text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700 rounded-lg transition-colors",children:r("subagentForm.actions.cancel")}),e.jsxs("button",{type:"submit",form:"subagent-form",disabled:L,className:"flex items-center space-x-2 px-4 py-2 bg-blue-600 hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed text-white rounded-lg transition-colors",children:[e.jsx(I,{className:"h-4 w-4"}),e.jsx("span",{children:r(L?"subagentForm.actions.saving":S?"subagentForm.actions.saveChanges":"subagentForm.actions.create")})]})]})]}),e.jsx("form",{id:"subagent-form",onSubmit:z,className:"flex-1 overflow-y-auto",children:e.jsxs("div",{className:"p-6 space-y-6",children:[u?e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start space-x-2 p-3 bg-blue-50 dark:bg-blue-900/30 rounded-lg",children:[e.jsx(ee,{className:"h-5 w-5 text-blue-600 dark:text-blue-400 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"text-sm text-blue-800 dark:text-blue-300",children:[e.jsx("p",{className:"font-medium",children:r("subagentForm.codeMode.title")}),e.jsx("p",{children:r("subagentForm.codeMode.description")})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.codeMode.label")}),e.jsx("textarea",{value:N,onChange:s=>C(s.target.value),className:"w-full h-96 px-3 py-2 border border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-sm",placeholder:r("subagentForm.codeMode.placeholder")})]})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[r("subagentForm.fields.name.label"),e.jsx(te,{className:"inline h-4 w-4 ml-1 text-gray-400"})]}),e.jsx("input",{type:"text",value:c.name,onChange:s=>l(a=>({...a,name:s.target.value})),className:`w-full px-3 py-2 border rounded-lg dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 ${i.name?"border-red-500":"border-gray-300 dark:border-gray-600"}`,placeholder:r("subagentForm.fields.name.placeholder"),disabled:S}),i.name&&e.jsxs("p",{className:"mt-1 text-sm text-red-600 flex items-center",children:[e.jsx(F,{className:"h-4 w-4 mr-1"}),i.name]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.fields.scope.label")}),e.jsx("select",{value:c.scope,onChange:s=>l(a=>({...a,scope: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 bg-gray-100",disabled:!0,children:o?e.jsx("option",{value:"project",children:r("subagentForm.fields.scope.projectScope")}):pe.map(s=>e.jsx("option",{value:s.value,children:s.label},s.value))})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.fields.description.label")}),e.jsx("input",{type:"text",value:c.description,onChange:s=>l(a=>({...a,description:s.target.value})),className:`w-full px-3 py-2 border rounded-lg dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 ${i.description?"border-red-500":"border-gray-300 dark:border-gray-600"}`,placeholder:r("subagentForm.fields.description.placeholder")}),i.description&&e.jsxs("p",{className:"mt-1 text-sm text-red-600 flex items-center",children:[e.jsx(F,{className:"h-4 w-4 mr-1"}),i.description]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.fields.tools.label")}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>R(!M),className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded-lg transition-colors text-sm",children:r("subagentForm.fields.tools.selectTools")}),(y.length>0||j.length>0)&&e.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:[r("subagentForm.fields.tools.regularToolsCount",{count:y.length}),j.length>0&&`, ${r("subagentForm.fields.tools.mcpToolsCount",{count:j.length})}`]}),e.jsx(V,{isOpen:M,onClose:()=>R(!1),selectedRegularTools:y,selectedMcpTools:j,mcpToolsEnabled:D,onRegularToolsChange:s=>{E(s);const a=D?[...s,...j]:s;l({...c,tools:a})},onMcpToolsChange:s=>{v(s);const a=[...y,...s];l({...c,tools:a})},onMcpEnabledChange:s=>{if(T(s),!s)v([]),l({...c,tools:y});else{const a=[...y,...j];l({...c,tools:a})}}})]}),e.jsx("p",{className:"mt-1 text-sm text-gray-500 dark:text-gray-400",children:r("subagentForm.fields.tools.hint")})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:r("subagentForm.fields.content.label")}),e.jsx("textarea",{value:c.content,onChange:s=>l(a=>({...a,content:s.target.value})),className:`w-full h-48 px-3 py-2 border rounded-lg dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y ${i.content?"border-red-500":"border-gray-300 dark:border-gray-600"}`,placeholder:r("subagentForm.fields.content.placeholder")}),i.content&&e.jsxs("p",{className:"mt-1 text-sm text-red-600 flex items-center",children:[e.jsx(F,{className:"h-4 w-4 mr-1"}),i.content]})]})]}),i.submit&&e.jsx("div",{className:"mt-4 p-3 bg-red-50 dark:bg-red-900/30 border border-red-200 dark:border-red-800 rounded-lg",children:e.jsxs("p",{className:"text-sm text-red-600 dark:text-red-400 flex items-center",children:[e.jsx(F,{className:"h-4 w-4 mr-2"}),i.submit]})})]})})]})})};export{Fe as S,ke as a,ve as b,Se as c,we as u};
@@ -0,0 +1 @@
1
+ import{j as e}from"./data-structures-C0h9Oap1.js";import{r as i}from"./monaco-editor-DHKm5-VF.js";import{T as D,a as B,b as f,c as o,d as R,e as m}from"./table-CSWCaVuS.js";import{u as H,a as L,S as q}from"./SubagentForm-iYJ0l9vh.js";import{f as N}from"./dateFormat-CXa8VnEC.js";import{u as z}from"./index-ImPzdvfG.js";import{T as k}from"./ToolsList-CWZLcBx2.js";import{u as G}from"./tools-C7xmF_rB.js";import{j as I,g as J,p as K,D as v,E as w,u as $,v as h}from"./ui-components-BNdpaz32.js";import"./syntax-highlighting-CnREyncB.js";import"./agents-C4aCwcCz.js";import"./UnifiedToolSelector-A2UIt1Xn.js";const re=()=>{const{t:s}=G("pages"),{isMobile:t}=z(),[a,S]=i.useState(""),[C,n]=i.useState(!1),[T,d]=i.useState(null),[g,c]=i.useState(null),[p,y]=i.useState({}),{data:b=[],isLoading:F,error:E,refetch:j}=H({search:a.trim()||void 0}),u=L(),M=async r=>{try{await u.mutateAsync(r.id),c(null)}catch(l){console.error("Failed to delete subagent:",l)}},x=r=>{d(r),n(!0)},A=()=>{n(!1),d(null)},P=()=>{j()};return F?e.jsx("div",{className:"flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:`animate-spin rounded-full ${t?"h-8 w-8":"h-12 w-12"} border-b-2 border-blue-600 mx-auto ${t?"mb-3":"mb-4"}`}),e.jsx("div",{className:`text-gray-600 dark:text-gray-400 ${t?"text-sm":""}`,children:s("settings.subagents.loading")})]})}):E?e.jsx("div",{className:"flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx(I,{className:`${t?"h-8 w-8":"h-12 w-12"} text-red-500 mx-auto ${t?"mb-3":"mb-4"}`}),e.jsx("h3",{className:`${t?"text-base":"text-lg"} font-medium text-gray-900 dark:text-white mb-2`,children:s("settings.subagents.loadFailed")}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${t?"mb-4 text-sm":"mb-4"}`,children:s("settings.subagents.loadFailedMessage")}),e.jsx("button",{onClick:()=>j(),className:`${t?"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:s("settings.subagents.retry")})]})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:t?"mb-4":"flex items-center justify-between mb-6",children:e.jsxs("div",{children:[e.jsx("h1",{className:`${t?"text-2xl":"text-3xl"} font-bold text-gray-900 dark:text-white`,children:s("settings.subagents.title")}),e.jsx("p",{className:`text-gray-600 dark:text-gray-400 ${t?"mt-1":"mt-2"}`,children:s("settings.subagents.subtitle")})]})}),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(J,{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("settings.subagents.searchPlaceholder"),value:a,onChange:r=>S(r.target.value),className:`pl-10 pr-4 ${t?"py-2":"py-3"} 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 ${t?"text-sm":""}`})]}),e.jsxs("button",{onClick:()=>{d(null),n(!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-6 py-3"} bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors ${t?"text-sm":"whitespace-nowrap"}`,children:[e.jsx(K,{className:t?"w-4 h-4":"w-5 h-5"}),e.jsx("span",{children:s("settings.subagents.createButton")})]})]})]}),b.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:`${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(a?"settings.subagents.noSubagentsSearch":"settings.subagents.noSubagents")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:s(a?"settings.subagents.adjustSearch":"settings.subagents.createFirst")}),!a&&e.jsx("button",{onClick:()=>{d(null),n(!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("settings.subagents.createButton")})]}):e.jsx(e.Fragment,{children:t?e.jsx("div",{className:"space-y-4",children:b.map((r,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:`${t?"text-lg":"text-xl"} mr-3`,children:"🤖"}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("div",{className:`${t?"text-sm":"text-base"} font-medium text-gray-900 dark:text-white`,children:r.name}),e.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${r.source==="plugin"?"bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300":"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300"}`,children:r.source==="plugin"?s("settings.subagents.source.plugin"):s("settings.subagents.source.local")})]}),r.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:r.description})]})]})}),e.jsxs("div",{className:"space-y-2 mb-4",children:[e.jsx("div",{className:"mb-3",children:e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsxs("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:[s("settings.subagents.table.tools"),":"]}),e.jsx("div",{className:"flex-1",children:e.jsx(k,{tools:r.tools||[],id:r.id,expandedTools:p,setExpandedTools:y,isMobile:!0,emptyMessage:s("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:[s("settings.subagents.table.createdAt"),":"]}),e.jsxs("div",{className:"flex items-center text-gray-500 dark:text-gray-400",children:[e.jsx(v,{className:"w-4 h-4 mr-1"}),e.jsx("span",{children:N(r.createdAt)})]})]})]}),e.jsx("div",{className:"flex items-center justify-end space-x-2 pt-3 border-t border-gray-200 dark:border-gray-700",children:r.source==="plugin"?e.jsxs("button",{onClick:()=>x(r),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(w,{className:"w-3 h-3 mr-1"}),s("settings.subagents.actions.view")]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>x(r),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"}),s("settings.subagents.actions.edit")]}),e.jsx("button",{onClick:()=>c(r),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:s("settings.subagents.actions.deleteTitle"),children:e.jsx(h,{className:"w-4 h-4"})})]})})]},r.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(D,{children:[e.jsx(B,{children:e.jsxs(f,{children:[e.jsx(o,{className:"px-6 py-3 text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:s("settings.subagents.table.subagent")}),e.jsx(o,{className:"px-6 py-3 text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:s("settings.subagents.table.tools")}),e.jsx(o,{className:"px-6 py-3 text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:s("settings.subagents.table.createdAt")}),e.jsx(o,{className:"px-6 py-3 text-right text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider",children:s("settings.subagents.table.actions")})]})}),e.jsx(R,{children:b.map((r,l)=>e.jsxs(f,{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 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:"flex items-center gap-2 mb-1",children:[e.jsx("div",{className:"text-sm font-medium text-gray-900 dark:text-white",children:r.name}),e.jsx("span",{className:`inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium ${r.source==="plugin"?"bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-300":"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-300"}`,children:r.source==="plugin"?s("settings.subagents.source.plugin"):s("settings.subagents.source.local")})]}),r.description&&e.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400 truncate max-w-xs",children:r.description})]})]})}),e.jsx(m,{className:"px-6 py-4",children:e.jsx(k,{tools:r.tools||[],id:r.id,expandedTools:p,setExpandedTools:y,isMobile:!1,emptyMessage:s("settings.subagents.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(v,{className:"w-4 h-4"}),e.jsx("span",{children:N(r.createdAt)})]})}),e.jsx(m,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium",children:e.jsx("div",{className:"flex items-center justify-end space-x-2",children:r.source==="plugin"?e.jsxs("button",{onClick:()=>x(r),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:s("settings.subagents.actions.viewTitle"),children:[e.jsx(w,{className:"w-3 h-3 mr-1"}),s("settings.subagents.actions.view")]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:()=>x(r),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:s("settings.subagents.actions.editTitle"),children:[e.jsx($,{className:"w-3 h-3 mr-1"}),s("settings.subagents.actions.edit")]}),e.jsx("button",{onClick:()=>c(r),className:"p-2 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded-lg transition-colors",title:s("settings.subagents.actions.deleteTitle"),children:e.jsx(h,{className:"w-4 h-4"})})]})})})]},r.id+"-"+l))})]})})}),C&&e.jsx(q,{subagent:T,onClose:A,onSuccess:P}),g&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:`bg-white dark:bg-gray-800 rounded-lg shadow-xl ${t?"w-full max-w-sm":"max-w-md w-full"}`,children:[e.jsx("div",{className:`${t?"px-4 py-3":"px-6 py-4"} border-b border-gray-200 dark:border-gray-700`,children:e.jsx("h3",{className:`${t?"text-base":"text-lg"} font-semibold text-gray-900 dark:text-white`,children:s("settings.subagents.deleteConfirm.title")})}),e.jsxs("div",{className:`${t?"px-4 py-3":"px-6 py-4"}`,children:[e.jsx("p",{className:`${t?"text-sm":""} text-gray-600 dark:text-gray-400`,children:s("settings.subagents.deleteConfirm.message",{name:g.name})}),e.jsx("p",{className:`text-gray-500 dark:text-gray-400 ${t?"mt-1 text-xs":"mt-2"}`,children:s("settings.subagents.deleteConfirm.warning")})]}),e.jsxs("div",{className:`${t?"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:()=>c(null),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/50 transition-colors`,children:s("settings.subagents.deleteConfirm.cancel")}),e.jsxs("button",{onClick:()=>M(g),disabled:u.isPending,className:`${t?"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:[u.isPending?e.jsx("div",{className:"animate-spin rounded-full h-4 w-4 border-2 border-white border-t-transparent"}):e.jsx(h,{className:`${t?"h-3 w-3":"h-4 w-4"}`}),e.jsx("span",{children:s("settings.subagents.deleteConfirm.delete")})]})]})]})})]})};export{re as SubagentsPage};
@@ -1 +1 @@
1
- import{j as s}from"./data-structures-DLJedtzx.js";import{d as e,s as o,c 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=()=>s.jsxs("div",{className:"p-8 space-y-4",children:[s.jsx("h1",{className:"text-2xl font-bold mb-6",children:"Toast Test Page"}),s.jsxs("div",{className:"space-y-4",children:[s.jsx("button",{onClick:()=>e("Success!","This is a success message"),className:"px-4 py-2 bg-green-600 text-white rounded hover:bg-green-700",children:"Show Success Toast"}),s.jsx("button",{onClick:()=>o("Error!","This is an error message"),className:"px-4 py-2 bg-red-600 text-white rounded hover:bg-red-700 ml-4",children:"Show Error Toast"}),s.jsx("button",{onClick:()=>r("Info","This is an info message"),className:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 ml-4",children:"Show Info Toast"})]})]});export{l as ToastTestPage};
1
+ import{j as s}from"./data-structures-C0h9Oap1.js";import{a as e,b as o,s as r}from"./index-ImPzdvfG.js";import"./monaco-editor-DHKm5-VF.js";import"./syntax-highlighting-CnREyncB.js";import"./agents-C4aCwcCz.js";import"./tools-C7xmF_rB.js";import"./ui-components-BNdpaz32.js";const l=()=>s.jsxs("div",{className:"p-8 space-y-4",children:[s.jsx("h1",{className:"text-2xl font-bold mb-6",children:"Toast Test Page"}),s.jsxs("div",{className:"space-y-4",children:[s.jsx("button",{onClick:()=>e("Success!","This is a success message"),className:"px-4 py-2 bg-green-600 text-white rounded hover:bg-green-700",children:"Show Success Toast"}),s.jsx("button",{onClick:()=>o("Error!","This is an error message"),className:"px-4 py-2 bg-red-600 text-white rounded hover:bg-red-700 ml-4",children:"Show Error Toast"}),s.jsx("button",{onClick:()=>r("Info","This is an info message"),className:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 ml-4",children:"Show Info Toast"})]})]});export{l as ToastTestPage};
@@ -0,0 +1 @@
1
+ import{j as e}from"./data-structures-C0h9Oap1.js";import{g as a}from"./UnifiedToolSelector-A2UIt1Xn.js";import{r as d,s as m,k as p}from"./ui-components-BNdpaz32.js";const u=({tools:t,id:s,expandedTools:o,setExpandedTools:i,isMobile:g=!1,emptyMessage:c="继承全局设置"})=>{const n=g?3:5,x=o[s]||!1;return!t||t.length===0?e.jsx("span",{className:"text-sm text-gray-500 dark:text-gray-400",children:c}):e.jsxs("div",{children:[e.jsxs("button",{onClick:()=>i(r=>({...r,[s]:!r[s]})),className:"flex items-center space-x-2 text-sm text-gray-700 dark:text-gray-300 hover:text-blue-600 dark:hover:text-blue-400 transition-colors mb-2 group",children:[e.jsx(d,{className:"w-4 h-4"}),e.jsxs("span",{className:"font-medium",children:[t.length," 个工具"]}),x?e.jsx(m,{className:"w-4 h-4 text-gray-400 group-hover:text-blue-600"}):e.jsx(p,{className:"w-4 h-4 text-gray-400 group-hover:text-blue-600"})]}),x&&e.jsx("div",{className:`flex flex-wrap gap-1.5 ${g?"max-h-40":"max-h-48"} overflow-y-auto pr-2`,children:t.map((r,l)=>e.jsx("code",{className:"inline-block bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-400 px-2 py-1 rounded text-xs font-mono border border-green-200 dark:border-green-800 hover:bg-green-100 dark:hover:bg-green-900/50 transition-colors",title:a(r),children:a(r)},l))}),!x&&e.jsxs("div",{className:"flex flex-wrap gap-1",children:[t.slice(0,n).map((r,l)=>e.jsx("code",{className:"inline-block bg-green-50 dark:bg-green-900/30 text-green-700 dark:text-green-400 px-2 py-0.5 rounded text-xs font-mono",title:a(r),children:a(r)},l)),t.length>n&&e.jsxs("span",{className:"inline-flex items-center px-2 py-0.5 text-xs text-gray-500 dark:text-gray-400",children:["+",t.length-n]})]})]})};export{u as T};
@@ -0,0 +1 @@
1
+ import{j as t}from"./data-structures-C0h9Oap1.js";import{r as g}from"./monaco-editor-DHKm5-VF.js";import{a as Q,A as Z}from"./agents-C4aCwcCz.js";import{u as M}from"./tools-C7xmF_rB.js";import{X as R,R as ee,Y as te,_ as N,$ as O,a0 as E,a1 as re,j as D,k as se,l as ae}from"./ui-components-BNdpaz32.js";const I={Bash:"终端命令",BashOutput:"终端命令输出",KillBash:"杀死终端命令",Edit:"文件编辑",Read:"读取文件",Write:"写入文件",Glob:"文件搜索",Grep:"文本搜索",NotebookEdit:"笔记本编辑",WebFetch:"网页获取",WebSearch:"网络搜索",TodoWrite:"任务管理",Task:"任务执行",ExitPlanMode:"退出计划模式",Skill:"技能调用"},ne={Bash:"执行命令行操作",BashOutput:"获取终端命令输出",KillBash:"杀死终端命令",Edit:"编辑文件内容",Read:"读取文件内容",Write:"创建或覆盖文件",Glob:"使用通配符搜索文件",Grep:"在文件中搜索文本",NotebookEdit:"编辑Jupyter笔记本",WebFetch:"获取网页内容",WebSearch:"搜索网络信息",TodoWrite:"创建和管理待办事项",Task:"执行复杂任务",ExitPlanMode:"退出计划模式",Skill:"调用预定义的技能"};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(),ge=({isOpen:d,onClose:m,selectedRegularTools:i,onRegularToolsChange:f,selectedMcpTools:l,onMcpToolsChange:h,mcpToolsEnabled:G,onMcpEnabledChange:U,presetTools:y=[],readonly:P=!1})=>{const{t:c}=M("components"),[u,K]=g.useState([]),[v,A]=g.useState(!1),[p,T]=g.useState(null),[C,Y]=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(`${Z}/mcp`);if(!e.ok)throw new Error("Failed to fetch MCP configurations");const r=await e.json();K(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},z=e=>{L(e)&&i.includes(e)||(i.includes(e)?f(i.filter(r=>r!==e)):f([...i,e]))},H=e=>{j(e)&&l.includes(e)||(l.includes(e)?h(l.filter(r=>r!==e)):h([...l,e]))},J=e=>{const r=new Set(C);r.has(e)?r.delete(e):r.add(e),Y(r)},B=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)})},V=(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=B(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)}},X=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(O,{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:()=>z(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=X(e.name),x=e.tools?.some(o=>l.includes(`mcp__${e.name}__${o}`)),n=B(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:()=>J(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:()=>V(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(O,{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:()=>H(_),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{ge as U,F as g};
@@ -0,0 +1,5 @@
1
+ import{j as e}from"./data-structures-C0h9Oap1.js";import{W as R,r as N}from"./monaco-editor-DHKm5-VF.js";import{b as w,a as M}from"./index-ImPzdvfG.js";import{u as ie,a as le,b as ne,c as oe,d as de,f as ce}from"./useClaudeVersions-CcFqpR2o.js";import{F as pe}from"./FileBrowser-Bnm7ZyGT.js";import{u as C}from"./tools-C7xmF_rB.js";import{p as L,aA as F,E as U,t as ue,u as xe,v as me,Q as q,X as K,V as ge,at as he,S as be,f as ye,y as fe}from"./ui-components-BNdpaz32.js";import"./syntax-highlighting-CnREyncB.js";import"./agents-C4aCwcCz.js";async function ke(s){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(s),!0;{const t=document.createElement("textarea");t.value=s,t.style.position="fixed",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select();const p=document.execCommand("copy");return document.body.removeChild(t),p}}catch(t){return console.error("Failed to copy to clipboard:",t),!1}}const G=[{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 最新版本视觉模型"}]},{id:"minimax",name:"MiniMax",alias:"minimax",description:"使用MiniMax的高性能模型服务,支持Anthropic API兼容",versionDescription:"MiniMax模型 - Anthropic兼容版本",apiTokenUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key",logoUrl:"https://agent.minimaxi.com/assets/logo/favicon.png?v=4",envVars:[{key:"ANTHROPIC_BASE_URL",value:"https://api.minimaxi.com/anthropic",isRequired:!0,description:"MiniMax的Anthropic兼容端点"},{key:"ANTHROPIC_AUTH_TOKEN",value:"",isRequired:!0,placeholder:"<MINIMAX_API_KEY>",description:"您的MiniMax API密钥(必填)"},{key:"API_TIMEOUT_MS",value:"3000000",isRequired:!1,description:"API请求超时时间(毫秒)"},{key:"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC",value:"1",isRequired:!1,description:"禁用非必要流量(1=启用,0=禁用)"},{key:"ANTHROPIC_MODEL",value:"MiniMax-M2",isRequired:!1,description:"使用的MiniMax模型名称"},{key:"ANTHROPIC_SMALL_FAST_MODEL",value:"MiniMax-M2",isRequired:!1,description:"快速轻量级模型名称"},{key:"ANTHROPIC_DEFAULT_SONNET_MODEL",value:"MiniMax-M2",isRequired:!1,description:"默认Sonnet模型名称"},{key:"ANTHROPIC_DEFAULT_OPUS_MODEL",value:"MiniMax-M2",isRequired:!1,description:"默认Opus模型名称"},{key:"ANTHROPIC_DEFAULT_HAIKU_MODEL",value:"MiniMax-M2",isRequired:!1,description:"默认Haiku模型名称"}],models:[{id:"MiniMax-M2",name:"MiniMax M2",isVision:!1,description:"MiniMax M2 最新模型"}]}],ve=({onQuickCreateWithTemplate:s,onAddVersion:t})=>{const{t:p}=C("pages");return e.jsxs("div",{className:"flex items-center space-x-3",children:[G.map(i=>e.jsxs("button",{onClick:()=>s(i),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:p(`settings.supplier.templates.providers.${i.id}.description`),children:[i.logoUrl&&e.jsx("img",{src:i.logoUrl,alt:i.name,className:"w-5 h-5 flex-shrink-0",onError:u=>{u.currentTarget.style.display="none"}}),e.jsx("span",{className:"text-sm font-medium group-hover:text-purple-600 dark:group-hover:text-purple-400",children:p(`settings.supplier.templates.providers.${i.id}.name`)})]},i.id)),e.jsxs("button",{onClick:t,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(L,{className:"w-4 h-4"}),e.jsx("span",{children:p("settings.supplier.addSupplier")})]})]})},Ne=({version:s,isDefault:t,onCopyCommand:p,onSetDefault:i,onEdit:u,onDelete:g})=>{const{t:n}=C("pages");return e.jsx("div",{className:`p-4 border rounded-lg ${t?"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:n("settings.supplier.systemLabel")}),t&&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(F,{className:"w-3 h-3"}),e.jsx("span",{children:n("settings.supplier.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:[n("settings.supplier.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:[n("settings.supplier.envVarsLabel"),":"]}),e.jsx("div",{className:"flex flex-wrap gap-2 mt-1",children:Object.entries(s.environmentVariables).map(([a,l])=>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:[a,"=",l]},a))})]}),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:[n("settings.supplier.modelsLabel"),":"]}),e.jsx("div",{className:"flex flex-wrap gap-2 mt-1",children:s.models.map(a=>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:a.name}),a.isVision&&e.jsx(U,{className:"w-3 h-3"})]},a.id))})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{onClick:()=>p(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:n("settings.supplier.copyCommand"),children:e.jsx(ue,{className:"w-4 h-4"})}),!t&&e.jsx("button",{onClick:()=>i(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:n("settings.supplier.setAsDefault"),children:e.jsx(F,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>u(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:n("settings.supplier.edit"),children:e.jsx(xe,{className:"w-4 h-4"})}),!s.isSystem&&e.jsx("button",{onClick:()=>g(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:n("settings.supplier.delete"),children:e.jsx(me,{className:"w-4 h-4"})})]})]})})},je=({versions:s,defaultVersionId:t,isLoading:p,onCopyCommand:i,onSetDefault:u,onEdit:g,onDelete:n})=>{const{t:a}=C("pages");return p?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"})}):s.length===0?e.jsxs("div",{className:"text-center py-8 text-gray-500 dark:text-gray-400",children:[e.jsx(q,{className:"w-12 h-12 mx-auto mb-3 text-gray-300 dark:text-gray-600"}),e.jsx("p",{children:a("settings.supplier.noSuppliers")}),e.jsx("p",{className:"text-sm",children:a("settings.supplier.clickToAddFirst")})]}):e.jsx("div",{className:"space-y-3",children:s.map(l=>e.jsx(Ne,{version:l,isDefault:l.id===t,onCopyCommand:i,onSetDefault:u,onEdit:g,onDelete:n},l.id))})},Ae=({models:s,modelInput:t,onAddModel:p,onUpdateModel:i,onRemoveModel:u,onModelInputChange:g})=>{const{t:n}=C("pages");return e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:n("settings.supplier.form.models")}),e.jsxs("div",{className:"space-y-3",children:[s.length>0&&e.jsx("div",{className:"space-y-2",children:s.map(a=>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:a.id,onChange:l=>i(a.id,{id:l.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:n("settings.supplier.form.modelId")}),e.jsx("input",{type:"text",value:a.name,onChange:l=>i(a.id,{name:l.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:n("settings.supplier.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:a.isVision,onChange:l=>i(a.id,{isVision:l.target.checked}),className:"rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"}),e.jsx("span",{children:n("settings.supplier.form.visionModel")})]}),a.isVision&&e.jsx(U,{className:"w-4 h-4 text-blue-600 dark:text-blue-400"})]})]}),e.jsx("button",{onClick:()=>u(a.id),className:"p-1 text-red-500 hover:text-red-700 rounded flex-shrink-0",children:e.jsx(K,{className:"w-4 h-4"})})]},a.id))}),e.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[e.jsx("input",{type:"text",value:t.id,onChange:a=>g({...t,id:a.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:n("settings.supplier.form.modelId")}),e.jsx("input",{type:"text",value:t.name,onChange:a=>g({...t,name:a.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:n("settings.supplier.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:t.isVision,onChange:a=>g({...t,isVision:a.target.checked}),className:"rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"}),e.jsx("span",{children:n("settings.supplier.form.visionModel")})]}),e.jsxs("button",{onClick:p,disabled:!t.id||!t.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(L,{className:"w-4 h-4"}),e.jsx("span",{children:n("settings.supplier.form.addModel")})]})]})]})]})]})},we=({environmentVariables:s,envVarInput:t,currentTemplateTokenUrl:p,onAddEnvironmentVariable:i,onUpdateEnvironmentVariable:u,onRemoveEnvironmentVariable:g,onEnvVarInputChange:n,onAuthTokenChange:a})=>{const{t:l}=C("pages"),[h,j]=R.useState(!1),[f,b]=R.useState(""),k=d=>/^[a-zA-Z0-9]{4}\*\*\*[a-zA-Z0-9]{4}$/.test(d)||d==="***";R.useEffect(()=>{const d=s.ANTHROPIC_AUTH_TOKEN||"";k(d)?b(""):b(d)},[s]);const A=d=>{b(d);const y=s.ANTHROPIC_AUTH_TOKEN||"",T=k(y)?d.length>0:d!==y;a&&a(T),u("ANTHROPIC_AUTH_TOKEN",d)},S=()=>{j(!h)};return e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:l("settings.supplier.form.envVars")}),e.jsxs("div",{className:"space-y-3",children:[Object.keys(s).length>0&&e.jsx("div",{className:"space-y-2",children:Object.entries(s).map(([d,y])=>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:[d," ="]}),d==="ANTHROPIC_AUTH_TOKEN"?e.jsxs("div",{className:"flex-1 relative flex items-center",children:[e.jsx("input",{type:h?"text":"password",value:f,onChange:v=>A(v.target.value),placeholder:k(y)?"点击输入新的API密钥":l("settings.supplier.form.emptyValue"),className:"flex-1 px-2 py-1 pr-20 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"}),e.jsxs("div",{className:"absolute right-2 flex items-center space-x-1",children:[k(y)&&e.jsx("span",{className:"text-xs text-gray-400 dark:text-gray-500 bg-gray-200 dark:bg-gray-600 px-2 py-0.5 rounded",children:"已隐藏"}),e.jsx("button",{type:"button",onClick:S,className:"p-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",title:h?"隐藏":"显示",children:h?e.jsx(ge,{className:"w-3 h-3"}):e.jsx(U,{className:"w-3 h-3"})})]}),p&&(k(y)||!y)&&e.jsxs("a",{href:p,target:"_blank",rel:"noopener noreferrer",className:"ml-2 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(he,{className:"w-3 h-3"}),e.jsx("span",{children:l("settings.supplier.form.getApiKey")})]})]}):e.jsx("input",{type:"text",value:y,onChange:v=>u(d,v.target.value),placeholder:l("settings.supplier.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"})]}),e.jsx("button",{onClick:()=>g(d),className:"p-1 text-red-500 hover:text-red-700 rounded flex-shrink-0",children:e.jsx(K,{className:"w-4 h-4"})})]},d))}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx("input",{type:"text",value:t.key,onChange:d=>n({...t,key:d.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:l("settings.supplier.form.varName")}),e.jsx("input",{type:"text",value:t.value,onChange:d=>n({...t,value:d.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:l("settings.supplier.form.varValue")}),e.jsx("button",{onClick:i,disabled:!t.key||!t.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(L,{className:"w-4 h-4"})})]})]})]})},Ce=({editingVersion:s,isCreating:t,isFromTemplate:p,formData:i,envVarInput:u,modelInput:g,currentTemplateTokenUrl:n,isSaving:a,onApplyTemplate:l,onCancel:h,onSave:j,onSelectExecutablePath:f,onFormDataChange:b,onEnvVarInputChange:k,onModelInputChange:A,onAddEnvironmentVariable:S,onUpdateEnvironmentVariable:d,onRemoveEnvironmentVariable:y,onAddModel:v,onUpdateModel:T,onRemoveModel:_,onAuthTokenChange:V})=>{const{t:c}=C("pages");return 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:c(s?"settings.supplier.form.editTitle":"settings.supplier.form.createTitle")}),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:c("settings.supplier.systemLabel")})]}),e.jsx("button",{onClick:h,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:e.jsx(K,{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:[s?.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(q,{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 版本,某些字段(如可执行路径)无法修改,但您可以配置支持的模型。"})]}),t&&!p&&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(be,{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:c("settings.supplier.templates.title")})]}),e.jsx("p",{className:"text-xs text-purple-700 dark:text-purple-400 mb-3",children:c("settings.supplier.templates.description")}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:G.map(x=>e.jsx("button",{onClick:()=>l(x),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:[x.logoUrl&&e.jsx("img",{src:x.logoUrl,alt:x.name,className:"w-6 h-6 flex-shrink-0",onError:I=>{I.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:c(`settings.supplier.templates.providers.${x.id}.name`)})]}),e.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400",children:c(`settings.supplier.templates.providers.${x.id}.description`)})]})},x.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:[c("settings.supplier.form.supplierName")," ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx("input",{type:"text",value:i.name||"",onChange:x=>b({...i,name:x.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:c("settings.supplier.form.supplierNamePlaceholder"),disabled:s?.isSystem})]}),e.jsxs("div",{children:[e.jsxs("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:[c("settings.supplier.form.alias")," ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx("input",{type:"text",value:i.alias||"",onChange:x=>b({...i,alias:x.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:c("settings.supplier.form.aliasPlaceholder"),disabled:s?.isSystem})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:c("settings.supplier.form.description")}),e.jsx("textarea",{value:i.description||"",onChange:x=>b({...i,description:x.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:c("settings.supplier.form.descriptionPlaceholder"),disabled:s?.isSystem})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:c("settings.supplier.form.executablePath")}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx("input",{type:"text",value:i.executablePath||"",onChange:x=>b({...i,executablePath:x.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:c("settings.supplier.form.executablePathPlaceholder"),disabled:s?.isSystem}),e.jsx("button",{onClick:f,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:c("settings.supplier.form.browseFile"),disabled:s?.isSystem,children:e.jsx(ye,{className:"w-4 h-4 text-gray-600 dark:text-gray-400"})})]})]}),e.jsx(Ae,{models:i.models||[],modelInput:g,onAddModel:v,onUpdateModel:T,onRemoveModel:_,onModelInputChange:A}),e.jsx(we,{environmentVariables:i.environmentVariables||{},envVarInput:u,currentTemplateTokenUrl:n,onAddEnvironmentVariable:S,onUpdateEnvironmentVariable:d,onRemoveEnvironmentVariable:y,onEnvVarInputChange:k,onAuthTokenChange:V})]})}),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:h,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:c("settings.supplier.form.cancel")}),e.jsxs("button",{onClick:j,disabled:a,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(fe,{className:"w-4 h-4"}),e.jsx("span",{children:c(a?"settings.supplier.form.saving":s?"settings.supplier.form.update":"settings.supplier.form.create")})]})]})]})})},Re=()=>{const{t:s}=C("pages"),[t,p]=N.useState(!1),[i,u]=N.useState(null),[g,n]=N.useState(!1),[a,l]=N.useState({name:"",alias:"",description:"",executablePath:"",environmentVariables:{},models:[]}),[h,j]=N.useState({key:"",value:""}),[f,b]=N.useState({id:"",name:"",isVision:!1}),[k,A]=N.useState(!1),[S,d]=N.useState(null),[y,v]=N.useState(!1),{data:T,isLoading:_}=ie(),V=le(),c=ne(),x=oe(),I=de(),O=()=>{l({name:"",alias:"",description:"",executablePath:"",environmentVariables:{},models:[]}),j({key:"",value:""}),b({id:"",name:"",isVision:!1}),v(!1)},B=()=>{p(!0),u(null),n(!1),O()},$=r=>{p(!0),u(null),n(!0),O(),setTimeout(()=>{D(r)},0)},D=r=>{const o={};r.envVars.forEach(P=>{o[P.key]=P.value});const m=s(`settings.supplier.templates.providers.${r.id}.name`),E=s(`settings.supplier.templates.providers.${r.id}.description`);l(P=>({...P,name:m,alias:r.alias,description:E,environmentVariables:o,models:r.models||[]})),d(r.apiTokenUrl||null)},Y=r=>{u(r),p(!1),n(!1),l({name:r.name,alias:r.alias,description:r.description||"",executablePath:r.executablePath,environmentVariables:r.environmentVariables||{},models:r.models||[]})},H=()=>{p(!1),u(null),n(!1),O()},W=()=>{h.key&&h.value&&(l(r=>({...r,environmentVariables:{...r.environmentVariables,[h.key]:h.value}})),j({key:"",value:""}))},z=()=>{f.id&&f.name&&(l(r=>({...r,models:[...r.models||[],{id:f.id,name:f.name,isVision:f.isVision,description:f.name}]})),b({id:"",name:"",isVision:!1}))},Q=r=>{l(o=>({...o,models:(o.models||[]).filter(m=>m.id!==r)}))},X=(r,o)=>{l(m=>({...m,models:(m.models||[]).map(E=>E.id===r?{...E,...o}:E)}))},Z=r=>{l(o=>{if(!o.environmentVariables)return o;const m={...o.environmentVariables};return delete m[r],{...o,environmentVariables:m}})},J=()=>{A(!0)},ee=(r,o)=>{o||l(m=>({...m,executablePath:r})),A(!1)},se=async()=>{try{if(!a.name||!a.alias){w(s("settings.supplier.errors.requiredFields"));return}const r={...a,executablePath:a.executablePath?.trim()||void 0,description:a.description?.trim()||void 0};i?(await c.mutateAsync({id:i.id,data:{...r,authTokenChanged:y}}),M(s("settings.supplier.success.updateVersion"))):(await V.mutateAsync(r),M(s("settings.supplier.success.createVersion"))),H()}catch(r){console.error("Error saving version:",r),w(s("settings.supplier.errors.saveFailed"),r instanceof Error?r.message:void 0)}},re=async r=>{if(r.isSystem){w(s("settings.supplier.errors.cannotDeleteSystem"));return}if(confirm(s("settings.supplier.confirmDelete",{alias:r.alias})))try{await x.mutateAsync(r.id),M(s("settings.supplier.success.deleteVersion"))}catch(o){console.error("Error deleting version:",o),w(s("settings.supplier.errors.deleteFailed"),o instanceof Error?o.message:void 0)}},te=async r=>{try{await I.mutateAsync(r.id),M(s("settings.supplier.success.setDefault",{alias:r.alias}))}catch(o){console.error("Error setting default version:",o),w(s("settings.supplier.errors.setDefaultFailed"),o instanceof Error?o.message:void 0)}},ae=async r=>{try{const o=await ce(r.id);await ke(o)?M(s("settings.supplier.success.copyCommand")):w(s("settings.supplier.errors.copyFailed"),o)}catch(o){console.error("Error copying command:",o),w(s("settings.supplier.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:s("settings.supplier.title")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:s("settings.supplier.subtitle")})]}),e.jsx("div",{className:"flex items-center space-x-3",children:e.jsx(ve,{onQuickCreateWithTemplate:$,onAddVersion:B})})]}),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(je,{versions:T?.versions||[],defaultVersionId:T?.defaultVersionId||"",isLoading:_,onCopyCommand:ae,onSetDefault:te,onEdit:Y,onDelete:re})})}),(t||i)&&e.jsx(Ce,{editingVersion:i,isCreating:t,isFromTemplate:g,formData:a,envVarInput:h,modelInput:f,currentTemplateTokenUrl:S,isSaving:V.isPending||c.isPending,onApplyTemplate:D,onCancel:H,onSave:se,onSelectExecutablePath:J,onFormDataChange:l,onEnvVarInputChange:j,onModelInputChange:b,onAddEnvironmentVariable:W,onUpdateEnvironmentVariable:(r,o)=>{l(m=>({...m,environmentVariables:{...m.environmentVariables,[r]:o}}))},onRemoveEnvironmentVariable:Z,onAddModel:z,onUpdateModel:X,onRemoveModel:Q,onAuthTokenChange:v}),k&&e.jsx(pe,{title:s("settings.supplier.form.selectExecutable"),allowFiles:!0,allowDirectories:!1,onSelect:ee,onClose:()=>A(!1)})]})};export{Re as VersionSettingsPage};
@@ -0,0 +1 @@
1
+ import{e as x,c as O,g as m,k as P,h as p,j as w,l as c,m as A,n as I,t as N,o as E}from"./_baseUniq-Dt6C4BgZ.js";import{aQ as g,ar as F,aR as M,aS as T,aT as _,aU as l,aV as $,aW as B,aX as S,aY as y}from"./ChatPage-DkO3kzY2.js";var R=/\s/;function G(n){for(var r=n.length;r--&&R.test(n.charAt(r)););return r}var H=/^\s+/;function L(n){return n&&n.slice(0,G(n)+1).replace(H,"")}var o=NaN,W=/^[-+]0x[0-9a-f]+$/i,X=/^0b[01]+$/i,Y=/^0o[0-7]+$/i,q=parseInt;function z(n){if(typeof n=="number")return n;if(x(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=L(n);var t=X.test(n);return t||Y.test(n)?q(n.slice(2),t?2:8):W.test(n)?o:+n}var v=1/0,C=17976931348623157e292;function K(n){if(!n)return n===0?n:0;if(n=z(n),n===v||n===-v){var r=n<0?-1:1;return r*C}return n===n?n:0}function Q(n){var r=K(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?O(n):[]}var b=Object.prototype,U=b.hasOwnProperty,dn=F(function(n,r){n=Object(n);var t=-1,i=r.length,a=i>2?r[2]:void 0;for(a&&M(r[0],r[1],a)&&(i=1);++t<i;)for(var f=r[t],e=T(f),s=-1,d=e.length;++s<d;){var u=e[s],h=n[u];(h===void 0||_(h,b[u])&&!U.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function D(n){return function(r,t,i){var a=Object(r);if(!l(r)){var f=m(t);r=P(r),t=function(s){return f(a[s],s,a)}}var e=n(r,t,i);return e>-1?a[f?r[e]:e]:void 0}}var J=Math.max;function Z(n,r,t){var i=n==null?0:n.length;if(!i)return-1;var a=t==null?0:Q(t);return a<0&&(a=J(i+a,0)),p(n,m(r),a)}var hn=D(Z);function V(n,r){var t=-1,i=l(n)?Array(n.length):[];return w(n,function(a,f,e){i[++t]=r(a,f,e)}),i}function gn(n,r){var t=$(n)?c:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var i=-1,a=n.length;++i<a;){var f=n[i],e=r(f);if(e!=null&&(s===void 0?e===e&&!x(e):t(e,s)))var s=e,d=f}return d}function on(n){return n&&n.length?tn(n,B,rn):void 0}function an(n,r,t,i){if(!g(n))return n;r=I(r,n);for(var a=-1,f=r.length,e=f-1,s=n;s!=null&&++a<f;){var d=N(r[a]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(a!=e){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:S(r[a+1])?[]:{})}y(s,d,u),s=s[d]}return n}function vn(n,r,t){for(var i=-1,a=r.length,f={};++i<a;){var e=r[i],s=E(n,e);t(s,e)&&an(f,I(e,n),s)}return f}export{rn as a,tn as b,V as c,vn as d,on as e,fn as f,hn as g,mn as h,dn as i,Q as j,un as l,gn as m,K as t};
@@ -0,0 +1 @@
1
+ import{bd as S,be as Rn,aV as T,bf as w,bg as xn,bh as mn,aU as sn,bi as Mn,bj as un,bk as x,aS as U,bl as Cn,bm as on,bn as Fn,bo as E,bb as gn,bp as R,aQ as ln,bq as Dn,br as D,bs as Gn,bt as Un,bu as _,aY as Bn,bv as Nn,aT as Kn,bw as X,bx as jn,by as Hn,aX as qn,aW as cn,b9 as Yn,bz as M}from"./ChatPage-DkO3kzY2.js";var Zn="[object Symbol]";function B(n){return typeof n=="symbol"||S(n)&&Rn(n)==Zn}function bn(n,r){for(var e=-1,t=n==null?0:n.length,f=Array(t);++e<t;)f[e]=r(n[e],e,n);return f}var Q=w?w.prototype:void 0,J=Q?Q.toString:void 0;function dn(n){if(typeof n=="string")return n;if(T(n))return bn(n,dn)+"";if(B(n))return J?J.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function Xn(){}function pn(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}function Qn(n,r,e,t){for(var f=n.length,i=e+-1;++i<f;)if(r(n[i],i,n))return i;return-1}function Jn(n){return n!==n}function Wn(n,r,e){for(var t=e-1,f=n.length;++t<f;)if(n[t]===r)return t;return-1}function zn(n,r,e){return r===r?Wn(n,r,e):Qn(n,Jn,e)}function Vn(n,r){var e=n==null?0:n.length;return!!e&&zn(n,r,0)>-1}function $(n){return sn(n)?xn(n):mn(n)}var kn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nr=/^\w*$/;function N(n,r){if(T(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||B(n)?!0:nr.test(n)||!kn.test(n)||r!=null&&n in Object(r)}var rr=500;function er(n){var r=Mn(n,function(t){return e.size===rr&&e.clear(),t}),e=r.cache;return r}var tr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ir=/\\(\\)?/g,fr=er(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(tr,function(e,t,f,i){r.push(f?i.replace(ir,"$1"):t||e)}),r});function ar(n){return n==null?"":dn(n)}function An(n,r){return T(n)?n:N(n,r)?[n]:fr(ar(n))}function m(n){if(typeof n=="string"||B(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function yn(n,r){r=An(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[m(r[e++])];return e&&e==t?n:void 0}function sr(n,r,e){var t=n==null?void 0:yn(n,r);return t===void 0?e:t}function K(n,r){for(var e=-1,t=r.length,f=n.length;++e<t;)n[f+e]=r[e];return n}var W=w?w.isConcatSpreadable:void 0;function ur(n){return T(n)||un(n)||!!(W&&n&&n[W])}function Ot(n,r,e,t,f){var i=-1,a=n.length;for(e||(e=ur),f||(f=[]);++i<a;){var s=n[i];e(s)?K(f,s):t||(f[f.length]=s)}return f}function or(n,r,e,t){var f=-1,i=n==null?0:n.length;for(t&&i&&(e=n[++f]);++f<i;)e=r(e,n[f],f,n);return e}function gr(n,r){return n&&x(r,$(r),n)}function lr(n,r){return n&&x(r,U(r),n)}function Tn(n,r){for(var e=-1,t=n==null?0:n.length,f=0,i=[];++e<t;){var a=n[e];r(a,e,n)&&(i[f++]=a)}return i}function hn(){return[]}var cr=Object.prototype,br=cr.propertyIsEnumerable,z=Object.getOwnPropertySymbols,j=z?function(n){return n==null?[]:(n=Object(n),Tn(z(n),function(r){return br.call(n,r)}))}:hn;function dr(n,r){return x(n,j(n),r)}var pr=Object.getOwnPropertySymbols,wn=pr?function(n){for(var r=[];n;)K(r,j(n)),n=Cn(n);return r}:hn;function Ar(n,r){return x(n,wn(n),r)}function On(n,r,e){var t=r(n);return T(n)?t:K(t,e(n))}function G(n){return On(n,$,j)}function yr(n){return On(n,U,wn)}var Tr=Object.prototype,hr=Tr.hasOwnProperty;function wr(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&hr.call(n,"index")&&(e.index=n.index,e.input=n.input),e}function Or(n,r){var e=r?on(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var $r=/\w*$/;function _r(n){var r=new n.constructor(n.source,$r.exec(n));return r.lastIndex=n.lastIndex,r}var V=w?w.prototype:void 0,k=V?V.valueOf:void 0;function Sr(n){return k?Object(k.call(n)):{}}var Er="[object Boolean]",Ir="[object Date]",Pr="[object Map]",vr="[object Number]",Lr="[object RegExp]",Rr="[object Set]",xr="[object String]",mr="[object Symbol]",Mr="[object ArrayBuffer]",Cr="[object DataView]",Fr="[object Float32Array]",Dr="[object Float64Array]",Gr="[object Int8Array]",Ur="[object Int16Array]",Br="[object Int32Array]",Nr="[object Uint8Array]",Kr="[object Uint8ClampedArray]",jr="[object Uint16Array]",Hr="[object Uint32Array]";function qr(n,r,e){var t=n.constructor;switch(r){case Mr:return on(n);case Er:case Ir:return new t(+n);case Cr:return Or(n,e);case Fr:case Dr:case Gr:case Ur:case Br:case Nr:case Kr:case jr:case Hr:return Fn(n,e);case Pr:return new t;case vr:case xr:return new t(n);case Lr:return _r(n);case Rr:return new t;case mr:return Sr(n)}}var Yr="[object Map]";function Zr(n){return S(n)&&E(n)==Yr}var nn=R&&R.isMap,Xr=nn?gn(nn):Zr,Qr="[object Set]";function Jr(n){return S(n)&&E(n)==Qr}var rn=R&&R.isSet,Wr=rn?gn(rn):Jr,zr=1,Vr=2,kr=4,$n="[object Arguments]",ne="[object Array]",re="[object Boolean]",ee="[object Date]",te="[object Error]",_n="[object Function]",ie="[object GeneratorFunction]",fe="[object Map]",ae="[object Number]",Sn="[object Object]",se="[object RegExp]",ue="[object Set]",oe="[object String]",ge="[object Symbol]",le="[object WeakMap]",ce="[object ArrayBuffer]",be="[object DataView]",de="[object Float32Array]",pe="[object Float64Array]",Ae="[object Int8Array]",ye="[object Int16Array]",Te="[object Int32Array]",he="[object Uint8Array]",we="[object Uint8ClampedArray]",Oe="[object Uint16Array]",$e="[object Uint32Array]",g={};g[$n]=g[ne]=g[ce]=g[be]=g[re]=g[ee]=g[de]=g[pe]=g[Ae]=g[ye]=g[Te]=g[fe]=g[ae]=g[Sn]=g[se]=g[ue]=g[oe]=g[ge]=g[he]=g[we]=g[Oe]=g[$e]=!0;g[te]=g[_n]=g[le]=!1;function C(n,r,e,t,f,i){var a,s=r&zr,u=r&Vr,b=r&kr;if(a!==void 0)return a;if(!ln(n))return n;var l=T(n);if(l){if(a=wr(n),!s)return Dn(n,a)}else{var o=E(n),c=o==_n||o==ie;if(D(n))return Gn(n,s);if(o==Sn||o==$n||c&&!f){if(a=u||c?{}:Un(n),!s)return u?Ar(n,lr(a,n)):dr(n,gr(a,n))}else{if(!g[o])return f?n:{};a=qr(n,o,s)}}i||(i=new _);var h=i.get(n);if(h)return h;i.set(n,a),Wr(n)?n.forEach(function(d){a.add(C(d,r,e,d,n,i))}):Xr(n)&&n.forEach(function(d,p){a.set(p,C(d,r,e,p,n,i))});var A=b?u?yr:G:u?U:$,y=l?void 0:A(n);return pn(y||n,function(d,p){y&&(p=d,d=n[p]),Bn(a,p,C(d,r,e,p,n,i))}),a}var _e="__lodash_hash_undefined__";function Se(n){return this.__data__.set(n,_e),this}function Ee(n){return this.__data__.has(n)}function I(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Nn;++r<e;)this.add(n[r])}I.prototype.add=I.prototype.push=Se;I.prototype.has=Ee;function Ie(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}function En(n,r){return n.has(r)}var Pe=1,ve=2;function In(n,r,e,t,f,i){var a=e&Pe,s=n.length,u=r.length;if(s!=u&&!(a&&u>s))return!1;var b=i.get(n),l=i.get(r);if(b&&l)return b==r&&l==n;var o=-1,c=!0,h=e&ve?new I:void 0;for(i.set(n,r),i.set(r,n);++o<s;){var A=n[o],y=r[o];if(t)var d=a?t(y,A,o,r,n,i):t(A,y,o,n,r,i);if(d!==void 0){if(d)continue;c=!1;break}if(h){if(!Ie(r,function(p,O){if(!En(h,O)&&(A===p||f(A,p,e,t,i)))return h.push(O)})){c=!1;break}}else if(!(A===y||f(A,y,e,t,i))){c=!1;break}}return i.delete(n),i.delete(r),c}function Le(n){var r=-1,e=Array(n.size);return n.forEach(function(t,f){e[++r]=[f,t]}),e}function H(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Re=1,xe=2,me="[object Boolean]",Me="[object Date]",Ce="[object Error]",Fe="[object Map]",De="[object Number]",Ge="[object RegExp]",Ue="[object Set]",Be="[object String]",Ne="[object Symbol]",Ke="[object ArrayBuffer]",je="[object DataView]",en=w?w.prototype:void 0,F=en?en.valueOf:void 0;function He(n,r,e,t,f,i,a){switch(e){case je:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case Ke:return!(n.byteLength!=r.byteLength||!i(new X(n),new X(r)));case me:case Me:case De:return Kn(+n,+r);case Ce:return n.name==r.name&&n.message==r.message;case Ge:case Be:return n==r+"";case Fe:var s=Le;case Ue:var u=t&Re;if(s||(s=H),n.size!=r.size&&!u)return!1;var b=a.get(n);if(b)return b==r;t|=xe,a.set(n,r);var l=In(s(n),s(r),t,f,i,a);return a.delete(n),l;case Ne:if(F)return F.call(n)==F.call(r)}return!1}var qe=1,Ye=Object.prototype,Ze=Ye.hasOwnProperty;function Xe(n,r,e,t,f,i){var a=e&qe,s=G(n),u=s.length,b=G(r),l=b.length;if(u!=l&&!a)return!1;for(var o=u;o--;){var c=s[o];if(!(a?c in r:Ze.call(r,c)))return!1}var h=i.get(n),A=i.get(r);if(h&&A)return h==r&&A==n;var y=!0;i.set(n,r),i.set(r,n);for(var d=a;++o<u;){c=s[o];var p=n[c],O=r[c];if(t)var Z=a?t(O,p,c,r,n,i):t(p,O,c,n,r,i);if(!(Z===void 0?p===O||f(p,O,e,t,i):Z)){y=!1;break}d||(d=c=="constructor")}if(y&&!d){var P=n.constructor,v=r.constructor;P!=v&&"constructor"in n&&"constructor"in r&&!(typeof P=="function"&&P instanceof P&&typeof v=="function"&&v instanceof v)&&(y=!1)}return i.delete(n),i.delete(r),y}var Qe=1,tn="[object Arguments]",fn="[object Array]",L="[object Object]",Je=Object.prototype,an=Je.hasOwnProperty;function We(n,r,e,t,f,i){var a=T(n),s=T(r),u=a?fn:E(n),b=s?fn:E(r);u=u==tn?L:u,b=b==tn?L:b;var l=u==L,o=b==L,c=u==b;if(c&&D(n)){if(!D(r))return!1;a=!0,l=!1}if(c&&!l)return i||(i=new _),a||jn(n)?In(n,r,e,t,f,i):He(n,r,u,e,t,f,i);if(!(e&Qe)){var h=l&&an.call(n,"__wrapped__"),A=o&&an.call(r,"__wrapped__");if(h||A){var y=h?n.value():n,d=A?r.value():r;return i||(i=new _),f(y,d,e,t,i)}}return c?(i||(i=new _),Xe(n,r,e,t,f,i)):!1}function q(n,r,e,t,f){return n===r?!0:n==null||r==null||!S(n)&&!S(r)?n!==n&&r!==r:We(n,r,e,t,q,f)}var ze=1,Ve=2;function ke(n,r,e,t){var f=e.length,i=f;if(n==null)return!i;for(n=Object(n);f--;){var a=e[f];if(a[2]?a[1]!==n[a[0]]:!(a[0]in n))return!1}for(;++f<i;){a=e[f];var s=a[0],u=n[s],b=a[1];if(a[2]){if(u===void 0&&!(s in n))return!1}else{var l=new _,o;if(!(o===void 0?q(b,u,ze|Ve,t,l):o))return!1}}return!0}function Pn(n){return n===n&&!ln(n)}function nt(n){for(var r=$(n),e=r.length;e--;){var t=r[e],f=n[t];r[e]=[t,f,Pn(f)]}return r}function vn(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function rt(n){var r=nt(n);return r.length==1&&r[0][2]?vn(r[0][0],r[0][1]):function(e){return e===n||ke(e,n,r)}}function et(n,r){return n!=null&&r in Object(n)}function tt(n,r,e){r=An(r,n);for(var t=-1,f=r.length,i=!1;++t<f;){var a=m(r[t]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++t!=f?i:(f=n==null?0:n.length,!!f&&Hn(f)&&qn(a,f)&&(T(n)||un(n)))}function it(n,r){return n!=null&&tt(n,r,et)}var ft=1,at=2;function st(n,r){return N(n)&&Pn(r)?vn(m(n),r):function(e){var t=sr(e,n);return t===void 0&&t===r?it(e,n):q(r,t,ft|at)}}function ut(n){return function(r){return r?.[n]}}function ot(n){return function(r){return yn(r,n)}}function gt(n){return N(n)?ut(m(n)):ot(n)}function Ln(n){return typeof n=="function"?n:n==null?cn:typeof n=="object"?T(n)?st(n[0],n[1]):rt(n):gt(n)}function lt(n,r){return n&&Yn(n,r,$)}function ct(n,r){return function(e,t){if(e==null)return e;if(!sn(e))return n(e,t);for(var f=e.length,i=-1,a=Object(e);++i<f&&t(a[i],i,a)!==!1;);return e}}var Y=ct(lt);function bt(n){return typeof n=="function"?n:cn}function $t(n,r){var e=T(n)?pn:Y;return e(n,bt(r))}function dt(n,r){var e=[];return Y(n,function(t,f,i){r(t,f,i)&&e.push(t)}),e}function _t(n,r){var e=T(n)?Tn:dt;return e(n,Ln(r))}function pt(n,r){return bn(r,function(e){return n[e]})}function St(n){return n==null?[]:pt(n,$(n))}function Et(n){return n===void 0}function At(n,r,e,t,f){return f(n,function(i,a,s){e=t?(t=!1,i):r(e,i,a,s)}),e}function It(n,r,e){var t=T(n)?or:At,f=arguments.length<3;return t(n,Ln(r),e,f,Y)}var yt=1/0,Tt=M&&1/H(new M([,-0]))[1]==yt?function(n){return new M(n)}:Xn,ht=200;function Pt(n,r,e){var t=-1,f=Vn,i=n.length,a=!0,s=[],u=s;if(i>=ht){var b=r?null:Tt(n);if(b)return H(b);a=!1,f=En,u=new I}else u=r?[]:s;n:for(;++t<i;){var l=n[t],o=r?r(l):l;if(l=l!==0?l:0,a&&o===o){for(var c=u.length;c--;)if(u[c]===o)continue n;r&&u.push(o),s.push(l)}else f(u,o,e)||(u!==s&&u.push(o),s.push(l))}return s}export{Tn as A,dt as B,Ie as C,Xn as D,I as S,Pt as a,C as b,Ot as c,$t as d,B as e,_t as f,Ln as g,Qn as h,Et as i,Y as j,$ as k,bn as l,tt as m,An as n,yn as o,bt as p,lt as q,It as r,it as s,m as t,ar as u,St as v,Vn as w,En as x,zn as y,yr as z};
@@ -0,0 +1 @@
1
+ import{r as y,W as L,g as qe}from"./monaco-editor-DHKm5-VF.js";import{j as v}from"./data-structures-C0h9Oap1.js";import{r as _e}from"./syntax-highlighting-CnREyncB.js";import{u as Le}from"./tools-C7xmF_rB.js";import{E as $e,o as Ke}from"./ui-components-BNdpaz32.js";var U=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(){}},He={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Be=class{#e=He;#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)}},M=new Be;function Ge(e){setTimeout(e,0)}var D=typeof window>"u"||"Deno"in globalThis;function k(){}function We(e,t){return typeof e=="function"?e(t):e}function G(e){return typeof e=="number"&&e>=0&&e!==1/0}function be(e,t){return Math.max(e+(t||0)-Date.now(),0)}function j(e,t){return typeof e=="function"?e(t):e}function I(e,t){return typeof e=="function"?e(t):e}function oe(e,t){const{type:s="all",exact:r,fetchStatus:i,predicate:n,queryKey:o,stale:a}=e;if(o){if(r){if(t.queryHash!==se(o,t.options))return!1}else if(!q(t.queryKey,o))return!1}if(s!=="all"){const u=t.isActive();if(s==="active"&&!u||s==="inactive"&&u)return!1}return!(typeof a=="boolean"&&t.isStale()!==a||i&&i!==t.state.fetchStatus||n&&!n(t))}function ue(e,t){const{exact:s,status:r,predicate:i,mutationKey:n}=e;if(n){if(!t.options.mutationKey)return!1;if(s){if(A(t.options.mutationKey)!==A(n))return!1}else if(!q(t.options.mutationKey,n))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function se(e,t){return(t?.queryKeyHashFn||A)(e)}function A(e){return JSON.stringify(e,(t,s)=>W(s)?Object.keys(s).sort().reduce((r,i)=>(r[i]=s[i],r),{}):s)}function q(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(s=>q(e[s],t[s])):!1}var ze=Object.prototype.hasOwnProperty;function Se(e,t){if(e===t)return e;const s=ce(e)&&ce(t);if(!s&&!(W(e)&&W(t)))return t;const i=(s?e:Object.keys(e)).length,n=s?t:Object.keys(t),o=n.length,a=s?new Array(o):{};let u=0;for(let h=0;h<o;h++){const l=s?h:n[h],f=e[l],d=t[l];if(f===d){a[l]=f,(s?h<i:ze.call(e,l))&&u++;continue}if(f===null||d===null||typeof f!="object"||typeof d!="object"){a[l]=d;continue}const p=Se(f,d);a[l]=p,p===f&&u++}return i===o&&u===i?e:a}function H(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 ce(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function W(e){if(!le(e))return!1;const t=e.constructor;if(t===void 0)return!0;const s=t.prototype;return!(!le(s)||!s.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function le(e){return Object.prototype.toString.call(e)==="[object Object]"}function Je(e){return new Promise(t=>{M.setTimeout(t,e)})}function z(e,t,s){return typeof s.structuralSharing=="function"?s.structuralSharing(e,t):s.structuralSharing!==!1?Se(e,t):t}function Ye(e,t,s=0){const r=[...e,t];return s&&r.length>s?r.slice(1):r}function Ve(e,t,s=0){const r=[t,...e];return s&&r.length>s?r.slice(0,-1):r}var re=Symbol();function we(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===re?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function xe(e,t){return typeof e=="function"?e(...t):!!e}var Xe=class extends U{#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"}},ie=new Xe;function J(){let e,t;const s=new Promise((i,n)=>{e=i,t=n});s.status="pending",s.catch(()=>{});function r(i){Object.assign(s,i),delete s.resolve,delete s.reject}return s.resolve=i=>{r({status:"fulfilled",value:i}),e(i)},s.reject=i=>{r({status:"rejected",reason:i}),t(i)},s}var Ze=Ge;function et(){let e=[],t=0,s=a=>{a()},r=a=>{a()},i=Ze;const n=a=>{t?e.push(a):i(()=>{s(a)})},o=()=>{const a=e;e=[],a.length&&i(()=>{r(()=>{a.forEach(u=>{s(u)})})})};return{batch:a=>{let u;t++;try{u=a()}finally{t--,t||o()}return u},batchCalls:a=>(...u)=>{n(()=>{a(...u)})},schedule:n,setNotifyFunction:a=>{s=a},setBatchNotifyFunction:a=>{r=a},setScheduler:a=>{i=a}}}var O=et(),tt=class extends U{#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}},B=new tt;function st(e){return Math.min(1e3*2**e,3e4)}function Pe(e){return(e??"online")==="online"?B.isOnline():!0}var Y=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function Oe(e){let t=!1,s=0,r;const i=J(),n=()=>i.status!=="pending",o=c=>{if(!n()){const w=new Y(c);d(w),e.onCancel?.(w)}},a=()=>{t=!0},u=()=>{t=!1},h=()=>ie.isFocused()&&(e.networkMode==="always"||B.isOnline())&&e.canRun(),l=()=>Pe(e.networkMode)&&e.canRun(),f=c=>{n()||(r?.(),i.resolve(c))},d=c=>{n()||(r?.(),i.reject(c))},p=()=>new Promise(c=>{r=w=>{(n()||h())&&c(w)},e.onPause?.()}).then(()=>{r=void 0,n()||e.onContinue?.()}),b=()=>{if(n())return;let c;const w=s===0?e.initialPromise:void 0;try{c=w??e.fn()}catch(x){c=Promise.reject(x)}Promise.resolve(c).then(f).catch(x=>{if(n())return;const m=e.retry??(D?0:3),P=e.retryDelay??st,R=typeof P=="function"?P(s,x):P,T=m===!0||typeof m=="number"&&s<m||typeof m=="function"&&m(s,x);if(t||!T){d(x);return}s++,e.onFail?.(s,x),Je(R).then(()=>h()?void 0:p()).then(()=>{t?d(x):b()})})};return{promise:i,status:()=>i.status,cancel:o,continue:()=>(r?.(),i),cancelRetry:a,continueRetry:u,canStart:l,start:()=>(l()?b():p().then(b),i)}}var Ce=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),G(this.gcTime)&&(this.#e=M.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(D?1/0:300*1e3))}clearGcTimeout(){this.#e&&(M.clearTimeout(this.#e),this.#e=void 0)}},rt=class extends Ce{#e;#t;#s;#i;#r;#a;#o;constructor(e){super(),this.#o=!1,this.#a=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#s=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=he(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#r?.promise}setOptions(e){if(this.options={...this.#a,...e},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const t=he(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.#r?.promise;return this.#r?.cancel(e),t?t.then(k).catch(k):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>I(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===re||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>j(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:!be(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#r?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#r?.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.#r&&(this.#o?this.#r.cancel({revert:!0}):this.#r.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.#r?.status()!=="rejected"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#r)return this.#r.continueRetry(),this.#r.promise}if(e&&this.setOptions(e),!this.options.queryFn){const a=this.observers.find(u=>u.options.queryFn);a&&this.setOptions(a.options)}const s=new AbortController,r=a=>{Object.defineProperty(a,"signal",{enumerable:!0,get:()=>(this.#o=!0,s.signal)})},i=()=>{const a=we(this.options,t),h=(()=>{const l={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(l),l})();return this.#o=!1,this.options.persister?this.options.persister(a,h,this):a(h)},o=(()=>{const a={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(a),a})();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.#r=Oe({initialPromise:t?.initialPromise,fn:o.fetchFn,onCancel:a=>{a instanceof Y&&a.revert&&this.setState({...this.#t,fetchStatus:"idle"}),s.abort()},onFail:(a,u)=>{this.#n({type:"failed",failureCount:a,error:u})},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 a=await this.#r.start();if(a===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(a),this.#s.config.onSuccess?.(a,this),this.#s.config.onSettled?.(a,this.state.error,this),a}catch(a){if(a instanceof Y){if(a.silent)return this.#r.promise;if(a.revert){if(this.state.data===void 0)throw a;return this.state.data}}throw this.#n({type:"error",error:a}),this.#s.config.onError?.(a,this),this.#s.config.onSettled?.(this.state.data,a,this),a}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,...Ee(s.data,this.options),fetchMeta:e.meta??null};case"success":const r={...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?r:void 0,r;case"error":const i=e.error;return{...s,error:i,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error"};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...e.state}}};this.state=t(this.state),O.batch(()=>{this.observers.forEach(s=>{s.onQueryUpdate()}),this.#s.notify({query:this,type:"updated",action:e})})}};function Ee(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Pe(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function he(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,s=t!==void 0,r=s?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:s?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}var it=class extends U{constructor(e,t){super(),this.options=t,this.#e=e,this.#n=null,this.#o=J(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#s=void 0;#i=void 0;#r;#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),de(this.#t,this.options)?this.#h():this.updateResult(),this.#b())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return V(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return V(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#S(),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 I(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#x(),this.#t.setOptions(this.options),t._defaulted&&!H(this.options,t)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const r=this.hasListeners();r&&fe(this.#t,s,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==s||I(this.options.enabled,this.#t)!==I(t.enabled,this.#t)||j(this.options.staleTime,this.#t)!==j(t.staleTime,this.#t))&&this.#y();const i=this.#g();r&&(this.#t!==s||I(this.options.enabled,this.#t)!==I(t.enabled,this.#t)||i!==this.#u)&&this.#v(i)}getOptimisticResult(e){const t=this.#e.getQueryCache().build(this.#e,e),s=this.createResult(t,e);return at(this,s)&&(this.#i=s,this.#a=this.options,this.#r=this.#t.state),s}getCurrentResult(){return this.#i}trackResult(e,t){return new Proxy(e,{get:(s,r)=>(this.trackProp(r),t?.(r),r==="promise"&&!this.options.experimental_prefetchInRender&&this.#o.status==="pending"&&this.#o.reject(new Error("experimental_prefetchInRender feature flag is not enabled")),Reflect.get(s,r))})}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.#i))}#h(e){this.#x();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(k)),t}#y(){this.#S();const e=j(this.options.staleTime,this.#t);if(D||this.#i.isStale||!G(e))return;const s=be(this.#i.dataUpdatedAt,e)+1;this.#c=M.setTimeout(()=>{this.#i.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||I(this.options.enabled,this.#t)===!1||!G(this.#u)||this.#u===0)&&(this.#l=M.setInterval(()=>{(this.options.refetchIntervalInBackground||ie.isFocused())&&this.#h()},this.#u))}#b(){this.#y(),this.#v(this.#g())}#S(){this.#c&&(M.clearTimeout(this.#c),this.#c=void 0)}#w(){this.#l&&(M.clearInterval(this.#l),this.#l=void 0)}createResult(e,t){const s=this.#t,r=this.options,i=this.#i,n=this.#r,o=this.#a,u=e!==s?e.state:this.#s,{state:h}=e;let l={...h},f=!1,d;if(t._optimisticResults){const S=this.hasListeners(),E=!S&&de(e,t),C=S&&fe(e,s,t,r);(E||C)&&(l={...l,...Ee(h.data,e.options)}),t._optimisticResults==="isRestoring"&&(l.fetchStatus="idle")}let{error:p,errorUpdatedAt:b,status:c}=l;d=l.data;let w=!1;if(t.placeholderData!==void 0&&d===void 0&&c==="pending"){let S;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(S=i.data,w=!0):S=typeof t.placeholderData=="function"?t.placeholderData(this.#f?.state.data,this.#f):t.placeholderData,S!==void 0&&(c="success",d=z(i?.data,S,t),f=!0)}if(t.select&&d!==void 0&&!w)if(i&&d===n?.data&&t.select===this.#m)d=this.#d;else try{this.#m=t.select,d=t.select(d),d=z(i?.data,d,t),this.#d=d,this.#n=null}catch(S){this.#n=S}this.#n&&(p=this.#n,d=this.#d,b=Date.now(),c="error");const x=l.fetchStatus==="fetching",m=c==="pending",P=c==="error",R=m&&x,T=d!==void 0,g={status:c,fetchStatus:l.fetchStatus,isPending:m,isSuccess:c==="success",isError:P,isInitialLoading:R,isLoading:R,data:d,dataUpdatedAt:l.dataUpdatedAt,error:p,errorUpdatedAt:b,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:l.dataUpdateCount>0||l.errorUpdateCount>0,isFetchedAfterMount:l.dataUpdateCount>u.dataUpdateCount||l.errorUpdateCount>u.errorUpdateCount,isFetching:x,isRefetching:x&&!m,isLoadingError:P&&!T,isPaused:l.fetchStatus==="paused",isPlaceholderData:f,isRefetchError:P&&T,isStale:ne(e,t),refetch:this.refetch,promise:this.#o,isEnabled:I(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){const S=F=>{g.status==="error"?F.reject(g.error):g.data!==void 0&&F.resolve(g.data)},E=()=>{const F=this.#o=g.promise=J();S(F)},C=this.#o;switch(C.status){case"pending":e.queryHash===s.queryHash&&S(C);break;case"fulfilled":(g.status==="error"||g.data!==C.value)&&E();break;case"rejected":(g.status!=="error"||g.error!==C.reason)&&E();break}}return g}updateResult(){const e=this.#i,t=this.createResult(this.#t,this.options);if(this.#r=this.#t.state,this.#a=this.options,this.#r.data!==void 0&&(this.#f=this.#t),H(t,e))return;this.#i=t;const s=()=>{if(!e)return!0;const{notifyOnChangeProps:r}=this.options,i=typeof r=="function"?r():r;if(i==="all"||!i&&!this.#p.size)return!0;const n=new Set(i??this.#p);return this.options.throwOnError&&n.add("error"),Object.keys(this.#i).some(o=>{const a=o;return this.#i[a]!==e[a]&&n.has(a)})};this.#P({listeners:s()})}#x(){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()}#P(e){O.batch(()=>{e.listeners&&this.listeners.forEach(t=>{t(this.#i)}),this.#e.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function nt(e,t){return I(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function de(e,t){return nt(e,t)||e.state.data!==void 0&&V(e,t,t.refetchOnMount)}function V(e,t,s){if(I(t.enabled,e)!==!1&&j(t.staleTime,e)!=="static"){const r=typeof s=="function"?s(e):s;return r==="always"||r!==!1&&ne(e,t)}return!1}function fe(e,t,s,r){return(e!==t||I(r.enabled,e)===!1)&&(!s.suspense||e.state.status!=="error")&&ne(e,s)}function ne(e,t){return I(t.enabled,e)!==!1&&e.isStaleByTime(j(t.staleTime,e))}function at(e,t){return!H(e.getCurrentResult(),t)}function pe(e){return{onFetch:(t,s)=>{const r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,n=t.state.data?.pages||[],o=t.state.data?.pageParams||[];let a={pages:[],pageParams:[]},u=0;const h=async()=>{let l=!1;const f=b=>{Object.defineProperty(b,"signal",{enumerable:!0,get:()=>(t.signal.aborted?l=!0:t.signal.addEventListener("abort",()=>{l=!0}),t.signal)})},d=we(t.options,t.fetchOptions),p=async(b,c,w)=>{if(l)return Promise.reject();if(c==null&&b.pages.length)return Promise.resolve(b);const m=(()=>{const N={client:t.client,queryKey:t.queryKey,pageParam:c,direction:w?"backward":"forward",meta:t.options.meta};return f(N),N})(),P=await d(m),{maxPages:R}=t.options,T=w?Ve:Ye;return{pages:T(b.pages,P,R),pageParams:T(b.pageParams,c,R)}};if(i&&n.length){const b=i==="backward",c=b?ot:me,w={pages:n,pageParams:o},x=c(r,w);a=await p(w,x,b)}else{const b=e??n.length;do{const c=u===0?o[0]??r.initialPageParam:me(r,a);if(u>0&&c==null)break;a=await p(a,c),u++}while(u<b)}return a};t.options.persister?t.fetchFn=()=>t.options.persister?.(h,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},s):t.fetchFn=h}}}function me(e,{pages:t,pageParams:s}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,s[r],s):void 0}function ot(e,{pages:t,pageParams:s}){return t.length>0?e.getPreviousPageParam?.(t[0],t,s[0],s):void 0}var ut=class extends Ce{#e;#t;#s;#i;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#s=e.mutationCache,this.#t=[],this.state=e.state||Re(),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.#i?.continue()??this.execute(this.state.variables)}async execute(e){const t=()=>{this.#r({type:"continue"})},s={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#i=Oe({fn:()=>this.options.mutationFn?this.options.mutationFn(e,s):Promise.reject(new Error("No mutationFn found")),onFail:(n,o)=>{this.#r({type:"failed",failureCount:n,error:o})},onPause:()=>{this.#r({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#s.canRun(this)});const r=this.state.status==="pending",i=!this.#i.canStart();try{if(r)t();else{this.#r({type:"pending",variables:e,isPaused:i}),await this.#s.config.onMutate?.(e,this,s);const o=await this.options.onMutate?.(e,s);o!==this.state.context&&this.#r({type:"pending",context:o,variables:e,isPaused:i})}const n=await this.#i.start();return await this.#s.config.onSuccess?.(n,e,this.state.context,this,s),await this.options.onSuccess?.(n,e,this.state.context,s),await this.#s.config.onSettled?.(n,null,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(n,null,e,this.state.context,s),this.#r({type:"success",data:n}),n}catch(n){try{throw await this.#s.config.onError?.(n,e,this.state.context,this,s),await this.options.onError?.(n,e,this.state.context,s),await this.#s.config.onSettled?.(void 0,n,this.state.variables,this.state.context,this,s),await this.options.onSettled?.(void 0,n,e,this.state.context,s),n}finally{this.#r({type:"error",error:n})}}finally{this.#s.runNext(this)}}#r(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),O.batch(()=>{this.#t.forEach(s=>{s.onMutationUpdate(e)}),this.#s.notify({mutation:this,type:"updated",action:e})})}};function Re(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ct=class extends U{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 r=new ut({client:e,mutationCache:this,mutationId:++this.#s,options:e.defaultMutationOptions(t),state:s});return this.add(r),r}add(e){this.#e.add(e);const t=$(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=$(e);if(typeof t=="string"){const s=this.#t.get(t);if(s)if(s.length>1){const r=s.indexOf(e);r!==-1&&s.splice(r,1)}else s[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){const t=$(e);if(typeof t=="string"){const r=this.#t.get(t)?.find(i=>i.state.status==="pending");return!r||r===e}else return!0}runNext(e){const t=$(e);return typeof t=="string"?this.#t.get(t)?.find(r=>r!==e&&r.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){O.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=>ue(t,s))}findAll(e={}){return this.getAll().filter(t=>ue(e,t))}notify(e){O.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){const e=this.getAll().filter(t=>t.state.isPaused);return O.batch(()=>Promise.all(e.map(t=>t.continue().catch(k))))}};function $(e){return e.options.scope?.id}var lt=class extends U{#e;#t=void 0;#s;#i;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#r()}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),H(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.#r(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#s?.removeObserver(this),this.#s=void 0,this.#r(),this.#a()}mutate(e,t){return this.#i=t,this.#s?.removeObserver(this),this.#s=this.#e.getMutationCache().build(this.#e,this.options),this.#s.addObserver(this),this.#s.execute(e)}#r(){const e=this.#s?.state??Re();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){O.batch(()=>{if(this.#i&&this.hasListeners()){const t=this.#t.variables,s=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};e?.type==="success"?(this.#i.onSuccess?.(e.data,t,s,r),this.#i.onSettled?.(e.data,null,t,s,r)):e?.type==="error"&&(this.#i.onError?.(e.error,t,s,r),this.#i.onSettled?.(void 0,e.error,t,s,r))}this.listeners.forEach(t=>{t(this.#t)})})}},ht=class extends U{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,s){const r=t.queryKey,i=t.queryHash??se(r,t);let n=this.get(i);return n||(n=new rt({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:s,defaultOptions:e.getQueryDefaults(r)}),this.add(n)),n}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(){O.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=>oe(t,s))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter(s=>oe(e,s)):t}notify(e){O.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){O.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){O.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Bt=class{#e;#t;#s;#i;#r;#a;#o;#n;constructor(e={}){this.#e=e.queryCache||new ht,this.#t=e.mutationCache||new ct,this.#s=e.defaultOptions||{},this.#i=new Map,this.#r=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=ie.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#n=B.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),r=s.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&s.isStaleByTime(j(t.staleTime,s))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:s})=>{const r=s.data;return[t,r]})}setQueryData(e,t,s){const r=this.defaultQueryOptions({queryKey:e}),n=this.#e.get(r.queryHash)?.state.data,o=We(t,n);if(o!==void 0)return this.#e.build(this,r).setData(o,{...s,manual:!0})}setQueriesData(e,t,s){return O.batch(()=>this.#e.findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,s)]))}getQueryState(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){const t=this.#e;O.batch(()=>{t.findAll(e).forEach(s=>{t.remove(s)})})}resetQueries(e,t){const s=this.#e;return O.batch(()=>(s.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const s={revert:!0,...t},r=O.batch(()=>this.#e.findAll(e).map(i=>i.cancel(s)));return Promise.all(r).then(k).catch(k)}invalidateQueries(e,t={}){return O.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},r=O.batch(()=>this.#e.findAll(e).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let n=i.fetch(void 0,s);return s.throwOnError||(n=n.catch(k)),i.state.fetchStatus==="paused"?Promise.resolve():n}));return Promise.all(r).then(k)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const s=this.#e.build(this,t);return s.isStaleByTime(j(t.staleTime,s))?s.fetch(t):Promise.resolve(s.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(k).catch(k)}fetchInfiniteQuery(e){return e.behavior=pe(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(k).catch(k)}ensureInfiniteQueryData(e){return e.behavior=pe(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return B.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.#i.set(A(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#i.values()],s={};return t.forEach(r=>{q(e,r.queryKey)&&Object.assign(s,r.defaultOptions)}),s}setMutationDefaults(e,t){this.#r.set(A(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#r.values()],s={};return t.forEach(r=>{q(e,r.mutationKey)&&Object.assign(s,r.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=se(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===re&&(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()}},ke=y.createContext(void 0),Fe=e=>{const t=y.useContext(ke);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},Gt=({client:e,children:t})=>(y.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),v.jsx(ke.Provider,{value:e,children:t})),Te=y.createContext(!1),dt=()=>y.useContext(Te);Te.Provider;function ft(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var pt=y.createContext(ft()),mt=()=>y.useContext(pt),yt=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},gt=e=>{y.useEffect(()=>{e.clearReset()},[e])},vt=({result:e,errorResetBoundary:t,throwOnError:s,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||xe(s,[e.error,r])),bt=e=>{if(e.suspense){const s=i=>i==="static"?i:Math.max(i??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...i)=>s(r(...i)):s(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},St=(e,t)=>e.isLoading&&e.isFetching&&!t,wt=(e,t)=>e?.suspense&&t.isPending,ye=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function xt(e,t,s){const r=dt(),i=mt(),n=Fe(),o=n.defaultQueryOptions(e);n.getDefaultOptions().queries?._experimental_beforeQuery?.(o),o._optimisticResults=r?"isRestoring":"optimistic",bt(o),yt(o,i),gt(i);const a=!n.getQueryCache().get(o.queryHash),[u]=y.useState(()=>new t(n,o)),h=u.getOptimisticResult(o),l=!r&&e.subscribed!==!1;if(y.useSyncExternalStore(y.useCallback(f=>{const d=l?u.subscribe(O.batchCalls(f)):k;return u.updateResult(),d},[u,l]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),y.useEffect(()=>{u.setOptions(o)},[o,u]),wt(o,h))throw ye(o,u,i);if(vt({result:h,errorResetBoundary:i,throwOnError:o.throwOnError,query:n.getQueryCache().get(o.queryHash),suspense:o.suspense}))throw h.error;return n.getDefaultOptions().queries?._experimental_afterQuery?.(o,h),o.experimental_prefetchInRender&&!D&&St(h,r)&&(a?ye(o,u,i):n.getQueryCache().get(o.queryHash)?.promise)?.catch(k).finally(()=>{u.updateResult()}),o.notifyOnChangeProps?h:u.trackResult(h)}function Ie(e,t){return xt(e,it)}function Wt(e,t){const s=Fe(),[r]=y.useState(()=>new lt(s,e));y.useEffect(()=>{r.setOptions(e)},[r,e]);const i=y.useSyncExternalStore(y.useCallback(o=>r.subscribe(O.batchCalls(o)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),n=y.useCallback((o,a)=>{r.mutate(o,a).catch(k)},[r]);if(i.error&&xe(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:n,mutateAsync:i.mutate}}const K=[{id:"default",name:"默认服务",url:"http://127.0.0.1:4936",isDefault:!0}],je="backendServices",Pt=()=>{try{const e=localStorage.getItem(je);if(e){const t=JSON.parse(e);return!t.services||t.services.length===0?{services:K,currentServiceId:K[0].id}:t}}catch(e){console.error("Failed to load backend services:",e)}return{services:K,currentServiceId:K[0].id}},ae=e=>{try{localStorage.setItem(je,JSON.stringify(e))}catch(t){console.error("Failed to save backend services:",t)}},Ot=e=>e.services.find(t=>t.id===e.currentServiceId)||null,zt=(e,t,s)=>{const r={...e,services:e.services.map(i=>i.id===t?{...i,...s}:i)};return ae(r),r},Jt=(e,t)=>{if(e.services.find(i=>i.id===t)?.isDefault)return e;const r={...e,services:e.services.filter(i=>i.id!==t),currentServiceId:e.currentServiceId===t?e.services.find(i=>i.id!==t)?.id||null:e.currentServiceId};return ae(r),r},Yt=(e,t)=>{if(!e.services.find(i=>i.id===t))return e;const r={...e,currentServiceId:t};return ae(r),r},Ct=()=>{const e="/api";return e.startsWith("/")&&!e.startsWith("//")},Me=()=>{if(Ct())return window.location.origin;const e=Pt(),t=Ot(e);return t?t.url:"http://127.0.0.1:4936"},Q=()=>Me()+"/api",X=()=>Me()+"/media";X();const Et=Q(),Vt=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,ge=e=>{let t;const s=new Set,r=(h,l)=>{const f=typeof h=="function"?h(t):h;if(!Object.is(f,t)){const d=t;t=l??(typeof f!="object"||f===null)?f:Object.assign({},t,f),s.forEach(p=>p(t,d))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>u,subscribe:h=>(s.add(h),()=>s.delete(h))},u=t=e(r,i,a);return a},Rt=(e=>e?ge(e):ge),kt=e=>e;function Ft(e,t=kt){const s=L.useSyncExternalStore(e.subscribe,L.useCallback(()=>t(e.getState()),[e,t]),L.useCallback(()=>t(e.getInitialState()),[e,t]));return L.useDebugValue(s),s}const ve=e=>{const t=Rt(e),s=r=>Ft(t,r);return Object.assign(s,t),s},Tt=(e=>e?ve(e):ve);function It(e,t){let s;try{s=e()}catch{return}return{getItem:i=>{var n;const o=u=>u===null?null:JSON.parse(u,void 0),a=(n=s.getItem(i))!=null?n:null;return a instanceof Promise?a.then(o):o(a)},setItem:(i,n)=>s.setItem(i,JSON.stringify(n,void 0)),removeItem:i=>s.removeItem(i)}}const Z=e=>t=>{try{const s=e(t);return s instanceof Promise?s:{then(r){return Z(r)(s)},catch(r){return this}}}catch(s){return{then(r){return this},catch(r){return Z(r)(s)}}}},jt=(e,t)=>(s,r,i)=>{let n={storage:It(()=>localStorage),partialize:c=>c,version:0,merge:(c,w)=>({...w,...c}),...t},o=!1;const a=new Set,u=new Set;let h=n.storage;if(!h)return e((...c)=>{console.warn(`[zustand persist middleware] Unable to update item '${n.name}', the given storage is currently unavailable.`),s(...c)},r,i);const l=()=>{const c=n.partialize({...r()});return h.setItem(n.name,{state:c,version:n.version})},f=i.setState;i.setState=(c,w)=>(f(c,w),l());const d=e((...c)=>(s(...c),l()),r,i);i.getInitialState=()=>d;let p;const b=()=>{var c,w;if(!h)return;o=!1,a.forEach(m=>{var P;return m((P=r())!=null?P:d)});const x=((w=n.onRehydrateStorage)==null?void 0:w.call(n,(c=r())!=null?c:d))||void 0;return Z(h.getItem.bind(h))(n.name).then(m=>{if(m)if(typeof m.version=="number"&&m.version!==n.version){if(n.migrate){const P=n.migrate(m.state,m.version);return P instanceof Promise?P.then(R=>[!0,R]):[!0,P]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,m.state];return[!1,void 0]}).then(m=>{var P;const[R,T]=m;if(p=n.merge(T,(P=r())!=null?P:d),s(p,!0),R)return l()}).then(()=>{x?.(p,void 0),p=r(),o=!0,u.forEach(m=>m(p))}).catch(m=>{x?.(void 0,m)})};return i.persist={setOptions:c=>{n={...n,...c},c.storage&&(h=c.storage)},clearStorage:()=>{h?.removeItem(n.name)},getOptions:()=>n,rehydrate:()=>b(),hasHydrated:()=>o,onHydrate:c=>(a.add(c),()=>{a.delete(c)}),onFinishHydration:c=>(u.add(c),()=>{u.delete(c)})},n.skipHydration||b(),p||d},Mt=jt,ee=Tt()(Mt((e,t)=>({token:null,tokens:{},isAuthenticated:!1,getToken:s=>{const{tokens:r}=t();return r[s]||null},setToken:s=>{e(r=>({tokens:{...r.tokens,[s.serviceId]:s},token:s,isAuthenticated:!0}))},removeToken:s=>{e(r=>{const i={...r.tokens};delete i[s];const n=r.token,o=n&&typeof n=="object"&&"serviceId"in n&&n.serviceId===s;return{tokens:i,token:o?null:r.token,isAuthenticated:o?!1:r.isAuthenticated}})},logout:()=>e({tokens:{},token:null,isAuthenticated:!1})}),{name:"auth-storage",migrate:(e,t)=>{const s=e;if(s.token&&!s.tokens){const r=s.token;if(typeof r=="object"&&r&&"serviceId"in r)return{...s,tokens:{[r.serviceId]:r}}}return e}}));function te(e){try{const s=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/");return JSON.parse(window.atob(s))}catch{return null}}const Xt=e=>{if(!e)return!0;if(typeof e=="string"){const i=te(e);if(!i||!i.exp)return!0;const n=Math.floor(Date.now()/1e3);return i.exp<=n}const t=te(e.token);if(t&&t.exp){const i=Math.floor(Date.now()/1e3);return t.exp<=i}const s=Date.now()-e.timestamp,r=10080*60*1e3;return s>r},Dt=(e,t=24)=>{if(!e)return!0;const s=typeof e=="string"?e:e.token,r=te(s);if(!r||!r.exp)return!0;const i=Math.floor(Date.now()/1e3),n=t*60*60;return r.exp-i<=n},De=e=>e?typeof e=="object"&&"token"in e?e.token:e:null;async function _(e,t={}){const{skipAuth:s=!1,maxRetries:r=1,...i}=t;let n=0;for(;n<=r;)try{const o=await At(e,i,s);if(o.status===401&&n<r&&!s&&await Qe()){n++;continue}return o}catch(o){if(n>=r){if(o instanceof Error){const a=o;a.requestUrl=e,a.requestMethod=t.method||"GET",a.isRetryable=!0,a.retryAttempt=n,a.maxRetries=r,o.name==="TypeError"&&o.message.includes("fetch")&&(a.message=`Network request failed: ${t.method||"GET"} ${e}`)}throw o}n++,await new Promise(a=>setTimeout(a,1e3))}throw new Error("Max retries exceeded")}async function At(e,t={},s=!1){const r=new Headers(t.headers||{});let i;if(!s){const o=Ae(),{getToken:a}=ee.getState(),u=o?a(o):ee.getState().token;i=De(u)||void 0,i&&(r.set("Authorization",`Bearer ${i}`),Dt(u)&&Qe().catch(console.error))}const n={...t,headers:r};return fetch(e,n).catch(o=>{if(o instanceof Error){const a=o;a.requestUrl=e,a.requestMethod=n.method||"GET",a.hasAuth=!s,a.tokenPresent=!!i,o.name==="TypeError"&&o.message.includes("fetch")&&(a.message=`Failed to connect to server: ${n.method||"GET"} ${e}`)}throw o})}function Ae(){try{const e=localStorage.getItem("backend-services-storage");if(e)return JSON.parse(e).state?.currentService?.id||null}catch(e){console.error("Error getting current service ID:",e)}return null}async function Qe(){try{const e=Ae(),{getToken:t,setToken:s}=ee.getState();if(!e)return!1;const r=t(e);if(!r)return!1;const i=De(r);if(!i)return!1;const n=await fetch(`${Et}/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:i})});if(n.ok){const o=await n.json();if(o.success&&o.token&&o.refreshed){const a={...r,token:o.token,timestamp:Date.now()};return s(a),console.log("Token refreshed successfully via authFetch"),!0}}return!1}catch(e){return console.error("Token refresh failed:",e),!1}}const Ue=e=>{let t=e.match(/window\.presentationConfig\s*=\s*\{[\s\S]*?slides:\s*\[([\s\S]*?)\]/);const 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 i=t[1].match(/"([^"]+)"/g),n=i?i.map(a=>a.replace(/"/g,"")):[],o=s?s[1]:"Presentation";return{slides:n,title:o}},Qt=e=>{const t=e.match(/<title>(.*?)<\/title>/i)||e.match(/<h1[^>]*>(.*?)<\/h1>/i);return t?t[1].replace(/<[^>]*>/g,"").trim():""},Zt=e=>Ie({queryKey:["slides",e],queryFn:async()=>{const t=new URLSearchParams;t.set("path","slides.js"),e&&t.set("projectPath",e);const s=await _(`${Q()}/files/read?${t.toString()}`);if(!s.ok){if(s.status===404)return{slides:[],title:"Presentation",total:0};throw new Error("Failed to fetch slides configuration")}const r=await s.json(),{slides:i,title:n}=Ue(r.content),o=new URLSearchParams;e&&o.set("projectPath",e);const a=await _(`${Q()}/files/read-multiple?${o.toString()}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:i})});if(!a.ok)throw new Error("Failed to fetch slide files");const u=await a.json();return{slides:i.map((l,f)=>{const d=u.files.find(b=>b.path===l);let p=l.split("/").pop()?.replace(".html","")||`Slide ${f+1}`;if(d?.exists&&d.content){const b=Qt(d.content);b&&(p=b)}return{path:l,title:p,exists:d?.exists||!1,index:f}}),total:i.length,title:n}}}),Ut=(e,t)=>Ie({queryKey:["slide-content",e,t],queryFn:async()=>{const s=new URLSearchParams;s.set("path","slides.js"),s.set("projectPath",t||"");const r=await _(`${Q()}/files/read?${s.toString()}`);if(!r.ok)throw r.status===404?new Error("No slides configuration found. Please create slides.js file first."):new Error("Failed to fetch slides configuration");const i=await r.json(),{slides:n}=Ue(i.content);if(e>=n.length)throw new Error("Slide not found");const o=n[e],a=new URLSearchParams;a.set("path",o),a.set("projectPath",t||"");const u=await _(`${Q()}/files/read?${a.toString()}`);if(!u.ok)throw new Error("Failed to fetch slide content");return{content:(await u.json()).content,path:o,index:e}},enabled:e>=0});var Nt=_e();const qt=qe(Nt);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 r={};r["language-"+s]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[s]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};i["language-"+s]={pattern:/[\s\S]+/,inside:Prism.languages[s]};var n={};n[t]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return t}),"i"),lookbehind:!0,greedy:!0,inside:i},Prism.languages.insertBefore("markup","cdata",n)}});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 es=y.forwardRef(({slide:e,totalSlides:t,projectPath:s},r)=>{const{t:i}=Le("agents"),n=y.useRef(null),o=y.useRef(null),[a,u]=y.useState(!0),[h,l]=y.useState(!1),[f,d]=y.useState("preview"),[p,b]=y.useState(null),[c,w]=y.useState(1),{data:x}=Ut(e.index,s),m=y.useCallback((g,S,E)=>{try{const C=Date.now(),F=`${X()}/${S}/${E}?t=${C}`;console.log("SlidePreview: Loading iframe with URL:",F),g.src=F}catch(C){console.error("SlidePreview: Error loading iframe:",C),l(!0),u(!1)}},[X]);y.useImperativeHandle(r,()=>({refreshIframe:()=>{const g=n.current;g&&p&&e.path&&m(g,p,e.path)}}),[p,e.path,m]),y.useEffect(()=>{if(!s){console.log("SlidePreview: No projectPath provided");return}(async()=>{try{const S=new URLSearchParams;S.set("projectPath",s);const E=`${Q()}/files/project-id?${S.toString()}`;console.log("SlidePreview: Fetching project ID from:",E);const C=await _(E);if(C.ok){const F=await C.json();console.log("SlidePreview: Got project ID:",F.projectId,"for path:",s),b(F.projectId)}else{console.error("SlidePreview: Failed to fetch project ID, status:",C.status);const F=await C.json().catch(()=>({error:"Unknown error"}));console.error("SlidePreview: Error details:",F)}}catch(S){console.error("SlidePreview: Exception while fetching project ID:",S)}})()},[s]),y.useEffect(()=>{const g=n.current;if(!g||f!=="preview"||!p||!e.path)return;u(!0),l(!1);const S=()=>{u(!1),l(!1)},E=()=>{u(!1),l(!0)};return g.addEventListener("load",S),g.addEventListener("error",E),m(g,p,e.path),()=>{g.removeEventListener("load",S),g.removeEventListener("error",E)}},[f,p,e.path,m]),y.useEffect(()=>{f==="code"&&x&&setTimeout(()=>{qt.highlightAll()},0)},[f,x]);const P=1280/720,R=1280,T=720,N=()=>{if(!o.current)return 1;const S=o.current.getBoundingClientRect(),E=S.width,C=S.height,F=E/R,Ne=C/T;return Math.min(F,Ne,1)};return y.useEffect(()=>{const g=()=>{const E=N();w(E)};g(),window.addEventListener("resize",g);const S=setTimeout(g,100);return()=>{window.removeEventListener("resize",g),clearTimeout(S)}},[f]),v.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg shadow-md overflow-hidden",children:[v.jsx("div",{className:"h-12 px-4 bg-gray-100 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700 flex items-center",children:v.jsxs("div",{className:"flex items-center gap-4",children:[v.jsxs("div",{className:"flex space-x-1",children:[v.jsxs("button",{onClick:()=>d("preview"),className:`flex items-center space-x-2 px-3 py-1.5 text-sm rounded-md transition-colors ${f==="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:[v.jsx($e,{className:"w-4 h-4"}),v.jsx("span",{children:i("slidePreview.tabs.preview")})]}),v.jsxs("button",{onClick:()=>d("code"),className:`flex items-center space-x-2 px-3 py-1.5 text-sm rounded-md transition-colors ${f==="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:[v.jsx(Ke,{className:"w-4 h-4"}),v.jsx("span",{children:i("slidePreview.tabs.code")})]})]}),v.jsx("div",{className:"text-sm text-gray-600 dark:text-gray-300 font-medium flex-1",children:e.path?e.path.replace(/\.html$/,""):""}),v.jsxs("div",{className:"text-sm text-gray-500 dark:text-gray-400 font-medium",children:[e.index+1,"/",t]})]})}),v.jsx("div",{className:"p-4",children:f==="preview"?v.jsxs("div",{ref:o,className:"relative w-full bg-gray-100 dark:bg-gray-900 rounded-lg overflow-hidden",style:{aspectRatio:`${P}`},children:[a&&v.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:v.jsx("div",{className:"text-sm text-gray-500 dark:text-gray-400",children:i("slidePreview.loading")})}),h&&v.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:v.jsx("div",{className:"text-sm text-red-500 dark:text-red-400",children:i("slidePreview.loadFailed")})}),e.exists&&p&&v.jsx("div",{className:"absolute top-0 left-0",style:{width:`${R}px`,height:`${T}px`,transform:`scale(${c})`,transformOrigin:"top left"},children:v.jsx("iframe",{ref:n,className:"w-full h-full border-none",style:{display:a||h?"none":"block",width:`${R}px`,height:`${T}px`},scrolling:"no"})}),!e.exists&&!a&&v.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:v.jsx("div",{className:"text-sm text-orange-500 dark:text-orange-400",children:i("slidePreview.fileNotFound")})})]}):v.jsx("div",{className:"relative bg-gray-100 dark:bg-gray-900 rounded-lg overflow-hidden",style:{aspectRatio:`${P}`},children:x?v.jsx("div",{className:"h-full overflow-y-auto",children:v.jsx("pre",{className:"language-html h-full m-0 p-4 text-sm",style:{backgroundColor:"#2d3748"},children:v.jsx("code",{className:"language-html text-gray-100",children:x.content})})}):v.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:v.jsx("div",{className:"text-gray-500 dark:text-gray-400",children:i("slidePreview.loadingCode")})})})})]})});export{Et as A,Bt as Q,es as S,_ as a,Fe as b,Wt as c,Ot as d,Yt as e,zt as f,Q as g,ee as h,Vt as i,Xt as j,De as k,Pt as l,Dt as m,Gt as n,Tt as o,Zt as p,Jt as r,ae as s,Ie as u};
@@ -0,0 +1 @@
1
+ import{T as ln,V as an,W as z,X as q,Y as X,$ as un,a0 as y,a1 as tn,a2 as F,a3 as _,a4 as rn,a5 as o,a6 as sn,a7 as on,a8 as fn}from"./ChatPage-DkO3kzY2.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,Y,a){var O=I-l,i=D-h,n=Y-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function M(l,h,I,D,v,A,Y){var a=l-I,O=h-D,i=(Y?A:-A)/F(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,$=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*F(on(0,T*T*R-P*P)),V=(P*g-m*S)/R,W=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=V-$,e=W-t,r=w-$,j=p-t;return x*x+e*e>r*r+j*j&&(V=w,W=p),{cx:V,cy:W,x01:-n,y01:-d,x11:V*(v/T-1),y11:W*(v/T-1)}}function hn(){var l=cn,h=yn,I=X(0),D=null,v=gn,A=dn,Y=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,$=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if($>tn-y)a.moveTo(s*z(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*z(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=$,S=$,V=Y.apply(this,arguments)/2,W=V>y&&(D?+D.apply(this,arguments):F(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(W>y){var j=sn(W/u*q(V)),G=sn(W/s*q(V));(P-=j*2)>y?(j*=t?1:-1,R+=j,T-=j):(P=0,R=T=(f+c)/2),(S-=G*2)>y?(G*=t?1:-1,m+=G,g-=G):(S=0,m=g=(f+c)/2)}var B=s*z(m),C=s*q(m),H=u*z(T),J=u*q(T);if(w>y){var K=s*z(g),L=s*q(g),N=u*z(R),Q=u*q(R),E;if($<an)if(E=pn(B,C,N,Q,K,L,H,J)){var U=B-E[0],Z=C-E[1],k=K-E[0],b=L-E[1],nn=1/q(fn((U*k+Z*b)/(F(U*U+Z*Z)*F(k*k+b*b)))/2),en=F(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=M(N,Q,B,C,s,x,t),r=M(K,L,H,J,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(B,C),a.arc(0,0,s,m,g,!t)):a.moveTo(B,C),!(u>y)||!(P>y)?a.lineTo(H,J):p>y?(e=M(H,J,K,L,u,-p,t),r=M(B,C,N,Q,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[z(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:X(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:X(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:X(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:X(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:X(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:X(+n),i):A},i.padAngle=function(n){return arguments.length?(Y=typeof n=="function"?n:X(+n),i):Y},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};