agentstudio 0.3.1 → 0.3.3

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 (1370) hide show
  1. package/README.md +24 -176
  2. package/bin/agentstudio.d.ts +3 -0
  3. package/bin/agentstudio.d.ts.map +1 -0
  4. package/bin/agentstudio.js +427 -0
  5. package/bin/agentstudio.js.map +1 -0
  6. package/bin/serviceManager.d.ts +16 -0
  7. package/bin/serviceManager.d.ts.map +1 -0
  8. package/bin/serviceManager.js +434 -0
  9. package/bin/serviceManager.js.map +1 -0
  10. package/config/index.d.ts +74 -0
  11. package/config/index.d.ts.map +1 -0
  12. package/config/index.js +166 -0
  13. package/config/index.js.map +1 -0
  14. package/config/paths.d.ts +81 -0
  15. package/config/paths.d.ts.map +1 -0
  16. package/config/paths.js +98 -0
  17. package/config/paths.js.map +1 -0
  18. package/config/sdkConfig.d.ts +62 -0
  19. package/config/sdkConfig.d.ts.map +1 -0
  20. package/config/sdkConfig.js +157 -0
  21. package/config/sdkConfig.js.map +1 -0
  22. package/index.d.ts +4 -0
  23. package/index.d.ts.map +1 -0
  24. package/index.js +452 -0
  25. package/index.js.map +1 -0
  26. package/jobs/taskTimeoutMonitor.d.ts +25 -0
  27. package/jobs/taskTimeoutMonitor.d.ts.map +1 -0
  28. package/jobs/taskTimeoutMonitor.js +94 -0
  29. package/jobs/taskTimeoutMonitor.js.map +1 -0
  30. package/middleware/a2aAuth.d.ts +38 -0
  31. package/middleware/a2aAuth.d.ts.map +1 -0
  32. package/middleware/a2aAuth.js +134 -0
  33. package/middleware/a2aAuth.js.map +1 -0
  34. package/middleware/auth.d.ts +9 -0
  35. package/middleware/auth.d.ts.map +1 -0
  36. package/middleware/auth.js +35 -0
  37. package/middleware/auth.js.map +1 -0
  38. package/middleware/httpsOnly.d.ts +75 -0
  39. package/middleware/httpsOnly.d.ts.map +1 -0
  40. package/middleware/httpsOnly.js +189 -0
  41. package/middleware/httpsOnly.js.map +1 -0
  42. package/middleware/rateLimiting.d.ts +37 -0
  43. package/middleware/rateLimiting.d.ts.map +1 -0
  44. package/middleware/rateLimiting.js +118 -0
  45. package/middleware/rateLimiting.js.map +1 -0
  46. package/package.json +49 -38
  47. package/public/assets/AgentsPage-gSnkPp2k.js +10 -0
  48. package/public/assets/Button-BoiVlafj.js +1 -0
  49. package/public/assets/ChatPage-BMrfVkpt.js +471 -0
  50. package/public/assets/ChatPage-BvQmXfcP.css +1 -0
  51. package/public/assets/CommandForm-Se4iemMp.js +7 -0
  52. package/public/assets/CommandsPage-B6u4IO7L.js +1 -0
  53. package/public/assets/DashboardPage-DbCVzPKz.js +1 -0
  54. package/public/assets/FileBrowser-DcoBWzKK.js +6 -0
  55. package/public/assets/FileExplorer-B41BB0LM.js +1 -0
  56. package/public/assets/GeneralSettingsPage-BbEbWJUQ.js +1 -0
  57. package/public/assets/LandingPage-DFPm2d4Y.js +1 -0
  58. package/public/assets/LoginPage-D5kZJqhk.js +16 -0
  59. package/public/assets/McpAdminSettingsPage-D32iUEjH.js +7 -0
  60. package/public/assets/McpPage-QT4qs391.js +20 -0
  61. package/public/assets/MemorySettingsPage-DYSuz-hU.js +1 -0
  62. package/public/assets/PluginsPage-BotzuK9f.js +1 -0
  63. package/public/assets/ProjectSelector-DujNObqr.js +1 -0
  64. package/public/assets/ProjectsPage-CRWe6HPl.js +21 -0
  65. package/public/assets/ScheduledTasksPage-Beeurg-w.js +1 -0
  66. package/public/assets/SettingsLayout-BfkBUyI_.js +1 -0
  67. package/public/assets/SkillsPage-B59bAr6W.js +18 -0
  68. package/public/assets/SubagentForm-C0R084ja.js +7 -0
  69. package/public/assets/SubagentsPage-BKFNmqxg.js +1 -0
  70. package/public/assets/SystemInfoPage-D89s7PjE.js +1 -0
  71. package/public/assets/TelemetrySettingsPage-Ck2btMol.js +1 -0
  72. package/public/assets/ToastTestPage-B79DFhqI.js +1 -0
  73. package/public/assets/ToolsList-Kfxwp80g.js +1 -0
  74. package/public/assets/UnifiedToolSelector-CkafUbz3.js +1 -0
  75. package/public/assets/VersionSettingsPage-CaB4PH6h.js +5 -0
  76. package/public/assets/WebSocketTunnelPage-Cbru_-hL.js +1 -0
  77. package/public/assets/_basePickBy-5fAM04Ra.js +1 -0
  78. package/public/assets/_baseUniq-COj5YnAO.js +1 -0
  79. package/public/assets/agents-3mB536QF.js +1 -0
  80. package/public/assets/agents-DwCY2K8p.css +1 -0
  81. package/public/assets/arc-C2gTU2ZR.js +1 -0
  82. package/public/assets/architectureDiagram-VXUJARFQ-DD1BwT1T.js +36 -0
  83. package/public/assets/blockDiagram-VD42YOAC-DFKUIZc6.js +122 -0
  84. package/public/assets/c4Diagram-YG6GDRKO-B0VVIIvh.js +10 -0
  85. package/public/assets/channel-DcVTcy-S.js +1 -0
  86. package/public/assets/chunk-4BX2VUAB-DM8J7YO9.js +1 -0
  87. package/public/assets/chunk-55IACEB6-BjhdmGlM.js +1 -0
  88. package/public/assets/chunk-B4BG7PRW-1RJ6n2xv.js +165 -0
  89. package/public/assets/chunk-DI55MBZ5-1-EHSO67.js +220 -0
  90. package/public/assets/chunk-FMBD7UC4-DV3SMJK_.js +15 -0
  91. package/public/assets/chunk-QN33PNHL-IlsCTdDq.js +1 -0
  92. package/public/assets/chunk-QZHKN3VN-DJXs-Fqo.js +1 -0
  93. package/public/assets/chunk-TZMSLE5B-BxHO9wa1.js +1 -0
  94. package/public/assets/classDiagram-2ON5EDUG-BXVT6Q7h.js +1 -0
  95. package/public/assets/classDiagram-v2-WZHVMYZB-BXVT6Q7h.js +1 -0
  96. package/public/assets/clone-Bp6orjIq.js +1 -0
  97. package/public/assets/cose-bilkent-S5V4N54A-BVJXoW_K.js +1 -0
  98. package/public/assets/cytoscape.esm-DtBltrT8.js +331 -0
  99. package/public/assets/dagre-6UL2VRFP-DHDnVshA.js +4 -0
  100. package/public/assets/data-structures-ChC1tqVg.js +27 -0
  101. package/public/assets/dateFormat-CXa8VnEC.js +1 -0
  102. package/public/assets/defaultLocale-C4B-KCzX.js +1 -0
  103. package/public/assets/diagram-PSM6KHXK-40qGxDeg.js +24 -0
  104. package/public/assets/diagram-QEK2KX5R-BfMGeeRo.js +43 -0
  105. package/public/assets/diagram-S2PKOQOG-D7AX72a5.js +24 -0
  106. package/public/assets/erDiagram-Q2GNP2WA-BHsgeBpL.js +60 -0
  107. package/public/assets/flowDiagram-NV44I4VS-BYqChOSE.js +162 -0
  108. package/public/assets/ganttDiagram-LVOFAZNH-CZFFSLKX.js +267 -0
  109. package/public/assets/gitGraphDiagram-NY62KEGX-C5Bgrf0J.js +65 -0
  110. package/public/assets/graph-BP5lFRBg.js +1 -0
  111. package/public/assets/index-BEPv9Bqe.js +297 -0
  112. package/public/assets/index-BgR-BTTw.css +1 -0
  113. package/public/assets/infoDiagram-F6ZHWCRC-C6OApgqf.js +2 -0
  114. package/public/assets/init-Gi6I4Gst.js +1 -0
  115. package/public/assets/journeyDiagram-XKPGCS4Q--abC1RHz.js +139 -0
  116. package/public/assets/kanban-definition-3W4ZIXB7-BJeChfWu.js +89 -0
  117. package/public/assets/katex-qrhCpa0F.js +261 -0
  118. package/public/assets/layout-DjAix4WK.js +1 -0
  119. package/public/assets/linear-Cw0z8VNY.js +1 -0
  120. package/public/assets/mindmap-definition-VGOIOE7T-U_T9xIUk.js +68 -0
  121. package/public/assets/monaco-editor-BWfQfpij.js +19 -0
  122. package/public/assets/ordinal-Cboi1Yqb.js +1 -0
  123. package/public/assets/pieDiagram-ADFJNKIX-B0mT9OgH.js +30 -0
  124. package/public/assets/quadrantDiagram-AYHSOK5B-BWdlgO0u.js +7 -0
  125. package/public/assets/requirementDiagram-UZGBJVZJ-B-8LxsGB.js +64 -0
  126. package/public/assets/sankeyDiagram-TZEHDZUN-OXuxkgGA.js +10 -0
  127. package/public/assets/sequenceDiagram-WL72ISMW-Bt5twlzi.js +145 -0
  128. package/public/assets/stateDiagram-FKZM4ZOC-Dmph7TeW.js +1 -0
  129. package/public/assets/stateDiagram-v2-4FDKWEC3-DyE8O3Kx.js +1 -0
  130. package/public/assets/syntax-highlighting-DGbNjS3S.js +24 -0
  131. package/public/assets/table-DjMdAdjH.js +1 -0
  132. package/public/assets/timeline-definition-IT6M3QCI-CcV8nyIH.js +61 -0
  133. package/public/assets/tools-BAI9XHGS.js +1 -0
  134. package/public/assets/treemap-KMMF4GRG-DBuwkj4f.js +128 -0
  135. package/public/assets/ui-components-DaGtjl0g.js +646 -0
  136. package/public/assets/useAgents-D5EDAc_E.js +2 -0
  137. package/public/assets/useClaudeVersions-Cy71v4HE.js +1 -0
  138. package/public/assets/useCommands-BgoCfyuu.js +1 -0
  139. package/public/assets/useProjects-XgfgISgV.js +1 -0
  140. package/public/assets/useSessions-CQgq4d84.js +1 -0
  141. package/public/assets/xychartDiagram-PRI3JC2R-Bo9K-U2S.js +7 -0
  142. package/public/index.html +70 -0
  143. package/routes/__tests__/a2a.integration.test.d.ts +11 -0
  144. package/routes/__tests__/a2a.integration.test.d.ts.map +1 -0
  145. package/routes/__tests__/a2a.integration.test.js +314 -0
  146. package/routes/__tests__/a2a.integration.test.js.map +1 -0
  147. package/routes/__tests__/a2a.test.d.ts +6 -0
  148. package/routes/__tests__/a2a.test.d.ts.map +1 -0
  149. package/routes/__tests__/a2a.test.js +622 -0
  150. package/routes/__tests__/a2a.test.js.map +1 -0
  151. package/routes/__tests__/agents.test.d.ts +6 -0
  152. package/routes/__tests__/agents.test.d.ts.map +1 -0
  153. package/routes/__tests__/agents.test.js +315 -0
  154. package/routes/__tests__/agents.test.js.map +1 -0
  155. package/routes/__tests__/sessions.test.d.ts +7 -0
  156. package/routes/__tests__/sessions.test.d.ts.map +1 -0
  157. package/routes/__tests__/sessions.test.js +330 -0
  158. package/routes/__tests__/sessions.test.js.map +1 -0
  159. package/routes/a2a.d.ts +18 -0
  160. package/routes/a2a.d.ts.map +1 -0
  161. package/routes/a2a.js +718 -0
  162. package/routes/a2a.js.map +1 -0
  163. package/routes/a2a.streaming.test.d.ts +2 -0
  164. package/routes/a2a.streaming.test.d.ts.map +1 -0
  165. package/routes/a2a.streaming.test.js +167 -0
  166. package/routes/a2a.streaming.test.js.map +1 -0
  167. package/routes/a2aManagement.d.ts +21 -0
  168. package/routes/a2aManagement.d.ts.map +1 -0
  169. package/routes/a2aManagement.js +466 -0
  170. package/routes/a2aManagement.js.map +1 -0
  171. package/routes/agents.d.ts +4 -0
  172. package/routes/agents.d.ts.map +1 -0
  173. package/routes/agents.js +1026 -0
  174. package/routes/agents.js.map +1 -0
  175. package/routes/auth.d.ts +4 -0
  176. package/routes/auth.d.ts.map +1 -0
  177. package/routes/auth.js +135 -0
  178. package/routes/auth.js.map +1 -0
  179. package/routes/cloudflareTunnel.d.ts +4 -0
  180. package/routes/cloudflareTunnel.d.ts.map +1 -0
  181. package/routes/cloudflareTunnel.js +250 -0
  182. package/routes/cloudflareTunnel.js.map +1 -0
  183. package/routes/commands.d.ts +4 -0
  184. package/routes/commands.d.ts.map +1 -0
  185. package/routes/commands.js +481 -0
  186. package/routes/commands.js.map +1 -0
  187. package/routes/config.d.ts +4 -0
  188. package/routes/config.d.ts.map +1 -0
  189. package/routes/config.js +211 -0
  190. package/routes/config.js.map +1 -0
  191. package/routes/files.d.ts +4 -0
  192. package/routes/files.d.ts.map +1 -0
  193. package/routes/files.js +361 -0
  194. package/routes/files.js.map +1 -0
  195. package/routes/mcp.d.ts +26 -0
  196. package/routes/mcp.d.ts.map +1 -0
  197. package/routes/mcp.js +825 -0
  198. package/routes/mcp.js.map +1 -0
  199. package/routes/mcpAdmin.d.ts +16 -0
  200. package/routes/mcpAdmin.d.ts.map +1 -0
  201. package/routes/mcpAdmin.js +308 -0
  202. package/routes/mcpAdmin.js.map +1 -0
  203. package/routes/mcpAdminManagement.d.ts +17 -0
  204. package/routes/mcpAdminManagement.d.ts.map +1 -0
  205. package/routes/mcpAdminManagement.js +345 -0
  206. package/routes/mcpAdminManagement.js.map +1 -0
  207. package/routes/media.d.ts +5 -0
  208. package/routes/media.d.ts.map +1 -0
  209. package/routes/media.js +127 -0
  210. package/routes/media.js.map +1 -0
  211. package/routes/mediaAuth.d.ts +8 -0
  212. package/routes/mediaAuth.d.ts.map +1 -0
  213. package/routes/mediaAuth.js +136 -0
  214. package/routes/mediaAuth.js.map +1 -0
  215. package/routes/network.d.ts +9 -0
  216. package/routes/network.d.ts.map +1 -0
  217. package/routes/network.js +60 -0
  218. package/routes/network.js.map +1 -0
  219. package/routes/plugins.d.ts +4 -0
  220. package/routes/plugins.d.ts.map +1 -0
  221. package/routes/plugins.js +339 -0
  222. package/routes/plugins.js.map +1 -0
  223. package/routes/projects.d.ts +4 -0
  224. package/routes/projects.d.ts.map +1 -0
  225. package/routes/projects.js +1000 -0
  226. package/routes/projects.js.map +1 -0
  227. package/routes/scheduledTasks.d.ts +9 -0
  228. package/routes/scheduledTasks.d.ts.map +1 -0
  229. package/routes/scheduledTasks.js +386 -0
  230. package/routes/scheduledTasks.js.map +1 -0
  231. package/routes/sessions.d.ts +4 -0
  232. package/routes/sessions.d.ts.map +1 -0
  233. package/routes/sessions.js +966 -0
  234. package/routes/sessions.js.map +1 -0
  235. package/routes/settings.d.ts +4 -0
  236. package/routes/settings.d.ts.map +1 -0
  237. package/routes/settings.js +500 -0
  238. package/routes/settings.js.map +1 -0
  239. package/routes/skills.d.ts +4 -0
  240. package/routes/skills.d.ts.map +1 -0
  241. package/routes/skills.js +272 -0
  242. package/routes/skills.js.map +1 -0
  243. package/routes/slack.d.ts +10 -0
  244. package/routes/slack.d.ts.map +1 -0
  245. package/routes/slack.js +189 -0
  246. package/routes/slack.js.map +1 -0
  247. package/routes/slides.d.ts +4 -0
  248. package/routes/slides.d.ts.map +1 -0
  249. package/routes/slides.js +148 -0
  250. package/routes/slides.js.map +1 -0
  251. package/routes/subagents.d.ts +4 -0
  252. package/routes/subagents.d.ts.map +1 -0
  253. package/routes/subagents.js +333 -0
  254. package/routes/subagents.js.map +1 -0
  255. package/routes/taskExecutor.d.ts +9 -0
  256. package/routes/taskExecutor.d.ts.map +1 -0
  257. package/routes/taskExecutor.js +224 -0
  258. package/routes/taskExecutor.js.map +1 -0
  259. package/routes/tunnel.d.ts +10 -0
  260. package/routes/tunnel.d.ts.map +1 -0
  261. package/routes/tunnel.js +296 -0
  262. package/routes/tunnel.js.map +1 -0
  263. package/routes/version.d.ts +4 -0
  264. package/routes/version.d.ts.map +1 -0
  265. package/routes/version.js +222 -0
  266. package/routes/version.js.map +1 -0
  267. package/schemas/a2a.d.ts +946 -0
  268. package/schemas/a2a.d.ts.map +1 -0
  269. package/schemas/a2a.js +316 -0
  270. package/schemas/a2a.js.map +1 -0
  271. package/scripts/postinstall.js +10 -0
  272. package/services/__tests__/pluginInstaller.test.d.ts +5 -0
  273. package/services/__tests__/pluginInstaller.test.d.ts.map +1 -0
  274. package/services/__tests__/pluginInstaller.test.js +290 -0
  275. package/services/__tests__/pluginInstaller.test.js.map +1 -0
  276. package/services/__tests__/pluginParser.test.d.ts +5 -0
  277. package/services/__tests__/pluginParser.test.d.ts.map +1 -0
  278. package/services/__tests__/pluginParser.test.js +272 -0
  279. package/services/__tests__/pluginParser.test.js.map +1 -0
  280. package/services/__tests__/pluginPaths.test.d.ts +5 -0
  281. package/services/__tests__/pluginPaths.test.d.ts.map +1 -0
  282. package/services/__tests__/pluginPaths.test.js +221 -0
  283. package/services/__tests__/pluginPaths.test.js.map +1 -0
  284. package/services/__tests__/pluginScanner.test.d.ts +5 -0
  285. package/services/__tests__/pluginScanner.test.d.ts.map +1 -0
  286. package/services/__tests__/pluginScanner.test.js +272 -0
  287. package/services/__tests__/pluginScanner.test.js.map +1 -0
  288. package/services/__tests__/pluginSymlink.test.d.ts +5 -0
  289. package/services/__tests__/pluginSymlink.test.d.ts.map +1 -0
  290. package/services/__tests__/pluginSymlink.test.js +318 -0
  291. package/services/__tests__/pluginSymlink.test.js.map +1 -0
  292. package/services/__tests__/projectMetadataStorage.test.d.ts +5 -0
  293. package/services/__tests__/projectMetadataStorage.test.d.ts.map +1 -0
  294. package/services/__tests__/projectMetadataStorage.test.js +154 -0
  295. package/services/__tests__/projectMetadataStorage.test.js.map +1 -0
  296. package/services/__tests__/sessionConcurrency.test.d.ts +7 -0
  297. package/services/__tests__/sessionConcurrency.test.d.ts.map +1 -0
  298. package/services/__tests__/sessionConcurrency.test.js +110 -0
  299. package/services/__tests__/sessionConcurrency.test.js.map +1 -0
  300. package/services/__tests__/slackAIService.test.d.ts +5 -0
  301. package/services/__tests__/slackAIService.test.d.ts.map +1 -0
  302. package/services/__tests__/slackAIService.test.js +479 -0
  303. package/services/__tests__/slackAIService.test.js.map +1 -0
  304. package/services/__tests__/slackThreadMapper.test.d.ts +5 -0
  305. package/services/__tests__/slackThreadMapper.test.d.ts.map +1 -0
  306. package/services/__tests__/slackThreadMapper.test.js +194 -0
  307. package/services/__tests__/slackThreadMapper.test.js.map +1 -0
  308. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts +6 -0
  309. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts.map +1 -0
  310. package/services/a2a/__tests__/a2aClientTool.integration.test.js +264 -0
  311. package/services/a2a/__tests__/a2aClientTool.integration.test.js.map +1 -0
  312. package/services/a2a/__tests__/a2aClientTool.test.d.ts +6 -0
  313. package/services/a2a/__tests__/a2aClientTool.test.d.ts.map +1 -0
  314. package/services/a2a/__tests__/a2aClientTool.test.js +592 -0
  315. package/services/a2a/__tests__/a2aClientTool.test.js.map +1 -0
  316. package/services/a2a/__tests__/a2aConfigService.test.d.ts +6 -0
  317. package/services/a2a/__tests__/a2aConfigService.test.d.ts.map +1 -0
  318. package/services/a2a/__tests__/a2aConfigService.test.js +431 -0
  319. package/services/a2a/__tests__/a2aConfigService.test.js.map +1 -0
  320. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts +2 -0
  321. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts.map +1 -0
  322. package/services/a2a/__tests__/a2aConfigServicePath.test.js +49 -0
  323. package/services/a2a/__tests__/a2aConfigServicePath.test.js.map +1 -0
  324. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts +10 -0
  325. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts.map +1 -0
  326. package/services/a2a/__tests__/a2aSdkMcp.test.js +239 -0
  327. package/services/a2a/__tests__/a2aSdkMcp.test.js.map +1 -0
  328. package/services/a2a/__tests__/agentCardService.test.d.ts +6 -0
  329. package/services/a2a/__tests__/agentCardService.test.d.ts.map +1 -0
  330. package/services/a2a/__tests__/agentCardService.test.js +292 -0
  331. package/services/a2a/__tests__/agentCardService.test.js.map +1 -0
  332. package/services/a2a/__tests__/apiKeyService.test.d.ts +6 -0
  333. package/services/a2a/__tests__/apiKeyService.test.d.ts.map +1 -0
  334. package/services/a2a/__tests__/apiKeyService.test.js +284 -0
  335. package/services/a2a/__tests__/apiKeyService.test.js.map +1 -0
  336. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts +2 -0
  337. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts.map +1 -0
  338. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js +70 -0
  339. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js.map +1 -0
  340. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts +2 -0
  341. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts.map +1 -0
  342. package/services/a2a/__tests__/dynamic_config_verification.test.js +67 -0
  343. package/services/a2a/__tests__/dynamic_config_verification.test.js.map +1 -0
  344. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts +2 -0
  345. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts.map +1 -0
  346. package/services/a2a/__tests__/integrateA2AMcpServer.test.js +112 -0
  347. package/services/a2a/__tests__/integrateA2AMcpServer.test.js.map +1 -0
  348. package/services/a2a/__tests__/taskManager.integration.test.d.ts +7 -0
  349. package/services/a2a/__tests__/taskManager.integration.test.d.ts.map +1 -0
  350. package/services/a2a/__tests__/taskManager.integration.test.js +346 -0
  351. package/services/a2a/__tests__/taskManager.integration.test.js.map +1 -0
  352. package/services/a2a/__tests__/taskManager.test.d.ts +7 -0
  353. package/services/a2a/__tests__/taskManager.test.d.ts.map +1 -0
  354. package/services/a2a/__tests__/taskManager.test.js +423 -0
  355. package/services/a2a/__tests__/taskManager.test.js.map +1 -0
  356. package/services/a2a/__tests__/webhookService.test.d.ts +6 -0
  357. package/services/a2a/__tests__/webhookService.test.d.ts.map +1 -0
  358. package/services/a2a/__tests__/webhookService.test.js +196 -0
  359. package/services/a2a/__tests__/webhookService.test.js.map +1 -0
  360. package/services/a2a/a2aClientTool.d.ts +73 -0
  361. package/services/a2a/a2aClientTool.d.ts.map +1 -0
  362. package/services/a2a/a2aClientTool.js +595 -0
  363. package/services/a2a/a2aClientTool.js.map +1 -0
  364. package/services/a2a/a2aConfigService.d.ts +50 -0
  365. package/services/a2a/a2aConfigService.d.ts.map +1 -0
  366. package/services/a2a/a2aConfigService.js +187 -0
  367. package/services/a2a/a2aConfigService.js.map +1 -0
  368. package/services/a2a/a2aHistoryService.d.ts +32 -0
  369. package/services/a2a/a2aHistoryService.d.ts.map +1 -0
  370. package/services/a2a/a2aHistoryService.js +108 -0
  371. package/services/a2a/a2aHistoryService.js.map +1 -0
  372. package/services/a2a/a2aIntegration.d.ts +10 -0
  373. package/services/a2a/a2aIntegration.d.ts.map +1 -0
  374. package/services/a2a/a2aIntegration.js +42 -0
  375. package/services/a2a/a2aIntegration.js.map +1 -0
  376. package/services/a2a/a2aQueryService.d.ts +71 -0
  377. package/services/a2a/a2aQueryService.d.ts.map +1 -0
  378. package/services/a2a/a2aQueryService.js +209 -0
  379. package/services/a2a/a2aQueryService.js.map +1 -0
  380. package/services/a2a/a2aSdkMcp.d.ts +52 -0
  381. package/services/a2a/a2aSdkMcp.d.ts.map +1 -0
  382. package/services/a2a/a2aSdkMcp.js +188 -0
  383. package/services/a2a/a2aSdkMcp.js.map +1 -0
  384. package/services/a2a/a2aStreamEvents.d.ts +94 -0
  385. package/services/a2a/a2aStreamEvents.d.ts.map +1 -0
  386. package/services/a2a/a2aStreamEvents.js +92 -0
  387. package/services/a2a/a2aStreamEvents.js.map +1 -0
  388. package/services/a2a/agentCardService.d.ts +34 -0
  389. package/services/a2a/agentCardService.d.ts.map +1 -0
  390. package/services/a2a/agentCardService.js +228 -0
  391. package/services/a2a/agentCardService.js.map +1 -0
  392. package/services/a2a/agentMappingService.d.ts +53 -0
  393. package/services/a2a/agentMappingService.d.ts.map +1 -0
  394. package/services/a2a/agentMappingService.js +185 -0
  395. package/services/a2a/agentMappingService.js.map +1 -0
  396. package/services/a2a/apiKeyService.d.ts +101 -0
  397. package/services/a2a/apiKeyService.d.ts.map +1 -0
  398. package/services/a2a/apiKeyService.js +314 -0
  399. package/services/a2a/apiKeyService.js.map +1 -0
  400. package/services/a2a/taskCleanup.d.ts +30 -0
  401. package/services/a2a/taskCleanup.d.ts.map +1 -0
  402. package/services/a2a/taskCleanup.js +184 -0
  403. package/services/a2a/taskCleanup.js.map +1 -0
  404. package/services/a2a/taskManager.d.ts +87 -0
  405. package/services/a2a/taskManager.d.ts.map +1 -0
  406. package/services/a2a/taskManager.js +265 -0
  407. package/services/a2a/taskManager.js.map +1 -0
  408. package/services/a2a/webhookService.d.ts +30 -0
  409. package/services/a2a/webhookService.d.ts.map +1 -0
  410. package/services/a2a/webhookService.js +113 -0
  411. package/services/a2a/webhookService.js.map +1 -0
  412. package/services/agentStorage.d.ts +27 -0
  413. package/services/agentStorage.d.ts.map +1 -0
  414. package/services/agentStorage.js +487 -0
  415. package/services/agentStorage.js.map +1 -0
  416. package/services/askUserQuestion/askUserQuestionIntegration.d.ts +24 -0
  417. package/services/askUserQuestion/askUserQuestionIntegration.d.ts.map +1 -0
  418. package/services/askUserQuestion/askUserQuestionIntegration.js +52 -0
  419. package/services/askUserQuestion/askUserQuestionIntegration.js.map +1 -0
  420. package/services/askUserQuestion/askUserQuestionMcp.d.ts +103 -0
  421. package/services/askUserQuestion/askUserQuestionMcp.d.ts.map +1 -0
  422. package/services/askUserQuestion/askUserQuestionMcp.js +129 -0
  423. package/services/askUserQuestion/askUserQuestionMcp.js.map +1 -0
  424. package/services/askUserQuestion/index.d.ts +13 -0
  425. package/services/askUserQuestion/index.d.ts.map +1 -0
  426. package/services/askUserQuestion/index.js +35 -0
  427. package/services/askUserQuestion/index.js.map +1 -0
  428. package/services/askUserQuestion/init.d.ts +17 -0
  429. package/services/askUserQuestion/init.d.ts.map +1 -0
  430. package/services/askUserQuestion/init.js +47 -0
  431. package/services/askUserQuestion/init.js.map +1 -0
  432. package/services/askUserQuestion/notificationChannel.d.ts +97 -0
  433. package/services/askUserQuestion/notificationChannel.d.ts.map +1 -0
  434. package/services/askUserQuestion/notificationChannel.js +147 -0
  435. package/services/askUserQuestion/notificationChannel.js.map +1 -0
  436. package/services/askUserQuestion/slackNotificationChannel.d.ts +35 -0
  437. package/services/askUserQuestion/slackNotificationChannel.d.ts.map +1 -0
  438. package/services/askUserQuestion/slackNotificationChannel.js +129 -0
  439. package/services/askUserQuestion/slackNotificationChannel.js.map +1 -0
  440. package/services/askUserQuestion/sseNotificationChannel.d.ts +36 -0
  441. package/services/askUserQuestion/sseNotificationChannel.d.ts.map +1 -0
  442. package/services/askUserQuestion/sseNotificationChannel.js +88 -0
  443. package/services/askUserQuestion/sseNotificationChannel.js.map +1 -0
  444. package/services/askUserQuestion/userInputRegistry.d.ts +107 -0
  445. package/services/askUserQuestion/userInputRegistry.d.ts.map +1 -0
  446. package/services/askUserQuestion/userInputRegistry.js +253 -0
  447. package/services/askUserQuestion/userInputRegistry.js.map +1 -0
  448. package/services/claudeSession.d.ts +113 -0
  449. package/services/claudeSession.d.ts.map +1 -0
  450. package/services/claudeSession.js +375 -0
  451. package/services/claudeSession.js.map +1 -0
  452. package/services/claudeVersionStorage.d.ts +20 -0
  453. package/services/claudeVersionStorage.d.ts.map +1 -0
  454. package/services/claudeVersionStorage.js +331 -0
  455. package/services/claudeVersionStorage.js.map +1 -0
  456. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts +5 -0
  457. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts.map +1 -0
  458. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js +289 -0
  459. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js.map +1 -0
  460. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts +5 -0
  461. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts.map +1 -0
  462. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js +345 -0
  463. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js.map +1 -0
  464. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts +5 -0
  465. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts.map +1 -0
  466. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js +453 -0
  467. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js.map +1 -0
  468. package/services/mcpAdmin/__tests__/providerTools.test.d.ts +7 -0
  469. package/services/mcpAdmin/__tests__/providerTools.test.d.ts.map +1 -0
  470. package/services/mcpAdmin/__tests__/providerTools.test.js +258 -0
  471. package/services/mcpAdmin/__tests__/providerTools.test.js.map +1 -0
  472. package/services/mcpAdmin/__tests__/tools.test.d.ts +5 -0
  473. package/services/mcpAdmin/__tests__/tools.test.d.ts.map +1 -0
  474. package/services/mcpAdmin/__tests__/tools.test.js +389 -0
  475. package/services/mcpAdmin/__tests__/tools.test.js.map +1 -0
  476. package/services/mcpAdmin/adminApiKeyService.d.ts +61 -0
  477. package/services/mcpAdmin/adminApiKeyService.d.ts.map +1 -0
  478. package/services/mcpAdmin/adminApiKeyService.js +270 -0
  479. package/services/mcpAdmin/adminApiKeyService.js.map +1 -0
  480. package/services/mcpAdmin/index.d.ts +10 -0
  481. package/services/mcpAdmin/index.d.ts.map +1 -0
  482. package/services/mcpAdmin/index.js +43 -0
  483. package/services/mcpAdmin/index.js.map +1 -0
  484. package/services/mcpAdmin/mcpAdminServer.d.ts +76 -0
  485. package/services/mcpAdmin/mcpAdminServer.d.ts.map +1 -0
  486. package/services/mcpAdmin/mcpAdminServer.js +243 -0
  487. package/services/mcpAdmin/mcpAdminServer.js.map +1 -0
  488. package/services/mcpAdmin/tools/agentTools.d.ts +27 -0
  489. package/services/mcpAdmin/tools/agentTools.d.ts.map +1 -0
  490. package/services/mcpAdmin/tools/agentTools.js +352 -0
  491. package/services/mcpAdmin/tools/agentTools.js.map +1 -0
  492. package/services/mcpAdmin/tools/index.d.ts +16 -0
  493. package/services/mcpAdmin/tools/index.d.ts.map +1 -0
  494. package/services/mcpAdmin/tools/index.js +34 -0
  495. package/services/mcpAdmin/tools/index.js.map +1 -0
  496. package/services/mcpAdmin/tools/mcpServerTools.d.ts +27 -0
  497. package/services/mcpAdmin/tools/mcpServerTools.d.ts.map +1 -0
  498. package/services/mcpAdmin/tools/mcpServerTools.js +334 -0
  499. package/services/mcpAdmin/tools/mcpServerTools.js.map +1 -0
  500. package/services/mcpAdmin/tools/projectTools.d.ts +27 -0
  501. package/services/mcpAdmin/tools/projectTools.d.ts.map +1 -0
  502. package/services/mcpAdmin/tools/projectTools.js +382 -0
  503. package/services/mcpAdmin/tools/projectTools.js.map +1 -0
  504. package/services/mcpAdmin/tools/providerTools.d.ts +40 -0
  505. package/services/mcpAdmin/tools/providerTools.d.ts.map +1 -0
  506. package/services/mcpAdmin/tools/providerTools.js +581 -0
  507. package/services/mcpAdmin/tools/providerTools.js.map +1 -0
  508. package/services/mcpAdmin/tools/systemTools.d.ts +23 -0
  509. package/services/mcpAdmin/tools/systemTools.d.ts.map +1 -0
  510. package/services/mcpAdmin/tools/systemTools.js +241 -0
  511. package/services/mcpAdmin/tools/systemTools.js.map +1 -0
  512. package/services/mcpAdmin/types.d.ts +124 -0
  513. package/services/mcpAdmin/types.d.ts.map +1 -0
  514. package/services/mcpAdmin/types.js +18 -0
  515. package/services/mcpAdmin/types.js.map +1 -0
  516. package/services/messageQueue.d.ts +31 -0
  517. package/services/messageQueue.d.ts.map +1 -0
  518. package/services/messageQueue.js +80 -0
  519. package/services/messageQueue.js.map +1 -0
  520. package/services/pluginInstaller.d.ts +58 -0
  521. package/services/pluginInstaller.d.ts.map +1 -0
  522. package/services/pluginInstaller.js +321 -0
  523. package/services/pluginInstaller.js.map +1 -0
  524. package/services/pluginParser.d.ts +45 -0
  525. package/services/pluginParser.d.ts.map +1 -0
  526. package/services/pluginParser.js +437 -0
  527. package/services/pluginParser.js.map +1 -0
  528. package/services/pluginPaths.d.ts +83 -0
  529. package/services/pluginPaths.d.ts.map +1 -0
  530. package/services/pluginPaths.js +277 -0
  531. package/services/pluginPaths.js.map +1 -0
  532. package/services/pluginScanner.d.ts +36 -0
  533. package/services/pluginScanner.d.ts.map +1 -0
  534. package/services/pluginScanner.js +251 -0
  535. package/services/pluginScanner.js.map +1 -0
  536. package/services/pluginSymlink.d.ts +54 -0
  537. package/services/pluginSymlink.d.ts.map +1 -0
  538. package/services/pluginSymlink.js +223 -0
  539. package/services/pluginSymlink.js.map +1 -0
  540. package/services/projectMetadataStorage.d.ts +121 -0
  541. package/services/projectMetadataStorage.d.ts.map +1 -0
  542. package/services/projectMetadataStorage.js +810 -0
  543. package/services/projectMetadataStorage.js.map +1 -0
  544. package/services/scheduledTaskStorage.d.ts +63 -0
  545. package/services/scheduledTaskStorage.d.ts.map +1 -0
  546. package/services/scheduledTaskStorage.js +351 -0
  547. package/services/scheduledTaskStorage.js.map +1 -0
  548. package/services/schedulerService.d.ts +91 -0
  549. package/services/schedulerService.d.ts.map +1 -0
  550. package/services/schedulerService.js +590 -0
  551. package/services/schedulerService.js.map +1 -0
  552. package/services/sessionManager.d.ts +176 -0
  553. package/services/sessionManager.d.ts.map +1 -0
  554. package/services/sessionManager.js +646 -0
  555. package/services/sessionManager.js.map +1 -0
  556. package/services/skillStorage.d.ts +60 -0
  557. package/services/skillStorage.d.ts.map +1 -0
  558. package/services/skillStorage.js +399 -0
  559. package/services/skillStorage.js.map +1 -0
  560. package/services/slackAIService.d.ts +81 -0
  561. package/services/slackAIService.d.ts.map +1 -0
  562. package/services/slackAIService.js +1137 -0
  563. package/services/slackAIService.js.map +1 -0
  564. package/services/slackClient.d.ts +46 -0
  565. package/services/slackClient.d.ts.map +1 -0
  566. package/services/slackClient.js +85 -0
  567. package/services/slackClient.js.map +1 -0
  568. package/services/slackSessionLock.d.ts +79 -0
  569. package/services/slackSessionLock.d.ts.map +1 -0
  570. package/services/slackSessionLock.js +353 -0
  571. package/services/slackSessionLock.js.map +1 -0
  572. package/services/slackThreadMapper.d.ts +57 -0
  573. package/services/slackThreadMapper.d.ts.map +1 -0
  574. package/services/slackThreadMapper.js +140 -0
  575. package/services/slackThreadMapper.js.map +1 -0
  576. package/services/taskExecutor/BuiltinExecutor.d.ts +44 -0
  577. package/services/taskExecutor/BuiltinExecutor.d.ts.map +1 -0
  578. package/services/taskExecutor/BuiltinExecutor.js +513 -0
  579. package/services/taskExecutor/BuiltinExecutor.js.map +1 -0
  580. package/services/taskExecutor/__tests__/a2a-tasks.test.d.ts +7 -0
  581. package/services/taskExecutor/__tests__/a2a-tasks.test.d.ts.map +1 -0
  582. package/services/taskExecutor/__tests__/a2a-tasks.test.js +328 -0
  583. package/services/taskExecutor/__tests__/a2a-tasks.test.js.map +1 -0
  584. package/services/taskExecutor/__tests__/e2e-workflows.test.d.ts +7 -0
  585. package/services/taskExecutor/__tests__/e2e-workflows.test.d.ts.map +1 -0
  586. package/services/taskExecutor/__tests__/e2e-workflows.test.js +446 -0
  587. package/services/taskExecutor/__tests__/e2e-workflows.test.js.map +1 -0
  588. package/services/taskExecutor/__tests__/error-handling.test.d.ts +7 -0
  589. package/services/taskExecutor/__tests__/error-handling.test.d.ts.map +1 -0
  590. package/services/taskExecutor/__tests__/error-handling.test.js +387 -0
  591. package/services/taskExecutor/__tests__/error-handling.test.js.map +1 -0
  592. package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts +8 -0
  593. package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts.map +1 -0
  594. package/services/taskExecutor/__tests__/mcp-tools-integration.test.js +86 -0
  595. package/services/taskExecutor/__tests__/mcp-tools-integration.test.js.map +1 -0
  596. package/services/taskExecutor/__tests__/stress.test.d.ts +7 -0
  597. package/services/taskExecutor/__tests__/stress.test.d.ts.map +1 -0
  598. package/services/taskExecutor/__tests__/stress.test.js +329 -0
  599. package/services/taskExecutor/__tests__/stress.test.js.map +1 -0
  600. package/services/taskExecutor/__tests__/taskExecutor.integration.test.d.ts +7 -0
  601. package/services/taskExecutor/__tests__/taskExecutor.integration.test.d.ts.map +1 -0
  602. package/services/taskExecutor/__tests__/taskExecutor.integration.test.js +205 -0
  603. package/services/taskExecutor/__tests__/taskExecutor.integration.test.js.map +1 -0
  604. package/services/taskExecutor/__tests__/timeout-cancellation.test.d.ts +7 -0
  605. package/services/taskExecutor/__tests__/timeout-cancellation.test.d.ts.map +1 -0
  606. package/services/taskExecutor/__tests__/timeout-cancellation.test.js +319 -0
  607. package/services/taskExecutor/__tests__/timeout-cancellation.test.js.map +1 -0
  608. package/services/taskExecutor/index.d.ts +40 -0
  609. package/services/taskExecutor/index.d.ts.map +1 -0
  610. package/services/taskExecutor/index.js +166 -0
  611. package/services/taskExecutor/index.js.map +1 -0
  612. package/services/taskExecutor/taskWorker.d.ts +11 -0
  613. package/services/taskExecutor/taskWorker.d.ts.map +1 -0
  614. package/services/taskExecutor/taskWorker.js +171 -0
  615. package/services/taskExecutor/taskWorker.js.map +1 -0
  616. package/services/taskExecutor/types.d.ts +145 -0
  617. package/services/taskExecutor/types.d.ts.map +1 -0
  618. package/services/taskExecutor/types.js +9 -0
  619. package/services/taskExecutor/types.js.map +1 -0
  620. package/services/telemetry.d.ts +40 -0
  621. package/services/telemetry.d.ts.map +1 -0
  622. package/services/telemetry.js +245 -0
  623. package/services/telemetry.js.map +1 -0
  624. package/services/tunnelService.d.ts +165 -0
  625. package/services/tunnelService.d.ts.map +1 -0
  626. package/services/tunnelService.js +493 -0
  627. package/services/tunnelService.js.map +1 -0
  628. package/types/a2a.d.ts +293 -0
  629. package/types/a2a.d.ts.map +1 -0
  630. package/types/a2a.js +23 -0
  631. package/types/a2a.js.map +1 -0
  632. package/types/agents.d.ts +94 -0
  633. package/types/agents.d.ts.map +1 -0
  634. package/types/agents.js +45 -0
  635. package/types/agents.js.map +1 -0
  636. package/types/claude-history.d.ts +62 -0
  637. package/types/claude-history.d.ts.map +1 -0
  638. package/types/claude-history.js +4 -0
  639. package/types/claude-history.js.map +1 -0
  640. package/types/claude-versions.d.ts +36 -0
  641. package/types/claude-versions.d.ts.map +1 -0
  642. package/types/claude-versions.js +3 -0
  643. package/types/claude-versions.js.map +1 -0
  644. package/types/commands.d.ts +50 -0
  645. package/types/commands.d.ts.map +1 -0
  646. package/types/commands.js +23 -0
  647. package/types/commands.js.map +1 -0
  648. package/types/plugins.d.ts +144 -0
  649. package/types/plugins.d.ts.map +1 -0
  650. package/types/plugins.js +8 -0
  651. package/types/plugins.js.map +1 -0
  652. package/types/projects.d.ts +46 -0
  653. package/types/projects.d.ts.map +1 -0
  654. package/types/projects.js +4 -0
  655. package/types/projects.js.map +1 -0
  656. package/types/scheduledTasks.d.ts +168 -0
  657. package/types/scheduledTasks.d.ts.map +1 -0
  658. package/types/scheduledTasks.js +17 -0
  659. package/types/scheduledTasks.js.map +1 -0
  660. package/types/skills.d.ts +91 -0
  661. package/types/skills.d.ts.map +1 -0
  662. package/types/skills.js +6 -0
  663. package/types/skills.js.map +1 -0
  664. package/types/slack.d.ts +97 -0
  665. package/types/slack.d.ts.map +1 -0
  666. package/types/slack.js +8 -0
  667. package/types/slack.js.map +1 -0
  668. package/types/streaming.d.ts +12 -0
  669. package/types/streaming.d.ts.map +1 -0
  670. package/types/streaming.js +8 -0
  671. package/types/streaming.js.map +1 -0
  672. package/types/subagents.d.ts +26 -0
  673. package/types/subagents.d.ts.map +1 -0
  674. package/types/subagents.js +3 -0
  675. package/types/subagents.js.map +1 -0
  676. package/utils/__tests__/claudeUtils.test.d.ts +5 -0
  677. package/utils/__tests__/claudeUtils.test.d.ts.map +1 -0
  678. package/utils/__tests__/claudeUtils.test.js +366 -0
  679. package/utils/__tests__/claudeUtils.test.js.map +1 -0
  680. package/utils/__tests__/configResolver.test.d.ts +7 -0
  681. package/utils/__tests__/configResolver.test.d.ts.map +1 -0
  682. package/utils/__tests__/configResolver.test.js +211 -0
  683. package/utils/__tests__/configResolver.test.js.map +1 -0
  684. package/utils/__tests__/sessionUtils.test.d.ts +5 -0
  685. package/utils/__tests__/sessionUtils.test.d.ts.map +1 -0
  686. package/utils/__tests__/sessionUtils.test.js +296 -0
  687. package/utils/__tests__/sessionUtils.test.js.map +1 -0
  688. package/utils/agentCardCache.d.ts +93 -0
  689. package/utils/agentCardCache.d.ts.map +1 -0
  690. package/utils/agentCardCache.js +212 -0
  691. package/utils/agentCardCache.js.map +1 -0
  692. package/utils/claudeUtils.d.ts +55 -0
  693. package/utils/claudeUtils.d.ts.map +1 -0
  694. package/utils/claudeUtils.js +385 -0
  695. package/utils/claudeUtils.js.map +1 -0
  696. package/utils/configResolver.d.ts +57 -0
  697. package/utils/configResolver.d.ts.map +1 -0
  698. package/utils/configResolver.js +130 -0
  699. package/utils/configResolver.js.map +1 -0
  700. package/utils/fileUtils.d.ts +2 -0
  701. package/utils/fileUtils.d.ts.map +1 -0
  702. package/utils/fileUtils.js +11 -0
  703. package/utils/fileUtils.js.map +1 -0
  704. package/utils/jwt.d.ts +30 -0
  705. package/utils/jwt.d.ts.map +1 -0
  706. package/utils/jwt.js +95 -0
  707. package/utils/jwt.js.map +1 -0
  708. package/utils/networkUtils.d.ts +25 -0
  709. package/utils/networkUtils.d.ts.map +1 -0
  710. package/utils/networkUtils.js +65 -0
  711. package/utils/networkUtils.js.map +1 -0
  712. package/utils/sessionUtils.d.ts +67 -0
  713. package/utils/sessionUtils.d.ts.map +1 -0
  714. package/utils/sessionUtils.js +296 -0
  715. package/utils/sessionUtils.js.map +1 -0
  716. package/.dockerignore +0 -53
  717. package/.mcp.json +0 -8
  718. package/CLAUDE.md +0 -359
  719. package/DOCKER.md +0 -270
  720. package/Dockerfile +0 -42
  721. package/JSONL_TOOLS_README.md +0 -301
  722. package/LICENSE +0 -603
  723. package/QUICKSTART.md +0 -253
  724. package/README.zh-CN.md +0 -200
  725. package/SOLUTION_SUMMARY.md +0 -249
  726. package/backend/comprehensive-session-check.js +0 -142
  727. package/backend/debug-sessions.js +0 -60
  728. package/backend/docs/chat-clean-1.svg +0 -1
  729. package/backend/docs/chat-clean.md +0 -60
  730. package/backend/docs/chat-comprehensive-1.svg +0 -1
  731. package/backend/docs/chat-comprehensive.md +0 -166
  732. package/backend/docs/chat_api_sequence_diagram.md +0 -58
  733. package/backend/docs/command-detection-logic.md +0 -306
  734. package/backend/docs/command-detection-sequence.md +0 -186
  735. package/backend/eslint.config.js +0 -25
  736. package/backend/package.json +0 -103
  737. package/backend/scripts/README.md +0 -156
  738. package/backend/scripts/fix-project-names.js +0 -113
  739. package/backend/scripts/migrate-projects.js +0 -159
  740. package/backend/src/bin/agentstudio.ts +0 -318
  741. package/backend/src/bin/serviceManager.ts +0 -469
  742. package/backend/src/config/index.ts +0 -184
  743. package/backend/src/config/paths.ts +0 -105
  744. package/backend/src/config/sdkConfig.ts +0 -126
  745. package/backend/src/index.ts +0 -434
  746. package/backend/src/jobs/taskTimeoutMonitor.ts +0 -106
  747. package/backend/src/middleware/a2aAuth.ts +0 -159
  748. package/backend/src/middleware/auth.ts +0 -39
  749. package/backend/src/middleware/httpsOnly.ts +0 -205
  750. package/backend/src/middleware/rateLimiting.ts +0 -130
  751. package/backend/src/routes/__tests__/a2a.integration.test.ts +0 -377
  752. package/backend/src/routes/__tests__/a2a.test.ts +0 -677
  753. package/backend/src/routes/__tests__/agents.test.ts +0 -327
  754. package/backend/src/routes/__tests__/sessions.test.ts +0 -345
  755. package/backend/src/routes/a2a.streaming.test.ts +0 -185
  756. package/backend/src/routes/a2a.ts +0 -840
  757. package/backend/src/routes/a2aManagement.ts +0 -545
  758. package/backend/src/routes/agents.ts +0 -1176
  759. package/backend/src/routes/auth.ts +0 -151
  760. package/backend/src/routes/cloudflareTunnel.ts +0 -306
  761. package/backend/src/routes/commands.ts +0 -524
  762. package/backend/src/routes/config.ts +0 -193
  763. package/backend/src/routes/files.ts +0 -375
  764. package/backend/src/routes/mcp.ts +0 -866
  765. package/backend/src/routes/mcpAdmin.ts +0 -369
  766. package/backend/src/routes/mcpAdminManagement.ts +0 -338
  767. package/backend/src/routes/media.ts +0 -140
  768. package/backend/src/routes/mediaAuth.ts +0 -150
  769. package/backend/src/routes/network.ts +0 -68
  770. package/backend/src/routes/plugins.ts +0 -368
  771. package/backend/src/routes/projects.ts +0 -1100
  772. package/backend/src/routes/scheduledTasks.ts +0 -442
  773. package/backend/src/routes/sessions.ts +0 -1054
  774. package/backend/src/routes/settings.ts +0 -552
  775. package/backend/src/routes/skills.ts +0 -319
  776. package/backend/src/routes/slack.ts +0 -193
  777. package/backend/src/routes/slides.ts +0 -166
  778. package/backend/src/routes/subagents.ts +0 -366
  779. package/backend/src/routes/taskExecutor.ts +0 -243
  780. package/backend/src/routes/tunnel.ts +0 -317
  781. package/backend/src/routes/version.ts +0 -239
  782. package/backend/src/schemas/a2a.ts +0 -352
  783. package/backend/src/services/__tests__/pluginInstaller.test.ts +0 -316
  784. package/backend/src/services/__tests__/pluginParser.test.ts +0 -285
  785. package/backend/src/services/__tests__/pluginPaths.test.ts +0 -212
  786. package/backend/src/services/__tests__/pluginScanner.test.ts +0 -287
  787. package/backend/src/services/__tests__/pluginSymlink.test.ts +0 -340
  788. package/backend/src/services/__tests__/projectMetadataStorage.test.ts +0 -158
  789. package/backend/src/services/__tests__/sessionConcurrency.test.ts +0 -132
  790. package/backend/src/services/__tests__/slackAIService.test.ts +0 -561
  791. package/backend/src/services/__tests__/slackThreadMapper.test.ts +0 -228
  792. package/backend/src/services/a2a/__tests__/a2aClientTool.integration.test.ts +0 -347
  793. package/backend/src/services/a2a/__tests__/a2aClientTool.test.ts +0 -710
  794. package/backend/src/services/a2a/__tests__/a2aConfigService.test.ts +0 -526
  795. package/backend/src/services/a2a/__tests__/a2aConfigServicePath.test.ts +0 -55
  796. package/backend/src/services/a2a/__tests__/a2aSdkMcp.test.ts +0 -254
  797. package/backend/src/services/a2a/__tests__/agentCardService.test.ts +0 -357
  798. package/backend/src/services/a2a/__tests__/apiKeyService.test.ts +0 -378
  799. package/backend/src/services/a2a/__tests__/buildQueryOptionsIntegration.test.ts +0 -41
  800. package/backend/src/services/a2a/__tests__/dynamic_config_verification.test.ts +0 -71
  801. package/backend/src/services/a2a/__tests__/integrateA2AMcpServer.test.ts +0 -97
  802. package/backend/src/services/a2a/__tests__/taskManager.integration.test.ts +0 -417
  803. package/backend/src/services/a2a/__tests__/taskManager.test.ts +0 -511
  804. package/backend/src/services/a2a/__tests__/webhookService.test.ts +0 -258
  805. package/backend/src/services/a2a/a2aClientTool.ts +0 -723
  806. package/backend/src/services/a2a/a2aConfigService.ts +0 -194
  807. package/backend/src/services/a2a/a2aHistoryService.ts +0 -111
  808. package/backend/src/services/a2a/a2aIntegration.ts +0 -40
  809. package/backend/src/services/a2a/a2aQueryService.ts +0 -275
  810. package/backend/src/services/a2a/a2aSdkMcp.ts +0 -208
  811. package/backend/src/services/a2a/a2aStreamEvents.ts +0 -166
  812. package/backend/src/services/a2a/agentCardService.ts +0 -256
  813. package/backend/src/services/a2a/agentMappingService.ts +0 -202
  814. package/backend/src/services/a2a/apiKeyService.ts +0 -361
  815. package/backend/src/services/a2a/taskCleanup.ts +0 -199
  816. package/backend/src/services/a2a/taskManager.ts +0 -327
  817. package/backend/src/services/a2a/webhookService.ts +0 -161
  818. package/backend/src/services/agentStorage.ts +0 -506
  819. package/backend/src/services/askUserQuestion/askUserQuestionIntegration.ts +0 -68
  820. package/backend/src/services/askUserQuestion/askUserQuestionMcp.ts +0 -173
  821. package/backend/src/services/askUserQuestion/index.ts +0 -48
  822. package/backend/src/services/askUserQuestion/init.ts +0 -53
  823. package/backend/src/services/askUserQuestion/notificationChannel.ts +0 -218
  824. package/backend/src/services/askUserQuestion/slackNotificationChannel.ts +0 -150
  825. package/backend/src/services/askUserQuestion/sseNotificationChannel.ts +0 -102
  826. package/backend/src/services/askUserQuestion/userInputRegistry.ts +0 -307
  827. package/backend/src/services/claudeSession.ts +0 -421
  828. package/backend/src/services/claudeVersionStorage.ts +0 -389
  829. package/backend/src/services/mcpAdmin/__tests__/adminApiKeyService.test.ts +0 -385
  830. package/backend/src/services/mcpAdmin/__tests__/mcpAdminRoutes.test.ts +0 -356
  831. package/backend/src/services/mcpAdmin/__tests__/mcpAdminServer.test.ts +0 -541
  832. package/backend/src/services/mcpAdmin/__tests__/providerTools.test.ts +0 -347
  833. package/backend/src/services/mcpAdmin/__tests__/tools.test.ts +0 -463
  834. package/backend/src/services/mcpAdmin/adminApiKeyService.ts +0 -329
  835. package/backend/src/services/mcpAdmin/index.ts +0 -19
  836. package/backend/src/services/mcpAdmin/mcpAdminServer.ts +0 -318
  837. package/backend/src/services/mcpAdmin/tools/agentTools.ts +0 -390
  838. package/backend/src/services/mcpAdmin/tools/index.ts +0 -29
  839. package/backend/src/services/mcpAdmin/tools/mcpServerTools.ts +0 -368
  840. package/backend/src/services/mcpAdmin/tools/projectTools.ts +0 -415
  841. package/backend/src/services/mcpAdmin/tools/providerTools.ts +0 -649
  842. package/backend/src/services/mcpAdmin/tools/systemTools.ts +0 -254
  843. package/backend/src/services/mcpAdmin/types.ts +0 -155
  844. package/backend/src/services/messageQueue.ts +0 -80
  845. package/backend/src/services/pluginInstaller.ts +0 -329
  846. package/backend/src/services/pluginParser.ts +0 -441
  847. package/backend/src/services/pluginPaths.ts +0 -270
  848. package/backend/src/services/pluginScanner.ts +0 -245
  849. package/backend/src/services/pluginSymlink.ts +0 -241
  850. package/backend/src/services/projectMetadataStorage.ts +0 -871
  851. package/backend/src/services/scheduledTaskStorage.ts +0 -377
  852. package/backend/src/services/schedulerService.ts +0 -668
  853. package/backend/src/services/sessionManager.ts +0 -738
  854. package/backend/src/services/skillStorage.ts +0 -521
  855. package/backend/src/services/slackAIService.ts +0 -1395
  856. package/backend/src/services/slackClient.ts +0 -110
  857. package/backend/src/services/slackSessionLock.ts +0 -364
  858. package/backend/src/services/slackThreadMapper.ts +0 -170
  859. package/backend/src/services/taskExecutor/BuiltinExecutor.ts +0 -611
  860. package/backend/src/services/taskExecutor/__tests__/a2a-tasks.test.ts +0 -382
  861. package/backend/src/services/taskExecutor/__tests__/e2e-workflows.test.ts +0 -528
  862. package/backend/src/services/taskExecutor/__tests__/error-handling.test.ts +0 -458
  863. package/backend/src/services/taskExecutor/__tests__/stress.test.ts +0 -400
  864. package/backend/src/services/taskExecutor/__tests__/taskExecutor.integration.test.ts +0 -240
  865. package/backend/src/services/taskExecutor/__tests__/timeout-cancellation.test.ts +0 -384
  866. package/backend/src/services/taskExecutor/index.ts +0 -168
  867. package/backend/src/services/taskExecutor/taskWorker.ts +0 -222
  868. package/backend/src/services/taskExecutor/types.ts +0 -179
  869. package/backend/src/services/telemetry.ts +0 -234
  870. package/backend/src/services/tunnelService.ts +0 -614
  871. package/backend/src/types/a2a.ts +0 -372
  872. package/backend/src/types/agents.ts +0 -161
  873. package/backend/src/types/claude-history.ts +0 -81
  874. package/backend/src/types/claude-versions.ts +0 -39
  875. package/backend/src/types/commands.ts +0 -63
  876. package/backend/src/types/plugins.ts +0 -157
  877. package/backend/src/types/projects.ts +0 -64
  878. package/backend/src/types/scheduledTasks.ts +0 -214
  879. package/backend/src/types/skills.ts +0 -130
  880. package/backend/src/types/slack.ts +0 -112
  881. package/backend/src/types/streaming.ts +0 -13
  882. package/backend/src/types/subagents.ts +0 -29
  883. package/backend/src/utils/__tests__/claudeUtils.test.ts +0 -312
  884. package/backend/src/utils/__tests__/configResolver.test.ts +0 -255
  885. package/backend/src/utils/__tests__/sessionUtils.test.ts +0 -384
  886. package/backend/src/utils/agentCardCache.ts +0 -245
  887. package/backend/src/utils/claudeUtils.ts +0 -377
  888. package/backend/src/utils/configResolver.ts +0 -175
  889. package/backend/src/utils/fileUtils.ts +0 -5
  890. package/backend/src/utils/jwt.ts +0 -104
  891. package/backend/src/utils/networkUtils.ts +0 -68
  892. package/backend/src/utils/sessionUtils.ts +0 -303
  893. package/backend/tsconfig.json +0 -25
  894. package/backend/vitest.config.ts +0 -29
  895. package/docker-compose.traefik.yml +0 -59
  896. package/docker-compose.yml +0 -38
  897. package/docker-entrypoint.sh +0 -30
  898. package/docs/CLOUDFLARE_TUNNEL.md +0 -233
  899. package/docs/CLOUDFLARE_TUNNEL_ARCHITECTURE.md +0 -406
  900. package/docs/LAVS-IMPLEMENTATION.md +0 -1973
  901. package/docs/LAVS-SPEC.md +0 -951
  902. package/docs/QUICK_START_CLOUDFLARE_TUNNEL.md +0 -304
  903. package/docs/SCHEDULER_CONTROL.md +0 -142
  904. package/docs/SCHEDULER_STATUS_DISPLAY.md +0 -86
  905. package/docs/USER_MANUAL.md +0 -1726
  906. package/docs/USER_MANUAL_EN.md +0 -1408
  907. package/docs/VERSION_COMPATIBILITY.md +0 -616
  908. package/docs/api/a2a-endpoints.md +0 -891
  909. package/docs/guides/unified-task-executor-summary.md +0 -365
  910. package/docs/guides/unified-task-executor.md +0 -304
  911. package/docs/screenshots/01-homepage.png +0 -0
  912. package/docs/screenshots/02-dashboard.png +0 -0
  913. package/docs/screenshots/03-projects.png +0 -0
  914. package/docs/screenshots/04-agents.png +0 -0
  915. package/docs/screenshots/05-mcp-services.png +0 -0
  916. package/docs/screenshots/06-commands.png +0 -0
  917. package/docs/screenshots/07-chat.png +0 -0
  918. package/docs/screenshots/08-skills.png +0 -0
  919. package/docs/screenshots/09-settings.png +0 -0
  920. package/docs/screenshots/10-suppliers.png +0 -0
  921. package/docs/screenshots/11-plugins.png +0 -0
  922. package/docs/screenshots/agent-create-dialog.png +0 -0
  923. package/docs/screenshots/agent-edit-dialog.png +0 -0
  924. package/docs/screenshots/agent-list-overview.png +0 -0
  925. package/docs/screenshots/agent-tools-selection.png +0 -0
  926. package/docs/screenshots/agents-management.png +0 -0
  927. package/docs/screenshots/auto-compacted-session.png +0 -0
  928. package/docs/screenshots/chat-interface.png +0 -0
  929. package/docs/screenshots/chat-session-debug.png +0 -0
  930. package/docs/screenshots/chat-session-history.png +0 -0
  931. package/docs/screenshots/chat-tools-selection.png +0 -0
  932. package/docs/screenshots/commands-create-dialog.png +0 -0
  933. package/docs/screenshots/commands-overview.png +0 -0
  934. package/docs/screenshots/create-project-dialog.png +0 -0
  935. package/docs/screenshots/dashboard-overview.png +0 -0
  936. package/docs/screenshots/file-browser-interface.png +0 -0
  937. package/docs/screenshots/import-project-dialog.png +0 -0
  938. package/docs/screenshots/mcp-add-service-dialog.png +0 -0
  939. package/docs/screenshots/mcp-admin-settings.png +0 -0
  940. package/docs/screenshots/mcp-import-claude-code.png +0 -0
  941. package/docs/screenshots/mcp-list-overview.png +0 -0
  942. package/docs/screenshots/mcp-services-page.png +0 -0
  943. package/docs/screenshots/password-management-modal.png +0 -0
  944. package/docs/screenshots/plugins-add-market.png +0 -0
  945. package/docs/screenshots/plugins-browse.png +0 -0
  946. package/docs/screenshots/plugins-overview.png +0 -0
  947. package/docs/screenshots/ppt-editor-chat-interface.png +0 -0
  948. package/docs/screenshots/project-commands-dialog.png +0 -0
  949. package/docs/screenshots/project-list-overview.png +0 -0
  950. package/docs/screenshots/project-memory-dialog.png +0 -0
  951. package/docs/screenshots/project-settings-dialog.png +0 -0
  952. package/docs/screenshots/project-subagent-dialog.png +0 -0
  953. package/docs/screenshots/projects-management.png +0 -0
  954. package/docs/screenshots/projects-overview.png +0 -0
  955. package/docs/screenshots/scheduled-tasks-create-dialog.png +0 -0
  956. package/docs/screenshots/scheduled-tasks-execution-history.png +0 -0
  957. package/docs/screenshots/scheduled-tasks-overview.png +0 -0
  958. package/docs/screenshots/session-display-issue.png +0 -0
  959. package/docs/screenshots/session-messages-fix.png +0 -0
  960. package/docs/screenshots/session-messages-loaded.png +0 -0
  961. package/docs/screenshots/settings-general.png +0 -0
  962. package/docs/screenshots/settings-memory.png +0 -0
  963. package/docs/screenshots/skills-create-dialog.png +0 -0
  964. package/docs/screenshots/skills-list-overview.png +0 -0
  965. package/docs/screenshots/skills-view-detail.png +0 -0
  966. package/docs/screenshots/slide-preview-after-fix.png +0 -0
  967. package/docs/screenshots/storybook-basetool-full.png +0 -0
  968. package/docs/screenshots/storybook-fixed.png +0 -0
  969. package/docs/screenshots/storybook-tasktool.png +0 -0
  970. package/docs/screenshots/supplier-add-dialog.png +0 -0
  971. package/docs/screenshots/supplier-edit-dialog.png +0 -0
  972. package/docs/screenshots/suppliers-overview.png +0 -0
  973. package/docs/screenshots/telemetry-settings.png +0 -0
  974. package/docs/screenshots/version-management-page.png +0 -0
  975. package/docs-site/.vitepress/cache/deps/@theme_index.js +0 -275
  976. package/docs-site/.vitepress/cache/deps/@theme_index.js.map +0 -7
  977. package/docs-site/.vitepress/cache/deps/_metadata.json +0 -58
  978. package/docs-site/.vitepress/cache/deps/chunk-CN42XFKG.js +0 -12824
  979. package/docs-site/.vitepress/cache/deps/chunk-CN42XFKG.js.map +0 -7
  980. package/docs-site/.vitepress/cache/deps/chunk-Y3A3J5YD.js +0 -9719
  981. package/docs-site/.vitepress/cache/deps/chunk-Y3A3J5YD.js.map +0 -7
  982. package/docs-site/.vitepress/cache/deps/package.json +0 -3
  983. package/docs-site/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
  984. package/docs-site/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  985. package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -583
  986. package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  987. package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +0 -1352
  988. package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +0 -7
  989. package/docs-site/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +0 -1665
  990. package/docs-site/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +0 -7
  991. package/docs-site/.vitepress/cache/deps/vitepress___minisearch.js +0 -1813
  992. package/docs-site/.vitepress/cache/deps/vitepress___minisearch.js.map +0 -7
  993. package/docs-site/.vitepress/cache/deps/vue.js +0 -347
  994. package/docs-site/.vitepress/cache/deps/vue.js.map +0 -7
  995. package/docs-site/src/.vitepress/cache/deps/_metadata.json +0 -52
  996. package/docs-site/src/.vitepress/cache/deps/chunk-CN42XFKG.js +0 -12824
  997. package/docs-site/src/.vitepress/cache/deps/chunk-CN42XFKG.js.map +0 -7
  998. package/docs-site/src/.vitepress/cache/deps/chunk-Y3A3J5YD.js +0 -9719
  999. package/docs-site/src/.vitepress/cache/deps/chunk-Y3A3J5YD.js.map +0 -7
  1000. package/docs-site/src/.vitepress/cache/deps/package.json +0 -3
  1001. package/docs-site/src/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
  1002. package/docs-site/src/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  1003. package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -583
  1004. package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  1005. package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +0 -1352
  1006. package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +0 -7
  1007. package/docs-site/src/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +0 -1665
  1008. package/docs-site/src/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +0 -7
  1009. package/docs-site/src/.vitepress/cache/deps/vitepress___minisearch.js +0 -1813
  1010. package/docs-site/src/.vitepress/cache/deps/vitepress___minisearch.js.map +0 -7
  1011. package/docs-site/src/.vitepress/cache/deps/vue.js +0 -347
  1012. package/docs-site/src/.vitepress/cache/deps/vue.js.map +0 -7
  1013. package/frontend/.storybook/main.ts +0 -22
  1014. package/frontend/.storybook/preview.ts +0 -27
  1015. package/frontend/.storybook/vitest.setup.ts +0 -7
  1016. package/frontend/README.md +0 -69
  1017. package/frontend/components.json +0 -17
  1018. package/frontend/eslint.config.js +0 -26
  1019. package/frontend/index.html +0 -62
  1020. package/frontend/package-lock.json +0 -7922
  1021. package/frontend/package.json +0 -90
  1022. package/frontend/pnpm-lock.yaml +0 -4714
  1023. package/frontend/postcss.config.js +0 -6
  1024. package/frontend/scripts/extract-chinese.js +0 -146
  1025. package/frontend/src/App.css +0 -42
  1026. package/frontend/src/App.tsx +0 -201
  1027. package/frontend/src/__tests__/smoke.test.tsx +0 -15
  1028. package/frontend/src/agents/README.md +0 -136
  1029. package/frontend/src/agents/chat/index.ts +0 -17
  1030. package/frontend/src/agents/registry.ts +0 -22
  1031. package/frontend/src/agents/slides/components/SlidePreview.tsx +0 -287
  1032. package/frontend/src/agents/slides/components/SlidePreviewPanel.tsx +0 -120
  1033. package/frontend/src/agents/slides/hooks/useSlides.ts +0 -245
  1034. package/frontend/src/agents/slides/index.ts +0 -17
  1035. package/frontend/src/agents/slides/stores/useSlidesStore.ts +0 -56
  1036. package/frontend/src/agents/types.ts +0 -18
  1037. package/frontend/src/api/skills.ts +0 -184
  1038. package/frontend/src/assets/react.svg +0 -1
  1039. package/frontend/src/components/AgentChatPanel.tsx +0 -901
  1040. package/frontend/src/components/ApiSettingsModal.tsx +0 -267
  1041. package/frontend/src/components/BackendOnboardingWizard.tsx +0 -255
  1042. package/frontend/src/components/BackendServiceSwitcher.tsx +0 -356
  1043. package/frontend/src/components/CSVPreview.tsx +0 -465
  1044. package/frontend/src/components/ChatMessageRenderer.tsx +0 -279
  1045. package/frontend/src/components/CommandForm.tsx +0 -560
  1046. package/frontend/src/components/CommandSelector.tsx +0 -218
  1047. package/frontend/src/components/CompactSummary.tsx +0 -52
  1048. package/frontend/src/components/ConfirmDialog.tsx +0 -69
  1049. package/frontend/src/components/DiffViewer.css +0 -78
  1050. package/frontend/src/components/DiffViewer.tsx +0 -89
  1051. package/frontend/src/components/EnvVarsConfig.tsx +0 -113
  1052. package/frontend/src/components/ErrorBoundary.tsx +0 -100
  1053. package/frontend/src/components/ErrorMessage.tsx +0 -197
  1054. package/frontend/src/components/FileBrowser.tsx +0 -480
  1055. package/frontend/src/components/FileContentViewer.tsx +0 -155
  1056. package/frontend/src/components/FileExplorer/FileIcon.tsx +0 -32
  1057. package/frontend/src/components/FileExplorer/FilePreview.tsx +0 -130
  1058. package/frontend/src/components/FileExplorer/FileTabs.tsx +0 -104
  1059. package/frontend/src/components/FileExplorer/FileTreeToolbar.tsx +0 -30
  1060. package/frontend/src/components/FileExplorer/ImagePreview.tsx +0 -86
  1061. package/frontend/src/components/FileExplorer/REFACTOR_SUMMARY.md +0 -117
  1062. package/frontend/src/components/FileExplorer/TabDropdown.tsx +0 -59
  1063. package/frontend/src/components/FileExplorer/TreeNode.tsx +0 -73
  1064. package/frontend/src/components/FileExplorer/constants.ts +0 -16
  1065. package/frontend/src/components/FileExplorer/fileTypes.ts +0 -156
  1066. package/frontend/src/components/FileExplorer/hooks/index.ts +0 -2
  1067. package/frontend/src/components/FileExplorer/hooks/useFileTabs.ts +0 -120
  1068. package/frontend/src/components/FileExplorer/hooks/useLazyFileTree.ts +0 -260
  1069. package/frontend/src/components/FileExplorer/index.ts +0 -15
  1070. package/frontend/src/components/FileExplorer.tsx +0 -1124
  1071. package/frontend/src/components/FloatingToggle.tsx +0 -66
  1072. package/frontend/src/components/ImagePreview.tsx +0 -369
  1073. package/frontend/src/components/JSONLPreview.tsx +0 -421
  1074. package/frontend/src/components/LanguageSwitcher.tsx +0 -32
  1075. package/frontend/src/components/Layout.tsx +0 -57
  1076. package/frontend/src/components/MarkdownMessage.tsx +0 -136
  1077. package/frontend/src/components/McpStatusModal.tsx +0 -272
  1078. package/frontend/src/components/MermaidDiagram.tsx +0 -423
  1079. package/frontend/src/components/MobileChatInput.tsx +0 -158
  1080. package/frontend/src/components/MobileChatToolbar.tsx +0 -164
  1081. package/frontend/src/components/MobileNavigation.tsx +0 -101
  1082. package/frontend/src/components/MobileSettingsModal.tsx +0 -272
  1083. package/frontend/src/components/MobileSidebar.tsx +0 -56
  1084. package/frontend/src/components/PanelToggle.tsx +0 -69
  1085. package/frontend/src/components/ProjectA2AModal.tsx +0 -1430
  1086. package/frontend/src/components/ProjectCommandsModal.tsx +0 -453
  1087. package/frontend/src/components/ProjectMemoryModal.tsx +0 -178
  1088. package/frontend/src/components/ProjectSelector.tsx +0 -498
  1089. package/frontend/src/components/ProjectSettingsModal.tsx +0 -210
  1090. package/frontend/src/components/ProjectSubAgentsModal.tsx +0 -421
  1091. package/frontend/src/components/ProjectTable.tsx +0 -387
  1092. package/frontend/src/components/ProtectedRoute.tsx +0 -123
  1093. package/frontend/src/components/RecentActivity.tsx +0 -145
  1094. package/frontend/src/components/ResponsiveTable.tsx +0 -164
  1095. package/frontend/src/components/RightPanelHeader.tsx +0 -87
  1096. package/frontend/src/components/RightPanelWrapper.tsx +0 -74
  1097. package/frontend/src/components/ScheduledTaskEditor.tsx +0 -718
  1098. package/frontend/src/components/ServiceManagementModal.tsx +0 -794
  1099. package/frontend/src/components/ServiceStatusIndicator.tsx +0 -334
  1100. package/frontend/src/components/SessionsDashboard.tsx +0 -295
  1101. package/frontend/src/components/SessionsDropdown.tsx +0 -168
  1102. package/frontend/src/components/SettingsDropdown.tsx +0 -236
  1103. package/frontend/src/components/SettingsLayout.tsx +0 -16
  1104. package/frontend/src/components/Sidebar.tsx +0 -283
  1105. package/frontend/src/components/SplitLayout.tsx +0 -261
  1106. package/frontend/src/components/SubagentForm.tsx +0 -468
  1107. package/frontend/src/components/SwipeActions.tsx +0 -413
  1108. package/frontend/src/components/SystemPromptEditor.tsx +0 -126
  1109. package/frontend/src/components/TaskExecutionHistory.tsx +0 -373
  1110. package/frontend/src/components/TelemetryProvider.tsx +0 -157
  1111. package/frontend/src/components/ToolUsage.tsx +0 -34
  1112. package/frontend/src/components/ToolsList.tsx +0 -86
  1113. package/frontend/src/components/UnifiedToolSelector.tsx +0 -508
  1114. package/frontend/src/components/UpdateNotification.tsx +0 -105
  1115. package/frontend/src/components/agentChat/AgentChatInput.tsx +0 -249
  1116. package/frontend/src/components/agentChat/AgentChatMobileInput.tsx +0 -266
  1117. package/frontend/src/components/agentChat/AgentCommandSelector.tsx +0 -226
  1118. package/frontend/src/components/agentChat/AgentInputArea.tsx +0 -573
  1119. package/frontend/src/components/agentChat/ChatMessageList.tsx +0 -125
  1120. package/frontend/src/components/agentChat/index.ts +0 -7
  1121. package/frontend/src/components/onboarding/BackendDetectingStep.tsx +0 -42
  1122. package/frontend/src/components/onboarding/BackendFoundStep.tsx +0 -75
  1123. package/frontend/src/components/onboarding/BackendNotFoundStep.tsx +0 -249
  1124. package/frontend/src/components/onboarding/OnboardingCompleteStep.tsx +0 -90
  1125. package/frontend/src/components/onboarding/WelcomeStep.tsx +0 -93
  1126. package/frontend/src/components/plugins/AddMarketplaceModal.tsx +0 -186
  1127. package/frontend/src/components/plugins/BrowsePluginsTab.tsx +0 -262
  1128. package/frontend/src/components/plugins/InstalledPluginsTab.tsx +0 -246
  1129. package/frontend/src/components/plugins/MarketplacesTab.tsx +0 -168
  1130. package/frontend/src/components/plugins/PluginDetailModal.tsx +0 -307
  1131. package/frontend/src/components/settings/version/ClaudeVersionForm.tsx +0 -266
  1132. package/frontend/src/components/settings/version/ClaudeVersionList.tsx +0 -61
  1133. package/frontend/src/components/settings/version/EnvironmentVariablesSection.tsx +0 -173
  1134. package/frontend/src/components/settings/version/ModelConfigSection.tsx +0 -129
  1135. package/frontend/src/components/settings/version/VersionListItem.tsx +0 -133
  1136. package/frontend/src/components/settings/version/VersionTemplateSelector.tsx +0 -53
  1137. package/frontend/src/components/skills/CreateSkillModal.tsx +0 -702
  1138. package/frontend/src/components/skills/SkillDetailModal.tsx +0 -180
  1139. package/frontend/src/components/skills/SkillFileBrowserModal.tsx +0 -67
  1140. package/frontend/src/components/skills/SkillPreview.tsx +0 -150
  1141. package/frontend/src/components/skills/SkillsPage.tsx +0 -329
  1142. package/frontend/src/components/skills/index.ts +0 -4
  1143. package/frontend/src/components/tools/A2ACallTool.tsx +0 -733
  1144. package/frontend/src/components/tools/AskUserQuestionTool.stories.tsx +0 -223
  1145. package/frontend/src/components/tools/AskUserQuestionTool.tsx +0 -546
  1146. package/frontend/src/components/tools/BaseToolComponent.stories.tsx +0 -316
  1147. package/frontend/src/components/tools/BaseToolComponent.tsx +0 -226
  1148. package/frontend/src/components/tools/BashOutputTool.stories.tsx +0 -106
  1149. package/frontend/src/components/tools/BashOutputTool.tsx +0 -198
  1150. package/frontend/src/components/tools/BashTool.stories.tsx +0 -163
  1151. package/frontend/src/components/tools/BashTool.tsx +0 -80
  1152. package/frontend/src/components/tools/EditTool.stories.tsx +0 -109
  1153. package/frontend/src/components/tools/EditTool.tsx +0 -60
  1154. package/frontend/src/components/tools/ExitPlanModeTool.stories.tsx +0 -118
  1155. package/frontend/src/components/tools/ExitPlanModeTool.tsx +0 -34
  1156. package/frontend/src/components/tools/GlobTool.stories.tsx +0 -122
  1157. package/frontend/src/components/tools/GlobTool.tsx +0 -50
  1158. package/frontend/src/components/tools/GrepTool.stories.tsx +0 -125
  1159. package/frontend/src/components/tools/GrepTool.tsx +0 -87
  1160. package/frontend/src/components/tools/KillBashTool.stories.tsx +0 -120
  1161. package/frontend/src/components/tools/KillBashTool.tsx +0 -112
  1162. package/frontend/src/components/tools/LSTool.stories.tsx +0 -132
  1163. package/frontend/src/components/tools/LSTool.tsx +0 -41
  1164. package/frontend/src/components/tools/ListMcpResourcesTool.stories.tsx +0 -125
  1165. package/frontend/src/components/tools/ListMcpResourcesTool.tsx +0 -84
  1166. package/frontend/src/components/tools/McpTool.stories.tsx +0 -140
  1167. package/frontend/src/components/tools/McpTool.tsx +0 -266
  1168. package/frontend/src/components/tools/MultiEditTool.stories.tsx +0 -127
  1169. package/frontend/src/components/tools/MultiEditTool.tsx +0 -59
  1170. package/frontend/src/components/tools/NotebookEditTool.stories.tsx +0 -137
  1171. package/frontend/src/components/tools/NotebookEditTool.tsx +0 -57
  1172. package/frontend/src/components/tools/NotebookReadTool.stories.tsx +0 -134
  1173. package/frontend/src/components/tools/NotebookReadTool.tsx +0 -25
  1174. package/frontend/src/components/tools/README.md +0 -677
  1175. package/frontend/src/components/tools/ReadMcpResourceTool.stories.tsx +0 -125
  1176. package/frontend/src/components/tools/ReadMcpResourceTool.tsx +0 -126
  1177. package/frontend/src/components/tools/ReadTool.stories.tsx +0 -116
  1178. package/frontend/src/components/tools/ReadTool.tsx +0 -37
  1179. package/frontend/src/components/tools/SkillTool.tsx +0 -91
  1180. package/frontend/src/components/tools/SubAgentMessageFlow.tsx +0 -172
  1181. package/frontend/src/components/tools/TaskTool.stories.tsx +0 -483
  1182. package/frontend/src/components/tools/TaskTool.tsx +0 -199
  1183. package/frontend/src/components/tools/TimeMachineTool.stories.tsx +0 -254
  1184. package/frontend/src/components/tools/TimeMachineTool.tsx +0 -126
  1185. package/frontend/src/components/tools/TodoWriteTool.stories.tsx +0 -128
  1186. package/frontend/src/components/tools/TodoWriteTool.tsx +0 -74
  1187. package/frontend/src/components/tools/ToolRenderer.stories.tsx +0 -460
  1188. package/frontend/src/components/tools/ToolRenderer.tsx +0 -147
  1189. package/frontend/src/components/tools/WebFetchTool.stories.tsx +0 -114
  1190. package/frontend/src/components/tools/WebFetchTool.tsx +0 -50
  1191. package/frontend/src/components/tools/WebSearchTool.stories.tsx +0 -124
  1192. package/frontend/src/components/tools/WebSearchTool.tsx +0 -67
  1193. package/frontend/src/components/tools/WriteTool.stories.tsx +0 -115
  1194. package/frontend/src/components/tools/WriteTool.tsx +0 -41
  1195. package/frontend/src/components/tools/__mocks__/toolTestData.ts +0 -557
  1196. package/frontend/src/components/tools/customMcpTools.tsx +0 -17
  1197. package/frontend/src/components/tools/index.stories.tsx +0 -107
  1198. package/frontend/src/components/tools/index.ts +0 -24
  1199. package/frontend/src/components/tools/mcpUtils.ts +0 -27
  1200. package/frontend/src/components/tools/sdk-types.ts +0 -327
  1201. package/frontend/src/components/tools/types.ts +0 -218
  1202. package/frontend/src/components/ui/Button.tsx +0 -39
  1203. package/frontend/src/components/ui/Input.tsx +0 -24
  1204. package/frontend/src/components/ui/Textarea.tsx +0 -23
  1205. package/frontend/src/components/ui/VersionInfo.tsx +0 -116
  1206. package/frontend/src/components/ui/dialog.tsx +0 -90
  1207. package/frontend/src/components/ui/index.ts +0 -4
  1208. package/frontend/src/components/ui/label.tsx +0 -19
  1209. package/frontend/src/components/ui/select.tsx +0 -121
  1210. package/frontend/src/components/ui/table.tsx +0 -117
  1211. package/frontend/src/components/ui/tabs.tsx +0 -124
  1212. package/frontend/src/components/ui/toast.tsx +0 -127
  1213. package/frontend/src/components/ui/toaster.tsx +0 -33
  1214. package/frontend/src/contexts/MobileContext.tsx +0 -109
  1215. package/frontend/src/hooks/__tests__/useAIStreamHandler.test.ts +0 -1198
  1216. package/frontend/src/hooks/agentChat/index.ts +0 -10
  1217. package/frontend/src/hooks/agentChat/useAIStreamHandler.ts +0 -1594
  1218. package/frontend/src/hooks/agentChat/useClaudeVersionManager.ts +0 -99
  1219. package/frontend/src/hooks/agentChat/useCommandCompletion.ts +0 -253
  1220. package/frontend/src/hooks/agentChat/useImageUpload.ts +0 -176
  1221. package/frontend/src/hooks/agentChat/useMessageSender.ts +0 -391
  1222. package/frontend/src/hooks/agentChat/useScrollManagement.ts +0 -66
  1223. package/frontend/src/hooks/agentChat/useSessionManager.ts +0 -110
  1224. package/frontend/src/hooks/agentChat/useToolSelector.ts +0 -82
  1225. package/frontend/src/hooks/agentChat/useUIState.ts +0 -103
  1226. package/frontend/src/hooks/index.ts +0 -3
  1227. package/frontend/src/hooks/use-toast.ts +0 -194
  1228. package/frontend/src/hooks/useA2AConfig.ts +0 -224
  1229. package/frontend/src/hooks/useA2AManagement.ts +0 -456
  1230. package/frontend/src/hooks/useAI.ts +0 -264
  1231. package/frontend/src/hooks/useAgents.ts +0 -411
  1232. package/frontend/src/hooks/useApiBase.ts +0 -31
  1233. package/frontend/src/hooks/useAuth.ts +0 -454
  1234. package/frontend/src/hooks/useBackendServices.ts +0 -58
  1235. package/frontend/src/hooks/useClaudeVersions.ts +0 -128
  1236. package/frontend/src/hooks/useCommands.ts +0 -312
  1237. package/frontend/src/hooks/useDashboardStats.ts +0 -61
  1238. package/frontend/src/hooks/useFileSystem.ts +0 -349
  1239. package/frontend/src/hooks/useFiles.ts +0 -80
  1240. package/frontend/src/hooks/useMarketplaces.ts +0 -120
  1241. package/frontend/src/hooks/useMobile.tsx +0 -110
  1242. package/frontend/src/hooks/usePlugins.ts +0 -239
  1243. package/frontend/src/hooks/useProjects.ts +0 -45
  1244. package/frontend/src/hooks/useResponsiveSettings.tsx +0 -22
  1245. package/frontend/src/hooks/useScheduledTasks.ts +0 -483
  1246. package/frontend/src/hooks/useSessionHeartbeat.ts +0 -173
  1247. package/frontend/src/hooks/useSessionHeartbeatOnSuccess.ts +0 -80
  1248. package/frontend/src/hooks/useSessions.ts +0 -96
  1249. package/frontend/src/hooks/useSkills.ts +0 -197
  1250. package/frontend/src/hooks/useSubagents.ts +0 -274
  1251. package/frontend/src/hooks/useTabNotification.ts +0 -155
  1252. package/frontend/src/hooks/useVersionCheck.ts +0 -164
  1253. package/frontend/src/i18n/index.ts +0 -66
  1254. package/frontend/src/i18n/locales/en-US/agents.json +0 -85
  1255. package/frontend/src/i18n/locales/en-US/common.json +0 -155
  1256. package/frontend/src/i18n/locales/en-US/components.json +0 -1197
  1257. package/frontend/src/i18n/locales/en-US/errors.json +0 -56
  1258. package/frontend/src/i18n/locales/en-US/home.json +0 -27
  1259. package/frontend/src/i18n/locales/en-US/onboarding.json +0 -122
  1260. package/frontend/src/i18n/locales/en-US/pages.json +0 -1409
  1261. package/frontend/src/i18n/locales/en-US/skills.json +0 -120
  1262. package/frontend/src/i18n/locales/zh-CN/agents.json +0 -85
  1263. package/frontend/src/i18n/locales/zh-CN/common.json +0 -155
  1264. package/frontend/src/i18n/locales/zh-CN/components.json +0 -1199
  1265. package/frontend/src/i18n/locales/zh-CN/errors.json +0 -56
  1266. package/frontend/src/i18n/locales/zh-CN/home.json +0 -27
  1267. package/frontend/src/i18n/locales/zh-CN/onboarding.json +0 -122
  1268. package/frontend/src/i18n/locales/zh-CN/pages.json +0 -1540
  1269. package/frontend/src/i18n/locales/zh-CN/pages.json.tmp +0 -0
  1270. package/frontend/src/i18n/locales/zh-CN/pages_new.json +0 -0
  1271. package/frontend/src/i18n/locales/zh-CN/skills.json +0 -120
  1272. package/frontend/src/i18n/types.ts +0 -19
  1273. package/frontend/src/index.css +0 -112
  1274. package/frontend/src/lib/authFetch.ts +0 -183
  1275. package/frontend/src/lib/config.ts +0 -120
  1276. package/frontend/src/lib/utils.ts +0 -6
  1277. package/frontend/src/main.tsx +0 -13
  1278. package/frontend/src/pages/AgentsPage.tsx +0 -781
  1279. package/frontend/src/pages/AnalyticsPage.tsx +0 -363
  1280. package/frontend/src/pages/ChatPage.tsx +0 -286
  1281. package/frontend/src/pages/CommandsPage.tsx +0 -445
  1282. package/frontend/src/pages/DashboardPage.tsx +0 -519
  1283. package/frontend/src/pages/HomePage.tsx +0 -223
  1284. package/frontend/src/pages/LandingPage.tsx +0 -607
  1285. package/frontend/src/pages/LoginPage.tsx +0 -510
  1286. package/frontend/src/pages/McpPage.tsx +0 -1049
  1287. package/frontend/src/pages/PluginsPage.tsx +0 -98
  1288. package/frontend/src/pages/ProjectSettings/A2AConfigTab.tsx +0 -468
  1289. package/frontend/src/pages/ProjectsPage.tsx +0 -818
  1290. package/frontend/src/pages/ScheduledTasksPage.tsx +0 -574
  1291. package/frontend/src/pages/SkillsPage.tsx +0 -6
  1292. package/frontend/src/pages/ToastTestPage.tsx +0 -33
  1293. package/frontend/src/pages/index.ts +0 -3
  1294. package/frontend/src/pages/settings/ApiSettingsPage.tsx +0 -240
  1295. package/frontend/src/pages/settings/CloudflareTunnelPage.tsx +0 -730
  1296. package/frontend/src/pages/settings/GeneralSettingsPage.tsx +0 -456
  1297. package/frontend/src/pages/settings/McpAdminSettingsPage.tsx +0 -1088
  1298. package/frontend/src/pages/settings/MemorySettingsPage.tsx +0 -153
  1299. package/frontend/src/pages/settings/SubagentsPage.tsx +0 -412
  1300. package/frontend/src/pages/settings/SystemInfoPage.tsx +0 -268
  1301. package/frontend/src/pages/settings/TelemetrySettingsPage.tsx +0 -175
  1302. package/frontend/src/pages/settings/VersionSettingsPage.tsx +0 -366
  1303. package/frontend/src/pages/settings/WebSocketTunnelPage.tsx +0 -1578
  1304. package/frontend/src/stores/authStore.ts +0 -99
  1305. package/frontend/src/stores/useAgentStore.ts +0 -426
  1306. package/frontend/src/stores/useSubAgentStore.ts +0 -207
  1307. package/frontend/src/styles/mobile.css +0 -156
  1308. package/frontend/src/test/setup.ts +0 -64
  1309. package/frontend/src/types/agents.ts +0 -109
  1310. package/frontend/src/types/backendServices.ts +0 -20
  1311. package/frontend/src/types/claude-versions.ts +0 -45
  1312. package/frontend/src/types/commands.ts +0 -63
  1313. package/frontend/src/types/index.ts +0 -171
  1314. package/frontend/src/types/plugins.ts +0 -128
  1315. package/frontend/src/types/scheduledTasks.ts +0 -140
  1316. package/frontend/src/types/skills.ts +0 -161
  1317. package/frontend/src/types/subagents.ts +0 -48
  1318. package/frontend/src/types/versionTemplates.ts +0 -270
  1319. package/frontend/src/utils/authHelpers.ts +0 -89
  1320. package/frontend/src/utils/backendServiceStorage.ts +0 -100
  1321. package/frontend/src/utils/commandFormatter.ts +0 -100
  1322. package/frontend/src/utils/commandGenerator.ts +0 -72
  1323. package/frontend/src/utils/commandHandler.ts +0 -205
  1324. package/frontend/src/utils/dateFormat.ts +0 -35
  1325. package/frontend/src/utils/eventBus.ts +0 -53
  1326. package/frontend/src/utils/index.ts +0 -34
  1327. package/frontend/src/utils/onboardingStorage.ts +0 -40
  1328. package/frontend/src/utils/smartNavigation.ts +0 -244
  1329. package/frontend/src/utils/streamReader.ts +0 -32
  1330. package/frontend/src/utils/systemCommands.ts +0 -49
  1331. package/frontend/src/utils/tabManager.ts +0 -816
  1332. package/frontend/src/utils/toast.ts +0 -49
  1333. package/frontend/src/utils/toolMapping.ts +0 -83
  1334. package/frontend/src/vite-env.d.ts +0 -3
  1335. package/frontend/tailwind.config.js +0 -119
  1336. package/frontend/tsconfig.app.json +0 -33
  1337. package/frontend/tsconfig.json +0 -7
  1338. package/frontend/tsconfig.node.json +0 -25
  1339. package/frontend/vite.config.ts +0 -73
  1340. package/frontend/vitest.config.ts +0 -39
  1341. package/frontend/vitest.shims.d.ts +0 -1
  1342. package/nginx.conf +0 -153
  1343. package/pnpm-workspace.yaml +0 -3
  1344. package/scripts/API_KEY_GENERATION_README.md +0 -181
  1345. package/scripts/README-nginx.md +0 -327
  1346. package/scripts/README.md +0 -259
  1347. package/scripts/build-complete.js +0 -98
  1348. package/scripts/build-npm.js +0 -251
  1349. package/scripts/check-system.sh +0 -153
  1350. package/scripts/cloudflare_tunnel.py +0 -292
  1351. package/scripts/deploy-feature.sh +0 -265
  1352. package/scripts/generate-api-key.ts +0 -59
  1353. package/scripts/install-linux.sh +0 -1507
  1354. package/scripts/install-macos.sh +0 -1194
  1355. package/scripts/remote-install.sh +0 -244
  1356. package/scripts/remove-feature.sh +0 -214
  1357. package/scripts/remove.sh +0 -390
  1358. package/scripts/requirements.txt +0 -1
  1359. package/scripts/restore.sh +0 -331
  1360. package/scripts/setup-nginx-ssl.sh +0 -242
  1361. package/scripts/setup_nginx.sh +0 -110
  1362. package/scripts/windows-install-simple.bat +0 -277
  1363. package/scripts/windows-install.ps1 +0 -620
  1364. package/tsconfig.json +0 -30
  1365. package/vercel.json +0 -44
  1366. /package/{frontend/public → public}/cc-studio.png +0 -0
  1367. /package/{frontend/public → public}/screenshot-chat.png +0 -0
  1368. /package/{frontend/public → public}/screenshot-mcp.png +0 -0
  1369. /package/{frontend/public → public}/vite.svg +0 -0
  1370. /package/{frontend/public → public}/wechat-qr-code.png +0 -0
@@ -0,0 +1 @@
1
+ import{j as e}from"./data-structures-ChC1tqVg.js";import{r as i}from"./monaco-editor-BWfQfpij.js";import{T as D,a as B,b as f,c as o,d as R,e as m}from"./table-DjMdAdjH.js";import{u as H,a as L,S as q}from"./SubagentForm-C0R084ja.js";import{f as N}from"./dateFormat-CXa8VnEC.js";import{b as z}from"./index-BEPv9Bqe.js";import{T as k}from"./ToolsList-Kfxwp80g.js";import{u as J}from"./tools-BAI9XHGS.js";import{j as G,g as I,v as K,a5 as v,E as w,J as $,y as h}from"./ui-components-DaGtjl0g.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-3mB536QF.js";import"./UnifiedToolSelector-CkafUbz3.js";const re=()=>{const{t:s}=J("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(G,{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(I,{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};
@@ -0,0 +1 @@
1
+ import{j as e}from"./data-structures-ChC1tqVg.js";import{d as h,e as y}from"./index-BEPv9Bqe.js";import{u as b}from"./tools-BAI9XHGS.js";import{R as p,U as j,K as u,M as r,V as l,Y as f,_ as k,$ as N,e as v}from"./ui-components-DaGtjl0g.js";import"./monaco-editor-BWfQfpij.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-3mB536QF.js";const A=()=>{const{t:s}=b("pages"),{currentVersion:d,latestVersion:a,hasUpdate:n,forceCheck:o,isChecking:i,dismissUpdate:m,showUpdateNotification:x}=h(),{systemInfo:t,refetch:c}=y(),g=()=>{o(),c()};return e.jsxs("div",{className:"max-w-4xl mx-auto p-6 space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white flex items-center",children:[e.jsx(p,{className:"w-6 h-6 mr-2"}),s("settings.systemInfo.title")]}),e.jsx("p",{className:"mt-1 text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.subtitle")})]}),e.jsxs("button",{onClick:g,disabled:i,className:"inline-flex items-center px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[e.jsx(j,{className:`w-4 h-4 mr-2 ${i?"animate-spin":""}`}),s("settings.systemInfo.checkUpdate")]})]}),x&&a&&e.jsx("div",{className:"bg-gradient-to-r from-blue-50 to-indigo-50 dark:from-blue-900/30 dark:to-indigo-900/30 border border-blue-200 dark:border-blue-800 rounded-xl p-6",children:e.jsx("div",{className:"flex items-start justify-between",children:e.jsxs("div",{className:"flex items-start space-x-4",children:[e.jsx("div",{className:"p-3 bg-blue-100 dark:bg-blue-800 rounded-full",children:e.jsx(u,{className:"w-8 h-8 text-blue-600 dark:text-blue-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-blue-900 dark:text-blue-100",children:s("settings.systemInfo.updateAvailable")}),e.jsx("p",{className:"mt-1 text-blue-700 dark:text-blue-300",children:s("version.newVersionAvailable",{version:a})}),e.jsxs("div",{className:"mt-4 flex space-x-3",children:[e.jsxs("a",{href:"https://github.com/okguitar/agentstudio/releases",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:[e.jsx(r,{className:"w-4 h-4 mr-2"}),s("settings.systemInfo.viewReleases")]}),e.jsx("button",{onClick:m,className:"inline-flex items-center px-4 py-2 text-blue-700 dark:text-blue-300 bg-blue-100 dark:bg-blue-800 hover:bg-blue-200 dark:hover:bg-blue-700 rounded-lg transition-colors",children:s("version.dismiss")})]})]})]})})}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden",children:[e.jsx("div",{className:"px-6 py-4 border-b border-gray-200 dark:border-gray-700",children:e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white flex items-center",children:[e.jsx(l,{className:"w-5 h-5 mr-2"}),s("settings.systemInfo.versionInfo")]})}),e.jsx("div",{className:"p-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.appName")}),e.jsx("p",{className:"mt-1 text-lg font-semibold text-gray-900 dark:text-white",children:t?.app.name||"AgentStudio"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.currentVersion")}),e.jsxs("div",{className:"mt-1 flex items-center",children:[e.jsxs("span",{className:"text-lg font-mono text-gray-900 dark:text-white",children:["v",d||t?.app.version||"-"]}),!n&&e.jsxs("span",{className:"ml-2 inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400",children:[e.jsx(f,{className:"w-3 h-3 mr-1"}),s("settings.systemInfo.upToDate")]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.latestVersion")}),e.jsx("p",{className:"mt-1 text-lg font-mono text-gray-900 dark:text-white",children:a?`v${a}`:"-"})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsxs("label",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:["Node.js ",s("settings.systemInfo.version")]}),e.jsx("p",{className:"mt-1 font-mono text-gray-900 dark:text-white",children:t?.runtime.nodeVersion||"-"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.platform")}),e.jsxs("p",{className:"mt-1 text-gray-900 dark:text-white capitalize",children:[t?.runtime.platform||"-"," (",t?.runtime.arch||"-",")"]})]})]})]})})]}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden",children:[e.jsx("div",{className:"px-6 py-4 border-b border-gray-200 dark:border-gray-700",children:e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white flex items-center",children:[e.jsx(k,{className:"w-5 h-5 mr-2"}),s("settings.systemInfo.runtimeInfo")]})}),e.jsx("div",{className:"p-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-700/50 rounded-lg p-4",children:[e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"Node.js"}),e.jsx("p",{className:"mt-1 font-mono text-gray-900 dark:text-white",children:t?.runtime.nodeVersion||"-"})]}),e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-700/50 rounded-lg p-4",children:[e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.platform")}),e.jsx("p",{className:"mt-1 text-gray-900 dark:text-white capitalize",children:t?.runtime.platform||"-"})]}),e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-700/50 rounded-lg p-4",children:[e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.architecture")}),e.jsx("p",{className:"mt-1 text-gray-900 dark:text-white",children:t?.runtime.arch||"-"})]})]})})]}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700 overflow-hidden",children:[e.jsx("div",{className:"px-6 py-4 border-b border-gray-200 dark:border-gray-700",children:e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white flex items-center",children:[e.jsx(r,{className:"w-5 h-5 mr-2"}),s("settings.systemInfo.links")]})}),e.jsx("div",{className:"p-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("a",{href:t?.links.github||"https://github.com/okguitar/agentstudio",target:"_blank",rel:"noopener noreferrer",className:"flex items-center p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",children:[e.jsx(N,{className:"w-6 h-6 text-gray-700 dark:text-gray-300 mr-3"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-gray-900 dark:text-white",children:"GitHub"}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.viewSource")})]}),e.jsx(r,{className:"w-4 h-4 text-gray-400 ml-auto"})]}),e.jsxs("a",{href:t?.links.releases||"https://github.com/okguitar/agentstudio/releases",target:"_blank",rel:"noopener noreferrer",className:"flex items-center p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",children:[e.jsx(l,{className:"w-6 h-6 text-gray-700 dark:text-gray-300 mr-3"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-gray-900 dark:text-white",children:"Releases"}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.viewReleases")})]}),e.jsx(r,{className:"w-4 h-4 text-gray-400 ml-auto"})]}),e.jsxs("a",{href:t?.links.changelog||"https://github.com/okguitar/agentstudio/blob/main/CHANGELOG.md",target:"_blank",rel:"noopener noreferrer",className:"flex items-center p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",children:[e.jsx(v,{className:"w-6 h-6 text-gray-700 dark:text-gray-300 mr-3"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-gray-900 dark:text-white",children:"Changelog"}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.viewChangelog")})]}),e.jsx(r,{className:"w-4 h-4 text-gray-400 ml-auto"})]}),e.jsxs("a",{href:t?.links.npm||"https://www.npmjs.com/package/agentstudio",target:"_blank",rel:"noopener noreferrer",className:"flex items-center p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",children:[e.jsx(l,{className:"w-6 h-6 text-red-600 dark:text-red-400 mr-3"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-gray-900 dark:text-white",children:"npm"}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:s("settings.systemInfo.viewNpm")})]}),e.jsx(r,{className:"w-4 h-4 text-gray-400 ml-auto"})]})]})})]})]})};export{A as SystemInfoPage};
@@ -0,0 +1 @@
1
+ import{j as e}from"./data-structures-ChC1tqVg.js";import{W as i}from"./monaco-editor-BWfQfpij.js";import{i as d,f as c}from"./index-BEPv9Bqe.js";import{u as m}from"./tools-BAI9XHGS.js";import{a0 as o,a1 as a,a2 as x,j as g}from"./ui-components-DaGtjl0g.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-3mB536QF.js";const f=()=>{const{t:s}=m("pages"),[t,l]=i.useState(d()),n=()=>{const r=!t;c(r),l(r)};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold text-gray-900 dark:text-white mb-2",children:s("settings.telemetry.title","Telemetry & Analytics")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:s("settings.telemetry.description","Manage anonymous usage data collection")})]}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 overflow-hidden",children:[e.jsx("div",{className:"p-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:`p-3 rounded-xl ${t?"bg-blue-100 dark:bg-blue-900/30":"bg-gray-100 dark:bg-gray-700"}`,children:e.jsx(o,{className:`w-6 h-6 ${t?"text-blue-600 dark:text-blue-400":"text-gray-500"}`})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-gray-900 dark:text-white",children:s("settings.telemetry.enableTelemetry","Enable Anonymous Telemetry")}),e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400 mt-1",children:s("settings.telemetry.enableDescription","Help improve AgentStudio by sharing anonymous usage data")})]})]}),e.jsx("button",{onClick:n,className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${t?"bg-blue-600":"bg-gray-300 dark:bg-gray-600"}`,children:e.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${t?"translate-x-6":"translate-x-1"}`})})]})}),e.jsx("div",{className:`px-6 py-3 border-t ${t?"bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800":"bg-gray-50 dark:bg-gray-700/50 border-gray-200 dark:border-gray-700"}`,children:e.jsx("div",{className:"flex items-center gap-2 text-sm",children:t?e.jsxs(e.Fragment,{children:[e.jsx(a,{className:"w-4 h-4 text-green-600 dark:text-green-400"}),e.jsx("span",{className:"text-green-700 dark:text-green-400",children:s("settings.telemetry.statusEnabled","Telemetry is enabled. Thank you for helping improve AgentStudio!")})]}):e.jsxs(e.Fragment,{children:[e.jsx(x,{className:"w-4 h-4 text-gray-500"}),e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:s("settings.telemetry.statusDisabled","Telemetry is disabled. No data is being collected.")})]})})})]}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 p-6",children:[e.jsxs("h3",{className:"font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(a,{className:"w-5 h-5 text-green-500"}),s("settings.telemetry.whatWeCollect","What We Collect")]}),e.jsxs("ul",{className:"space-y-3 text-sm text-gray-600 dark:text-gray-300",children:[e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-green-500 mt-0.5",children:"✓"}),e.jsxs("div",{children:[e.jsx("strong",{children:s("settings.telemetry.collect.installId","Anonymous Installation ID")}),e.jsx("p",{className:"text-gray-500 dark:text-gray-400 mt-0.5",children:s("settings.telemetry.collect.installIdDesc","A random UUID to distinguish installations, not linked to your identity")})]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-green-500 mt-0.5",children:"✓"}),e.jsxs("div",{children:[e.jsx("strong",{children:s("settings.telemetry.collect.version","App Version & OS")}),e.jsx("p",{className:"text-gray-500 dark:text-gray-400 mt-0.5",children:s("settings.telemetry.collect.versionDesc","Helps us understand which versions and platforms are most used")})]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-green-500 mt-0.5",children:"✓"}),e.jsxs("div",{children:[e.jsx("strong",{children:s("settings.telemetry.collect.features","Feature Usage")}),e.jsx("p",{className:"text-gray-500 dark:text-gray-400 mt-0.5",children:s("settings.telemetry.collect.featuresDesc","Which features are used (without content or personal data)")})]})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-green-500 mt-0.5",children:"✓"}),e.jsxs("div",{children:[e.jsx("strong",{children:s("settings.telemetry.collect.errors","Error Reports")}),e.jsx("p",{className:"text-gray-500 dark:text-gray-400 mt-0.5",children:s("settings.telemetry.collect.errorsDesc","Sanitized error messages and stack traces (file paths removed)")})]})]})]})]}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 p-6",children:[e.jsxs("h3",{className:"font-semibold text-gray-900 dark:text-white mb-4 flex items-center gap-2",children:[e.jsx(g,{className:"w-5 h-5 text-red-500"}),s("settings.telemetry.whatWeNeverCollect","What We Never Collect")]}),e.jsxs("ul",{className:"space-y-3 text-sm text-gray-600 dark:text-gray-300",children:[e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-red-500 mt-0.5",children:"✗"}),e.jsx("span",{children:s("settings.telemetry.neverCollect.files","File contents, code, or project data")})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-red-500 mt-0.5",children:"✗"}),e.jsx("span",{children:s("settings.telemetry.neverCollect.keys","API keys, passwords, or credentials")})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-red-500 mt-0.5",children:"✗"}),e.jsx("span",{children:s("settings.telemetry.neverCollect.pii","Personal identifying information (name, email, IP)")})]}),e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-red-500 mt-0.5",children:"✗"}),e.jsx("span",{children:s("settings.telemetry.neverCollect.conversations","Chat conversations or AI responses")})]})]})]}),e.jsx("div",{className:"bg-blue-50 dark:bg-blue-900/20 rounded-xl border border-blue-200 dark:border-blue-800 p-4",children:e.jsxs("p",{className:"text-sm text-blue-700 dark:text-blue-300",children:[e.jsxs("strong",{children:[s("settings.telemetry.privacyNote","Privacy First"),":"]})," ",s("settings.telemetry.privacyNoteDesc","All telemetry data is anonymized and aggregated. We cannot identify individual users. You can disable telemetry at any time.")]})})]})};export{f as TelemetrySettingsPage,f as default};
@@ -0,0 +1 @@
1
+ import{j as s}from"./data-structures-ChC1tqVg.js";import{s as e,a as o,c as r}from"./index-BEPv9Bqe.js";import"./monaco-editor-BWfQfpij.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-3mB536QF.js";import"./tools-BAI9XHGS.js";import"./ui-components-DaGtjl0g.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-ChC1tqVg.js";import{g as a}from"./UnifiedToolSelector-CkafUbz3.js";import{D as d,H as m,k as p}from"./ui-components-DaGtjl0g.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-ChC1tqVg.js";import{r as g}from"./monaco-editor-BWfQfpij.js";import{a as Q,A as Z}from"./agents-3mB536QF.js";import{u as M}from"./tools-BAI9XHGS.js";import{X as R,ab as ee,al as te,Y as N,am as O,an as E,U as re,j as D,k as se,l as ae}from"./ui-components-DaGtjl0g.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 U(d){return I[d]||d}function le(d){return ne[d]||""}function ie(){const d=new Set([...Object.keys(I)]);return Array.from(d).map(m=>({name:m,label:U(m),description:le(m)}))}const b=ie(),ge=({isOpen:d,onClose:m,selectedRegularTools:l,onRegularToolsChange:f,selectedMcpTools:i,onMcpToolsChange:h,mcpToolsEnabled:F,onMcpEnabledChange:G,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)&&l.includes(e)||(l.includes(e)?f(l.filter(r=>r!==e)):f([...l,e]))},H=e=>{j(e)&&i.includes(e)||(i.includes(e)?h(i.filter(r=>r!==e)):h([...i,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(i.filter(o=>!n.includes(o)))}else h(i.filter(n=>!a.includes(n)));else{const n=[...i];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=>i.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")}),l.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:l.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")}),i.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:i.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:()=>{l.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 ${l.length===b.length||l.length>0?"bg-blue-600 border-blue-600 text-white":"border-gray-300 dark:border-gray-600 hover:border-blue-500"}`,children:l.length===b.length?t.jsx(N,{className:"w-3 h-3"}):l.length>0?t.jsx(O,{className:"w-3 h-3"}):null})]})}),b.map(e=>{const r=l.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:[U(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:F,onChange:e=>G(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=>i.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}`,$=i.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,U as g};
@@ -0,0 +1,5 @@
1
+ import{j as e}from"./data-structures-ChC1tqVg.js";import{W as L,r as j}from"./monaco-editor-BWfQfpij.js";import{a as w,s as M}from"./index-BEPv9Bqe.js";import{u as ie,a as le,b as ne,c as oe,d as de,f as ce}from"./useClaudeVersions-Cy71v4HE.js";import{F as pe}from"./FileBrowser-DcoBWzKK.js";import{u as C}from"./tools-BAI9XHGS.js";import{v as R,aO as F,E as U,I as ue,J as xe,y as me,r as q,X as K,a8 as ge,M as he,S as be,f as ye,a3 as fe}from"./ui-components-DaGtjl0g.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-3mB536QF.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.7",name:"GLM-4.7",isVision:!1,description:"智谱AI GLM-4.7 最新版本"},{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.cn/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(a=>e.jsxs("button",{onClick:()=>s(a),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.${a.id}.description`),children:[a.logoUrl&&e.jsx("img",{src:a.logoUrl,alt:a.name,className:"w-5 h-5 flex-shrink-0",onError:x=>{x.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.${a.id}.name`)})]},a.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(R,{className:"w-4 h-4"}),e.jsx("span",{children:p("settings.supplier.addSupplier")})]})]})},Ne=({version:s,isDefault:t,onCopyCommand:p,onSetDefault:a,onEdit:x,onDelete:h})=>{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(([i,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:[i,"=",l]},i))})]}),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(i=>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:i.name}),i.isVision&&e.jsx(U,{className:"w-3 h-3"})]},i.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:()=>a(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:()=>x(s),className:"p-2 text-gray-500 dark:text-gray-400 hover:text-blue-600 rounded-lg hover:bg-blue-50 dark:hover:bg-blue-900/20 transition-colors",title:n("settings.supplier.edit"),children:e.jsx(xe,{className:"w-4 h-4"})}),!s.isSystem&&e.jsx("button",{onClick:()=>h(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:a,onSetDefault:x,onEdit:h,onDelete:n})=>{const{t:i}=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:i("settings.supplier.noSuppliers")}),e.jsx("p",{className:"text-sm",children:i("settings.supplier.clickToAddFirst")})]}):e.jsx("div",{className:"space-y-3",children:s.map(l=>e.jsx(Ne,{version:l,isDefault:l.id===t,onCopyCommand:a,onSetDefault:x,onEdit:h,onDelete:n},l.id))})},Ae=({models:s,modelInput:t,onAddModel:p,onUpdateModel:a,onRemoveModel:x,onModelInputChange:h})=>{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((i,l)=>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:i.id,onChange:u=>{const b=s[l].id;a(b,{id:u.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:i.name,onChange:u=>{const b=s[l].id;a(b,{name:u.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:i.isVision,onChange:u=>{const b=s[l].id;a(b,{isVision:u.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")})]}),i.isVision&&e.jsx(U,{className:"w-4 h-4 text-blue-600 dark:text-blue-400"})]})]}),e.jsx("button",{onClick:()=>{const u=s[l].id;x(u)},className:"p-1 text-red-500 hover:text-red-700 rounded flex-shrink-0",children:e.jsx(K,{className:"w-4 h-4"})})]},`model-${l}`))}),e.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[e.jsx("input",{type:"text",value:t.id,onChange:i=>h({...t,id:i.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:i=>h({...t,name:i.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:i=>h({...t,isVision:i.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(R,{className:"w-4 h-4"}),e.jsx("span",{children:n("settings.supplier.form.addModel")})]})]})]})]})]})},we=({environmentVariables:s,envVarInput:t,currentTemplateTokenUrl:p,onAddEnvironmentVariable:a,onUpdateEnvironmentVariable:x,onRemoveEnvironmentVariable:h,onEnvVarInputChange:n,onAuthTokenChange:i})=>{const{t:l}=C("pages"),[u,b]=L.useState(!1),[k,y]=L.useState(""),v=d=>/^[a-zA-Z0-9]{4}\*\*\*[a-zA-Z0-9]{4}$/.test(d)||d==="***";L.useEffect(()=>{const d=s.ANTHROPIC_AUTH_TOKEN||"";v(d)?y(""):y(d)},[s]);const A=d=>{y(d);const f=s.ANTHROPIC_AUTH_TOKEN||"",T=v(f)?d.length>0:d!==f;i&&i(T),x("ANTHROPIC_AUTH_TOKEN",d)},S=()=>{b(!u)};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,f])=>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:u?"text":"password",value:k,onChange:N=>A(N.target.value),placeholder:v(f)?"点击输入新的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:[v(f)&&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:u?"隐藏":"显示",children:u?e.jsx(ge,{className:"w-3 h-3"}):e.jsx(U,{className:"w-3 h-3"})})]}),p&&(v(f)||!f)&&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:f,onChange:N=>x(d,N.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:()=>h(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:a,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(R,{className:"w-4 h-4"})})]})]})]})},Ce=({editingVersion:s,isCreating:t,isFromTemplate:p,formData:a,envVarInput:x,modelInput:h,currentTemplateTokenUrl:n,isSaving:i,onApplyTemplate:l,onCancel:u,onSave:b,onSelectExecutablePath:k,onFormDataChange:y,onEnvVarInputChange:v,onModelInputChange:A,onAddEnvironmentVariable:S,onUpdateEnvironmentVariable:d,onRemoveEnvironmentVariable:f,onAddModel:N,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:u,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(m=>e.jsx("button",{onClick:()=>l(m),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:[m.logoUrl&&e.jsx("img",{src:m.logoUrl,alt:m.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.${m.id}.name`)})]}),e.jsx("p",{className:"text-xs text-gray-600 dark:text-gray-400",children:c(`settings.supplier.templates.providers.${m.id}.description`)})]})},m.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:a.name||"",onChange:m=>y({...a,name:m.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:a.alias||"",onChange:m=>y({...a,alias:m.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:a.description||"",onChange:m=>y({...a,description:m.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:a.executablePath||"",onChange:m=>y({...a,executablePath:m.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:k,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:a.models||[],modelInput:h,onAddModel:N,onUpdateModel:T,onRemoveModel:_,onModelInputChange:A}),e.jsx(we,{environmentVariables:a.environmentVariables||{},envVarInput:x,currentTemplateTokenUrl:n,onAddEnvironmentVariable:S,onUpdateEnvironmentVariable:d,onRemoveEnvironmentVariable:f,onEnvVarInputChange:v,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:u,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:b,disabled:i,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(i?"settings.supplier.form.saving":s?"settings.supplier.form.update":"settings.supplier.form.create")})]})]})]})})},Le=()=>{const{t:s}=C("pages"),[t,p]=j.useState(!1),[a,x]=j.useState(null),[h,n]=j.useState(!1),[i,l]=j.useState({name:"",alias:"",description:"",executablePath:"",environmentVariables:{},models:[]}),[u,b]=j.useState({key:"",value:""}),[k,y]=j.useState({id:"",name:"",isVision:!1}),[v,A]=j.useState(!1),[S,d]=j.useState(null),[f,N]=j.useState(!1),{data:T,isLoading:_}=ie(),V=le(),c=ne(),m=oe(),I=de(),O=()=>{l({name:"",alias:"",description:"",executablePath:"",environmentVariables:{},models:[]}),b({key:"",value:""}),y({id:"",name:"",isVision:!1}),N(!1)},B=()=>{p(!0),x(null),n(!1),O()},$=r=>{p(!0),x(null),n(!0),O(),setTimeout(()=>{D(r)},0)},D=r=>{const o={};r.envVars.forEach(P=>{o[P.key]=P.value});const g=s(`settings.supplier.templates.providers.${r.id}.name`),E=s(`settings.supplier.templates.providers.${r.id}.description`);l(P=>({...P,name:g,alias:r.alias,description:E,environmentVariables:o,models:r.models||[]})),d(r.apiTokenUrl||null)},Y=r=>{x(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),x(null),n(!1),O()},W=()=>{u.key&&u.value&&(l(r=>({...r,environmentVariables:{...r.environmentVariables,[u.key]:u.value}})),b({key:"",value:""}))},z=()=>{k.id&&k.name&&(l(r=>({...r,models:[...r.models||[],{id:k.id,name:k.name,isVision:k.isVision,description:k.name}]})),y({id:"",name:"",isVision:!1}))},Q=r=>{l(o=>({...o,models:(o.models||[]).filter(g=>g.id!==r)}))},X=(r,o)=>{l(g=>({...g,models:(g.models||[]).map(E=>E.id===r?{...E,...o}:E)}))},Z=r=>{l(o=>{if(!o.environmentVariables)return o;const g={...o.environmentVariables};return delete g[r],{...o,environmentVariables:g}})},J=()=>{A(!0)},ee=(r,o)=>{o||l(g=>({...g,executablePath:r})),A(!1)},se=async()=>{try{if(!i.name||!i.alias){w(s("settings.supplier.errors.requiredFields"));return}const r={...i,executablePath:i.executablePath?.trim()||void 0,description:i.description?.trim()||void 0};a?(await c.mutateAsync({id:a.id,data:{...r,authTokenChanged:f}}),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 m.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||a)&&e.jsx(Ce,{editingVersion:a,isCreating:t,isFromTemplate:h,formData:i,envVarInput:u,modelInput:k,currentTemplateTokenUrl:S,isSaving:V.isPending||c.isPending,onApplyTemplate:D,onCancel:H,onSave:se,onSelectExecutablePath:J,onFormDataChange:l,onEnvVarInputChange:b,onModelInputChange:y,onAddEnvironmentVariable:W,onUpdateEnvironmentVariable:(r,o)=>{l(g=>({...g,environmentVariables:{...g.environmentVariables,[r]:o}}))},onRemoveEnvironmentVariable:Z,onAddModel:z,onUpdateModel:X,onRemoveModel:Q,onAuthTokenChange:N}),v&&e.jsx(pe,{title:s("settings.supplier.form.selectExecutable"),allowFiles:!0,allowDirectories:!1,onSelect:ee,onClose:()=>A(!1)})]})};export{Le as VersionSettingsPage};
@@ -0,0 +1 @@
1
+ import{j as e}from"./data-structures-ChC1tqVg.js";import{r as a}from"./monaco-editor-BWfQfpij.js";import{s as y,a as f,c as _}from"./index-BEPv9Bqe.js";import{G as ge,j as K,ac as Q,r as $,U as N,l as me,ad as V,R as X,Y as R,ae as ue,I as he,M as fe,i as be,af as pe}from"./ui-components-DaGtjl0g.js";import"./syntax-highlighting-DGbNjS3S.js";import"./agents-3mB536QF.js";import"./tools-BAI9XHGS.js";const Xe=()=>{const[A,Z]=a.useState("tunely"),[i,S]=a.useState(null),[d,j]=a.useState(null),[m,F]=a.useState("https://agentstudio.woa.com"),[g,z]=a.useState(""),[k,U]=a.useState("https"),[u,P]=a.useState(!1),[w,b]=a.useState(!1),[D,C]=a.useState(!1),[W,H]=a.useState(!1),[E,p]=a.useState(null),[ee,J]=a.useState(!1),[T,x]=a.useState("server"),[o,B]=a.useState(null),[G,q]=a.useState(!1),[ye,te]=a.useState(null),[je,ke]=a.useState(""),[we,ve]=a.useState(""),[Ne,Se]=a.useState(""),[Ce,Ee]=a.useState("4936"),[Te,M]=a.useState(!1),[Ie,$e]=a.useState(!1),[Ae,Fe]=a.useState(!1),[ze,Ue]=a.useState(null),[Pe,De]=a.useState(null),[Be,Le]=a.useState(!1),[Oe,Re]=a.useState(!1),[We,He]=a.useState(null),[Je,L]=a.useState("intro"),[Ge,re]=a.useState(!0);a.useEffect(()=>{ae(),v(),ie()},[]),a.useEffect(()=>{if(!d?.connected)return;const t=setInterval(v,5e3);return()=>clearInterval(t)},[d?.connected]);const ae=async()=>{try{const t=await fetch("/api/tunnel/config",{headers:{Authorization:`Bearer ${localStorage.getItem("jwt")}`}});if(!t.ok)throw new Error("Failed to load configuration");const r=await t.json();S(r),F(r.serverUrl||"https://agentstudio.woa.com"),z(r.tunnelName||""),U(r.protocol||"https"),P(r.enabled||!1),r.token&&r.tunnelName?(x("connected"),r.serverUrl&&Y(r.serverUrl,!1)):x("server")}catch(t){console.error("Error loading config:",t)}},Y=async(t,r=!0)=>{q(!0);try{const n=await fetch("/api/tunnel/server-info",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("jwt")}`},body:JSON.stringify({serverUrl:t})}),h=await n.json();if(!n.ok||!h.success)throw new Error(h.error||`服务器返回错误: HTTP ${n.status}`);const c=h.data,s={name:c.name||"Tunely Server",version:c.version||"1.0.0",domain:{pattern:c.domain?.pattern||"{subdomain}.tunnel",customizable:c.domain?.customizable||"subdomain",suffix:c.domain?.suffix||".tunnel"},websocket:{url:c.websocket?.url||t.replace(/\/+$/,"").replace("https://","wss://").replace("http://","ws://")+"/ws/tunnel"},protocols:c.protocols||["https","http"],instruction:c.instruction};B(s),r&&(y(`已连接到 ${s.name} v${s.version}`),x("domain"))}catch(n){console.error("Error fetching server info:",n),r&&f(n instanceof Error?n.message:"获取服务器信息失败")}finally{q(!1)}},v=a.useCallback(async()=>{try{const t=await fetch("/api/tunnel/status",{headers:{Authorization:`Bearer ${localStorage.getItem("jwt")}`}});if(!t.ok)throw new Error("Failed to load status");const r=await t.json();j(r)}catch(t){console.error("Error loading status:",t)}},[]),se=async()=>{if(!g.trim()){p({available:!1,reason:"请输入隧道名称"});return}H(!0),p(null);try{const r=await(await fetch(`/api/tunnel/check-name?name=${encodeURIComponent(g.trim())}&serverUrl=${encodeURIComponent(m)}`,{headers:{Authorization:`Bearer ${localStorage.getItem("jwt")}`}})).json();p(r)}catch{p({available:!1,reason:"检查失败,请重试"})}finally{H(!1)}},ne=async()=>{if(!g.trim()){f("请输入隧道名称");return}b(!0);try{const t=await fetch("/api/tunnel/create-tunnel",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("jwt")}`},body:JSON.stringify({name:g.trim(),serverUrl:m,autoConnect:u,protocol:k,websocketUrl:o?.websocket?.url,domainSuffix:o?.domain?.suffix})}),r=await t.json();if(!t.ok||!r.success)throw new Error(r.error||"Failed to create tunnel");if(S(r.config),j(r.status),p(null),x("connected"),y(`隧道 "${g}" 创建成功!域名: ${r.domain}`),u){_("正在连接隧道...");let n=0;const h=15,c=setInterval(async()=>{n++,await v(),(await(await fetch("/api/tunnel/status",{headers:{Authorization:`Bearer ${localStorage.getItem("jwt")}`}})).json())?.connected?(y("隧道已连接!"),clearInterval(c)):n>=h&&clearInterval(c)},1e3)}}catch(t){f(t instanceof Error?t.message:"Failed to create tunnel")}finally{b(!1)}},oe=async()=>{C(!0);try{const t=await fetch("/api/tunnel/connect",{method:"POST",headers:{Authorization:`Bearer ${localStorage.getItem("jwt")}`}});if(!t.ok){const n=await t.json();throw new Error(n.error||"Failed to connect")}const r=await t.json();j(r.status),_("隧道连接中..."),setTimeout(v,2e3)}catch(t){f(t instanceof Error?t.message:"Failed to connect")}finally{C(!1)}},le=async()=>{C(!0);try{const t=await fetch("/api/tunnel/disconnect",{method:"POST",headers:{Authorization:`Bearer ${localStorage.getItem("jwt")}`}});if(!t.ok){const n=await t.json();throw new Error(n.error||"Failed to disconnect")}const r=await t.json();j(r.status),y("已断开隧道连接")}catch(t){f(t instanceof Error?t.message:"Failed to disconnect")}finally{C(!1)}},I=()=>{if(!i?.tunnelName)return null;const t=i.domainSuffix||o?.domain?.suffix||".agentstudio.woa.com";return`${i.tunnelName}${t}`},ce=()=>{const t=I();t&&(navigator.clipboard.writeText(`${i?.protocol||"https"}://${t}`),J(!0),setTimeout(()=>J(!1),2e3))},ie=async()=>{M(!0);try{const t=await fetch("/api/cloudflare-tunnel/config",{headers:{Authorization:`Bearer ${localStorage.getItem("jwt")}`}});if(!t.ok)throw new Error("Failed to load Cloudflare configuration");const r=await t.json();te(r),r.activeTunnel?(L("done"),re(!1)):r.hasApiToken&&r.hasAccountId?L("create"):L("credentials")}catch(t){console.error("Error loading Cloudflare config:",t)}finally{M(!1)}},de=()=>{const t=()=>e.jsx(e.Fragment,{children:e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-6",children:[e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white flex items-center gap-2 mb-4",children:[e.jsx($,{className:"w-5 h-5"}),"配置隧道服务"]}),e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"隧道服务器地址"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{type:"text",value:m,onChange:s=>F(s.target.value),placeholder:"https://agentstudio.woa.com",className:"flex-1 px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent"}),e.jsxs("button",{onClick:()=>Y(m),disabled:G||!m.trim(),className:"flex items-center gap-2 px-4 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg disabled:opacity-50",children:[G?e.jsx(N,{className:"w-4 h-4 animate-spin"}):e.jsx(me,{className:"w-4 h-4"}),"连接"]})]}),e.jsx("p",{className:"mt-2 text-xs text-gray-500 dark:text-gray-400",children:'输入隧道服务的地址,点击"连接"获取服务信息'})]})})]})}),r=()=>e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white flex items-center gap-2",children:[e.jsx($,{className:"w-5 h-5"}),"配置隧道域名"]}),e.jsx("button",{onClick:()=>{B(null),x("server")},className:"text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300",children:"更换服务器"})]}),o&&e.jsx("div",{className:"mb-4 p-3 rounded-lg bg-blue-50 border border-blue-200 dark:bg-blue-900/20 dark:border-blue-800",children:e.jsxs("div",{className:"flex items-center gap-2 text-sm text-blue-700 dark:text-blue-300",children:[e.jsx(V,{className:"w-4 h-4"}),e.jsxs("span",{children:["已连接到 ",e.jsx("strong",{children:o.name})," v",o.version]})]})}),o?.instruction&&e.jsx("div",{className:"mb-4 p-4 rounded-lg bg-blue-50 border border-blue-200 dark:bg-blue-900/20 dark:border-blue-800",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(X,{className:"w-5 h-5 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm text-blue-800 dark:text-blue-200",children:[e.jsx("p",{className:"font-medium mb-1",children:"服务器说明"}),e.jsx("p",{className:"whitespace-pre-wrap",children:o.instruction})]})]})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"隧道域名"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("div",{className:"flex-1 flex items-center",children:[e.jsx("select",{value:k,onChange:s=>U(s.target.value),className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 border border-r-0 border-gray-300 dark:border-gray-600 rounded-l-lg text-gray-700 dark:text-gray-300 text-sm focus:ring-2 focus:ring-blue-500 focus:border-transparent cursor-pointer",children:(o?.protocols||["https","http"]).map(s=>e.jsxs("option",{value:s,children:[s,"://"]},s))}),e.jsx("input",{type:"text",value:g,onChange:s=>{z(s.target.value.toLowerCase().replace(/[^a-z0-9-]/g,"")),p(null)},placeholder:"my-agent",className:"flex-1 px-3 py-2 border-y border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent"}),e.jsx("span",{className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 border border-l-0 border-gray-300 dark:border-gray-600 rounded-r-lg text-gray-500 dark:text-gray-400 text-sm whitespace-nowrap",children:o?.domain.suffix||".agentstudio.woa.com"})]}),e.jsxs("button",{onClick:se,disabled:W||!g.trim(),className:"flex items-center gap-2 px-4 py-2 bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded-lg disabled:opacity-50 transition-colors",children:[W?e.jsx(N,{className:"w-4 h-4 animate-spin"}):e.jsx(R,{className:"w-4 h-4"}),"检测"]})]}),E&&e.jsx("div",{className:`mt-2 text-sm flex items-center gap-1 ${E.available?"text-green-600 dark:text-green-400":"text-red-600 dark:text-red-400"}`,children:E.available?e.jsxs(e.Fragment,{children:[e.jsx(V,{className:"w-4 h-4"}),e.jsxs("span",{children:["名称可用!完整域名: ",k,"://",g,o?.domain.suffix]})]}):e.jsxs(e.Fragment,{children:[e.jsx(K,{className:"w-4 h-4"}),e.jsx("span",{children:E.reason||"名称不可用"})]})})]}),e.jsxs("div",{className:"flex items-center justify-between py-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:"启动时自动连接"}),e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"Agent Studio 启动时自动建立隧道连接"})]}),e.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:u,onChange:s=>P(s.target.checked),className:"sr-only peer"}),e.jsx("div",{className:"w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-blue-300 dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-blue-600"})]})]}),e.jsx("div",{className:"pt-4 border-t border-gray-200 dark:border-gray-700",children:e.jsxs("button",{onClick:ne,disabled:w||!g.trim(),className:"flex items-center gap-2 px-4 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg disabled:opacity-50",children:[w?e.jsx(N,{className:"w-4 h-4 animate-spin"}):e.jsx(R,{className:"w-4 h-4"}),"创建隧道"]})})]})]}),n=async()=>{if(window.confirm("确定要删除隧道配置吗?删除后需要重新配置隧道。")){b(!0);try{const s=await fetch("/api/tunnel/config",{method:"DELETE",headers:{Authorization:`Bearer ${localStorage.getItem("jwt")}`}});if(!s.ok){const O=await s.json();throw new Error(O.error||"Failed to delete tunnel")}const l=await s.json();S(l.config),j(l.status),z(""),B(null),x("server"),y("隧道配置已删除")}catch(s){f(s instanceof Error?s.message:"Failed to delete tunnel")}finally{b(!1)}}},h=()=>e.jsxs(e.Fragment,{children:[e.jsx("div",{className:`rounded-lg border p-4 ${d?.connected?"bg-green-50 border-green-200 dark:bg-green-900/20 dark:border-green-800":"bg-gray-50 border-gray-200 dark:bg-gray-800/50 dark:border-gray-700"}`,children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-4 flex-1",children:[d?.connected?e.jsx(Q,{className:"w-6 h-6 text-green-500 flex-shrink-0"}):e.jsx(ue,{className:"w-6 h-6 text-gray-400 flex-shrink-0"}),e.jsxs("div",{className:"flex items-center gap-4 flex-wrap",children:[e.jsx("div",{className:"font-medium text-gray-900 dark:text-white",children:d?.connected?"已连接":"未连接"}),d?.connected&&I()&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-300",children:[i?.protocol||"https","://",I()]}),e.jsx("button",{onClick:ce,className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",title:"复制",children:ee?e.jsx(R,{className:"w-4 h-4 text-green-500"}):e.jsx(he,{className:"w-4 h-4"})}),e.jsx("a",{href:`${i?.protocol||"https"}://${I()}`,target:"_blank",rel:"noopener noreferrer",className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",title:"在新窗口打开",children:e.jsx(fe,{className:"w-4 h-4"})})]}),d.connectedAt&&e.jsxs("div",{className:"text-xs text-gray-500 dark:text-gray-400",children:["连接时间: ",new Date(d.connectedAt).toLocaleString()]})]}),d?.lastError&&e.jsx("div",{className:"text-sm text-red-500",children:d.lastError})]})]}),e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsx("button",{onClick:v,className:"p-2 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700",title:"刷新状态",children:e.jsx(N,{className:"w-4 h-4"})}),d?.connected?e.jsxs("button",{onClick:le,disabled:D,className:"flex items-center gap-2 px-4 py-2 bg-red-500 hover:bg-red-600 text-white rounded-lg disabled:opacity-50",children:[e.jsx(be,{className:"w-4 h-4"}),"断开"]}):e.jsxs("button",{onClick:oe,disabled:D,className:"flex items-center gap-2 px-4 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg disabled:opacity-50",children:[e.jsx(pe,{className:"w-4 h-4"}),D?"连接中...":"连接"]})]})]})}),e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white flex items-center gap-2",children:[e.jsx($,{className:"w-5 h-5"}),"隧道配置"]}),e.jsx("button",{onClick:()=>{x("edit")},className:"text-sm text-blue-500 hover:text-blue-600",children:"编辑配置"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-400",children:"隧道名称"}),e.jsx("p",{className:"font-medium text-gray-900 dark:text-white",children:i?.tunnelName})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-400",children:"协议"}),e.jsx("p",{className:"font-medium text-gray-900 dark:text-white",children:i?.protocol?.toUpperCase()})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-400",children:"服务器"}),e.jsx("p",{className:"font-medium text-gray-900 dark:text-white",children:i?.serverUrl})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-400",children:"自动连接"}),e.jsx("p",{className:"font-medium text-gray-900 dark:text-white",children:i?.enabled?"是":"否"})]})]}),o?.instruction&&e.jsx("div",{className:"mt-4 p-3 rounded-lg bg-blue-50 border border-blue-200 dark:bg-blue-900/20 dark:border-blue-800",children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(X,{className:"w-4 h-4 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-xs text-blue-800 dark:text-blue-200",children:[e.jsx("p",{className:"font-medium mb-1",children:"服务器说明"}),e.jsx("p",{className:"whitespace-pre-wrap",children:o.instruction})]})]})}),e.jsx("div",{className:"mt-6 pt-4 border-t border-gray-200 dark:border-gray-700",children:e.jsx("button",{onClick:n,disabled:w,className:"text-sm text-red-500 hover:text-red-600 dark:text-red-400 dark:hover:text-red-300",children:"删除隧道配置"})})]})]}),c=()=>{const s=async()=>{b(!0);try{const l=await fetch("/api/tunnel/config",{method:"PUT",headers:{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("jwt")}`},body:JSON.stringify({enabled:u,serverUrl:m,protocol:k})});if(!l.ok){const xe=await l.json();throw new Error(xe.error||"Failed to save config")}const O=await l.json();S(O.config),y("配置已保存"),x("connected")}catch(l){f(l instanceof Error?l.message:"Failed to save config")}finally{b(!1)}};return e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h2",{className:"text-lg font-semibold text-gray-900 dark:text-white flex items-center gap-2",children:[e.jsx($,{className:"w-5 h-5"}),"编辑隧道配置"]}),e.jsx("button",{onClick:()=>x("connected"),className:"text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",children:"取消"})]}),e.jsxs("div",{className:"space-y-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:["隧道名称 ",e.jsx("span",{className:"text-gray-400",children:"(不可修改)"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"text",value:i?.tunnelName||"",disabled:!0,className:"flex-1 px-3 py-2 border border-gray-200 dark:border-gray-600 rounded-lg bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 cursor-not-allowed"}),e.jsx("span",{className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 border border-gray-200 dark:border-gray-600 rounded-lg text-gray-500 dark:text-gray-400 text-sm",children:i?.domainSuffix||o?.domain?.suffix||".agentstudio.woa.com"})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"服务器地址"}),e.jsx("input",{type:"text",value:m,onChange:l=>F(l.target.value),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent",placeholder:"https://agentstudio.woa.com"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2",children:"访问协议"}),e.jsxs("select",{value:k,onChange:l=>U(l.target.value),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent",children:[e.jsx("option",{value:"https",children:"HTTPS"}),e.jsx("option",{value:"http",children:"HTTP"})]})]}),e.jsxs("div",{className:"flex items-center justify-between py-2",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:"自动连接"}),e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"启动时自动连接隧道"})]}),e.jsx("button",{onClick:()=>P(!u),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${u?"bg-blue-500":"bg-gray-300 dark:bg-gray-600"}`,children:e.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${u?"translate-x-6":"translate-x-1"}`})})]}),e.jsxs("div",{className:"flex gap-3 pt-4",children:[e.jsx("button",{onClick:()=>x("connected"),className:"flex-1 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",children:"取消"}),e.jsx("button",{onClick:s,disabled:w,className:"flex-1 px-4 py-2 bg-blue-500 hover:bg-blue-600 text-white rounded-lg disabled:opacity-50 flex items-center justify-center gap-2",children:w?e.jsxs(e.Fragment,{children:[e.jsx(N,{className:"w-4 h-4 animate-spin"}),"保存中..."]}):"保存配置"})]})]})]})};return e.jsxs("div",{className:"space-y-6",children:[T==="server"&&t(),T==="domain"&&r(),T==="connected"&&h(),T==="edit"&&c()]})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white flex items-center gap-2",children:[e.jsx(ge,{className:"w-7 h-7"}),"隧道接入"]}),e.jsx("p",{className:"mt-1 text-sm text-gray-500 dark:text-gray-400",children:"通过隧道让外部网络可以访问本地 Agent Studio"})]}),e.jsx("div",{className:"bg-amber-50 dark:bg-amber-900/20 rounded-lg border border-amber-200 dark:border-amber-800 p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(K,{className:"w-5 h-5 text-amber-500 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm text-amber-700 dark:text-amber-300",children:[e.jsx("p",{className:"font-medium mb-1",children:"安全提示"}),e.jsx("p",{children:"隧道接入会将本地 Agent Studio 服务暴露到公网,存在一定的安全风险。请确保您了解相关风险后再进行配置。"})]})]})}),e.jsx("div",{className:"border-b border-gray-200 dark:border-gray-700",children:e.jsxs("nav",{className:"-mb-px flex space-x-8",children:[e.jsxs("button",{onClick:()=>Z("tunely"),className:`py-4 px-1 border-b-2 font-medium text-sm flex items-center gap-2 ${A==="tunely"?"border-blue-500 text-blue-600 dark:text-blue-400":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300 dark:text-gray-400 dark:hover:text-gray-300"}`,children:[e.jsx(Q,{className:"w-4 h-4"}),"Tunely (WebSocket)"]}),!1]})}),A==="tunely"&&de(),A==="cloudflare"&&!1]})};export{Xe as WebSocketTunnelPage,Xe as default};
@@ -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-COj5YnAO.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-BMrfVkpt.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-BMrfVkpt.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-BWfQfpij.js";import{j as v}from"./data-structures-ChC1tqVg.js";import{r as _e}from"./syntax-highlighting-DGbNjS3S.js";import{u as Le}from"./tools-BAI9XHGS.js";import{E as $e,o as Ke}from"./ui-components-DaGtjl0g.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,Ie 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,Fe as u};
@@ -0,0 +1 @@
1
+ code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
@@ -0,0 +1 @@
1
+ import{N as ln,O as an,P as Z,Q as O,R as V,S as un,T as y,V as tn,W as z,X as _,Y as rn,Z as o,$ as sn,a0 as on,a1 as fn}from"./ChatPage-BMrfVkpt.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,D,S,v,R,W,a){var E=D-l,i=S-h,n=W-v,d=a-R,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-R)-d*(l-v))/u,[l+u*E,h+u*i]}function J(l,h,D,S,v,R,W){var a=l-D,E=h-S,i=(W?R:-R)/z(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,X=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,A=m*m+g*g,T=v-R,P=u*c-f*s,I=(g<0?-1:1)*z(on(0,T*T*A-P*P)),N=(P*g-m*I)/A,Q=(-P*m-g*I)/A,w=(P*g+m*I)/A,p=(-P*m+g*I)/A,x=N-X,e=Q-t,r=w-X,Y=p-t;return x*x+e*e>r*r+Y*Y&&(N=w,Q=p),{cx:N,cy:Q,x01:-n,y01:-d,x11:N*(v/T-1),y11:Q*(v/T-1)}}function hn(){var l=cn,h=yn,D=V(0),S=null,v=gn,R=dn,W=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=R.apply(this,arguments)-un,X=rn(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(X>tn-y)a.moveTo(s*Z(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*Z(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,A=f,T=c,P=X,I=X,N=W.apply(this,arguments)/2,Q=N>y&&(S?+S.apply(this,arguments):z(u*u+s*s)),w=_(rn(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(Q>y){var Y=sn(Q/u*O(N)),B=sn(Q/s*O(N));(P-=Y*2)>y?(Y*=t?1:-1,A+=Y,T-=Y):(P=0,A=T=(f+c)/2),(I-=B*2)>y?(B*=t?1:-1,m+=B,g-=B):(I=0,m=g=(f+c)/2)}var $=s*Z(m),j=s*O(m),C=u*Z(T),F=u*O(T);if(w>y){var G=s*Z(g),H=s*O(g),K=u*Z(A),L=u*O(A),q;if(X<an)if(q=pn($,j,K,L,G,H,C,F)){var M=$-q[0],U=j-q[1],k=G-q[0],b=H-q[1],nn=1/O(fn((M*k+U*b)/(z(M*M+U*U)*z(k*k+b*b)))/2),en=z(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=J(K,L,$,j,s,x,t),r=J(G,H,C,F,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($,j),a.arc(0,0,s,m,g,!t)):a.moveTo($,j),!(u>y)||!(P>y)?a.lineTo(C,F):p>y?(e=J(C,F,G,H,u,-p,t),r=J($,j,K,L,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,A,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)+ +R.apply(this,arguments))/2-an/2;return[Z(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:V(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:V(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:V(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:V(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:V(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:V(+n),i):R},i.padAngle=function(n){return arguments.length?(W=typeof n=="function"?n:V(+n),i):W},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};