agentstudio 0.1.18 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/README.md +26 -505
  2. package/bin/agentstudio.js +305 -0
  3. package/bin/agentstudio.js.map +1 -0
  4. package/bin/serviceManager.d.ts +16 -0
  5. package/bin/serviceManager.d.ts.map +1 -0
  6. package/bin/serviceManager.js +434 -0
  7. package/bin/serviceManager.js.map +1 -0
  8. package/config/index.d.ts +74 -0
  9. package/config/index.d.ts.map +1 -0
  10. package/config/index.js +166 -0
  11. package/config/index.js.map +1 -0
  12. package/config/paths.d.ts +81 -0
  13. package/config/paths.d.ts.map +1 -0
  14. package/config/paths.js +98 -0
  15. package/config/paths.js.map +1 -0
  16. package/index.d.ts +4 -0
  17. package/index.d.ts.map +1 -0
  18. package/index.js +369 -0
  19. package/index.js.map +1 -0
  20. package/jobs/taskTimeoutMonitor.d.ts +25 -0
  21. package/jobs/taskTimeoutMonitor.d.ts.map +1 -0
  22. package/jobs/taskTimeoutMonitor.js +94 -0
  23. package/jobs/taskTimeoutMonitor.js.map +1 -0
  24. package/middleware/a2aAuth.d.ts +38 -0
  25. package/middleware/a2aAuth.d.ts.map +1 -0
  26. package/middleware/a2aAuth.js +134 -0
  27. package/middleware/a2aAuth.js.map +1 -0
  28. package/{backend/dist/middleware → middleware}/auth.d.ts +3 -1
  29. package/middleware/auth.d.ts.map +1 -0
  30. package/middleware/auth.js +35 -0
  31. package/middleware/auth.js.map +1 -0
  32. package/middleware/httpsOnly.d.ts +38 -0
  33. package/middleware/httpsOnly.d.ts.map +1 -0
  34. package/middleware/httpsOnly.js +105 -0
  35. package/middleware/httpsOnly.js.map +1 -0
  36. package/middleware/rateLimiting.d.ts +37 -0
  37. package/middleware/rateLimiting.d.ts.map +1 -0
  38. package/middleware/rateLimiting.js +118 -0
  39. package/middleware/rateLimiting.js.map +1 -0
  40. package/package.json +43 -38
  41. package/public/assets/AgentsPage-Nvg2xu6K.js +10 -0
  42. package/public/assets/Button-Co56C389.js +1 -0
  43. package/public/assets/ChatPage-D6sol0ad.js +442 -0
  44. package/public/assets/CommandForm-Bk7F_HU8.js +7 -0
  45. package/public/assets/CommandsPage-DZHyOdKd.js +1 -0
  46. package/public/assets/DashboardPage-29qC7Ev1.js +15 -0
  47. package/public/assets/FileBrowser-BYweUPH4.js +6 -0
  48. package/public/assets/FileExplorer-DNYj6Tsx.js +1 -0
  49. package/public/assets/GeneralSettingsPage-D9Xa7Nd8.js +1 -0
  50. package/public/assets/LandingPage-CjnT-cvO.js +1 -0
  51. package/public/assets/LoginPage-DcaGNCXH.js +16 -0
  52. package/public/assets/McpAdminSettingsPage-DgR3E2Bd.js +7 -0
  53. package/public/assets/McpPage-CtWf1CoL.js +40 -0
  54. package/public/assets/MemorySettingsPage-JTry4Ccp.js +1 -0
  55. package/public/assets/PluginsPage-D-BHjQ3P.js +1 -0
  56. package/public/assets/ProjectSelector-DSXOjMQC.js +1 -0
  57. package/public/assets/ProjectsPage-lLUk4-Xa.js +21 -0
  58. package/public/assets/ScheduledTasksPage-5hPbd9Vs.js +1 -0
  59. package/public/assets/SettingsLayout-DGJspXLp.js +1 -0
  60. package/public/assets/SkillsPage-DBw0m7D2.js +18 -0
  61. package/{backend/dist/frontend/assets/SubagentForm-DXtTTIKg.js → public/assets/SubagentForm-BdUK1U4y.js} +2 -2
  62. package/public/assets/SubagentsPage-Dnq70IFd.js +1 -0
  63. package/{backend/dist/frontend/assets/ToastTestPage-DT4wuN5C.js → public/assets/ToastTestPage-BfJQRFIm.js} +1 -1
  64. package/public/assets/ToolsList-Dl5F2fWk.js +1 -0
  65. package/public/assets/UnifiedToolSelector-CNbPsiuq.js +1 -0
  66. package/public/assets/VersionSettingsPage-BfoCcham.js +5 -0
  67. package/public/assets/_basePickBy-7C_e0Xv1.js +1 -0
  68. package/public/assets/_baseUniq-eGJNLBzx.js +1 -0
  69. package/public/assets/agents-ChrA1R0y.js +1 -0
  70. package/public/assets/arc-CuA752eE.js +1 -0
  71. package/public/assets/architectureDiagram-VXUJARFQ-BnPYh1OW.js +36 -0
  72. package/public/assets/blockDiagram-VD42YOAC-72nsMt_i.js +122 -0
  73. package/public/assets/c4Diagram-YG6GDRKO-BNJSAXcg.js +10 -0
  74. package/public/assets/channel-CIunGC5m.js +1 -0
  75. package/public/assets/chunk-4BX2VUAB-RPxkCWhH.js +1 -0
  76. package/public/assets/chunk-55IACEB6-3ePDt0kp.js +1 -0
  77. package/public/assets/chunk-B4BG7PRW-CBg_BBfl.js +165 -0
  78. package/public/assets/chunk-DI55MBZ5-DIh69TUJ.js +220 -0
  79. package/public/assets/chunk-FMBD7UC4-BbjwhyTe.js +15 -0
  80. package/public/assets/chunk-QN33PNHL-BpH-o_YR.js +1 -0
  81. package/public/assets/chunk-QZHKN3VN-DYB7rh5Q.js +1 -0
  82. package/public/assets/chunk-TZMSLE5B-DPCYEVb3.js +1 -0
  83. package/public/assets/classDiagram-2ON5EDUG-aUQHFsTA.js +1 -0
  84. package/public/assets/classDiagram-v2-WZHVMYZB-aUQHFsTA.js +1 -0
  85. package/public/assets/clone-Ckf7tA1V.js +1 -0
  86. package/public/assets/cose-bilkent-S5V4N54A-CnpfmL-Y.js +1 -0
  87. package/public/assets/cytoscape.esm-DtBltrT8.js +331 -0
  88. package/public/assets/dagre-6UL2VRFP-DR9x77Xf.js +4 -0
  89. package/{backend/dist/frontend/assets/data-structures-DLJedtzx.js → public/assets/data-structures-C0h9Oap1.js} +1 -1
  90. package/public/assets/defaultLocale-C4B-KCzX.js +1 -0
  91. package/public/assets/diagram-PSM6KHXK-SONPsQNx.js +24 -0
  92. package/public/assets/diagram-QEK2KX5R-BKYFSfC1.js +43 -0
  93. package/public/assets/diagram-S2PKOQOG-CkM0APZj.js +24 -0
  94. package/public/assets/erDiagram-Q2GNP2WA-BX1DpOGx.js +60 -0
  95. package/public/assets/flowDiagram-NV44I4VS-HAAlzNbq.js +162 -0
  96. package/public/assets/ganttDiagram-LVOFAZNH-BqzWexqa.js +267 -0
  97. package/public/assets/gitGraphDiagram-NY62KEGX-CIPmSp43.js +65 -0
  98. package/public/assets/graph-m515btDj.js +1 -0
  99. package/public/assets/index-Bn3v3S9-.js +293 -0
  100. package/public/assets/index-DWieeYj4.css +1 -0
  101. package/public/assets/infoDiagram-F6ZHWCRC-Pn4yNWrF.js +2 -0
  102. package/public/assets/init-Gi6I4Gst.js +1 -0
  103. package/public/assets/journeyDiagram-XKPGCS4Q-BfzTomS0.js +139 -0
  104. package/public/assets/kanban-definition-3W4ZIXB7-Cgju7b-L.js +89 -0
  105. package/public/assets/katex-qrhCpa0F.js +261 -0
  106. package/public/assets/layout-BKQfQSxJ.js +1 -0
  107. package/public/assets/linear-DigtLz3B.js +1 -0
  108. package/public/assets/mindmap-definition-VGOIOE7T-qopraVFy.js +68 -0
  109. package/public/assets/monaco-editor-DHKm5-VF.js +19 -0
  110. package/public/assets/ordinal-Cboi1Yqb.js +1 -0
  111. package/public/assets/pieDiagram-ADFJNKIX-BcoaAI-L.js +30 -0
  112. package/public/assets/quadrantDiagram-AYHSOK5B-D-DwcoSd.js +7 -0
  113. package/public/assets/requirementDiagram-UZGBJVZJ-DbQCpx77.js +64 -0
  114. package/public/assets/sankeyDiagram-TZEHDZUN-BVk8387S.js +10 -0
  115. package/public/assets/sequenceDiagram-WL72ISMW-BdzICjxO.js +145 -0
  116. package/public/assets/stateDiagram-FKZM4ZOC-CYY-uUvJ.js +1 -0
  117. package/public/assets/stateDiagram-v2-4FDKWEC3-Dh2Kvomq.js +1 -0
  118. package/{backend/dist/frontend/assets/syntax-highlighting-YWvMU4Hm.js → public/assets/syntax-highlighting-CnREyncB.js} +5 -5
  119. package/public/assets/tabManager-B2LQO_Ll.js +30 -0
  120. package/{backend/dist/frontend/assets/table-D6q1rytw.js → public/assets/table-D0L2RL5i.js} +1 -1
  121. package/public/assets/timeline-definition-IT6M3QCI-BAvjPYvX.js +61 -0
  122. package/public/assets/tools-IcPNZlPj.js +1 -0
  123. package/public/assets/treemap-KMMF4GRG-DtkpVA56.js +128 -0
  124. package/{backend/dist/frontend/assets/ui-components-Cw21Epuw.js → public/assets/ui-components-D1St49qC.js} +231 -96
  125. package/public/assets/useAgents-BnDTkOG8.js +2 -0
  126. package/public/assets/useClaudeVersions-CD59tFWM.js +1 -0
  127. package/public/assets/useCommands-mvMu3mMD.js +1 -0
  128. package/public/assets/useProjects-YXOjaOwL.js +1 -0
  129. package/public/assets/xychartDiagram-PRI3JC2R-ByBTDWE2.js +7 -0
  130. package/{backend/dist/frontend → public}/index.html +8 -8
  131. package/routes/__tests__/a2a.integration.test.d.ts +11 -0
  132. package/routes/__tests__/a2a.integration.test.d.ts.map +1 -0
  133. package/routes/__tests__/a2a.integration.test.js +314 -0
  134. package/routes/__tests__/a2a.integration.test.js.map +1 -0
  135. package/routes/__tests__/a2a.test.d.ts +6 -0
  136. package/routes/__tests__/a2a.test.d.ts.map +1 -0
  137. package/routes/__tests__/a2a.test.js +622 -0
  138. package/routes/__tests__/a2a.test.js.map +1 -0
  139. package/routes/__tests__/agents.test.d.ts +6 -0
  140. package/routes/__tests__/agents.test.d.ts.map +1 -0
  141. package/routes/__tests__/agents.test.js +315 -0
  142. package/routes/__tests__/agents.test.js.map +1 -0
  143. package/routes/__tests__/sessions.test.d.ts +7 -0
  144. package/routes/__tests__/sessions.test.d.ts.map +1 -0
  145. package/routes/__tests__/sessions.test.js +330 -0
  146. package/routes/__tests__/sessions.test.js.map +1 -0
  147. package/routes/a2a.d.ts +18 -0
  148. package/routes/a2a.d.ts.map +1 -0
  149. package/routes/a2a.js +649 -0
  150. package/routes/a2a.js.map +1 -0
  151. package/routes/a2a.streaming.test.d.ts +2 -0
  152. package/routes/a2a.streaming.test.d.ts.map +1 -0
  153. package/routes/a2a.streaming.test.js +167 -0
  154. package/routes/a2a.streaming.test.js.map +1 -0
  155. package/routes/a2aManagement.d.ts +21 -0
  156. package/routes/a2aManagement.d.ts.map +1 -0
  157. package/routes/a2aManagement.js +466 -0
  158. package/routes/a2aManagement.js.map +1 -0
  159. package/{backend/dist/routes → routes}/agents.d.ts.map +1 -1
  160. package/routes/agents.js +997 -0
  161. package/routes/agents.js.map +1 -0
  162. package/{backend/dist/routes → routes}/auth.d.ts.map +1 -1
  163. package/routes/auth.js +135 -0
  164. package/routes/auth.js.map +1 -0
  165. package/{backend/dist/routes → routes}/commands.d.ts.map +1 -1
  166. package/{backend/dist/routes → routes}/commands.js +115 -31
  167. package/routes/commands.js.map +1 -0
  168. package/routes/config.d.ts +4 -0
  169. package/routes/config.d.ts.map +1 -0
  170. package/routes/config.js +211 -0
  171. package/routes/config.js.map +1 -0
  172. package/{backend/dist/routes → routes}/files.d.ts.map +1 -1
  173. package/{backend/dist/routes → routes}/files.js +103 -43
  174. package/routes/files.js.map +1 -0
  175. package/routes/mcp.d.ts +27 -0
  176. package/routes/mcp.d.ts.map +1 -0
  177. package/{backend/dist/routes → routes}/mcp.js +195 -105
  178. package/routes/mcp.js.map +1 -0
  179. package/routes/mcpAdmin.d.ts +16 -0
  180. package/routes/mcpAdmin.d.ts.map +1 -0
  181. package/routes/mcpAdmin.js +308 -0
  182. package/routes/mcpAdmin.js.map +1 -0
  183. package/routes/mcpAdminManagement.d.ts +17 -0
  184. package/routes/mcpAdminManagement.d.ts.map +1 -0
  185. package/routes/mcpAdminManagement.js +345 -0
  186. package/routes/mcpAdminManagement.js.map +1 -0
  187. package/routes/media.d.ts.map +1 -0
  188. package/{backend/dist/routes → routes}/media.js +52 -42
  189. package/routes/media.js.map +1 -0
  190. package/routes/mediaAuth.d.ts +8 -0
  191. package/routes/mediaAuth.d.ts.map +1 -0
  192. package/routes/mediaAuth.js +136 -0
  193. package/routes/mediaAuth.js.map +1 -0
  194. package/routes/plugins.d.ts +4 -0
  195. package/routes/plugins.d.ts.map +1 -0
  196. package/routes/plugins.js +339 -0
  197. package/routes/plugins.js.map +1 -0
  198. package/{backend/dist/routes → routes}/projects.d.ts.map +1 -1
  199. package/routes/projects.js +884 -0
  200. package/routes/projects.js.map +1 -0
  201. package/routes/scheduledTasks.d.ts +9 -0
  202. package/routes/scheduledTasks.d.ts.map +1 -0
  203. package/routes/scheduledTasks.js +320 -0
  204. package/routes/scheduledTasks.js.map +1 -0
  205. package/{backend/dist/routes → routes}/sessions.d.ts.map +1 -1
  206. package/{backend/dist/routes → routes}/sessions.js +258 -39
  207. package/routes/sessions.js.map +1 -0
  208. package/{backend/dist/routes → routes}/settings.d.ts.map +1 -1
  209. package/{backend/dist/routes → routes}/settings.js +82 -241
  210. package/routes/settings.js.map +1 -0
  211. package/{backend/dist/routes/mcp.d.ts → routes/skills.d.ts} +1 -1
  212. package/routes/skills.d.ts.map +1 -0
  213. package/routes/skills.js +272 -0
  214. package/routes/skills.js.map +1 -0
  215. package/routes/slack.d.ts +10 -0
  216. package/routes/slack.d.ts.map +1 -0
  217. package/routes/slack.js +189 -0
  218. package/routes/slack.js.map +1 -0
  219. package/{backend/dist/routes → routes}/slides.d.ts.map +1 -1
  220. package/{backend/dist/routes → routes}/slides.js +29 -27
  221. package/routes/slides.js.map +1 -0
  222. package/{backend/dist/routes → routes}/subagents.js +27 -22
  223. package/routes/subagents.js.map +1 -0
  224. package/schemas/a2a.d.ts +858 -0
  225. package/schemas/a2a.d.ts.map +1 -0
  226. package/schemas/a2a.js +300 -0
  227. package/schemas/a2a.js.map +1 -0
  228. package/scripts/postinstall.js +10 -0
  229. package/services/__tests__/pluginInstaller.test.d.ts +5 -0
  230. package/services/__tests__/pluginInstaller.test.d.ts.map +1 -0
  231. package/services/__tests__/pluginInstaller.test.js +290 -0
  232. package/services/__tests__/pluginInstaller.test.js.map +1 -0
  233. package/services/__tests__/pluginParser.test.d.ts +5 -0
  234. package/services/__tests__/pluginParser.test.d.ts.map +1 -0
  235. package/services/__tests__/pluginParser.test.js +272 -0
  236. package/services/__tests__/pluginParser.test.js.map +1 -0
  237. package/services/__tests__/pluginPaths.test.d.ts +5 -0
  238. package/services/__tests__/pluginPaths.test.d.ts.map +1 -0
  239. package/services/__tests__/pluginPaths.test.js +221 -0
  240. package/services/__tests__/pluginPaths.test.js.map +1 -0
  241. package/services/__tests__/pluginScanner.test.d.ts +5 -0
  242. package/services/__tests__/pluginScanner.test.d.ts.map +1 -0
  243. package/services/__tests__/pluginScanner.test.js +272 -0
  244. package/services/__tests__/pluginScanner.test.js.map +1 -0
  245. package/services/__tests__/pluginSymlink.test.d.ts +5 -0
  246. package/services/__tests__/pluginSymlink.test.d.ts.map +1 -0
  247. package/services/__tests__/pluginSymlink.test.js +318 -0
  248. package/services/__tests__/pluginSymlink.test.js.map +1 -0
  249. package/services/__tests__/slackAIService.test.d.ts +5 -0
  250. package/services/__tests__/slackAIService.test.d.ts.map +1 -0
  251. package/services/__tests__/slackAIService.test.js +477 -0
  252. package/services/__tests__/slackAIService.test.js.map +1 -0
  253. package/services/__tests__/slackThreadMapper.test.d.ts +5 -0
  254. package/services/__tests__/slackThreadMapper.test.d.ts.map +1 -0
  255. package/services/__tests__/slackThreadMapper.test.js +194 -0
  256. package/services/__tests__/slackThreadMapper.test.js.map +1 -0
  257. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts +6 -0
  258. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts.map +1 -0
  259. package/services/a2a/__tests__/a2aClientTool.integration.test.js +264 -0
  260. package/services/a2a/__tests__/a2aClientTool.integration.test.js.map +1 -0
  261. package/services/a2a/__tests__/a2aClientTool.test.d.ts +6 -0
  262. package/services/a2a/__tests__/a2aClientTool.test.d.ts.map +1 -0
  263. package/services/a2a/__tests__/a2aClientTool.test.js +418 -0
  264. package/services/a2a/__tests__/a2aClientTool.test.js.map +1 -0
  265. package/services/a2a/__tests__/a2aConfigService.test.d.ts +6 -0
  266. package/services/a2a/__tests__/a2aConfigService.test.d.ts.map +1 -0
  267. package/services/a2a/__tests__/a2aConfigService.test.js +431 -0
  268. package/services/a2a/__tests__/a2aConfigService.test.js.map +1 -0
  269. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts +2 -0
  270. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts.map +1 -0
  271. package/services/a2a/__tests__/a2aConfigServicePath.test.js +49 -0
  272. package/services/a2a/__tests__/a2aConfigServicePath.test.js.map +1 -0
  273. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts +10 -0
  274. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts.map +1 -0
  275. package/services/a2a/__tests__/a2aSdkMcp.test.js +239 -0
  276. package/services/a2a/__tests__/a2aSdkMcp.test.js.map +1 -0
  277. package/services/a2a/__tests__/agentCardService.test.d.ts +6 -0
  278. package/services/a2a/__tests__/agentCardService.test.d.ts.map +1 -0
  279. package/services/a2a/__tests__/agentCardService.test.js +292 -0
  280. package/services/a2a/__tests__/agentCardService.test.js.map +1 -0
  281. package/services/a2a/__tests__/apiKeyService.test.d.ts +6 -0
  282. package/services/a2a/__tests__/apiKeyService.test.d.ts.map +1 -0
  283. package/services/a2a/__tests__/apiKeyService.test.js +284 -0
  284. package/services/a2a/__tests__/apiKeyService.test.js.map +1 -0
  285. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts +2 -0
  286. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts.map +1 -0
  287. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js +70 -0
  288. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js.map +1 -0
  289. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts +2 -0
  290. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts.map +1 -0
  291. package/services/a2a/__tests__/dynamic_config_verification.test.js +67 -0
  292. package/services/a2a/__tests__/dynamic_config_verification.test.js.map +1 -0
  293. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts +2 -0
  294. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts.map +1 -0
  295. package/services/a2a/__tests__/integrateA2AMcpServer.test.js +112 -0
  296. package/services/a2a/__tests__/integrateA2AMcpServer.test.js.map +1 -0
  297. package/services/a2a/__tests__/taskManager.integration.test.d.ts +7 -0
  298. package/services/a2a/__tests__/taskManager.integration.test.d.ts.map +1 -0
  299. package/services/a2a/__tests__/taskManager.integration.test.js +346 -0
  300. package/services/a2a/__tests__/taskManager.integration.test.js.map +1 -0
  301. package/services/a2a/__tests__/taskManager.test.d.ts +7 -0
  302. package/services/a2a/__tests__/taskManager.test.d.ts.map +1 -0
  303. package/services/a2a/__tests__/taskManager.test.js +423 -0
  304. package/services/a2a/__tests__/taskManager.test.js.map +1 -0
  305. package/services/a2a/a2aClientTool.d.ts +73 -0
  306. package/services/a2a/a2aClientTool.d.ts.map +1 -0
  307. package/services/a2a/a2aClientTool.js +572 -0
  308. package/services/a2a/a2aClientTool.js.map +1 -0
  309. package/services/a2a/a2aConfigService.d.ts +50 -0
  310. package/services/a2a/a2aConfigService.d.ts.map +1 -0
  311. package/services/a2a/a2aConfigService.js +186 -0
  312. package/services/a2a/a2aConfigService.js.map +1 -0
  313. package/services/a2a/a2aHistoryService.d.ts +32 -0
  314. package/services/a2a/a2aHistoryService.d.ts.map +1 -0
  315. package/services/a2a/a2aHistoryService.js +108 -0
  316. package/services/a2a/a2aHistoryService.js.map +1 -0
  317. package/services/a2a/a2aIntegration.d.ts +9 -0
  318. package/services/a2a/a2aIntegration.d.ts.map +1 -0
  319. package/services/a2a/a2aIntegration.js +41 -0
  320. package/services/a2a/a2aIntegration.js.map +1 -0
  321. package/services/a2a/a2aQueryService.d.ts +71 -0
  322. package/services/a2a/a2aQueryService.d.ts.map +1 -0
  323. package/services/a2a/a2aQueryService.js +166 -0
  324. package/services/a2a/a2aQueryService.js.map +1 -0
  325. package/services/a2a/a2aSdkMcp.d.ts +51 -0
  326. package/services/a2a/a2aSdkMcp.d.ts.map +1 -0
  327. package/services/a2a/a2aSdkMcp.js +185 -0
  328. package/services/a2a/a2aSdkMcp.js.map +1 -0
  329. package/services/a2a/a2aStreamEvents.d.ts +94 -0
  330. package/services/a2a/a2aStreamEvents.d.ts.map +1 -0
  331. package/services/a2a/a2aStreamEvents.js +92 -0
  332. package/services/a2a/a2aStreamEvents.js.map +1 -0
  333. package/services/a2a/agentCardService.d.ts +34 -0
  334. package/services/a2a/agentCardService.d.ts.map +1 -0
  335. package/services/a2a/agentCardService.js +228 -0
  336. package/services/a2a/agentCardService.js.map +1 -0
  337. package/services/a2a/agentMappingService.d.ts +53 -0
  338. package/services/a2a/agentMappingService.d.ts.map +1 -0
  339. package/services/a2a/agentMappingService.js +185 -0
  340. package/services/a2a/agentMappingService.js.map +1 -0
  341. package/services/a2a/apiKeyService.d.ts +101 -0
  342. package/services/a2a/apiKeyService.d.ts.map +1 -0
  343. package/services/a2a/apiKeyService.js +314 -0
  344. package/services/a2a/apiKeyService.js.map +1 -0
  345. package/services/a2a/taskCleanup.d.ts +30 -0
  346. package/services/a2a/taskCleanup.d.ts.map +1 -0
  347. package/services/a2a/taskCleanup.js +184 -0
  348. package/services/a2a/taskCleanup.js.map +1 -0
  349. package/services/a2a/taskManager.d.ts +86 -0
  350. package/services/a2a/taskManager.d.ts.map +1 -0
  351. package/services/a2a/taskManager.js +263 -0
  352. package/services/a2a/taskManager.js.map +1 -0
  353. package/services/agentStorage.d.ts +27 -0
  354. package/services/agentStorage.d.ts.map +1 -0
  355. package/services/agentStorage.js +487 -0
  356. package/services/agentStorage.js.map +1 -0
  357. package/services/askUserQuestion/askUserQuestionIntegration.d.ts +24 -0
  358. package/services/askUserQuestion/askUserQuestionIntegration.d.ts.map +1 -0
  359. package/services/askUserQuestion/askUserQuestionIntegration.js +52 -0
  360. package/services/askUserQuestion/askUserQuestionIntegration.js.map +1 -0
  361. package/services/askUserQuestion/askUserQuestionMcp.d.ts +103 -0
  362. package/services/askUserQuestion/askUserQuestionMcp.d.ts.map +1 -0
  363. package/services/askUserQuestion/askUserQuestionMcp.js +129 -0
  364. package/services/askUserQuestion/askUserQuestionMcp.js.map +1 -0
  365. package/services/askUserQuestion/index.d.ts +13 -0
  366. package/services/askUserQuestion/index.d.ts.map +1 -0
  367. package/services/askUserQuestion/index.js +35 -0
  368. package/services/askUserQuestion/index.js.map +1 -0
  369. package/services/askUserQuestion/init.d.ts +17 -0
  370. package/services/askUserQuestion/init.d.ts.map +1 -0
  371. package/services/askUserQuestion/init.js +47 -0
  372. package/services/askUserQuestion/init.js.map +1 -0
  373. package/services/askUserQuestion/notificationChannel.d.ts +97 -0
  374. package/services/askUserQuestion/notificationChannel.d.ts.map +1 -0
  375. package/services/askUserQuestion/notificationChannel.js +147 -0
  376. package/services/askUserQuestion/notificationChannel.js.map +1 -0
  377. package/services/askUserQuestion/slackNotificationChannel.d.ts +35 -0
  378. package/services/askUserQuestion/slackNotificationChannel.d.ts.map +1 -0
  379. package/services/askUserQuestion/slackNotificationChannel.js +129 -0
  380. package/services/askUserQuestion/slackNotificationChannel.js.map +1 -0
  381. package/services/askUserQuestion/sseNotificationChannel.d.ts +36 -0
  382. package/services/askUserQuestion/sseNotificationChannel.d.ts.map +1 -0
  383. package/services/askUserQuestion/sseNotificationChannel.js +88 -0
  384. package/services/askUserQuestion/sseNotificationChannel.js.map +1 -0
  385. package/services/askUserQuestion/userInputRegistry.d.ts +107 -0
  386. package/services/askUserQuestion/userInputRegistry.d.ts.map +1 -0
  387. package/services/askUserQuestion/userInputRegistry.js +253 -0
  388. package/services/askUserQuestion/userInputRegistry.js.map +1 -0
  389. package/{backend/dist/services → services}/claudeSession.d.ts +20 -5
  390. package/services/claudeSession.d.ts.map +1 -0
  391. package/{backend/dist/services → services}/claudeSession.js +123 -41
  392. package/services/claudeSession.js.map +1 -0
  393. package/services/claudeVersionStorage.d.ts +20 -0
  394. package/services/claudeVersionStorage.d.ts.map +1 -0
  395. package/services/claudeVersionStorage.js +331 -0
  396. package/services/claudeVersionStorage.js.map +1 -0
  397. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts +5 -0
  398. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts.map +1 -0
  399. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js +289 -0
  400. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js.map +1 -0
  401. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts +5 -0
  402. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts.map +1 -0
  403. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js +345 -0
  404. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js.map +1 -0
  405. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts +5 -0
  406. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts.map +1 -0
  407. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js +453 -0
  408. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js.map +1 -0
  409. package/services/mcpAdmin/__tests__/tools.test.d.ts +5 -0
  410. package/services/mcpAdmin/__tests__/tools.test.d.ts.map +1 -0
  411. package/services/mcpAdmin/__tests__/tools.test.js +371 -0
  412. package/services/mcpAdmin/__tests__/tools.test.js.map +1 -0
  413. package/services/mcpAdmin/adminApiKeyService.d.ts +61 -0
  414. package/services/mcpAdmin/adminApiKeyService.d.ts.map +1 -0
  415. package/services/mcpAdmin/adminApiKeyService.js +270 -0
  416. package/services/mcpAdmin/adminApiKeyService.js.map +1 -0
  417. package/services/mcpAdmin/index.d.ts +10 -0
  418. package/services/mcpAdmin/index.d.ts.map +1 -0
  419. package/services/mcpAdmin/index.js +43 -0
  420. package/services/mcpAdmin/index.js.map +1 -0
  421. package/services/mcpAdmin/mcpAdminServer.d.ts +76 -0
  422. package/services/mcpAdmin/mcpAdminServer.d.ts.map +1 -0
  423. package/services/mcpAdmin/mcpAdminServer.js +243 -0
  424. package/services/mcpAdmin/mcpAdminServer.js.map +1 -0
  425. package/services/mcpAdmin/tools/agentTools.d.ts +27 -0
  426. package/services/mcpAdmin/tools/agentTools.d.ts.map +1 -0
  427. package/services/mcpAdmin/tools/agentTools.js +359 -0
  428. package/services/mcpAdmin/tools/agentTools.js.map +1 -0
  429. package/services/mcpAdmin/tools/index.d.ts +15 -0
  430. package/services/mcpAdmin/tools/index.d.ts.map +1 -0
  431. package/services/mcpAdmin/tools/index.js +30 -0
  432. package/services/mcpAdmin/tools/index.js.map +1 -0
  433. package/services/mcpAdmin/tools/mcpServerTools.d.ts +27 -0
  434. package/services/mcpAdmin/tools/mcpServerTools.d.ts.map +1 -0
  435. package/services/mcpAdmin/tools/mcpServerTools.js +334 -0
  436. package/services/mcpAdmin/tools/mcpServerTools.js.map +1 -0
  437. package/services/mcpAdmin/tools/projectTools.d.ts +27 -0
  438. package/services/mcpAdmin/tools/projectTools.d.ts.map +1 -0
  439. package/services/mcpAdmin/tools/projectTools.js +353 -0
  440. package/services/mcpAdmin/tools/projectTools.js.map +1 -0
  441. package/services/mcpAdmin/tools/systemTools.d.ts +23 -0
  442. package/services/mcpAdmin/tools/systemTools.d.ts.map +1 -0
  443. package/services/mcpAdmin/tools/systemTools.js +241 -0
  444. package/services/mcpAdmin/tools/systemTools.js.map +1 -0
  445. package/services/mcpAdmin/types.d.ts +124 -0
  446. package/services/mcpAdmin/types.d.ts.map +1 -0
  447. package/services/mcpAdmin/types.js +18 -0
  448. package/services/mcpAdmin/types.js.map +1 -0
  449. package/{backend/dist/services → services}/messageQueue.d.ts.map +1 -1
  450. package/{backend/dist/services → services}/messageQueue.js +16 -3
  451. package/services/messageQueue.js.map +1 -0
  452. package/services/pluginInstaller.d.ts +58 -0
  453. package/services/pluginInstaller.d.ts.map +1 -0
  454. package/services/pluginInstaller.js +321 -0
  455. package/services/pluginInstaller.js.map +1 -0
  456. package/services/pluginParser.d.ts +45 -0
  457. package/services/pluginParser.d.ts.map +1 -0
  458. package/services/pluginParser.js +437 -0
  459. package/services/pluginParser.js.map +1 -0
  460. package/services/pluginPaths.d.ts +80 -0
  461. package/services/pluginPaths.d.ts.map +1 -0
  462. package/services/pluginPaths.js +274 -0
  463. package/services/pluginPaths.js.map +1 -0
  464. package/services/pluginScanner.d.ts +36 -0
  465. package/services/pluginScanner.d.ts.map +1 -0
  466. package/services/pluginScanner.js +251 -0
  467. package/services/pluginScanner.js.map +1 -0
  468. package/services/pluginSymlink.d.ts +54 -0
  469. package/services/pluginSymlink.d.ts.map +1 -0
  470. package/services/pluginSymlink.js +223 -0
  471. package/services/pluginSymlink.js.map +1 -0
  472. package/services/projectMetadataStorage.d.ts +114 -0
  473. package/services/projectMetadataStorage.d.ts.map +1 -0
  474. package/services/projectMetadataStorage.js +711 -0
  475. package/services/projectMetadataStorage.js.map +1 -0
  476. package/services/scheduledTaskStorage.d.ts +52 -0
  477. package/services/scheduledTaskStorage.d.ts.map +1 -0
  478. package/services/scheduledTaskStorage.js +285 -0
  479. package/services/scheduledTaskStorage.js.map +1 -0
  480. package/services/schedulerService.d.ts +81 -0
  481. package/services/schedulerService.d.ts.map +1 -0
  482. package/services/schedulerService.js +743 -0
  483. package/services/schedulerService.js.map +1 -0
  484. package/{backend/dist/services → services}/sessionManager.d.ts +6 -4
  485. package/services/sessionManager.d.ts.map +1 -0
  486. package/{backend/dist/services → services}/sessionManager.js +77 -16
  487. package/services/sessionManager.js.map +1 -0
  488. package/services/skillStorage.d.ts +60 -0
  489. package/services/skillStorage.d.ts.map +1 -0
  490. package/services/skillStorage.js +398 -0
  491. package/services/skillStorage.js.map +1 -0
  492. package/services/slackAIService.d.ts +81 -0
  493. package/services/slackAIService.d.ts.map +1 -0
  494. package/services/slackAIService.js +1091 -0
  495. package/services/slackAIService.js.map +1 -0
  496. package/services/slackClient.d.ts +46 -0
  497. package/services/slackClient.d.ts.map +1 -0
  498. package/services/slackClient.js +85 -0
  499. package/services/slackClient.js.map +1 -0
  500. package/services/slackSessionLock.d.ts +79 -0
  501. package/services/slackSessionLock.d.ts.map +1 -0
  502. package/services/slackSessionLock.js +353 -0
  503. package/services/slackSessionLock.js.map +1 -0
  504. package/services/slackThreadMapper.d.ts +57 -0
  505. package/services/slackThreadMapper.d.ts.map +1 -0
  506. package/services/slackThreadMapper.js +140 -0
  507. package/services/slackThreadMapper.js.map +1 -0
  508. package/types/a2a.d.ts +275 -0
  509. package/types/a2a.d.ts.map +1 -0
  510. package/types/a2a.js +23 -0
  511. package/types/a2a.js.map +1 -0
  512. package/types/agents.d.ts +95 -0
  513. package/types/agents.d.ts.map +1 -0
  514. package/types/agents.js +46 -0
  515. package/types/agents.js.map +1 -0
  516. package/types/claude-history.d.ts +62 -0
  517. package/types/claude-history.d.ts.map +1 -0
  518. package/types/claude-history.js +4 -0
  519. package/types/claude-history.js.map +1 -0
  520. package/types/claude-versions.d.ts +36 -0
  521. package/types/claude-versions.d.ts.map +1 -0
  522. package/types/claude-versions.js +3 -0
  523. package/types/claude-versions.js.map +1 -0
  524. package/types/commands.d.ts +50 -0
  525. package/types/commands.d.ts.map +1 -0
  526. package/types/commands.js +23 -0
  527. package/types/commands.js.map +1 -0
  528. package/types/plugins.d.ts +144 -0
  529. package/types/plugins.d.ts.map +1 -0
  530. package/types/plugins.js +8 -0
  531. package/types/plugins.js.map +1 -0
  532. package/types/projects.d.ts +42 -0
  533. package/types/projects.d.ts.map +1 -0
  534. package/types/projects.js +4 -0
  535. package/types/projects.js.map +1 -0
  536. package/types/scheduledTasks.d.ts +164 -0
  537. package/types/scheduledTasks.d.ts.map +1 -0
  538. package/types/scheduledTasks.js +17 -0
  539. package/types/scheduledTasks.js.map +1 -0
  540. package/types/skills.d.ts +91 -0
  541. package/types/skills.d.ts.map +1 -0
  542. package/types/skills.js +6 -0
  543. package/types/skills.js.map +1 -0
  544. package/types/slack.d.ts +97 -0
  545. package/types/slack.d.ts.map +1 -0
  546. package/types/slack.js +8 -0
  547. package/types/slack.js.map +1 -0
  548. package/types/streaming.d.ts +12 -0
  549. package/types/streaming.d.ts.map +1 -0
  550. package/types/streaming.js +8 -0
  551. package/types/streaming.js.map +1 -0
  552. package/types/subagents.d.ts +26 -0
  553. package/types/subagents.d.ts.map +1 -0
  554. package/types/subagents.js +3 -0
  555. package/types/subagents.js.map +1 -0
  556. package/utils/__tests__/claudeUtils.test.d.ts +5 -0
  557. package/utils/__tests__/claudeUtils.test.d.ts.map +1 -0
  558. package/utils/__tests__/claudeUtils.test.js +282 -0
  559. package/utils/__tests__/claudeUtils.test.js.map +1 -0
  560. package/utils/__tests__/sessionUtils.test.d.ts +5 -0
  561. package/utils/__tests__/sessionUtils.test.d.ts.map +1 -0
  562. package/utils/__tests__/sessionUtils.test.js +295 -0
  563. package/utils/__tests__/sessionUtils.test.js.map +1 -0
  564. package/utils/agentCardCache.d.ts +93 -0
  565. package/utils/agentCardCache.d.ts.map +1 -0
  566. package/utils/agentCardCache.js +212 -0
  567. package/utils/agentCardCache.js.map +1 -0
  568. package/utils/claudeUtils.d.ts +54 -0
  569. package/utils/claudeUtils.d.ts.map +1 -0
  570. package/utils/claudeUtils.js +387 -0
  571. package/utils/claudeUtils.js.map +1 -0
  572. package/utils/fileUtils.d.ts +2 -0
  573. package/utils/fileUtils.d.ts.map +1 -0
  574. package/utils/fileUtils.js +11 -0
  575. package/utils/fileUtils.js.map +1 -0
  576. package/utils/jwt.d.ts +30 -0
  577. package/utils/jwt.d.ts.map +1 -0
  578. package/utils/jwt.js +95 -0
  579. package/utils/jwt.js.map +1 -0
  580. package/utils/sessionUtils.d.ts +64 -0
  581. package/utils/sessionUtils.d.ts.map +1 -0
  582. package/utils/sessionUtils.js +266 -0
  583. package/utils/sessionUtils.js.map +1 -0
  584. package/README.zh-CN.md +0 -525
  585. package/backend/dist/bin/agentstudio.js +0 -120
  586. package/backend/dist/bin/agentstudio.js.map +0 -1
  587. package/backend/dist/frontend/assets/AgentsPage-Dqb_aqAA.js +0 -1
  588. package/backend/dist/frontend/assets/ChatPage-L8Paywyc.js +0 -91
  589. package/backend/dist/frontend/assets/CommandForm-DLl7EIMS.js +0 -7
  590. package/backend/dist/frontend/assets/CommandsPage-Bzavq0Ec.js +0 -1
  591. package/backend/dist/frontend/assets/DashboardPage-B3o4AYFT.js +0 -15
  592. package/backend/dist/frontend/assets/FileBrowser-DL3ayaqb.js +0 -1
  593. package/backend/dist/frontend/assets/GeneralSettingsPage-CBN_de-V.js +0 -1
  594. package/backend/dist/frontend/assets/LandingPage-Dl4ioKos.js +0 -1
  595. package/backend/dist/frontend/assets/LoginPage-4QqRdiSi.js +0 -12
  596. package/backend/dist/frontend/assets/McpPage-CY3tYiqj.js +0 -39
  597. package/backend/dist/frontend/assets/MemorySettingsPage-DGxrok5K.js +0 -1
  598. package/backend/dist/frontend/assets/ProjectSelector-hgmGYVFh.js +0 -1
  599. package/backend/dist/frontend/assets/ProjectsPage-D399IM0c.js +0 -14
  600. package/backend/dist/frontend/assets/SettingsLayout-CL_K-lzJ.js +0 -1
  601. package/backend/dist/frontend/assets/SubagentsPage-Chbhj8p2.js +0 -1
  602. package/backend/dist/frontend/assets/UnifiedToolSelector-CsM9qBvs.js +0 -1
  603. package/backend/dist/frontend/assets/VersionSettingsPage-74Q-LVgA.js +0 -5
  604. package/backend/dist/frontend/assets/agents-ClAzIJTw.js +0 -1
  605. package/backend/dist/frontend/assets/authFetch-BATQyPG5.js +0 -1
  606. package/backend/dist/frontend/assets/index-B9YHa7XT.css +0 -1
  607. package/backend/dist/frontend/assets/index-B_CTNvca.js +0 -268
  608. package/backend/dist/frontend/assets/monaco-editor-C7Z4sOhS.js +0 -19
  609. package/backend/dist/frontend/assets/tabManager-DV8urRBM.js +0 -30
  610. package/backend/dist/frontend/assets/tools-C4EPanYi.js +0 -1
  611. package/backend/dist/frontend/assets/useAgents-DwnOE1_k.js +0 -2
  612. package/backend/dist/frontend/assets/useClaudeVersions-CQdGnCqv.js +0 -1
  613. package/backend/dist/frontend/assets/useCommands-CCVaurbt.js +0 -1
  614. package/backend/dist/index.d.ts +0 -3
  615. package/backend/dist/index.d.ts.map +0 -1
  616. package/backend/dist/index.js +0 -157
  617. package/backend/dist/index.js.map +0 -1
  618. package/backend/dist/middleware/auth.d.ts.map +0 -1
  619. package/backend/dist/middleware/auth.js +0 -21
  620. package/backend/dist/middleware/auth.js.map +0 -1
  621. package/backend/dist/routes/agents.js +0 -803
  622. package/backend/dist/routes/agents.js.map +0 -1
  623. package/backend/dist/routes/auth.js +0 -60
  624. package/backend/dist/routes/auth.js.map +0 -1
  625. package/backend/dist/routes/commands.js.map +0 -1
  626. package/backend/dist/routes/files.js.map +0 -1
  627. package/backend/dist/routes/mcp.d.ts.map +0 -1
  628. package/backend/dist/routes/mcp.js.map +0 -1
  629. package/backend/dist/routes/media.d.ts.map +0 -1
  630. package/backend/dist/routes/media.js.map +0 -1
  631. package/backend/dist/routes/projects.js +0 -528
  632. package/backend/dist/routes/projects.js.map +0 -1
  633. package/backend/dist/routes/sessions.js.map +0 -1
  634. package/backend/dist/routes/settings.js.map +0 -1
  635. package/backend/dist/routes/slides.js.map +0 -1
  636. package/backend/dist/routes/subagents.js.map +0 -1
  637. package/backend/dist/services/claudeSession.d.ts.map +0 -1
  638. package/backend/dist/services/claudeSession.js.map +0 -1
  639. package/backend/dist/services/messageQueue.js.map +0 -1
  640. package/backend/dist/services/sessionManager.d.ts.map +0 -1
  641. package/backend/dist/services/sessionManager.js.map +0 -1
  642. package/backend/dist/utils/jwt.d.ts +0 -15
  643. package/backend/dist/utils/jwt.d.ts.map +0 -1
  644. package/backend/dist/utils/jwt.js +0 -28
  645. package/backend/dist/utils/jwt.js.map +0 -1
  646. /package/{backend/dist/bin → bin}/agentstudio.d.ts +0 -0
  647. /package/{backend/dist/bin → bin}/agentstudio.d.ts.map +0 -0
  648. /package/{backend/dist/frontend → public}/assets/ChatPage-BvQmXfcP.css +0 -0
  649. /package/{backend/dist/frontend → public}/assets/agents-DwCY2K8p.css +0 -0
  650. /package/{backend/dist/frontend → public}/assets/dateFormat-CXa8VnEC.js +0 -0
  651. /package/{backend/dist/frontend → public}/cc-studio.png +0 -0
  652. /package/{backend/dist/frontend → public}/vite.svg +0 -0
  653. /package/{backend/dist/routes → routes}/agents.d.ts +0 -0
  654. /package/{backend/dist/routes → routes}/auth.d.ts +0 -0
  655. /package/{backend/dist/routes → routes}/commands.d.ts +0 -0
  656. /package/{backend/dist/routes → routes}/files.d.ts +0 -0
  657. /package/{backend/dist/routes → routes}/media.d.ts +0 -0
  658. /package/{backend/dist/routes → routes}/projects.d.ts +0 -0
  659. /package/{backend/dist/routes → routes}/sessions.d.ts +0 -0
  660. /package/{backend/dist/routes → routes}/settings.d.ts +0 -0
  661. /package/{backend/dist/routes → routes}/slides.d.ts +0 -0
  662. /package/{backend/dist/routes → routes}/subagents.d.ts +0 -0
  663. /package/{backend/dist/routes → routes}/subagents.d.ts.map +0 -0
  664. /package/{backend/dist/services → services}/messageQueue.d.ts +0 -0
@@ -1,19 +0,0 @@
1
- function Me(e,r){for(var n=0;n<r.length;n++){const o=r[n];if(typeof o!="string"&&!Array.isArray(o)){for(const i in o)if(i!=="default"&&!(i in e)){const c=Object.getOwnPropertyDescriptor(o,i);c&&Object.defineProperty(e,i,c.get?c:{enumerable:!0,get:()=>o[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var Ut=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Te(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ie={exports:{}},l={};/**
2
- * @license React
3
- * react.production.js
4
- *
5
- * Copyright (c) Meta Platforms, Inc. and affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var le;function Pe(){if(le)return l;le=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),m=Symbol.for("react.context"),w=Symbol.for("react.forward_ref"),O=Symbol.for("react.suspense"),M=Symbol.for("react.memo"),A=Symbol.for("react.lazy"),T=Symbol.iterator;function K(t){return t===null||typeof t!="object"?null:(t=T&&t[T]||t["@@iterator"],typeof t=="function"?t:null)}var z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,V={};function C(t,u,a){this.props=t,this.context=u,this.refs=V,this.updater=a||z}C.prototype.isReactComponent={},C.prototype.setState=function(t,u){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,u,"setState")},C.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function W(){}W.prototype=C.prototype;function S(t,u,a){this.props=t,this.context=u,this.refs=V,this.updater=a||z}var I=S.prototype=new W;I.constructor=S,k(I,C.prototype),I.isPureReactComponent=!0;var L=Array.isArray,f={H:null,A:null,T:null,S:null,V:null},_=Object.prototype.hasOwnProperty;function y(t,u,a,s,p,b){return a=b.ref,{$$typeof:e,type:t,key:u,ref:a!==void 0?a:null,props:b}}function x(t,u){return y(t.type,u,void 0,void 0,void 0,t.props)}function j(t){return typeof t=="object"&&t!==null&&t.$$typeof===e}function h(t){var u={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(a){return u[a]})}var $=/\/+/g;function H(t,u){return typeof t=="object"&&t!==null&&t.key!=null?h(""+t.key):u.toString(36)}function U(){}function q(t){switch(t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:switch(typeof t.status=="string"?t.then(U,U):(t.status="pending",t.then(function(u){t.status==="pending"&&(t.status="fulfilled",t.value=u)},function(u){t.status==="pending"&&(t.status="rejected",t.reason=u)})),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}}throw t}function v(t,u,a,s,p){var b=typeof t;(b==="undefined"||b==="boolean")&&(t=null);var g=!1;if(t===null)g=!0;else switch(b){case"bigint":case"string":case"number":g=!0;break;case"object":switch(t.$$typeof){case e:case r:g=!0;break;case A:return g=t._init,v(g(t._payload),u,a,s,p)}}if(g)return p=p(t),g=s===""?"."+H(t,0):s,L(p)?(a="",g!=null&&(a=g.replace($,"$&/")+"/"),v(p,u,a,"",function(Se){return Se})):p!=null&&(j(p)&&(p=x(p,a+(p.key==null||t&&t.key===p.key?"":(""+p.key).replace($,"$&/")+"/")+g)),u.push(p)),1;g=0;var D=s===""?".":s+":";if(L(t))for(var R=0;R<t.length;R++)s=t[R],b=D+H(s,R),g+=v(s,u,a,b,p);else if(R=K(t),typeof R=="function")for(t=R.call(t),R=0;!(s=t.next()).done;)s=s.value,b=D+H(s,R++),g+=v(s,u,a,b,p);else if(b==="object"){if(typeof t.then=="function")return v(q(t),u,a,s,p);throw u=String(t),Error("Objects are not valid as a React child (found: "+(u==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":u)+"). If you meant to render a collection of children, use an array instead.")}return g}function E(t,u,a){if(t==null)return t;var s=[],p=0;return v(t,s,"","",function(b){return u.call(a,b,p++)}),s}function ee(t){if(t._status===-1){var u=t._result;u=u(),u.then(function(a){(t._status===0||t._status===-1)&&(t._status=1,t._result=a)},function(a){(t._status===0||t._status===-1)&&(t._status=2,t._result=a)}),t._status===-1&&(t._status=0,t._result=u)}if(t._status===1)return t._result.default;throw t._result}var G=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var u=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(u))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)};function te(){}return l.Children={map:E,forEach:function(t,u,a){E(t,function(){u.apply(this,arguments)},a)},count:function(t){var u=0;return E(t,function(){u++}),u},toArray:function(t){return E(t,function(u){return u})||[]},only:function(t){if(!j(t))throw Error("React.Children.only expected to receive a single React element child.");return t}},l.Component=C,l.Fragment=n,l.Profiler=i,l.PureComponent=S,l.StrictMode=o,l.Suspense=O,l.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=f,l.__COMPILER_RUNTIME={__proto__:null,c:function(t){return f.H.useMemoCache(t)}},l.cache=function(t){return function(){return t.apply(null,arguments)}},l.cloneElement=function(t,u,a){if(t==null)throw Error("The argument must be a React element, but you passed "+t+".");var s=k({},t.props),p=t.key,b=void 0;if(u!=null)for(g in u.ref!==void 0&&(b=void 0),u.key!==void 0&&(p=""+u.key),u)!_.call(u,g)||g==="key"||g==="__self"||g==="__source"||g==="ref"&&u.ref===void 0||(s[g]=u[g]);var g=arguments.length-2;if(g===1)s.children=a;else if(1<g){for(var D=Array(g),R=0;R<g;R++)D[R]=arguments[R+2];s.children=D}return y(t.type,p,void 0,void 0,b,s)},l.createContext=function(t){return t={$$typeof:m,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null},t.Provider=t,t.Consumer={$$typeof:c,_context:t},t},l.createElement=function(t,u,a){var s,p={},b=null;if(u!=null)for(s in u.key!==void 0&&(b=""+u.key),u)_.call(u,s)&&s!=="key"&&s!=="__self"&&s!=="__source"&&(p[s]=u[s]);var g=arguments.length-2;if(g===1)p.children=a;else if(1<g){for(var D=Array(g),R=0;R<g;R++)D[R]=arguments[R+2];p.children=D}if(t&&t.defaultProps)for(s in g=t.defaultProps,g)p[s]===void 0&&(p[s]=g[s]);return y(t,b,void 0,void 0,null,p)},l.createRef=function(){return{current:null}},l.forwardRef=function(t){return{$$typeof:w,render:t}},l.isValidElement=j,l.lazy=function(t){return{$$typeof:A,_payload:{_status:-1,_result:t},_init:ee}},l.memo=function(t,u){return{$$typeof:M,type:t,compare:u===void 0?null:u}},l.startTransition=function(t){var u=f.T,a={};f.T=a;try{var s=t(),p=f.S;p!==null&&p(a,s),typeof s=="object"&&s!==null&&typeof s.then=="function"&&s.then(te,G)}catch(b){G(b)}finally{f.T=u}},l.unstable_useCacheRefresh=function(){return f.H.useCacheRefresh()},l.use=function(t){return f.H.use(t)},l.useActionState=function(t,u,a){return f.H.useActionState(t,u,a)},l.useCallback=function(t,u){return f.H.useCallback(t,u)},l.useContext=function(t){return f.H.useContext(t)},l.useDebugValue=function(){},l.useDeferredValue=function(t,u){return f.H.useDeferredValue(t,u)},l.useEffect=function(t,u,a){var s=f.H;if(typeof a=="function")throw Error("useEffect CRUD overload is not enabled in this build of React.");return s.useEffect(t,u)},l.useId=function(){return f.H.useId()},l.useImperativeHandle=function(t,u,a){return f.H.useImperativeHandle(t,u,a)},l.useInsertionEffect=function(t,u){return f.H.useInsertionEffect(t,u)},l.useLayoutEffect=function(t,u){return f.H.useLayoutEffect(t,u)},l.useMemo=function(t,u){return f.H.useMemo(t,u)},l.useOptimistic=function(t,u){return f.H.useOptimistic(t,u)},l.useReducer=function(t,u,a){return f.H.useReducer(t,u,a)},l.useRef=function(t){return f.H.useRef(t)},l.useState=function(t){return f.H.useState(t)},l.useSyncExternalStore=function(t,u,a){return f.H.useSyncExternalStore(t,u,a)},l.useTransition=function(){return f.H.useTransition()},l.version="19.1.1",l}var de;function Ce(){return de||(de=1,ie.exports=Pe()),ie.exports}var d=Ce();const Y=Te(d),qt=Me({__proto__:null,default:Y},[d]);function Ae(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function pe(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,o)}return n}function ge(e){for(var r=1;r<arguments.length;r++){var n=arguments[r]!=null?arguments[r]:{};r%2?pe(Object(n),!0).forEach(function(o){Ae(e,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pe(Object(n)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(n,o))})}return e}function Ie(e,r){if(e==null)return{};var n={},o=Object.keys(e),i,c;for(c=0;c<o.length;c++)i=o[c],!(r.indexOf(i)>=0)&&(n[i]=e[i]);return n}function $e(e,r){if(e==null)return{};var n=Ie(e,r),o,i;if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(i=0;i<c.length;i++)o=c[i],!(r.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}function Le(e,r){return He(e)||De(e,r)||Ne(e,r)||xe()}function He(e){if(Array.isArray(e))return e}function De(e,r){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var n=[],o=!0,i=!1,c=void 0;try{for(var m=e[Symbol.iterator](),w;!(o=(w=m.next()).done)&&(n.push(w.value),!(r&&n.length===r));o=!0);}catch(O){i=!0,c=O}finally{try{!o&&m.return!=null&&m.return()}finally{if(i)throw c}}return n}}function Ne(e,r){if(e){if(typeof e=="string")return ve(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ve(e,r)}}function ve(e,r){(r==null||r>e.length)&&(r=e.length);for(var n=0,o=new Array(r);n<r;n++)o[n]=e[n];return o}function xe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
10
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ue(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function he(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,o)}return n}function me(e){for(var r=1;r<arguments.length;r++){var n=arguments[r]!=null?arguments[r]:{};r%2?he(Object(n),!0).forEach(function(o){Ue(e,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):he(Object(n)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(n,o))})}return e}function qe(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return function(o){return r.reduceRight(function(i,c){return c(i)},o)}}function F(e){return function r(){for(var n=this,o=arguments.length,i=new Array(o),c=0;c<o;c++)i[c]=arguments[c];return i.length>=e.length?e.apply(this,i):function(){for(var m=arguments.length,w=new Array(m),O=0;O<m;O++)w[O]=arguments[O];return r.apply(n,[].concat(i,w))}}}function oe(e){return{}.toString.call(e).includes("Object")}function Ye(e){return!Object.keys(e).length}function X(e){return typeof e=="function"}function ze(e,r){return Object.prototype.hasOwnProperty.call(e,r)}function ke(e,r){return oe(r)||N("changeType"),Object.keys(r).some(function(n){return!ze(e,n)})&&N("changeField"),r}function Ve(e){X(e)||N("selectorType")}function We(e){X(e)||oe(e)||N("handlerType"),oe(e)&&Object.values(e).some(function(r){return!X(r)})&&N("handlersType")}function Ge(e){e||N("initialIsRequired"),oe(e)||N("initialType"),Ye(e)&&N("initialContent")}function Be(e,r){throw new Error(e[r]||e.default)}var Ke={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},N=F(Be)(Ke),re={changes:ke,selector:Ve,handler:We,initial:Ge};function Fe(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};re.initial(e),re.handler(r);var n={current:e},o=F(Ze)(n,r),i=F(Xe)(n),c=F(re.changes)(e),m=F(Qe)(n);function w(){var M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(A){return A};return re.selector(M),M(n.current)}function O(M){qe(o,i,c,m)(M)}return[w,O]}function Qe(e,r){return X(r)?r(e.current):r}function Xe(e,r){return e.current=me(me({},e.current),r),r}function Ze(e,r,n){return X(r)?r(e.current):Object.keys(n).forEach(function(o){var i;return(i=r[o])===null||i===void 0?void 0:i.call(r,e.current[o])}),n}var Je={create:Fe},et={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min/vs"}};function tt(e){return function r(){for(var n=this,o=arguments.length,i=new Array(o),c=0;c<o;c++)i[c]=arguments[c];return i.length>=e.length?e.apply(this,i):function(){for(var m=arguments.length,w=new Array(m),O=0;O<m;O++)w[O]=arguments[O];return r.apply(n,[].concat(i,w))}}}function rt(e){return{}.toString.call(e).includes("Object")}function nt(e){return e||ye("configIsRequired"),rt(e)||ye("configType"),e.urls?(ot(),{paths:{vs:e.urls.monacoBase}}):e}function ot(){console.warn(we.deprecation)}function ut(e,r){throw new Error(e[r]||e.default)}var we={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
11
- You are using deprecated way of configuration.
12
-
13
- Instead of using
14
- monaco.config({ urls: { monacoBase: '...' } })
15
- use
16
- monaco.config({ paths: { vs: '...' } })
17
-
18
- For more please check the link https://github.com/suren-atoyan/monaco-loader#config
19
- `},ye=tt(ut)(we),it={config:nt},ct=function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return function(i){return n.reduceRight(function(c,m){return m(c)},i)}};function Ee(e,r){return Object.keys(r).forEach(function(n){r[n]instanceof Object&&e[n]&&Object.assign(r[n],Ee(e[n],r[n]))}),ge(ge({},e),r)}var at={type:"cancelation",msg:"operation is manually canceled"};function ce(e){var r=!1,n=new Promise(function(o,i){e.then(function(c){return r?i(at):o(c)}),e.catch(i)});return n.cancel=function(){return r=!0},n}var st=Je.create({config:et,isInitialized:!1,resolve:null,reject:null,monaco:null}),be=Le(st,2),J=be[0],ue=be[1];function ft(e){var r=it.config(e),n=r.monaco,o=$e(r,["monaco"]);ue(function(i){return{config:Ee(i.config,o),monaco:n}})}function lt(){var e=J(function(r){var n=r.monaco,o=r.isInitialized,i=r.resolve;return{monaco:n,isInitialized:o,resolve:i}});if(!e.isInitialized){if(ue({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),ce(ae);if(window.monaco&&window.monaco.editor)return Oe(window.monaco),e.resolve(window.monaco),ce(ae);ct(dt,gt)(vt)}return ce(ae)}function dt(e){return document.body.appendChild(e)}function pt(e){var r=document.createElement("script");return e&&(r.src=e),r}function gt(e){var r=J(function(o){var i=o.config,c=o.reject;return{config:i,reject:c}}),n=pt("".concat(r.config.paths.vs,"/loader.js"));return n.onload=function(){return e()},n.onerror=r.reject,n}function vt(){var e=J(function(n){var o=n.config,i=n.resolve,c=n.reject;return{config:o,resolve:i,reject:c}}),r=window.require;r.config(e.config),r(["vs/editor/editor.main"],function(n){Oe(n),e.resolve(n)},function(n){e.reject(n)})}function Oe(e){J().monaco||ue({monaco:e})}function ht(){return J(function(e){var r=e.monaco;return r})}var ae=new Promise(function(e,r){return ue({resolve:e,reject:r})}),Z={config:ft,init:lt,__getMonacoInstance:ht},mt={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},se=mt,yt={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},wt=yt;function Et({children:e}){return Y.createElement("div",{style:wt.container},e)}var bt=Et,Ot=bt;function _t({width:e,height:r,isEditorReady:n,loading:o,_ref:i,className:c,wrapperProps:m}){return Y.createElement("section",{style:{...se.wrapper,width:e,height:r},...m},!n&&Y.createElement(Ot,null,o),Y.createElement("div",{ref:i,style:{...se.fullWidth,...!n&&se.hide},className:c}))}var jt=_t,_e=d.memo(jt);function Rt(e){d.useEffect(e,[])}var fe=Rt;function St(e,r,n=!0){let o=d.useRef(!0);d.useEffect(o.current||!n?()=>{o.current=!1}:e,r)}var P=St;function Q(){}function B(e,r,n,o){return Mt(e,o)||Tt(e,r,n,o)}function Mt(e,r){return e.editor.getModel(je(e,r))}function Tt(e,r,n,o){return e.editor.createModel(r,n,o?je(e,o):void 0)}function je(e,r){return e.Uri.parse(r)}function Pt({original:e,modified:r,language:n,originalLanguage:o,modifiedLanguage:i,originalModelPath:c,modifiedModelPath:m,keepCurrentOriginalModel:w=!1,keepCurrentModifiedModel:O=!1,theme:M="light",loading:A="Loading...",options:T={},height:K="100%",width:z="100%",className:k,wrapperProps:V={},beforeMount:C=Q,onMount:W=Q}){let[S,I]=d.useState(!1),[L,f]=d.useState(!0),_=d.useRef(null),y=d.useRef(null),x=d.useRef(null),j=d.useRef(W),h=d.useRef(C),$=d.useRef(!1);fe(()=>{let v=Z.init();return v.then(E=>(y.current=E)&&f(!1)).catch(E=>E?.type!=="cancelation"&&console.error("Monaco initialization: error:",E)),()=>_.current?q():v.cancel()}),P(()=>{if(_.current&&y.current){let v=_.current.getOriginalEditor(),E=B(y.current,e||"",o||n||"text",c||"");E!==v.getModel()&&v.setModel(E)}},[c],S),P(()=>{if(_.current&&y.current){let v=_.current.getModifiedEditor(),E=B(y.current,r||"",i||n||"text",m||"");E!==v.getModel()&&v.setModel(E)}},[m],S),P(()=>{let v=_.current.getModifiedEditor();v.getOption(y.current.editor.EditorOption.readOnly)?v.setValue(r||""):r!==v.getValue()&&(v.executeEdits("",[{range:v.getModel().getFullModelRange(),text:r||"",forceMoveMarkers:!0}]),v.pushUndoStop())},[r],S),P(()=>{_.current?.getModel()?.original.setValue(e||"")},[e],S),P(()=>{let{original:v,modified:E}=_.current.getModel();y.current.editor.setModelLanguage(v,o||n||"text"),y.current.editor.setModelLanguage(E,i||n||"text")},[n,o,i],S),P(()=>{y.current?.editor.setTheme(M)},[M],S),P(()=>{_.current?.updateOptions(T)},[T],S);let H=d.useCallback(()=>{if(!y.current)return;h.current(y.current);let v=B(y.current,e||"",o||n||"text",c||""),E=B(y.current,r||"",i||n||"text",m||"");_.current?.setModel({original:v,modified:E})},[n,r,i,e,o,c,m]),U=d.useCallback(()=>{!$.current&&x.current&&(_.current=y.current.editor.createDiffEditor(x.current,{automaticLayout:!0,...T}),H(),y.current?.editor.setTheme(M),I(!0),$.current=!0)},[T,M,H]);d.useEffect(()=>{S&&j.current(_.current,y.current)},[S]),d.useEffect(()=>{!L&&!S&&U()},[L,S,U]);function q(){let v=_.current?.getModel();w||v?.original?.dispose(),O||v?.modified?.dispose(),_.current?.dispose()}return Y.createElement(_e,{width:z,height:K,isEditorReady:S,loading:A,_ref:x,className:k,wrapperProps:V})}var Ct=Pt,At=d.memo(Ct);function It(){let[e,r]=d.useState(Z.__getMonacoInstance());return fe(()=>{let n;return e||(n=Z.init(),n.then(o=>{r(o)})),()=>n?.cancel()}),e}var $t=It;function Lt(e){let r=d.useRef();return d.useEffect(()=>{r.current=e},[e]),r.current}var Ht=Lt,ne=new Map;function Dt({defaultValue:e,defaultLanguage:r,defaultPath:n,value:o,language:i,path:c,theme:m="light",line:w,loading:O="Loading...",options:M={},overrideServices:A={},saveViewState:T=!0,keepCurrentModel:K=!1,width:z="100%",height:k="100%",className:V,wrapperProps:C={},beforeMount:W=Q,onMount:S=Q,onChange:I,onValidate:L=Q}){let[f,_]=d.useState(!1),[y,x]=d.useState(!0),j=d.useRef(null),h=d.useRef(null),$=d.useRef(null),H=d.useRef(S),U=d.useRef(W),q=d.useRef(),v=d.useRef(o),E=Ht(c),ee=d.useRef(!1),G=d.useRef(!1);fe(()=>{let u=Z.init();return u.then(a=>(j.current=a)&&x(!1)).catch(a=>a?.type!=="cancelation"&&console.error("Monaco initialization: error:",a)),()=>h.current?t():u.cancel()}),P(()=>{let u=B(j.current,e||o||"",r||i||"",c||n||"");u!==h.current?.getModel()&&(T&&ne.set(E,h.current?.saveViewState()),h.current?.setModel(u),T&&h.current?.restoreViewState(ne.get(c)))},[c],f),P(()=>{h.current?.updateOptions(M)},[M],f),P(()=>{!h.current||o===void 0||(h.current.getOption(j.current.editor.EditorOption.readOnly)?h.current.setValue(o):o!==h.current.getValue()&&(G.current=!0,h.current.executeEdits("",[{range:h.current.getModel().getFullModelRange(),text:o,forceMoveMarkers:!0}]),h.current.pushUndoStop(),G.current=!1))},[o],f),P(()=>{let u=h.current?.getModel();u&&i&&j.current?.editor.setModelLanguage(u,i)},[i],f),P(()=>{w!==void 0&&h.current?.revealLine(w)},[w],f),P(()=>{j.current?.editor.setTheme(m)},[m],f);let te=d.useCallback(()=>{if(!(!$.current||!j.current)&&!ee.current){U.current(j.current);let u=c||n,a=B(j.current,o||e||"",r||i||"",u||"");h.current=j.current?.editor.create($.current,{model:a,automaticLayout:!0,...M},A),T&&h.current.restoreViewState(ne.get(u)),j.current.editor.setTheme(m),w!==void 0&&h.current.revealLine(w),_(!0),ee.current=!0}},[e,r,n,o,i,c,M,A,T,m,w]);d.useEffect(()=>{f&&H.current(h.current,j.current)},[f]),d.useEffect(()=>{!y&&!f&&te()},[y,f,te]),v.current=o,d.useEffect(()=>{f&&I&&(q.current?.dispose(),q.current=h.current?.onDidChangeModelContent(u=>{G.current||I(h.current.getValue(),u)}))},[f,I]),d.useEffect(()=>{if(f){let u=j.current.editor.onDidChangeMarkers(a=>{let s=h.current.getModel()?.uri;if(s&&a.find(p=>p.path===s.path)){let p=j.current.editor.getModelMarkers({resource:s});L?.(p)}});return()=>{u?.dispose()}}return()=>{}},[f,L]);function t(){q.current?.dispose(),K?T&&ne.set(c,h.current.saveViewState()):h.current.getModel()?.dispose(),h.current.dispose()}return Y.createElement(_e,{width:z,height:k,isEditorReady:f,loading:O,_ref:$,className:V,wrapperProps:C})}var Nt=Dt,Re=d.memo(Nt),xt=Re;const Yt=Object.freeze(Object.defineProperty({__proto__:null,DiffEditor:At,Editor:Re,default:xt,loader:Z,useMonaco:$t},Symbol.toStringTag,{value:"Module"}));export{qt as R,Y as W,Ce as a,Ut as c,Te as g,Yt as i,d as r};
@@ -1,30 +0,0 @@
1
- import{f,A as p,i as b}from"./agents-ClAzIJTw.js";import{a as m}from"./authFetch-BATQyPG5.js";const w=async()=>{try{const r=await m(`${p}/agents/sessions`);if(!r.ok)throw new Error("Failed to fetch sessions");return r.json()}catch(r){if(b(r))return{activeSessionCount:0,sessions:[],message:"API service unavailable"};throw r}},v=()=>f({queryKey:["sessions"],queryFn:w,refetchInterval:5e3,retry:(r,e)=>b(e)?!1:r<3,retryDelay:r=>Math.min(1e3*2**r,3e4)}),I=async(r,e)=>{const s=await m(`${p}/sessions/${r}/${e}/cleanup`,{method:"DELETE"});if(!s.ok){const t=await s.json();throw new Error(t.error||"Failed to cleanup session")}};class a{static instance;static STORAGE_KEY="active_chat_tabs";static WAKEUP_SIGNAL_KEY="tab_wakeup_signal";static WAKEUP_RESPONSE_KEY="tab_wakeup_response";static TAB_TIMEOUT=300*1e3;currentTabId;cleanupInterval;lastKnownSession=null;sessionResumeHistory=[];constructor(){this.currentTabId=this.generateTabId(),this.startCleanupTimer(),this.setupBeforeUnloadHandler(),console.log(`📱 TabManager initialized with ID: ${this.currentTabId}`)}static getInstance(){return a.instance||(a.instance=new a),a.instance}registerCurrentTab(e,s){const t=this.getActiveTabs(),n=this.getTabKey(e,s),i={agentId:e,sessionId:s,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title};t[n]=i,this.saveActiveTabs(t),console.log(`📱 Tab registered: ${this.currentTabId} for session ${s}`),this.lastKnownSession={agentId:e,sessionId:s}}updateCurrentTabActivity(e,s){const t=this.getActiveTabs(),n=this.getTabKey(e,s);t[n]&&t[n].tabId===this.currentTabId&&(t[n].lastSeen=Date.now(),t[n].url=window.location.href,t[n].title=document.title,this.saveActiveTabs(t),this.lastKnownSession={agentId:e,sessionId:s})}hasActiveTab(e,s){return this.findActiveTabForSession(e,s)!==null}findActiveTabForSession(e,s){const t=this.getActiveTabs(),n=this.getTabKey(e,s);if(t[n]&&Date.now()-t[n].lastSeen<a.TAB_TIMEOUT)return t[n];for(const[i,o]of Object.entries(t))if(o.agentId===e&&o.sessionId===s){if(Date.now()-o.lastSeen<a.TAB_TIMEOUT)return o;delete t[i],this.saveActiveTabs(t),console.log(`🗑️ Cleaned up expired tab: ${s}`)}return null}async wakeupExistingTab(e,s,t){if(!this.findActiveTabForSession(e,s))return!1;const i={type:"WAKEUP",agentId:e,sessionId:s,requestId:this.generateRequestId(),timestamp:Date.now(),sourceUrl:t||window.location.href};return console.log(`🔔 Sending wakeup signal for session: ${s}`),localStorage.setItem(a.WAKEUP_SIGNAL_KEY,JSON.stringify(i)),new Promise(o=>{const l=setTimeout(()=>{console.log(`⏰ Wakeup timeout for session ${s}`),o(!1)},2e3),g=setInterval(()=>{const h=localStorage.getItem(a.WAKEUP_RESPONSE_KEY);if(h)try{const d=JSON.parse(h);if(d.requestId===i.requestId){clearTimeout(l),localStorage.removeItem(a.WAKEUP_RESPONSE_KEY),console.log(`✅ Tab awakened successfully: ${s}`),o(d.success);return}}catch(d){console.error("Error parsing wakeup response:",d)}},100);setTimeout(()=>clearInterval(g),2e3)})}setupWakeupListener(e,s){const t=i=>{if(i.key===a.WAKEUP_SIGNAL_KEY&&i.newValue)try{const o=JSON.parse(i.newValue);o.type==="WAKEUP"&&o.agentId===e&&o.sessionId===s&&this.handleWakeupSignal(o)}catch(o){console.error("Error handling wakeup signal:",o)}};window.addEventListener("storage",t);const n=setInterval(()=>{const i=localStorage.getItem(a.WAKEUP_SIGNAL_KEY);if(i)try{const o=JSON.parse(i);o.type==="WAKEUP"&&o.agentId===e&&o.sessionId===s&&Date.now()-o.timestamp<5e3&&this.handleWakeupSignal(o)}catch(o){console.error("Error polling wakeup signal:",o)}},500);return console.log(`🎯 Wakeup listener setup for session: ${s}`),()=>{window.removeEventListener("storage",t),clearInterval(n),console.log(`🎯 Wakeup listener cleaned up for session: ${s}`)}}updateCurrentTabSession(e,s,t,n){const i=this.getActiveTabs(),o=this.getTabKey(e,s);i[o]&&i[o].tabId===this.currentTabId&&delete i[o];const l=this.getTabKey(t,n);i[l]={agentId:t,sessionId:n,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(i),console.log(`🔄 Tab session updated: ${s} → ${n}`),this.lastKnownSession={agentId:t,sessionId:n}}unregisterCurrentTabSession(e,s){const t=this.getActiveTabs(),n=this.getTabKey(e,s);t[n]&&t[n].tabId===this.currentTabId&&(delete t[n],this.saveActiveTabs(t),console.log(`📤 Unregistered current tab from session: ${s}`)),this.lastKnownSession&&this.lastKnownSession.agentId===e&&this.lastKnownSession.sessionId===s&&(this.lastKnownSession=null)}handleSessionResume(e,s,t){const n=this.getActiveTabs(),i=this.getTabKey(e,s),o=this.getTabKey(e,t);n[i]&&n[i].tabId===this.currentTabId?(delete n[i],n[o]={agentId:e,sessionId:t,url:window.location.href,lastSeen:Date.now(),tabId:this.currentTabId,title:document.title},this.saveActiveTabs(n),console.log(`🔄 Session resumed: ${s} → ${t}`),this.lastKnownSession={agentId:e,sessionId:t}):(this.registerCurrentTab(e,t),console.log(`🆕 Resumed session registered: ${t}`))}recordSessionResume(e,s,t){this.sessionResumeHistory.push({originalSessionId:s,newSessionId:t,timestamp:Date.now(),agentId:e}),this.sessionResumeHistory.length>100&&(this.sessionResumeHistory=this.sessionResumeHistory.slice(-100)),console.log(`📝 Recorded session resume: ${s} → ${t}`)}smartUpdateCurrentTab(){const e=window.location.href,s=this.parseSessionFromUrl(e);if(!s){this.lastKnownSession&&(this.unregisterCurrentTabSession(this.lastKnownSession.agentId,this.lastKnownSession.sessionId),this.lastKnownSession=null);return}const{agentId:t,sessionId:n}=s;if(this.lastKnownSession){const{agentId:i,sessionId:o}=this.lastKnownSession;o!==n||i!==t?this.sessionResumeHistory.find(c=>c.originalSessionId===o&&c.newSessionId===n&&c.agentId===t&&Date.now()-c.timestamp<3e4)?(this.handleSessionResume(t,o,n),console.log(`🔄 Detected session resume via URL: ${o} → ${n}`)):(this.updateCurrentTabSession(i,o,t,n),console.log(`🎯 Regular session switch: ${o} → ${n}`)):this.updateCurrentTabActivity(t,n)}else this.registerCurrentTab(t,n),console.log(`🎯 Initial session register: ${n}`);this.lastKnownSession={agentId:t,sessionId:n}}startSmartMonitoring(){this.smartUpdateCurrentTab();const e=()=>{setTimeout(()=>this.smartUpdateCurrentTab(),100)};window.addEventListener("popstate",e);const s=history.pushState,t=history.replaceState;return history.pushState=function(...n){s.apply(this,n),e()},history.replaceState=function(...n){t.apply(this,n),e()},console.log(`🎯 Smart monitoring started for tab: ${this.currentTabId}`),()=>{window.removeEventListener("popstate",e),history.pushState=s,history.replaceState=t,console.log(`🛑 Smart monitoring stopped for tab: ${this.currentTabId}`)}}handleWakeupSignal(e){console.log(`🔔 Received wakeup signal for session: ${e.sessionId}`);try{if(window.focus(),window.parent&&window.parent!==window&&window.parent.focus(),document.hidden){const t=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});document.dispatchEvent(t)}}catch(t){console.log("Focus attempt failed:",t)}this.flashPageTitle(),this.playNotificationSound(),e.sourceUrl&&e.sourceUrl!==window.location.href?this.isSameSession(e.sourceUrl,window.location.href)?(console.log("🎯 URLs point to same session, forcing visibility"),this.makePageVisible()):(console.log(`🔄 Navigating to: ${e.sourceUrl}`),window.history.replaceState(null,"",e.sourceUrl),window.location.reload()):this.makePageVisible();const s={requestId:e.requestId,agentId:e.agentId,sessionId:e.sessionId,success:!0,timestamp:Date.now()};localStorage.setItem(a.WAKEUP_RESPONSE_KEY,JSON.stringify(s)),localStorage.removeItem(a.WAKEUP_SIGNAL_KEY),this.updateCurrentTabActivity(e.agentId,e.sessionId),console.log(`✅ Wakeup signal processed successfully for session: ${e.sessionId}`)}flashPageTitle(){const e=document.title;let s=0;const t=setInterval(()=>{document.title=s%2===0?"🔔 会话已唤起":e,s++,s>6&&(clearInterval(t),document.title=e)},500),n=()=>{clearInterval(t),document.title=e,window.removeEventListener("focus",n)};window.addEventListener("focus",n)}playNotificationSound(){try{const e=new(window.AudioContext||window.webkitAudioContext),s=e.createOscillator(),t=e.createGain();s.connect(t),t.connect(e.destination),s.frequency.setValueAtTime(800,e.currentTime),s.frequency.setValueAtTime(600,e.currentTime+.1),t.gain.setValueAtTime(.1,e.currentTime),t.gain.exponentialRampToValueAtTime(.01,e.currentTime+.2),s.start(e.currentTime),s.stop(e.currentTime+.2)}catch(e){console.log("Audio notification not supported:",e)}}makePageVisible(){try{window.scrollTo(0,0),document.fullscreenEnabled&&document.documentElement.requestFullscreen?.()?.then(()=>{setTimeout(()=>{document.exitFullscreen?.()},100)}).catch(t=>console.log("Fullscreen toggle failed:",t));const e=document.createElement("div");e.style.cssText=`
2
- position: fixed;
3
- top: 50%;
4
- left: 50%;
5
- transform: translate(-50%, -50%);
6
- background: rgba(59, 130, 246, 0.9);
7
- color: white;
8
- padding: 20px 40px;
9
- border-radius: 12px;
10
- font-size: 18px;
11
- font-weight: bold;
12
- z-index: 999999;
13
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
14
- animation: bounce 0.6s ease-in-out;
15
- `;const s=document.createElement("style");s.textContent=`
16
- @keyframes bounce {
17
- 0%, 20%, 53%, 80%, 100% {
18
- transform: translate(-50%, -50%) translateY(0);
19
- }
20
- 40%, 43% {
21
- transform: translate(-50%, -50%) translateY(-20px);
22
- }
23
- 70% {
24
- transform: translate(-50%, -50%) translateY(-10px);
25
- }
26
- 90% {
27
- transform: translate(-50%, -50%) translateY(-5px);
28
- }
29
- }
30
- `,document.head.appendChild(s),e.textContent="🎯 会话已激活",document.body.appendChild(e),setTimeout(()=>{document.body.contains(e)&&document.body.removeChild(e),document.head.contains(s)&&document.head.removeChild(s)},2e3),console.log("🎯 Made page more visible")}catch(e){console.log("Make page visible failed:",e)}}parseSessionFromUrl(e){try{const s=new URL(e),t=s.pathname.split("/"),n=t.indexOf("chat");if(n!==-1&&t[n+1]){const i=t[n+1],o=s.searchParams.get("session");if(i&&o)return{agentId:i,sessionId:o}}return null}catch(s){return console.error("Error parsing session from URL:",s),null}}isSameSession(e,s){try{const t=this.parseSessionFromUrl(e),n=this.parseSessionFromUrl(s);return!t||!n?!1:t.agentId===n.agentId&&t.sessionId===n.sessionId}catch(t){return console.error("Error comparing session URLs:",t),!1}}getActiveTabs(){try{const e=localStorage.getItem(a.STORAGE_KEY);return e?JSON.parse(e):{}}catch(e){return console.error("Error reading active tabs:",e),{}}}saveActiveTabs(e){try{localStorage.setItem(a.STORAGE_KEY,JSON.stringify(e))}catch(s){console.error("Error saving active tabs:",s)}}getTabKey(e,s){return`${e}_${s}`}generateTabId(){return`tab_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}generateRequestId(){return`req_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}startCleanupTimer(){this.cleanupInterval=window.setInterval(()=>{this.cleanupExpiredTabs()},6e4)}cleanupExpiredTabs(){const e=this.getActiveTabs(),s=Date.now();let t=0;Object.keys(e).forEach(n=>{s-e[n].lastSeen>a.TAB_TIMEOUT&&(delete e[n],t++)}),t>0&&(this.saveActiveTabs(e),console.log(`🗑️ Cleaned up ${t} expired tabs`))}setupBeforeUnloadHandler(){window.addEventListener("beforeunload",()=>{const e=this.getActiveTabs();Object.keys(e).forEach(s=>{e[s].tabId===this.currentTabId&&delete e[s]}),this.saveActiveTabs(e)})}getDebugInfo(){return{tabs:this.getActiveTabs(),currentTabId:this.currentTabId,lastKnownSession:this.lastKnownSession,resumeHistory:this.sessionResumeHistory}}clearAllTabs(){localStorage.removeItem(a.STORAGE_KEY),localStorage.removeItem(a.WAKEUP_SIGNAL_KEY),localStorage.removeItem(a.WAKEUP_RESPONSE_KEY),this.sessionResumeHistory=[],this.lastKnownSession=null,console.log("🗑️ All tab records cleared")}stopCleanupTimer(){this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=void 0,console.log("🛑 Cleanup timer stopped"))}}const u=a.getInstance();window.tabManagerDebug={showTabs:()=>console.table(u.getDebugInfo().tabs),clearAll:()=>u.clearAllTabs(),testWakeup:(r,e)=>u.wakeupExistingTab(r,e),getCurrentTabId:()=>u.getDebugInfo().currentTabId,getDebugInfo:()=>u.getDebugInfo()};export{I as c,u as t,v as u};
@@ -1 +0,0 @@
1
- import{r as g}from"./monaco-editor-C7Z4sOhS.js";import{j as t}from"./data-structures-DLJedtzx.js";import{P as M,G as W,S as D,B as K,a as q,F as H,b as J,c as X,d as Z,C as v,e as Y,f as Q,g as V,h as F,A as ee,T as w,W as te,L as se,i as re,j as ae,k as T,l as P,m as ne,Z as le}from"./ui-components-Cw21Epuw.js";const oe=(e,s,r,l)=>{const a=[r,{code:s,...l||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(a,"warn","react-i18next::",!0);f(a[0])&&(a[0]=`react-i18next:: ${a[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...a):console?.warn&&console.warn(...a)},$={},C=(e,s,r,l)=>{f(r)&&$[r]||(f(r)&&($[r]=new Date),oe(e,s,r,l))},U=(e,s)=>()=>{if(e.isInitialized)s();else{const r=()=>{setTimeout(()=>{e.off("initialized",r)},0),s()};e.on("initialized",r)}},E=(e,s,r)=>{e.loadNamespaces(s,U(e,r))},L=(e,s,r,l)=>{if(f(r)&&(r=[r]),e.options.preload&&e.options.preload.indexOf(s)>-1)return E(e,r,l);r.forEach(a=>{e.options.ns.indexOf(a)<0&&e.options.ns.push(a)}),e.loadLanguages(s,U(e,l))},de=(e,s,r={})=>!s.languages||!s.languages.length?(C(s,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:s.languages}),!0):s.hasLoadedNamespace(e,{lng:r.lng,precheck:(l,a)=>{if(r.bindI18n&&r.bindI18n.indexOf("languageChanging")>-1&&l.services.backendConnector.backend&&l.isLanguageChangingTo&&!a(l.isLanguageChangingTo,e))return!1}}),f=e=>typeof e=="string",ie=e=>typeof e=="object"&&e!==null,ce=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,ue={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},ge=e=>ue[e],xe=e=>e.replace(ce,ge);let O={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:xe};const me=(e={})=>{O={...O,...e}},pe=()=>O;let A;const be=e=>{A=e},he=()=>A,Ee={type:"3rdParty",init(e){me(e.options.react),be(e)}},fe=g.createContext();class ye{constructor(){this.usedNamespaces={}}addUsedNamespaces(s){s.forEach(r=>{this.usedNamespaces[r]||(this.usedNamespaces[r]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const Ne=(e,s)=>{const r=g.useRef();return g.useEffect(()=>{r.current=e},[e,s]),r.current},G=(e,s,r,l)=>e.getFixedT(s,r,l),ke=(e,s,r,l)=>g.useCallback(G(e,s,r,l),[e,s,r,l]),S=(e,s={})=>{const{i18n:r}=s,{i18n:l,defaultNS:a}=g.useContext(fe)||{},n=r||l||he();if(n&&!n.reportNamespaces&&(n.reportNamespaces=new ye),!n){C(n,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const u=(m,p)=>f(p)?p:ie(p)&&f(p.defaultValue)?p.defaultValue:Array.isArray(m)?m[m.length-1]:m,x=[u,{},!1];return x.t=u,x.i18n={},x.ready=!1,x}n.options.react?.wait&&C(n,"DEPRECATED_OPTION","useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const d={...pe(),...n.options.react,...s},{useSuspense:i,keyPrefix:o}=d;let c=e||a||n.options?.defaultNS;c=f(c)?[c]:c||["translation"],n.reportNamespaces.addUsedNamespaces?.(c);const b=(n.isInitialized||n.initializedStoreOnce)&&c.every(u=>de(u,n,d)),z=ke(n,s.lng||null,d.nsMode==="fallback"?c:c[0],o),I=()=>z,j=()=>G(n,s.lng||null,d.nsMode==="fallback"?c:c[0],o),[B,y]=g.useState(I);let N=c.join();s.lng&&(N=`${s.lng}${N}`);const _=Ne(N),h=g.useRef(!0);g.useEffect(()=>{const{bindI18n:u,bindI18nStore:x}=d;h.current=!0,!b&&!i&&(s.lng?L(n,s.lng,c,()=>{h.current&&y(j)}):E(n,c,()=>{h.current&&y(j)})),b&&_&&_!==N&&h.current&&y(j);const m=()=>{h.current&&y(j)};return u&&n?.on(u,m),x&&n?.store.on(x,m),()=>{h.current=!1,n&&u&&u?.split(" ").forEach(p=>n.off(p,m)),x&&n&&x.split(" ").forEach(p=>n.store.off(p,m))}},[n,N]),g.useEffect(()=>{h.current&&b&&y(I)},[n,o,b]);const k=[B,n,b];if(k.t=B,k.i18n=n,k.ready=b,b||!b&&!i)return k;throw new Promise(u=>{s.lng?L(n,s.lng,c,()=>u()):E(n,c,()=>u())})},je={Task:te,Bash:w,BashOutput:ee,KillBash:F,Glob:V,Grep:Q,LS:Y,exit_plan_mode:v,Read:Z,Edit:X,MultiEdit:J,Write:H,NotebookRead:q,NotebookEdit:K,WebFetch:W,TodoWrite:D,WebSearch:W},we={Task:"text-purple-600 dark:text-purple-400 bg-purple-100 dark:bg-purple-900/30",Bash:"text-gray-800 dark:text-gray-300 bg-gray-100 dark:bg-gray-700",BashOutput:"text-blue-700 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/30",KillBash:"text-red-700 dark:text-red-400 bg-red-50 dark:bg-red-900/30",Glob:"text-blue-600 dark:text-blue-400 bg-blue-100 dark:bg-blue-900/30",Grep:"text-green-600 dark:text-green-400 bg-green-100 dark:bg-green-900/30",LS:"text-yellow-600 dark:text-yellow-400 bg-yellow-100 dark:bg-yellow-900/30",exit_plan_mode:"text-emerald-600 dark:text-emerald-400 bg-emerald-100 dark:bg-emerald-900/30",Read:"text-indigo-600 dark:text-indigo-400 bg-indigo-100 dark:bg-indigo-900/30",Edit:"text-orange-600 dark:text-orange-400 bg-orange-100 dark:bg-orange-900/30",MultiEdit:"text-red-600 dark:text-red-400 bg-red-100 dark:bg-red-900/30",Write:"text-cyan-600 dark:text-cyan-400 bg-cyan-100 dark:bg-cyan-900/30",NotebookRead:"text-pink-600 dark:text-pink-400 bg-pink-100 dark:bg-pink-900/30",NotebookEdit:"text-rose-600 dark:text-rose-400 bg-rose-100 dark:bg-rose-900/30",WebFetch:"text-teal-600 dark:text-teal-400 bg-teal-100 dark:bg-teal-900/30",TodoWrite:"text-violet-600 dark:text-violet-400 bg-violet-100 dark:bg-violet-900/30",WebSearch:"text-sky-600 dark:text-sky-400 bg-sky-100 dark:bg-sky-900/30"},R=({execution:e,children:s,subtitle:r,showResult:l=!0,isMcpTool:a=!1,hideToolName:n=!0})=>{const[d,i]=g.useState(!1),o=a?M:je[e.toolName]||w,c=a?"text-blue-600 dark:text-blue-400 bg-blue-100 dark:bg-blue-900/30":we[e.toolName]||"text-gray-600 dark:text-gray-400 bg-gray-100 dark:bg-gray-700";return t.jsx(t.Fragment,{children:t.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg bg-gray-50 dark:bg-gray-800 max-w-full",children:[t.jsxs("div",{className:`flex items-start justify-between cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors ${n?"p-2":"p-4"}`,onClick:()=>i(!d),children:[t.jsxs("div",{className:`flex space-x-2 flex-1 min-w-0 ${n?"items-center":"items-start"}`,children:[t.jsx("div",{className:`${n?"p-1.5":"p-2"} rounded-full ${c} ${n?"":"mt-0.5"}`,children:e.isExecuting?t.jsx(se,{className:"w-4 h-4 animate-spin"}):t.jsx(o,{className:"w-4 h-4"})}),t.jsxs("div",{className:"min-w-0 flex-1",children:[!n&&t.jsx("h4",{className:"text-sm font-semibold text-gray-800 dark:text-gray-200",children:e.toolName}),r&&t.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400 truncate",children:r})]})]}),t.jsx("div",{className:"flex items-center",children:d?t.jsx(re,{className:"w-4 h-4 text-gray-400 dark:text-gray-500"}):t.jsx(ae,{className:"w-4 h-4 text-gray-400 dark:text-gray-500"})})]}),d&&t.jsx("div",{className:"px-4 pb-4 border-t border-gray-200 dark:border-gray-700",children:t.jsxs("div",{className:"pt-3",children:[s,l&&e.toolResult&&!e.isError&&t.jsx(Te,{result:e.toolResult})]})})]})})},Oe=({label:e,value:s,className:r="",isCode:l=!1})=>{if(s==null||s==="")return null;const a=typeof s=="object"?JSON.stringify(s,null,2):String(s);return t.jsxs("div",{className:`mb-2 ${r}`,children:[t.jsxs("span",{className:"text-xs font-medium text-gray-600 dark:text-gray-400",children:[e,":"]}),t.jsx("div",{className:`mt-1 ${l?"font-mono bg-gray-100 dark:bg-gray-700 p-2 rounded text-sm text-gray-800 dark:text-gray-200":"text-sm text-gray-800 dark:text-gray-200"}`,children:l?t.jsx("pre",{className:"whitespace-pre-wrap break-words",children:a}):t.jsx("span",{className:"break-words",children:a})})]})},Te=({result:e,isError:s=!1,className:r=""})=>{const{t:l}=S("components");return e?t.jsxs("div",{className:`mt-3 ${r}`,children:[t.jsx("p",{className:"text-xs font-medium text-gray-600 dark:text-gray-400 mb-2",children:l("baseToolComponent.executionResult")}),t.jsx("div",{className:`p-3 rounded-md border text-sm font-mono whitespace-pre-wrap break-words ${s?"bg-red-50 dark:bg-red-900/30 border-red-200 dark:border-red-800 text-red-700 dark:text-red-300":"bg-green-50 dark:bg-green-900/30 border-green-200 dark:border-green-800 text-green-700 dark:text-green-300"}`,children:e})]}):null},Re=({execution:e})=>{const{t:s}=S("components"),r=e.toolInput,a=(()=>{if(!e.toolUseResult)return null;if(typeof e.toolUseResult=="object")return e.toolUseResult;if(typeof e.toolUseResult=="string")try{return JSON.parse(e.toolUseResult)}catch{const i=e.toolUseResult.trim(),o=i.includes("running")?"running":i.includes("completed")?"completed":i.includes("killed")?"killed":i.includes("failed")?"failed":"running";return{shellId:r.bash_id,command:"",status:o,exitCode:null,stdout:"",stderr:"",stdoutLines:0,stderrLines:0,timestamp:new Date().toISOString()}}return null})(),n=()=>{const i=a?.shellId||r.bash_id;if(!i)return;let o=`${s("bashOutputTool.shellPrefix")} ${i}`;return a?.status&&(o+=` • ${a.status}`),o},d=i=>{switch(i){case"running":return{icon:t.jsx(w,{className:"w-4 h-4"}),className:"bg-blue-100 text-blue-800 border-blue-200",text:s("bashOutputTool.status.running")};case"completed":return{icon:t.jsx(v,{className:"w-4 h-4"}),className:"bg-green-100 text-green-800 border-green-200",text:s("bashOutputTool.status.completed")};case"killed":return{icon:t.jsx(ne,{className:"w-4 h-4"}),className:"bg-red-100 text-red-800 border-red-200",text:s("bashOutputTool.status.killed")};case"failed":return{icon:t.jsx(T,{className:"w-4 h-4"}),className:"bg-orange-100 text-orange-800 border-orange-200",text:s("bashOutputTool.status.failed")};default:return{icon:t.jsx(P,{className:"w-4 h-4"}),className:"bg-gray-100 text-gray-800 border-gray-200",text:i}}};return t.jsx(R,{execution:e,subtitle:n(),showResult:!1,children:t.jsxs("div",{className:"space-y-4",children:[a&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"bg-gray-50 rounded-lg p-3 space-y-3",children:[t.jsxs("div",{className:`inline-flex items-center gap-2 px-3 py-1 rounded-full border text-sm font-medium ${d(a.status||"unknown").className}`,children:[d(a.status||"unknown").icon,d(a.status||"unknown").text]}),a.command&&t.jsxs("div",{className:"bg-white border rounded px-3 py-2 text-sm font-mono text-gray-800",children:[t.jsx("span",{className:"text-gray-500 mr-2",children:">"}),t.jsx("span",{className:"break-all",children:a.command})]}),(a.filterPattern||r.filter)&&t.jsxs("div",{className:"bg-white border rounded px-3 py-2 text-sm font-mono text-gray-800",children:[t.jsx("span",{className:"text-gray-500 mr-2",children:"filter:"}),t.jsx("span",{className:"break-all",children:a.filterPattern||r.filter})]}),t.jsxs("div",{className:"flex gap-4 text-xs text-gray-500 pt-2 border-t border-gray-200",children:[a.exitCode!==void 0&&a.exitCode!==null&&t.jsxs("span",{children:[s("bashOutputTool.exitCode"),": ",a.exitCode]}),a.timestamp&&t.jsx("span",{children:new Date(a.timestamp).toLocaleTimeString()})]})]}),a.stdout&&t.jsxs("div",{children:[t.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-gray-700 mb-2",children:[t.jsx(w,{className:"w-4 h-4"}),s("bashOutputTool.stdout")]}),t.jsx("pre",{className:"bg-gray-900 text-green-400 rounded-lg px-3 py-2 text-sm font-mono overflow-x-auto whitespace-pre-wrap border",children:a.stdout.trim()})]}),a.stderr&&t.jsxs("div",{children:[t.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-red-700 mb-2",children:[t.jsx(T,{className:"w-4 h-4"}),s("bashOutputTool.stderr")]}),t.jsx("pre",{className:"bg-red-50 text-red-800 border border-red-200 rounded-lg px-3 py-2 text-sm font-mono overflow-x-auto whitespace-pre-wrap",children:a.stderr.trim()})]})]}),!a&&t.jsxs("div",{className:"text-sm text-gray-600",children:[s("bashOutputTool.fetchingOutput",{shellId:r.bash_id}),r.filter&&t.jsxs("div",{className:"mt-1 text-xs text-gray-500",children:[s("bashOutputTool.filterCondition"),": ",t.jsx("code",{className:"bg-gray-100 px-1 rounded",children:r.filter})]})]})]})})},Ie=({execution:e})=>{const{t:s}=S("components"),r=e.toolInput,a=(()=>{if(!e.toolResult)return null;try{return JSON.parse(e.toolResult)}catch{return{message:e.toolResult}}})(),n=()=>{if(!r.shell_id)return;const i=a?.message?.match(/\(([^)]+)\)/)?.[1]||"";return i?s("killBashTool.subtitleWithProcess",{shellId:r.shell_id,processName:i}):s("killBashTool.subtitle",{shellId:r.shell_id})},d=()=>e.isError?!1:!!(a?.success===!0||a?.message?.includes("killed")||a?.message?.includes("Successfully"));return t.jsx(R,{execution:e,subtitle:n(),showResult:!1,children:t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("div",{className:`p-2 rounded-full ${e.isExecuting?"bg-yellow-100":d()?"bg-green-100":e.isError?"bg-red-100":"bg-gray-100"}`,children:e.isExecuting?t.jsx(le,{className:"w-5 h-5 text-yellow-600 animate-pulse"}):d()?t.jsx(v,{className:"w-5 h-5 text-green-600"}):e.isError?t.jsx(T,{className:"w-5 h-5 text-red-600"}):t.jsx(F,{className:"w-5 h-5 text-gray-600"})}),t.jsxs("div",{children:[t.jsx("div",{className:`font-medium ${e.isExecuting?"text-yellow-800":d()?"text-green-800":e.isError?"text-red-800":"text-gray-800"}`,children:e.isExecuting?s("killBashTool.status.terminating"):d()?s("killBashTool.status.success"):e.isError?s("killBashTool.status.failed"):s("killBashTool.status.ready")}),t.jsxs("div",{className:"text-sm text-gray-600 mt-1",children:[s("killBashTool.shellId"),": ",t.jsx("code",{className:"bg-gray-100 px-2 py-0.5 rounded text-xs",children:r.shell_id})]})]})]}),a&&a.message&&t.jsx("div",{className:`p-3 rounded-md text-sm font-mono ${d()?"bg-green-100 text-green-800 border border-green-200":e.isError?"bg-red-100 text-red-800 border border-red-200":"bg-gray-100 text-gray-800 border border-gray-200"}`,children:a.message})]})})},Be=({execution:e})=>{const{t:s}=S("components"),r=e.toolInput,l=o=>{switch(o){case"completed":return t.jsx(v,{className:"w-3 h-3 text-green-600"});case"in_progress":return t.jsx(P,{className:"w-3 h-3 text-blue-600"});default:return t.jsx(T,{className:"w-3 h-3 text-gray-400"})}},a=r.todos.filter(o=>o.status==="completed").length,n=r.todos.length,d=r.todos.find(o=>o.status==="in_progress")?.content,i=()=>a===n&&n>0?s("todoWriteTool.allTasksCompleted"):d?s("todoWriteTool.currentTaskProgress",{completed:a+1,total:n,task:d}):s("todoWriteTool.pendingTasks",{completed:a,total:n});return t.jsx(R,{execution:e,subtitle:i(),showResult:!1,children:t.jsxs("div",{className:"space-y-1",children:[r.todos.map((o,c)=>t.jsxs("div",{className:"flex items-center gap-2 text-sm py-1",children:[l(o.status),t.jsx("span",{className:`flex-1 ${o.status==="completed"?"text-gray-500 line-through":o.status==="in_progress"?"text-blue-700 font-medium":"text-gray-700"}`,children:o.content})]},c)),t.jsxs("div",{className:"flex gap-3 text-xs text-gray-500 pt-2 border-t border-gray-200 mt-2",children:[t.jsx("span",{children:s("todoWriteTool.completedCount",{count:r.todos.filter(o=>o.status==="completed").length})}),t.jsx("span",{children:s("todoWriteTool.inProgressCount",{count:r.todos.filter(o=>o.status==="in_progress").length})}),t.jsx("span",{children:s("todoWriteTool.pendingCount",{count:r.todos.filter(o=>o.status==="pending").length})})]})]})})};export{R as B,Ie as K,Oe as T,Be as a,Re as b,Ee as i,S as u};
@@ -1,2 +0,0 @@
1
- import{f as h,h as w,A as o}from"./agents-ClAzIJTw.js";import{a as i}from"./authFetch-BATQyPG5.js";const O=(s,e)=>h({queryKey:["agents",s,e],queryFn:async()=>{const t=new URL(`${o}/agents`),n=await i(t.toString());if(!n.ok)throw new Error("Failed to fetch agents");return n.json()}}),C=s=>h({queryKey:["agent",s],queryFn:async()=>{const e=await i(`${o}/agents/${s}`);if(!e.ok)throw new Error("Failed to fetch agent");return e.json()},enabled:!!s}),P=()=>w({mutationFn:async s=>{const e=await i(`${o}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!e.ok)throw new Error("Failed to create agent");return e.json()}}),R=()=>w({mutationFn:async({agentId:s,data:e})=>{const t=await i(`${o}/agents/${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error("Failed to update agent");return t.json()}}),x=()=>w({mutationFn:async s=>{const e=await i(`${o}/agents/${s}`,{method:"DELETE"});if(!e.ok)throw new Error("Failed to delete agent");return e.json()}}),N=(s,e,t)=>h({queryKey:["agent-sessions",s,e,t],queryFn:async()=>{const n=new URL(`${o}/sessions/${s}`);e&&e.trim()&&n.searchParams.append("search",e.trim()),t&&n.searchParams.set("projectPath",t);const r=await i(n.toString());if(!r.ok)throw new Error("Failed to fetch agent sessions");return r.json()},enabled:!!s}),D=(s,e,t)=>(console.log("🎣 useAgentSessionMessages hook called:",{agentId:s,sessionId:e,projectPath:t,enabled:!!s&&!!e}),h({queryKey:["agent-session-messages",s,e,t],queryFn:async()=>{if(console.log("🎣 Fetching session messages for:",{agentId:s,sessionId:e,projectPath:t}),!e)return{messages:[]};const n=new URL(`${o}/sessions/${s}/${e}/messages`);t&&n.searchParams.set("projectPath",t),console.log("🎣 Fetching from URL:",n.toString());const r=await i(n.toString());if(!r.ok)throw console.error("🎣 Fetch failed:",r.status,r.statusText),new Error("Failed to fetch agent session messages");const u=await r.json();console.log("🎣 Raw API response:",{messageCount:u.messages?.length});const p=u.messages.map(y=>({...y,timestamp:new Date(y.timestamp)}));return console.log("🎣 Converted messages:",{messageCount:p.length}),{...u,messages:p}},enabled:!!s&&!!e})),M=()=>({mutateAsync:async({agentId:s,message:e,images:t,context:n,sessionId:r,projectPath:u,mcpTools:p,permissionMode:y,model:m,claudeVersion:S,abortController:f,onMessage:E,onError:F})=>{try{console.log("🚀 Starting SSE request to:",`${o}/agents/chat`);const a=await i(`${o}/agents/chat`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:s,message:e,images:t,context:n,sessionId:r,projectPath:u,mcpTools:p,permissionMode:y,model:m,claudeVersion:S}),signal:f?.signal});if(console.log("🚀 SSE response received:",{status:a.status,statusText:a.statusText,headers:Object.fromEntries(a.headers.entries())}),!a.ok)throw new Error(`Agent chat request failed: ${a.status} ${a.statusText}`);const d=a.body?.getReader(),j=new TextDecoder;if(!d)throw new Error("No response body");for(console.log("🚀 Starting SSE stream reading...");;){if(f?.signal.aborted)throw d.cancel(),new DOMException("Request aborted","AbortError");const{done:$,value:b}=await d.read();if($)break;const A=j.decode(b).split(`
2
- `);for(const g of A)if(g.startsWith("data: "))try{const c=g.slice(6);console.log("🔄 Raw SSE data:",c.length>200?c.substring(0,200)+"...":c);const l=JSON.parse(c);console.log("🔄 Parsed SSE event:",{type:l.type,subtype:l.subtype,hasMessage:!!l.message,messageContentBlocks:l.message?.content?.length||0}),E?.(l)}catch(c){console.error("❌ Failed to parse SSE data:",g,"Error:",c)}else g.trim()&&console.log("🔄 Non-data SSE line:",g)}}catch(a){throw console.error("Agent SSE error:",a),F?.(a),a}}}),U=()=>w({mutationFn:async({agentId:s,projectName:e,parentDirectory:t})=>{const n=await i(`${o}/agents/projects/create`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:s,projectName:e,parentDirectory:t})});if(!n.ok){const r=await n.json();throw new Error(r.error||"Failed to create project")}return n.json()}}),v=s=>h({queryKey:["agent-projects",s],queryFn:async()=>{const e=await i(`${o}/projects/agents/${s}`);if(!e.ok)throw new Error("Failed to fetch agent projects");return e.json()},enabled:!!s}),J=()=>w({mutationFn:async s=>{const e=await i(`${o}/agents/sessions/${s}/interrupt`,{method:"POST"});if(!e.ok){const t=await e.json();throw new Error(t.error||"Failed to interrupt session")}return e.json()}});export{R as a,x as b,P as c,J as d,N as e,D as f,M as g,C as h,U as i,v as j,O as u};
@@ -1 +0,0 @@
1
- import{f as l,e as i,h as u,A as o}from"./agents-ClAzIJTw.js";import{a}from"./authFetch-BATQyPG5.js";import{u as y}from"./index-B_CTNvca.js";import{r as d}from"./monaco-editor-C7Z4sOhS.js";const w=t=>{const{currentServiceId:r}=y();d.useRef(!1);const e=!1,s=!0,n=l({queryKey:["claude-versions",r],queryFn:async()=>{const c=await a(`${o}/settings/claude-versions`);if(!c.ok)throw new Error("Failed to fetch Claude versions");return c.json()},enabled:s,retry:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1,staleTime:3e4});return d.useEffect(()=>{},[n.isError,n.isLoading,r,s,e]),n},h=()=>{const t=i();return u({mutationFn:async r=>{const e=await a(`${o}/settings/claude-versions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!e.ok){const s=await e.json();throw new Error(s.message||"Failed to create Claude version")}return e.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["claude-versions"]})}})},C=()=>{const t=i();return u({mutationFn:async({id:r,data:e})=>{const s=await a(`${o}/settings/claude-versions/${r}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!s.ok){const n=await s.json();throw new Error(n.message||"Failed to update Claude version")}return s.json()},onSuccess:()=>{t.invalidateQueries({queryKey:["claude-versions"]})}})},g=()=>{const t=i();return u({mutationFn:async r=>{const e=await a(`${o}/settings/claude-versions/${r}`,{method:"DELETE"});if(!e.ok){const s=await e.json();throw new Error(s.message||"Failed to delete Claude version")}},onSuccess:()=>{t.invalidateQueries({queryKey:["claude-versions"]})}})},E=()=>{const t=i();return u({mutationFn:async r=>{const e=await a(`${o}/settings/claude-versions/${r}/set-default`,{method:"PUT"});if(!e.ok){const s=await e.json();throw new Error(s.message||"Failed to set default Claude version")}},onSuccess:()=>{t.invalidateQueries({queryKey:["claude-versions"]})}})};export{h as a,C as b,g as c,E as d,w as u};
@@ -1 +0,0 @@
1
- import{f as h,e as p,h as d,A as r,i as w}from"./agents-ClAzIJTw.js";import{a as s}from"./authFetch-BATQyPG5.js";const y=async(e={})=>{try{const o=new URLSearchParams;e.scope&&e.scope!=="all"&&o.append("scope",e.scope),e.namespace&&o.append("namespace",e.namespace),e.search&&o.append("search",e.search);const t=await s(`${r}/commands?${o}`);if(!t.ok)throw new Error("Failed to fetch commands");return t.json()}catch(o){if(w(o))return[];throw o}},f=async e=>{const o=await s(`${r}/commands`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!o.ok){const t=await o.json();throw new Error(t.error||"Failed to create command")}return o.json()},l=async(e,o)=>{const t=await s(`${r}/commands/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!t.ok){const a=await t.json();throw new Error(a.error||"Failed to update command")}return t.json()},C=async e=>{const o=await s(`${r}/commands/${encodeURIComponent(e)}`,{method:"DELETE"});if(!o.ok){const t=await o.json();throw new Error(t.error||"Failed to delete command")}},D=e=>h({queryKey:["commands",e],queryFn:()=>y(e),staleTime:1e3*60*5,retry:!1}),U=()=>{const e=p();return d({mutationFn:f,onSuccess:()=>{e.invalidateQueries({queryKey:["commands"]})}})},R=()=>{const e=p();return d({mutationFn:({id:o,updates:t})=>l(o,t),onSuccess:o=>{e.invalidateQueries({queryKey:["commands"]}),e.setQueryData(["commands",o.id],o)}})},k=()=>{const e=p();return d({mutationFn:C,onSuccess:(o,t)=>{e.invalidateQueries({queryKey:["commands"]}),e.removeQueries({queryKey:["commands",t]})}})},P=async(e,o={})=>{if(!e)return[];let t;if(e.startsWith("/"))t=e;else{const m=await s(`${r}/projects`);if(!m.ok)throw new Error("Failed to fetch project info");const n=(await m.json()).projects.find(u=>u.id===e);if(!n)throw new Error("Project not found");t=n.path}const a=new URLSearchParams;a.append("scope","project"),a.append("projectPath",t),o.namespace&&a.append("namespace",o.namespace),o.search&&a.append("search",o.search);const c=await s(`${r}/commands?${a}`);if(!c.ok)throw new Error("Failed to fetch project commands");return c.json()},Q=e=>h({queryKey:["commands","project",e.projectId,e.search],queryFn:()=>P(e.projectId,{search:e.search}),staleTime:1e3*60*5}),E=async(e,o)=>{const t=await s(`${r}/agents/projects`);if(!t.ok)throw new Error("Failed to fetch project info");const c=(await t.json()).projects.find(n=>n.id===e);if(!c)throw new Error("Project not found");const m=new URLSearchParams;m.append("projectPath",c.path);const i=await s(`${r}/commands?${m}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!i.ok){const n=await i.json();throw new Error(n.error||"Failed to create command")}return i.json()},F=async(e,o)=>{const t=await s(`${r}/agents/projects`);if(!t.ok)throw new Error("Failed to fetch project info");const c=(await t.json()).projects.find(j=>j.id===e);if(!c)throw new Error("Project not found");const{id:m,updates:i}=o,n=new URLSearchParams;n.append("projectPath",c.path);const u=await s(`${r}/commands/${encodeURIComponent(m)}?${n}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!u.ok){const j=await u.json();throw new Error(j.error||"Failed to update command")}return u.json()},$=async(e,o)=>{const t=await s(`${r}/agents/projects`);if(!t.ok)throw new Error("Failed to fetch project info");const c=(await t.json()).projects.find(n=>n.id===e);if(!c)throw new Error("Project not found");const m=new URLSearchParams;m.append("projectPath",c.path);const i=await s(`${r}/commands/${encodeURIComponent(o)}?${m}`,{method:"DELETE"});if(!i.ok){const n=await i.json();throw new Error(n.error||"Failed to delete command")}},T=e=>{const o=p();return d({mutationFn:t=>E(e,t),onSuccess:()=>{o.invalidateQueries({queryKey:["commands","project",e]})}})},K=e=>{const o=p();return d({mutationFn:t=>F(e,t),onSuccess:t=>{o.invalidateQueries({queryKey:["commands","project",e]}),o.setQueryData(["commands",t.id],t)}})},v=e=>{const o=p();return d({mutationFn:t=>$(e,t),onSuccess:(t,a)=>{o.invalidateQueries({queryKey:["commands","project",e]}),o.removeQueries({queryKey:["commands",a]})}})};export{Q as a,v as b,k as c,T as d,U as e,K as f,R as g,D as u};
@@ -1,3 +0,0 @@
1
- declare const app: import("express-serve-static-core").Express;
2
- export default app;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwBA,QAAA,MAAM,GAAG,6CAAY,CAAC;AA4ItB,eAAe,GAAG,CAAC"}
@@ -1,157 +0,0 @@
1
- import express from 'express';
2
- import cors from 'cors';
3
- import helmet from 'helmet';
4
- import dotenv from 'dotenv';
5
- import { fileURLToPath } from 'url';
6
- import { dirname, join } from 'path';
7
- import filesRouter from './routes/files.js';
8
- import agentsRouter from './routes/agents.js';
9
- import mcpRouter from './routes/mcp.js';
10
- import sessionsRouter from './routes/sessions.js';
11
- import mediaRouter from './routes/media.js';
12
- import settingsRouter from './routes/settings.js';
13
- import commandsRouter from './routes/commands.js';
14
- import subagentsRouter from './routes/subagents.js';
15
- import projectsRouter from './routes/projects.js';
16
- import authRouter from './routes/auth.js';
17
- import { authMiddleware } from './middleware/auth.js';
18
- dotenv.config();
19
- const __filename = fileURLToPath(import.meta.url);
20
- const __dirname = dirname(__filename);
21
- const app = express();
22
- const PORT = process.env.PORT || 4936;
23
- // Middleware
24
- app.use(helmet({
25
- contentSecurityPolicy: {
26
- directives: {
27
- defaultSrc: ["'self'"],
28
- scriptSrc: ["'self'", "'unsafe-inline'"],
29
- styleSrc: ["'self'", "'unsafe-inline'", "https://fonts.googleapis.com", "https://cdn.jsdelivr.net"],
30
- fontSrc: ["'self'", "https://fonts.gstatic.com", "https://cdn.jsdelivr.net"],
31
- imgSrc: ["'self'", "data:", "https:"],
32
- connectSrc: ["'self'", "ws:", "wss:"],
33
- frameAncestors: ["'self'", "http://localhost:3000", "https://localhost:3000", "http://localhost:3001"] // Allow iframe embedding
34
- }
35
- },
36
- // Disable problematic headers for non-HTTPS access
37
- crossOriginOpenerPolicy: false,
38
- originAgentCluster: false
39
- }));
40
- // Configure CORS origins
41
- const getAllowedOrigins = () => {
42
- const defaultOrigins = [
43
- 'http://localhost:3000',
44
- 'http://127.0.0.1:3000',
45
- 'http://localhost:3001',
46
- 'https://localhost:3000',
47
- 'https://localhost:3001'
48
- ];
49
- // Add custom origins from environment variable
50
- const customOrigins = process.env.CORS_ORIGINS ?
51
- process.env.CORS_ORIGINS.split(',').map(origin => origin.trim()) : [];
52
- return [...defaultOrigins, ...customOrigins];
53
- };
54
- app.use(cors({
55
- origin: (origin, callback) => {
56
- const allowedOrigins = getAllowedOrigins();
57
- // Allow requests with no origin (like mobile apps or curl requests)
58
- if (!origin)
59
- return callback(null, true);
60
- // Check if the origin is allowed
61
- if (allowedOrigins.includes(origin)) {
62
- return callback(null, true);
63
- }
64
- // Allow Vercel preview URLs (*.vercel.app)
65
- if (origin.endsWith('.vercel.app')) {
66
- return callback(null, true);
67
- }
68
- // Allow agentstudio.cc and its subdomains (*.agentstudio.cc) - hardcoded
69
- if (origin === 'https://agentstudio.cc' || origin.endsWith('.agentstudio.cc')) {
70
- return callback(null, true);
71
- }
72
- // Allow custom domains from environment variable (CORS_ALLOWED_DOMAINS)
73
- const customDomains = process.env.CORS_ALLOWED_DOMAINS ?
74
- process.env.CORS_ALLOWED_DOMAINS.split(',').map(domain => domain.trim()) : [];
75
- for (const domain of customDomains) {
76
- // Match exact domain (https://example.com)
77
- if (origin === `https://${domain}` || origin === `http://${domain}`) {
78
- return callback(null, true);
79
- }
80
- // Match subdomains (https://*.example.com)
81
- if (origin.endsWith(`.${domain}`)) {
82
- return callback(null, true);
83
- }
84
- }
85
- // Allow any localhost with any port for development
86
- if (origin.match(/^https?:\/\/localhost(:\d+)?$/)) {
87
- return callback(null, true);
88
- }
89
- // Allow 127.0.0.1 with any port for development
90
- if (origin.match(/^https?:\/\/127\.0\.0\.1(:\d+)?$/)) {
91
- return callback(null, true);
92
- }
93
- const msg = `The CORS policy for this site does not allow access from the specified Origin: ${origin}`;
94
- return callback(new Error(msg), false);
95
- },
96
- credentials: true,
97
- methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'PATCH'],
98
- allowedHeaders: ['Content-Type', 'Authorization', 'Cache-Control', 'X-Requested-With'],
99
- exposedHeaders: ['Content-Range', 'X-Content-Range']
100
- }));
101
- app.use(express.json({ limit: '10mb' }));
102
- app.use(express.urlencoded({ extended: true, limit: '10mb' }));
103
- // Static files - serve slides directory
104
- const slidesDir = join(__dirname, '../..', process.env.SLIDES_DIR || 'slides');
105
- app.use('/slides', express.static(slidesDir));
106
-
107
- // Serve frontend static files
108
- const frontendDir = join(__dirname, 'frontend');
109
- app.use(express.static(frontendDir, {
110
- index: 'index.html'
111
- }));
112
-
113
- // SPA fallback - serve index.html for all non-API routes
114
- app.get('*', (req, res, next) => {
115
- // Skip API routes and static assets
116
- if (req.path.startsWith('/api') || req.path.startsWith('/slides') || req.path.includes('.')) {
117
- return next();
118
- }
119
- res.sendFile(path.join(frontendDir, 'index.html'));
120
- });
121
- // Routes - Public routes
122
- app.use('/api/auth', authRouter);
123
- // Protected routes - Require authentication
124
- app.use('/api/files', authMiddleware, filesRouter);
125
- app.use('/api/agents', authMiddleware, agentsRouter);
126
- app.use('/api/mcp', authMiddleware, mcpRouter);
127
- app.use('/api/sessions', authMiddleware, sessionsRouter);
128
- app.use('/api/settings', authMiddleware, settingsRouter);
129
- app.use('/api/commands', authMiddleware, commandsRouter);
130
- app.use('/api/subagents', authMiddleware, subagentsRouter);
131
- app.use('/api/projects', authMiddleware, projectsRouter);
132
- app.use('/media', authMiddleware, mediaRouter);
133
- // Health check
134
- app.get('/api/health', (req, res) => {
135
- res.json({ status: 'ok', timestamp: new Date().toISOString() });
136
- });
137
- // Error handling
138
- app.use((err, req, res, next) => {
139
- console.error('Error:', err);
140
- res.status(500).json({
141
- error: 'Internal server error',
142
- message: process.env.NODE_ENV === 'development' ? err.message : 'Something went wrong'
143
- });
144
- });
145
- // 404 handler
146
- app.use('*', (req, res) => {
147
- res.status(404).json({ error: 'Route not found' });
148
- });
149
- // Check if this file is being run directly
150
- if (import.meta.url === `file://${process.argv[1]}`) {
151
- app.listen(PORT, () => {
152
- console.log(`AI PPT Editor backend running on http://localhost:${PORT}`);
153
- console.log(`Serving slides from: ${slidesDir}`);
154
- });
155
- }
156
- export default app;
157
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAkBpF"}
@@ -1,21 +0,0 @@
1
- import { verifyToken } from '../utils/jwt.js';
2
- /**
3
- * Middleware to authenticate requests using JWT token
4
- * Expects token in Authorization header as "Bearer <token>"
5
- */
6
- export function authMiddleware(req, res, next) {
7
- const authHeader = req.headers.authorization;
8
- if (!authHeader || !authHeader.startsWith('Bearer ')) {
9
- res.status(401).json({ error: 'Unauthorized: No token provided' });
10
- return;
11
- }
12
- const token = authHeader.substring(7); // Remove "Bearer " prefix
13
- const payload = verifyToken(token);
14
- if (!payload) {
15
- res.status(401).json({ error: 'Unauthorized: Invalid or expired token' });
16
- return;
17
- }
18
- // Token is valid, proceed to next middleware
19
- next();
20
- }
21
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;IAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;IAE7C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;IACjE,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,6CAA6C;IAC7C,IAAI,EAAE,CAAC;AACT,CAAC"}