agentstudio 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1370) hide show
  1. package/README.md +24 -176
  2. package/bin/agentstudio.d.ts +3 -0
  3. package/bin/agentstudio.d.ts.map +1 -0
  4. package/bin/agentstudio.js +427 -0
  5. package/bin/agentstudio.js.map +1 -0
  6. package/bin/serviceManager.d.ts +16 -0
  7. package/bin/serviceManager.d.ts.map +1 -0
  8. package/bin/serviceManager.js +434 -0
  9. package/bin/serviceManager.js.map +1 -0
  10. package/config/index.d.ts +74 -0
  11. package/config/index.d.ts.map +1 -0
  12. package/config/index.js +166 -0
  13. package/config/index.js.map +1 -0
  14. package/config/paths.d.ts +81 -0
  15. package/config/paths.d.ts.map +1 -0
  16. package/config/paths.js +98 -0
  17. package/config/paths.js.map +1 -0
  18. package/config/sdkConfig.d.ts +62 -0
  19. package/config/sdkConfig.d.ts.map +1 -0
  20. package/config/sdkConfig.js +157 -0
  21. package/config/sdkConfig.js.map +1 -0
  22. package/index.d.ts +4 -0
  23. package/index.d.ts.map +1 -0
  24. package/index.js +452 -0
  25. package/index.js.map +1 -0
  26. package/jobs/taskTimeoutMonitor.d.ts +25 -0
  27. package/jobs/taskTimeoutMonitor.d.ts.map +1 -0
  28. package/jobs/taskTimeoutMonitor.js +94 -0
  29. package/jobs/taskTimeoutMonitor.js.map +1 -0
  30. package/middleware/a2aAuth.d.ts +38 -0
  31. package/middleware/a2aAuth.d.ts.map +1 -0
  32. package/middleware/a2aAuth.js +134 -0
  33. package/middleware/a2aAuth.js.map +1 -0
  34. package/middleware/auth.d.ts +9 -0
  35. package/middleware/auth.d.ts.map +1 -0
  36. package/middleware/auth.js +35 -0
  37. package/middleware/auth.js.map +1 -0
  38. package/middleware/httpsOnly.d.ts +75 -0
  39. package/middleware/httpsOnly.d.ts.map +1 -0
  40. package/middleware/httpsOnly.js +189 -0
  41. package/middleware/httpsOnly.js.map +1 -0
  42. package/middleware/rateLimiting.d.ts +37 -0
  43. package/middleware/rateLimiting.d.ts.map +1 -0
  44. package/middleware/rateLimiting.js +118 -0
  45. package/middleware/rateLimiting.js.map +1 -0
  46. package/package.json +49 -38
  47. package/public/assets/AgentsPage-gSnkPp2k.js +10 -0
  48. package/public/assets/Button-BoiVlafj.js +1 -0
  49. package/public/assets/ChatPage-BMrfVkpt.js +471 -0
  50. package/public/assets/ChatPage-BvQmXfcP.css +1 -0
  51. package/public/assets/CommandForm-Se4iemMp.js +7 -0
  52. package/public/assets/CommandsPage-B6u4IO7L.js +1 -0
  53. package/public/assets/DashboardPage-DbCVzPKz.js +1 -0
  54. package/public/assets/FileBrowser-DcoBWzKK.js +6 -0
  55. package/public/assets/FileExplorer-B41BB0LM.js +1 -0
  56. package/public/assets/GeneralSettingsPage-BbEbWJUQ.js +1 -0
  57. package/public/assets/LandingPage-DFPm2d4Y.js +1 -0
  58. package/public/assets/LoginPage-D5kZJqhk.js +16 -0
  59. package/public/assets/McpAdminSettingsPage-D32iUEjH.js +7 -0
  60. package/public/assets/McpPage-QT4qs391.js +20 -0
  61. package/public/assets/MemorySettingsPage-DYSuz-hU.js +1 -0
  62. package/public/assets/PluginsPage-BotzuK9f.js +1 -0
  63. package/public/assets/ProjectSelector-DujNObqr.js +1 -0
  64. package/public/assets/ProjectsPage-CRWe6HPl.js +21 -0
  65. package/public/assets/ScheduledTasksPage-Beeurg-w.js +1 -0
  66. package/public/assets/SettingsLayout-BfkBUyI_.js +1 -0
  67. package/public/assets/SkillsPage-B59bAr6W.js +18 -0
  68. package/public/assets/SubagentForm-C0R084ja.js +7 -0
  69. package/public/assets/SubagentsPage-BKFNmqxg.js +1 -0
  70. package/public/assets/SystemInfoPage-D89s7PjE.js +1 -0
  71. package/public/assets/TelemetrySettingsPage-Ck2btMol.js +1 -0
  72. package/public/assets/ToastTestPage-B79DFhqI.js +1 -0
  73. package/public/assets/ToolsList-Kfxwp80g.js +1 -0
  74. package/public/assets/UnifiedToolSelector-CkafUbz3.js +1 -0
  75. package/public/assets/VersionSettingsPage-CaB4PH6h.js +5 -0
  76. package/public/assets/WebSocketTunnelPage-Cbru_-hL.js +1 -0
  77. package/public/assets/_basePickBy-5fAM04Ra.js +1 -0
  78. package/public/assets/_baseUniq-COj5YnAO.js +1 -0
  79. package/public/assets/agents-3mB536QF.js +1 -0
  80. package/public/assets/agents-DwCY2K8p.css +1 -0
  81. package/public/assets/arc-C2gTU2ZR.js +1 -0
  82. package/public/assets/architectureDiagram-VXUJARFQ-DD1BwT1T.js +36 -0
  83. package/public/assets/blockDiagram-VD42YOAC-DFKUIZc6.js +122 -0
  84. package/public/assets/c4Diagram-YG6GDRKO-B0VVIIvh.js +10 -0
  85. package/public/assets/channel-DcVTcy-S.js +1 -0
  86. package/public/assets/chunk-4BX2VUAB-DM8J7YO9.js +1 -0
  87. package/public/assets/chunk-55IACEB6-BjhdmGlM.js +1 -0
  88. package/public/assets/chunk-B4BG7PRW-1RJ6n2xv.js +165 -0
  89. package/public/assets/chunk-DI55MBZ5-1-EHSO67.js +220 -0
  90. package/public/assets/chunk-FMBD7UC4-DV3SMJK_.js +15 -0
  91. package/public/assets/chunk-QN33PNHL-IlsCTdDq.js +1 -0
  92. package/public/assets/chunk-QZHKN3VN-DJXs-Fqo.js +1 -0
  93. package/public/assets/chunk-TZMSLE5B-BxHO9wa1.js +1 -0
  94. package/public/assets/classDiagram-2ON5EDUG-BXVT6Q7h.js +1 -0
  95. package/public/assets/classDiagram-v2-WZHVMYZB-BXVT6Q7h.js +1 -0
  96. package/public/assets/clone-Bp6orjIq.js +1 -0
  97. package/public/assets/cose-bilkent-S5V4N54A-BVJXoW_K.js +1 -0
  98. package/public/assets/cytoscape.esm-DtBltrT8.js +331 -0
  99. package/public/assets/dagre-6UL2VRFP-DHDnVshA.js +4 -0
  100. package/public/assets/data-structures-ChC1tqVg.js +27 -0
  101. package/public/assets/dateFormat-CXa8VnEC.js +1 -0
  102. package/public/assets/defaultLocale-C4B-KCzX.js +1 -0
  103. package/public/assets/diagram-PSM6KHXK-40qGxDeg.js +24 -0
  104. package/public/assets/diagram-QEK2KX5R-BfMGeeRo.js +43 -0
  105. package/public/assets/diagram-S2PKOQOG-D7AX72a5.js +24 -0
  106. package/public/assets/erDiagram-Q2GNP2WA-BHsgeBpL.js +60 -0
  107. package/public/assets/flowDiagram-NV44I4VS-BYqChOSE.js +162 -0
  108. package/public/assets/ganttDiagram-LVOFAZNH-CZFFSLKX.js +267 -0
  109. package/public/assets/gitGraphDiagram-NY62KEGX-C5Bgrf0J.js +65 -0
  110. package/public/assets/graph-BP5lFRBg.js +1 -0
  111. package/public/assets/index-BEPv9Bqe.js +297 -0
  112. package/public/assets/index-BgR-BTTw.css +1 -0
  113. package/public/assets/infoDiagram-F6ZHWCRC-C6OApgqf.js +2 -0
  114. package/public/assets/init-Gi6I4Gst.js +1 -0
  115. package/public/assets/journeyDiagram-XKPGCS4Q--abC1RHz.js +139 -0
  116. package/public/assets/kanban-definition-3W4ZIXB7-BJeChfWu.js +89 -0
  117. package/public/assets/katex-qrhCpa0F.js +261 -0
  118. package/public/assets/layout-DjAix4WK.js +1 -0
  119. package/public/assets/linear-Cw0z8VNY.js +1 -0
  120. package/public/assets/mindmap-definition-VGOIOE7T-U_T9xIUk.js +68 -0
  121. package/public/assets/monaco-editor-BWfQfpij.js +19 -0
  122. package/public/assets/ordinal-Cboi1Yqb.js +1 -0
  123. package/public/assets/pieDiagram-ADFJNKIX-B0mT9OgH.js +30 -0
  124. package/public/assets/quadrantDiagram-AYHSOK5B-BWdlgO0u.js +7 -0
  125. package/public/assets/requirementDiagram-UZGBJVZJ-B-8LxsGB.js +64 -0
  126. package/public/assets/sankeyDiagram-TZEHDZUN-OXuxkgGA.js +10 -0
  127. package/public/assets/sequenceDiagram-WL72ISMW-Bt5twlzi.js +145 -0
  128. package/public/assets/stateDiagram-FKZM4ZOC-Dmph7TeW.js +1 -0
  129. package/public/assets/stateDiagram-v2-4FDKWEC3-DyE8O3Kx.js +1 -0
  130. package/public/assets/syntax-highlighting-DGbNjS3S.js +24 -0
  131. package/public/assets/table-DjMdAdjH.js +1 -0
  132. package/public/assets/timeline-definition-IT6M3QCI-CcV8nyIH.js +61 -0
  133. package/public/assets/tools-BAI9XHGS.js +1 -0
  134. package/public/assets/treemap-KMMF4GRG-DBuwkj4f.js +128 -0
  135. package/public/assets/ui-components-DaGtjl0g.js +646 -0
  136. package/public/assets/useAgents-D5EDAc_E.js +2 -0
  137. package/public/assets/useClaudeVersions-Cy71v4HE.js +1 -0
  138. package/public/assets/useCommands-BgoCfyuu.js +1 -0
  139. package/public/assets/useProjects-XgfgISgV.js +1 -0
  140. package/public/assets/useSessions-CQgq4d84.js +1 -0
  141. package/public/assets/xychartDiagram-PRI3JC2R-Bo9K-U2S.js +7 -0
  142. package/public/index.html +70 -0
  143. package/routes/__tests__/a2a.integration.test.d.ts +11 -0
  144. package/routes/__tests__/a2a.integration.test.d.ts.map +1 -0
  145. package/routes/__tests__/a2a.integration.test.js +314 -0
  146. package/routes/__tests__/a2a.integration.test.js.map +1 -0
  147. package/routes/__tests__/a2a.test.d.ts +6 -0
  148. package/routes/__tests__/a2a.test.d.ts.map +1 -0
  149. package/routes/__tests__/a2a.test.js +622 -0
  150. package/routes/__tests__/a2a.test.js.map +1 -0
  151. package/routes/__tests__/agents.test.d.ts +6 -0
  152. package/routes/__tests__/agents.test.d.ts.map +1 -0
  153. package/routes/__tests__/agents.test.js +315 -0
  154. package/routes/__tests__/agents.test.js.map +1 -0
  155. package/routes/__tests__/sessions.test.d.ts +7 -0
  156. package/routes/__tests__/sessions.test.d.ts.map +1 -0
  157. package/routes/__tests__/sessions.test.js +330 -0
  158. package/routes/__tests__/sessions.test.js.map +1 -0
  159. package/routes/a2a.d.ts +18 -0
  160. package/routes/a2a.d.ts.map +1 -0
  161. package/routes/a2a.js +718 -0
  162. package/routes/a2a.js.map +1 -0
  163. package/routes/a2a.streaming.test.d.ts +2 -0
  164. package/routes/a2a.streaming.test.d.ts.map +1 -0
  165. package/routes/a2a.streaming.test.js +167 -0
  166. package/routes/a2a.streaming.test.js.map +1 -0
  167. package/routes/a2aManagement.d.ts +21 -0
  168. package/routes/a2aManagement.d.ts.map +1 -0
  169. package/routes/a2aManagement.js +466 -0
  170. package/routes/a2aManagement.js.map +1 -0
  171. package/routes/agents.d.ts +4 -0
  172. package/routes/agents.d.ts.map +1 -0
  173. package/routes/agents.js +1026 -0
  174. package/routes/agents.js.map +1 -0
  175. package/routes/auth.d.ts +4 -0
  176. package/routes/auth.d.ts.map +1 -0
  177. package/routes/auth.js +135 -0
  178. package/routes/auth.js.map +1 -0
  179. package/routes/cloudflareTunnel.d.ts +4 -0
  180. package/routes/cloudflareTunnel.d.ts.map +1 -0
  181. package/routes/cloudflareTunnel.js +250 -0
  182. package/routes/cloudflareTunnel.js.map +1 -0
  183. package/routes/commands.d.ts +4 -0
  184. package/routes/commands.d.ts.map +1 -0
  185. package/routes/commands.js +481 -0
  186. package/routes/commands.js.map +1 -0
  187. package/routes/config.d.ts +4 -0
  188. package/routes/config.d.ts.map +1 -0
  189. package/routes/config.js +211 -0
  190. package/routes/config.js.map +1 -0
  191. package/routes/files.d.ts +4 -0
  192. package/routes/files.d.ts.map +1 -0
  193. package/routes/files.js +361 -0
  194. package/routes/files.js.map +1 -0
  195. package/routes/mcp.d.ts +26 -0
  196. package/routes/mcp.d.ts.map +1 -0
  197. package/routes/mcp.js +825 -0
  198. package/routes/mcp.js.map +1 -0
  199. package/routes/mcpAdmin.d.ts +16 -0
  200. package/routes/mcpAdmin.d.ts.map +1 -0
  201. package/routes/mcpAdmin.js +308 -0
  202. package/routes/mcpAdmin.js.map +1 -0
  203. package/routes/mcpAdminManagement.d.ts +17 -0
  204. package/routes/mcpAdminManagement.d.ts.map +1 -0
  205. package/routes/mcpAdminManagement.js +345 -0
  206. package/routes/mcpAdminManagement.js.map +1 -0
  207. package/routes/media.d.ts +5 -0
  208. package/routes/media.d.ts.map +1 -0
  209. package/routes/media.js +127 -0
  210. package/routes/media.js.map +1 -0
  211. package/routes/mediaAuth.d.ts +8 -0
  212. package/routes/mediaAuth.d.ts.map +1 -0
  213. package/routes/mediaAuth.js +136 -0
  214. package/routes/mediaAuth.js.map +1 -0
  215. package/routes/network.d.ts +9 -0
  216. package/routes/network.d.ts.map +1 -0
  217. package/routes/network.js +60 -0
  218. package/routes/network.js.map +1 -0
  219. package/routes/plugins.d.ts +4 -0
  220. package/routes/plugins.d.ts.map +1 -0
  221. package/routes/plugins.js +339 -0
  222. package/routes/plugins.js.map +1 -0
  223. package/routes/projects.d.ts +4 -0
  224. package/routes/projects.d.ts.map +1 -0
  225. package/routes/projects.js +1000 -0
  226. package/routes/projects.js.map +1 -0
  227. package/routes/scheduledTasks.d.ts +9 -0
  228. package/routes/scheduledTasks.d.ts.map +1 -0
  229. package/routes/scheduledTasks.js +386 -0
  230. package/routes/scheduledTasks.js.map +1 -0
  231. package/routes/sessions.d.ts +4 -0
  232. package/routes/sessions.d.ts.map +1 -0
  233. package/routes/sessions.js +966 -0
  234. package/routes/sessions.js.map +1 -0
  235. package/routes/settings.d.ts +4 -0
  236. package/routes/settings.d.ts.map +1 -0
  237. package/routes/settings.js +500 -0
  238. package/routes/settings.js.map +1 -0
  239. package/routes/skills.d.ts +4 -0
  240. package/routes/skills.d.ts.map +1 -0
  241. package/routes/skills.js +272 -0
  242. package/routes/skills.js.map +1 -0
  243. package/routes/slack.d.ts +10 -0
  244. package/routes/slack.d.ts.map +1 -0
  245. package/routes/slack.js +189 -0
  246. package/routes/slack.js.map +1 -0
  247. package/routes/slides.d.ts +4 -0
  248. package/routes/slides.d.ts.map +1 -0
  249. package/routes/slides.js +148 -0
  250. package/routes/slides.js.map +1 -0
  251. package/routes/subagents.d.ts +4 -0
  252. package/routes/subagents.d.ts.map +1 -0
  253. package/routes/subagents.js +333 -0
  254. package/routes/subagents.js.map +1 -0
  255. package/routes/taskExecutor.d.ts +9 -0
  256. package/routes/taskExecutor.d.ts.map +1 -0
  257. package/routes/taskExecutor.js +224 -0
  258. package/routes/taskExecutor.js.map +1 -0
  259. package/routes/tunnel.d.ts +10 -0
  260. package/routes/tunnel.d.ts.map +1 -0
  261. package/routes/tunnel.js +296 -0
  262. package/routes/tunnel.js.map +1 -0
  263. package/routes/version.d.ts +4 -0
  264. package/routes/version.d.ts.map +1 -0
  265. package/routes/version.js +222 -0
  266. package/routes/version.js.map +1 -0
  267. package/schemas/a2a.d.ts +946 -0
  268. package/schemas/a2a.d.ts.map +1 -0
  269. package/schemas/a2a.js +316 -0
  270. package/schemas/a2a.js.map +1 -0
  271. package/scripts/postinstall.js +10 -0
  272. package/services/__tests__/pluginInstaller.test.d.ts +5 -0
  273. package/services/__tests__/pluginInstaller.test.d.ts.map +1 -0
  274. package/services/__tests__/pluginInstaller.test.js +290 -0
  275. package/services/__tests__/pluginInstaller.test.js.map +1 -0
  276. package/services/__tests__/pluginParser.test.d.ts +5 -0
  277. package/services/__tests__/pluginParser.test.d.ts.map +1 -0
  278. package/services/__tests__/pluginParser.test.js +272 -0
  279. package/services/__tests__/pluginParser.test.js.map +1 -0
  280. package/services/__tests__/pluginPaths.test.d.ts +5 -0
  281. package/services/__tests__/pluginPaths.test.d.ts.map +1 -0
  282. package/services/__tests__/pluginPaths.test.js +221 -0
  283. package/services/__tests__/pluginPaths.test.js.map +1 -0
  284. package/services/__tests__/pluginScanner.test.d.ts +5 -0
  285. package/services/__tests__/pluginScanner.test.d.ts.map +1 -0
  286. package/services/__tests__/pluginScanner.test.js +272 -0
  287. package/services/__tests__/pluginScanner.test.js.map +1 -0
  288. package/services/__tests__/pluginSymlink.test.d.ts +5 -0
  289. package/services/__tests__/pluginSymlink.test.d.ts.map +1 -0
  290. package/services/__tests__/pluginSymlink.test.js +318 -0
  291. package/services/__tests__/pluginSymlink.test.js.map +1 -0
  292. package/services/__tests__/projectMetadataStorage.test.d.ts +5 -0
  293. package/services/__tests__/projectMetadataStorage.test.d.ts.map +1 -0
  294. package/services/__tests__/projectMetadataStorage.test.js +154 -0
  295. package/services/__tests__/projectMetadataStorage.test.js.map +1 -0
  296. package/services/__tests__/sessionConcurrency.test.d.ts +7 -0
  297. package/services/__tests__/sessionConcurrency.test.d.ts.map +1 -0
  298. package/services/__tests__/sessionConcurrency.test.js +110 -0
  299. package/services/__tests__/sessionConcurrency.test.js.map +1 -0
  300. package/services/__tests__/slackAIService.test.d.ts +5 -0
  301. package/services/__tests__/slackAIService.test.d.ts.map +1 -0
  302. package/services/__tests__/slackAIService.test.js +479 -0
  303. package/services/__tests__/slackAIService.test.js.map +1 -0
  304. package/services/__tests__/slackThreadMapper.test.d.ts +5 -0
  305. package/services/__tests__/slackThreadMapper.test.d.ts.map +1 -0
  306. package/services/__tests__/slackThreadMapper.test.js +194 -0
  307. package/services/__tests__/slackThreadMapper.test.js.map +1 -0
  308. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts +6 -0
  309. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts.map +1 -0
  310. package/services/a2a/__tests__/a2aClientTool.integration.test.js +264 -0
  311. package/services/a2a/__tests__/a2aClientTool.integration.test.js.map +1 -0
  312. package/services/a2a/__tests__/a2aClientTool.test.d.ts +6 -0
  313. package/services/a2a/__tests__/a2aClientTool.test.d.ts.map +1 -0
  314. package/services/a2a/__tests__/a2aClientTool.test.js +592 -0
  315. package/services/a2a/__tests__/a2aClientTool.test.js.map +1 -0
  316. package/services/a2a/__tests__/a2aConfigService.test.d.ts +6 -0
  317. package/services/a2a/__tests__/a2aConfigService.test.d.ts.map +1 -0
  318. package/services/a2a/__tests__/a2aConfigService.test.js +431 -0
  319. package/services/a2a/__tests__/a2aConfigService.test.js.map +1 -0
  320. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts +2 -0
  321. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts.map +1 -0
  322. package/services/a2a/__tests__/a2aConfigServicePath.test.js +49 -0
  323. package/services/a2a/__tests__/a2aConfigServicePath.test.js.map +1 -0
  324. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts +10 -0
  325. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts.map +1 -0
  326. package/services/a2a/__tests__/a2aSdkMcp.test.js +239 -0
  327. package/services/a2a/__tests__/a2aSdkMcp.test.js.map +1 -0
  328. package/services/a2a/__tests__/agentCardService.test.d.ts +6 -0
  329. package/services/a2a/__tests__/agentCardService.test.d.ts.map +1 -0
  330. package/services/a2a/__tests__/agentCardService.test.js +292 -0
  331. package/services/a2a/__tests__/agentCardService.test.js.map +1 -0
  332. package/services/a2a/__tests__/apiKeyService.test.d.ts +6 -0
  333. package/services/a2a/__tests__/apiKeyService.test.d.ts.map +1 -0
  334. package/services/a2a/__tests__/apiKeyService.test.js +284 -0
  335. package/services/a2a/__tests__/apiKeyService.test.js.map +1 -0
  336. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts +2 -0
  337. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts.map +1 -0
  338. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js +70 -0
  339. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js.map +1 -0
  340. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts +2 -0
  341. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts.map +1 -0
  342. package/services/a2a/__tests__/dynamic_config_verification.test.js +67 -0
  343. package/services/a2a/__tests__/dynamic_config_verification.test.js.map +1 -0
  344. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts +2 -0
  345. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts.map +1 -0
  346. package/services/a2a/__tests__/integrateA2AMcpServer.test.js +112 -0
  347. package/services/a2a/__tests__/integrateA2AMcpServer.test.js.map +1 -0
  348. package/services/a2a/__tests__/taskManager.integration.test.d.ts +7 -0
  349. package/services/a2a/__tests__/taskManager.integration.test.d.ts.map +1 -0
  350. package/services/a2a/__tests__/taskManager.integration.test.js +346 -0
  351. package/services/a2a/__tests__/taskManager.integration.test.js.map +1 -0
  352. package/services/a2a/__tests__/taskManager.test.d.ts +7 -0
  353. package/services/a2a/__tests__/taskManager.test.d.ts.map +1 -0
  354. package/services/a2a/__tests__/taskManager.test.js +423 -0
  355. package/services/a2a/__tests__/taskManager.test.js.map +1 -0
  356. package/services/a2a/__tests__/webhookService.test.d.ts +6 -0
  357. package/services/a2a/__tests__/webhookService.test.d.ts.map +1 -0
  358. package/services/a2a/__tests__/webhookService.test.js +196 -0
  359. package/services/a2a/__tests__/webhookService.test.js.map +1 -0
  360. package/services/a2a/a2aClientTool.d.ts +73 -0
  361. package/services/a2a/a2aClientTool.d.ts.map +1 -0
  362. package/services/a2a/a2aClientTool.js +595 -0
  363. package/services/a2a/a2aClientTool.js.map +1 -0
  364. package/services/a2a/a2aConfigService.d.ts +50 -0
  365. package/services/a2a/a2aConfigService.d.ts.map +1 -0
  366. package/services/a2a/a2aConfigService.js +187 -0
  367. package/services/a2a/a2aConfigService.js.map +1 -0
  368. package/services/a2a/a2aHistoryService.d.ts +32 -0
  369. package/services/a2a/a2aHistoryService.d.ts.map +1 -0
  370. package/services/a2a/a2aHistoryService.js +108 -0
  371. package/services/a2a/a2aHistoryService.js.map +1 -0
  372. package/services/a2a/a2aIntegration.d.ts +10 -0
  373. package/services/a2a/a2aIntegration.d.ts.map +1 -0
  374. package/services/a2a/a2aIntegration.js +42 -0
  375. package/services/a2a/a2aIntegration.js.map +1 -0
  376. package/services/a2a/a2aQueryService.d.ts +71 -0
  377. package/services/a2a/a2aQueryService.d.ts.map +1 -0
  378. package/services/a2a/a2aQueryService.js +209 -0
  379. package/services/a2a/a2aQueryService.js.map +1 -0
  380. package/services/a2a/a2aSdkMcp.d.ts +52 -0
  381. package/services/a2a/a2aSdkMcp.d.ts.map +1 -0
  382. package/services/a2a/a2aSdkMcp.js +188 -0
  383. package/services/a2a/a2aSdkMcp.js.map +1 -0
  384. package/services/a2a/a2aStreamEvents.d.ts +94 -0
  385. package/services/a2a/a2aStreamEvents.d.ts.map +1 -0
  386. package/services/a2a/a2aStreamEvents.js +92 -0
  387. package/services/a2a/a2aStreamEvents.js.map +1 -0
  388. package/services/a2a/agentCardService.d.ts +34 -0
  389. package/services/a2a/agentCardService.d.ts.map +1 -0
  390. package/services/a2a/agentCardService.js +228 -0
  391. package/services/a2a/agentCardService.js.map +1 -0
  392. package/services/a2a/agentMappingService.d.ts +53 -0
  393. package/services/a2a/agentMappingService.d.ts.map +1 -0
  394. package/services/a2a/agentMappingService.js +185 -0
  395. package/services/a2a/agentMappingService.js.map +1 -0
  396. package/services/a2a/apiKeyService.d.ts +101 -0
  397. package/services/a2a/apiKeyService.d.ts.map +1 -0
  398. package/services/a2a/apiKeyService.js +314 -0
  399. package/services/a2a/apiKeyService.js.map +1 -0
  400. package/services/a2a/taskCleanup.d.ts +30 -0
  401. package/services/a2a/taskCleanup.d.ts.map +1 -0
  402. package/services/a2a/taskCleanup.js +184 -0
  403. package/services/a2a/taskCleanup.js.map +1 -0
  404. package/services/a2a/taskManager.d.ts +87 -0
  405. package/services/a2a/taskManager.d.ts.map +1 -0
  406. package/services/a2a/taskManager.js +265 -0
  407. package/services/a2a/taskManager.js.map +1 -0
  408. package/services/a2a/webhookService.d.ts +30 -0
  409. package/services/a2a/webhookService.d.ts.map +1 -0
  410. package/services/a2a/webhookService.js +113 -0
  411. package/services/a2a/webhookService.js.map +1 -0
  412. package/services/agentStorage.d.ts +27 -0
  413. package/services/agentStorage.d.ts.map +1 -0
  414. package/services/agentStorage.js +487 -0
  415. package/services/agentStorage.js.map +1 -0
  416. package/services/askUserQuestion/askUserQuestionIntegration.d.ts +24 -0
  417. package/services/askUserQuestion/askUserQuestionIntegration.d.ts.map +1 -0
  418. package/services/askUserQuestion/askUserQuestionIntegration.js +52 -0
  419. package/services/askUserQuestion/askUserQuestionIntegration.js.map +1 -0
  420. package/services/askUserQuestion/askUserQuestionMcp.d.ts +103 -0
  421. package/services/askUserQuestion/askUserQuestionMcp.d.ts.map +1 -0
  422. package/services/askUserQuestion/askUserQuestionMcp.js +129 -0
  423. package/services/askUserQuestion/askUserQuestionMcp.js.map +1 -0
  424. package/services/askUserQuestion/index.d.ts +13 -0
  425. package/services/askUserQuestion/index.d.ts.map +1 -0
  426. package/services/askUserQuestion/index.js +35 -0
  427. package/services/askUserQuestion/index.js.map +1 -0
  428. package/services/askUserQuestion/init.d.ts +17 -0
  429. package/services/askUserQuestion/init.d.ts.map +1 -0
  430. package/services/askUserQuestion/init.js +47 -0
  431. package/services/askUserQuestion/init.js.map +1 -0
  432. package/services/askUserQuestion/notificationChannel.d.ts +97 -0
  433. package/services/askUserQuestion/notificationChannel.d.ts.map +1 -0
  434. package/services/askUserQuestion/notificationChannel.js +147 -0
  435. package/services/askUserQuestion/notificationChannel.js.map +1 -0
  436. package/services/askUserQuestion/slackNotificationChannel.d.ts +35 -0
  437. package/services/askUserQuestion/slackNotificationChannel.d.ts.map +1 -0
  438. package/services/askUserQuestion/slackNotificationChannel.js +129 -0
  439. package/services/askUserQuestion/slackNotificationChannel.js.map +1 -0
  440. package/services/askUserQuestion/sseNotificationChannel.d.ts +36 -0
  441. package/services/askUserQuestion/sseNotificationChannel.d.ts.map +1 -0
  442. package/services/askUserQuestion/sseNotificationChannel.js +88 -0
  443. package/services/askUserQuestion/sseNotificationChannel.js.map +1 -0
  444. package/services/askUserQuestion/userInputRegistry.d.ts +107 -0
  445. package/services/askUserQuestion/userInputRegistry.d.ts.map +1 -0
  446. package/services/askUserQuestion/userInputRegistry.js +253 -0
  447. package/services/askUserQuestion/userInputRegistry.js.map +1 -0
  448. package/services/claudeSession.d.ts +113 -0
  449. package/services/claudeSession.d.ts.map +1 -0
  450. package/services/claudeSession.js +375 -0
  451. package/services/claudeSession.js.map +1 -0
  452. package/services/claudeVersionStorage.d.ts +20 -0
  453. package/services/claudeVersionStorage.d.ts.map +1 -0
  454. package/services/claudeVersionStorage.js +331 -0
  455. package/services/claudeVersionStorage.js.map +1 -0
  456. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts +5 -0
  457. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts.map +1 -0
  458. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js +289 -0
  459. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js.map +1 -0
  460. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts +5 -0
  461. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts.map +1 -0
  462. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js +345 -0
  463. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js.map +1 -0
  464. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts +5 -0
  465. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts.map +1 -0
  466. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js +453 -0
  467. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js.map +1 -0
  468. package/services/mcpAdmin/__tests__/providerTools.test.d.ts +7 -0
  469. package/services/mcpAdmin/__tests__/providerTools.test.d.ts.map +1 -0
  470. package/services/mcpAdmin/__tests__/providerTools.test.js +258 -0
  471. package/services/mcpAdmin/__tests__/providerTools.test.js.map +1 -0
  472. package/services/mcpAdmin/__tests__/tools.test.d.ts +5 -0
  473. package/services/mcpAdmin/__tests__/tools.test.d.ts.map +1 -0
  474. package/services/mcpAdmin/__tests__/tools.test.js +389 -0
  475. package/services/mcpAdmin/__tests__/tools.test.js.map +1 -0
  476. package/services/mcpAdmin/adminApiKeyService.d.ts +61 -0
  477. package/services/mcpAdmin/adminApiKeyService.d.ts.map +1 -0
  478. package/services/mcpAdmin/adminApiKeyService.js +270 -0
  479. package/services/mcpAdmin/adminApiKeyService.js.map +1 -0
  480. package/services/mcpAdmin/index.d.ts +10 -0
  481. package/services/mcpAdmin/index.d.ts.map +1 -0
  482. package/services/mcpAdmin/index.js +43 -0
  483. package/services/mcpAdmin/index.js.map +1 -0
  484. package/services/mcpAdmin/mcpAdminServer.d.ts +76 -0
  485. package/services/mcpAdmin/mcpAdminServer.d.ts.map +1 -0
  486. package/services/mcpAdmin/mcpAdminServer.js +243 -0
  487. package/services/mcpAdmin/mcpAdminServer.js.map +1 -0
  488. package/services/mcpAdmin/tools/agentTools.d.ts +27 -0
  489. package/services/mcpAdmin/tools/agentTools.d.ts.map +1 -0
  490. package/services/mcpAdmin/tools/agentTools.js +352 -0
  491. package/services/mcpAdmin/tools/agentTools.js.map +1 -0
  492. package/services/mcpAdmin/tools/index.d.ts +16 -0
  493. package/services/mcpAdmin/tools/index.d.ts.map +1 -0
  494. package/services/mcpAdmin/tools/index.js +34 -0
  495. package/services/mcpAdmin/tools/index.js.map +1 -0
  496. package/services/mcpAdmin/tools/mcpServerTools.d.ts +27 -0
  497. package/services/mcpAdmin/tools/mcpServerTools.d.ts.map +1 -0
  498. package/services/mcpAdmin/tools/mcpServerTools.js +334 -0
  499. package/services/mcpAdmin/tools/mcpServerTools.js.map +1 -0
  500. package/services/mcpAdmin/tools/projectTools.d.ts +27 -0
  501. package/services/mcpAdmin/tools/projectTools.d.ts.map +1 -0
  502. package/services/mcpAdmin/tools/projectTools.js +382 -0
  503. package/services/mcpAdmin/tools/projectTools.js.map +1 -0
  504. package/services/mcpAdmin/tools/providerTools.d.ts +40 -0
  505. package/services/mcpAdmin/tools/providerTools.d.ts.map +1 -0
  506. package/services/mcpAdmin/tools/providerTools.js +581 -0
  507. package/services/mcpAdmin/tools/providerTools.js.map +1 -0
  508. package/services/mcpAdmin/tools/systemTools.d.ts +23 -0
  509. package/services/mcpAdmin/tools/systemTools.d.ts.map +1 -0
  510. package/services/mcpAdmin/tools/systemTools.js +241 -0
  511. package/services/mcpAdmin/tools/systemTools.js.map +1 -0
  512. package/services/mcpAdmin/types.d.ts +124 -0
  513. package/services/mcpAdmin/types.d.ts.map +1 -0
  514. package/services/mcpAdmin/types.js +18 -0
  515. package/services/mcpAdmin/types.js.map +1 -0
  516. package/services/messageQueue.d.ts +31 -0
  517. package/services/messageQueue.d.ts.map +1 -0
  518. package/services/messageQueue.js +80 -0
  519. package/services/messageQueue.js.map +1 -0
  520. package/services/pluginInstaller.d.ts +58 -0
  521. package/services/pluginInstaller.d.ts.map +1 -0
  522. package/services/pluginInstaller.js +321 -0
  523. package/services/pluginInstaller.js.map +1 -0
  524. package/services/pluginParser.d.ts +45 -0
  525. package/services/pluginParser.d.ts.map +1 -0
  526. package/services/pluginParser.js +437 -0
  527. package/services/pluginParser.js.map +1 -0
  528. package/services/pluginPaths.d.ts +83 -0
  529. package/services/pluginPaths.d.ts.map +1 -0
  530. package/services/pluginPaths.js +277 -0
  531. package/services/pluginPaths.js.map +1 -0
  532. package/services/pluginScanner.d.ts +36 -0
  533. package/services/pluginScanner.d.ts.map +1 -0
  534. package/services/pluginScanner.js +251 -0
  535. package/services/pluginScanner.js.map +1 -0
  536. package/services/pluginSymlink.d.ts +54 -0
  537. package/services/pluginSymlink.d.ts.map +1 -0
  538. package/services/pluginSymlink.js +223 -0
  539. package/services/pluginSymlink.js.map +1 -0
  540. package/services/projectMetadataStorage.d.ts +121 -0
  541. package/services/projectMetadataStorage.d.ts.map +1 -0
  542. package/services/projectMetadataStorage.js +810 -0
  543. package/services/projectMetadataStorage.js.map +1 -0
  544. package/services/scheduledTaskStorage.d.ts +63 -0
  545. package/services/scheduledTaskStorage.d.ts.map +1 -0
  546. package/services/scheduledTaskStorage.js +351 -0
  547. package/services/scheduledTaskStorage.js.map +1 -0
  548. package/services/schedulerService.d.ts +91 -0
  549. package/services/schedulerService.d.ts.map +1 -0
  550. package/services/schedulerService.js +590 -0
  551. package/services/schedulerService.js.map +1 -0
  552. package/services/sessionManager.d.ts +176 -0
  553. package/services/sessionManager.d.ts.map +1 -0
  554. package/services/sessionManager.js +646 -0
  555. package/services/sessionManager.js.map +1 -0
  556. package/services/skillStorage.d.ts +60 -0
  557. package/services/skillStorage.d.ts.map +1 -0
  558. package/services/skillStorage.js +399 -0
  559. package/services/skillStorage.js.map +1 -0
  560. package/services/slackAIService.d.ts +81 -0
  561. package/services/slackAIService.d.ts.map +1 -0
  562. package/services/slackAIService.js +1137 -0
  563. package/services/slackAIService.js.map +1 -0
  564. package/services/slackClient.d.ts +46 -0
  565. package/services/slackClient.d.ts.map +1 -0
  566. package/services/slackClient.js +85 -0
  567. package/services/slackClient.js.map +1 -0
  568. package/services/slackSessionLock.d.ts +79 -0
  569. package/services/slackSessionLock.d.ts.map +1 -0
  570. package/services/slackSessionLock.js +353 -0
  571. package/services/slackSessionLock.js.map +1 -0
  572. package/services/slackThreadMapper.d.ts +57 -0
  573. package/services/slackThreadMapper.d.ts.map +1 -0
  574. package/services/slackThreadMapper.js +140 -0
  575. package/services/slackThreadMapper.js.map +1 -0
  576. package/services/taskExecutor/BuiltinExecutor.d.ts +44 -0
  577. package/services/taskExecutor/BuiltinExecutor.d.ts.map +1 -0
  578. package/services/taskExecutor/BuiltinExecutor.js +513 -0
  579. package/services/taskExecutor/BuiltinExecutor.js.map +1 -0
  580. package/services/taskExecutor/__tests__/a2a-tasks.test.d.ts +7 -0
  581. package/services/taskExecutor/__tests__/a2a-tasks.test.d.ts.map +1 -0
  582. package/services/taskExecutor/__tests__/a2a-tasks.test.js +328 -0
  583. package/services/taskExecutor/__tests__/a2a-tasks.test.js.map +1 -0
  584. package/services/taskExecutor/__tests__/e2e-workflows.test.d.ts +7 -0
  585. package/services/taskExecutor/__tests__/e2e-workflows.test.d.ts.map +1 -0
  586. package/services/taskExecutor/__tests__/e2e-workflows.test.js +446 -0
  587. package/services/taskExecutor/__tests__/e2e-workflows.test.js.map +1 -0
  588. package/services/taskExecutor/__tests__/error-handling.test.d.ts +7 -0
  589. package/services/taskExecutor/__tests__/error-handling.test.d.ts.map +1 -0
  590. package/services/taskExecutor/__tests__/error-handling.test.js +387 -0
  591. package/services/taskExecutor/__tests__/error-handling.test.js.map +1 -0
  592. package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts +8 -0
  593. package/services/taskExecutor/__tests__/mcp-tools-integration.test.d.ts.map +1 -0
  594. package/services/taskExecutor/__tests__/mcp-tools-integration.test.js +86 -0
  595. package/services/taskExecutor/__tests__/mcp-tools-integration.test.js.map +1 -0
  596. package/services/taskExecutor/__tests__/stress.test.d.ts +7 -0
  597. package/services/taskExecutor/__tests__/stress.test.d.ts.map +1 -0
  598. package/services/taskExecutor/__tests__/stress.test.js +329 -0
  599. package/services/taskExecutor/__tests__/stress.test.js.map +1 -0
  600. package/services/taskExecutor/__tests__/taskExecutor.integration.test.d.ts +7 -0
  601. package/services/taskExecutor/__tests__/taskExecutor.integration.test.d.ts.map +1 -0
  602. package/services/taskExecutor/__tests__/taskExecutor.integration.test.js +205 -0
  603. package/services/taskExecutor/__tests__/taskExecutor.integration.test.js.map +1 -0
  604. package/services/taskExecutor/__tests__/timeout-cancellation.test.d.ts +7 -0
  605. package/services/taskExecutor/__tests__/timeout-cancellation.test.d.ts.map +1 -0
  606. package/services/taskExecutor/__tests__/timeout-cancellation.test.js +319 -0
  607. package/services/taskExecutor/__tests__/timeout-cancellation.test.js.map +1 -0
  608. package/services/taskExecutor/index.d.ts +40 -0
  609. package/services/taskExecutor/index.d.ts.map +1 -0
  610. package/services/taskExecutor/index.js +166 -0
  611. package/services/taskExecutor/index.js.map +1 -0
  612. package/services/taskExecutor/taskWorker.d.ts +11 -0
  613. package/services/taskExecutor/taskWorker.d.ts.map +1 -0
  614. package/services/taskExecutor/taskWorker.js +171 -0
  615. package/services/taskExecutor/taskWorker.js.map +1 -0
  616. package/services/taskExecutor/types.d.ts +145 -0
  617. package/services/taskExecutor/types.d.ts.map +1 -0
  618. package/services/taskExecutor/types.js +9 -0
  619. package/services/taskExecutor/types.js.map +1 -0
  620. package/services/telemetry.d.ts +40 -0
  621. package/services/telemetry.d.ts.map +1 -0
  622. package/services/telemetry.js +245 -0
  623. package/services/telemetry.js.map +1 -0
  624. package/services/tunnelService.d.ts +165 -0
  625. package/services/tunnelService.d.ts.map +1 -0
  626. package/services/tunnelService.js +493 -0
  627. package/services/tunnelService.js.map +1 -0
  628. package/types/a2a.d.ts +293 -0
  629. package/types/a2a.d.ts.map +1 -0
  630. package/types/a2a.js +23 -0
  631. package/types/a2a.js.map +1 -0
  632. package/types/agents.d.ts +94 -0
  633. package/types/agents.d.ts.map +1 -0
  634. package/types/agents.js +45 -0
  635. package/types/agents.js.map +1 -0
  636. package/types/claude-history.d.ts +62 -0
  637. package/types/claude-history.d.ts.map +1 -0
  638. package/types/claude-history.js +4 -0
  639. package/types/claude-history.js.map +1 -0
  640. package/types/claude-versions.d.ts +36 -0
  641. package/types/claude-versions.d.ts.map +1 -0
  642. package/types/claude-versions.js +3 -0
  643. package/types/claude-versions.js.map +1 -0
  644. package/types/commands.d.ts +50 -0
  645. package/types/commands.d.ts.map +1 -0
  646. package/types/commands.js +23 -0
  647. package/types/commands.js.map +1 -0
  648. package/types/plugins.d.ts +144 -0
  649. package/types/plugins.d.ts.map +1 -0
  650. package/types/plugins.js +8 -0
  651. package/types/plugins.js.map +1 -0
  652. package/types/projects.d.ts +46 -0
  653. package/types/projects.d.ts.map +1 -0
  654. package/types/projects.js +4 -0
  655. package/types/projects.js.map +1 -0
  656. package/types/scheduledTasks.d.ts +168 -0
  657. package/types/scheduledTasks.d.ts.map +1 -0
  658. package/types/scheduledTasks.js +17 -0
  659. package/types/scheduledTasks.js.map +1 -0
  660. package/types/skills.d.ts +91 -0
  661. package/types/skills.d.ts.map +1 -0
  662. package/types/skills.js +6 -0
  663. package/types/skills.js.map +1 -0
  664. package/types/slack.d.ts +97 -0
  665. package/types/slack.d.ts.map +1 -0
  666. package/types/slack.js +8 -0
  667. package/types/slack.js.map +1 -0
  668. package/types/streaming.d.ts +12 -0
  669. package/types/streaming.d.ts.map +1 -0
  670. package/types/streaming.js +8 -0
  671. package/types/streaming.js.map +1 -0
  672. package/types/subagents.d.ts +26 -0
  673. package/types/subagents.d.ts.map +1 -0
  674. package/types/subagents.js +3 -0
  675. package/types/subagents.js.map +1 -0
  676. package/utils/__tests__/claudeUtils.test.d.ts +5 -0
  677. package/utils/__tests__/claudeUtils.test.d.ts.map +1 -0
  678. package/utils/__tests__/claudeUtils.test.js +366 -0
  679. package/utils/__tests__/claudeUtils.test.js.map +1 -0
  680. package/utils/__tests__/configResolver.test.d.ts +7 -0
  681. package/utils/__tests__/configResolver.test.d.ts.map +1 -0
  682. package/utils/__tests__/configResolver.test.js +211 -0
  683. package/utils/__tests__/configResolver.test.js.map +1 -0
  684. package/utils/__tests__/sessionUtils.test.d.ts +5 -0
  685. package/utils/__tests__/sessionUtils.test.d.ts.map +1 -0
  686. package/utils/__tests__/sessionUtils.test.js +296 -0
  687. package/utils/__tests__/sessionUtils.test.js.map +1 -0
  688. package/utils/agentCardCache.d.ts +93 -0
  689. package/utils/agentCardCache.d.ts.map +1 -0
  690. package/utils/agentCardCache.js +212 -0
  691. package/utils/agentCardCache.js.map +1 -0
  692. package/utils/claudeUtils.d.ts +55 -0
  693. package/utils/claudeUtils.d.ts.map +1 -0
  694. package/utils/claudeUtils.js +385 -0
  695. package/utils/claudeUtils.js.map +1 -0
  696. package/utils/configResolver.d.ts +57 -0
  697. package/utils/configResolver.d.ts.map +1 -0
  698. package/utils/configResolver.js +130 -0
  699. package/utils/configResolver.js.map +1 -0
  700. package/utils/fileUtils.d.ts +2 -0
  701. package/utils/fileUtils.d.ts.map +1 -0
  702. package/utils/fileUtils.js +11 -0
  703. package/utils/fileUtils.js.map +1 -0
  704. package/utils/jwt.d.ts +30 -0
  705. package/utils/jwt.d.ts.map +1 -0
  706. package/utils/jwt.js +95 -0
  707. package/utils/jwt.js.map +1 -0
  708. package/utils/networkUtils.d.ts +25 -0
  709. package/utils/networkUtils.d.ts.map +1 -0
  710. package/utils/networkUtils.js +65 -0
  711. package/utils/networkUtils.js.map +1 -0
  712. package/utils/sessionUtils.d.ts +67 -0
  713. package/utils/sessionUtils.d.ts.map +1 -0
  714. package/utils/sessionUtils.js +296 -0
  715. package/utils/sessionUtils.js.map +1 -0
  716. package/.dockerignore +0 -53
  717. package/.mcp.json +0 -8
  718. package/CLAUDE.md +0 -359
  719. package/DOCKER.md +0 -270
  720. package/Dockerfile +0 -42
  721. package/JSONL_TOOLS_README.md +0 -301
  722. package/LICENSE +0 -603
  723. package/QUICKSTART.md +0 -253
  724. package/README.zh-CN.md +0 -200
  725. package/SOLUTION_SUMMARY.md +0 -249
  726. package/backend/comprehensive-session-check.js +0 -142
  727. package/backend/debug-sessions.js +0 -60
  728. package/backend/docs/chat-clean-1.svg +0 -1
  729. package/backend/docs/chat-clean.md +0 -60
  730. package/backend/docs/chat-comprehensive-1.svg +0 -1
  731. package/backend/docs/chat-comprehensive.md +0 -166
  732. package/backend/docs/chat_api_sequence_diagram.md +0 -58
  733. package/backend/docs/command-detection-logic.md +0 -306
  734. package/backend/docs/command-detection-sequence.md +0 -186
  735. package/backend/eslint.config.js +0 -25
  736. package/backend/package.json +0 -103
  737. package/backend/scripts/README.md +0 -156
  738. package/backend/scripts/fix-project-names.js +0 -113
  739. package/backend/scripts/migrate-projects.js +0 -159
  740. package/backend/src/bin/agentstudio.ts +0 -318
  741. package/backend/src/bin/serviceManager.ts +0 -469
  742. package/backend/src/config/index.ts +0 -184
  743. package/backend/src/config/paths.ts +0 -105
  744. package/backend/src/config/sdkConfig.ts +0 -126
  745. package/backend/src/index.ts +0 -434
  746. package/backend/src/jobs/taskTimeoutMonitor.ts +0 -106
  747. package/backend/src/middleware/a2aAuth.ts +0 -159
  748. package/backend/src/middleware/auth.ts +0 -39
  749. package/backend/src/middleware/httpsOnly.ts +0 -205
  750. package/backend/src/middleware/rateLimiting.ts +0 -130
  751. package/backend/src/routes/__tests__/a2a.integration.test.ts +0 -377
  752. package/backend/src/routes/__tests__/a2a.test.ts +0 -677
  753. package/backend/src/routes/__tests__/agents.test.ts +0 -327
  754. package/backend/src/routes/__tests__/sessions.test.ts +0 -345
  755. package/backend/src/routes/a2a.streaming.test.ts +0 -185
  756. package/backend/src/routes/a2a.ts +0 -840
  757. package/backend/src/routes/a2aManagement.ts +0 -545
  758. package/backend/src/routes/agents.ts +0 -1176
  759. package/backend/src/routes/auth.ts +0 -151
  760. package/backend/src/routes/cloudflareTunnel.ts +0 -306
  761. package/backend/src/routes/commands.ts +0 -524
  762. package/backend/src/routes/config.ts +0 -193
  763. package/backend/src/routes/files.ts +0 -375
  764. package/backend/src/routes/mcp.ts +0 -866
  765. package/backend/src/routes/mcpAdmin.ts +0 -369
  766. package/backend/src/routes/mcpAdminManagement.ts +0 -338
  767. package/backend/src/routes/media.ts +0 -140
  768. package/backend/src/routes/mediaAuth.ts +0 -150
  769. package/backend/src/routes/network.ts +0 -68
  770. package/backend/src/routes/plugins.ts +0 -368
  771. package/backend/src/routes/projects.ts +0 -1100
  772. package/backend/src/routes/scheduledTasks.ts +0 -442
  773. package/backend/src/routes/sessions.ts +0 -1054
  774. package/backend/src/routes/settings.ts +0 -552
  775. package/backend/src/routes/skills.ts +0 -319
  776. package/backend/src/routes/slack.ts +0 -193
  777. package/backend/src/routes/slides.ts +0 -166
  778. package/backend/src/routes/subagents.ts +0 -366
  779. package/backend/src/routes/taskExecutor.ts +0 -243
  780. package/backend/src/routes/tunnel.ts +0 -317
  781. package/backend/src/routes/version.ts +0 -239
  782. package/backend/src/schemas/a2a.ts +0 -352
  783. package/backend/src/services/__tests__/pluginInstaller.test.ts +0 -316
  784. package/backend/src/services/__tests__/pluginParser.test.ts +0 -285
  785. package/backend/src/services/__tests__/pluginPaths.test.ts +0 -212
  786. package/backend/src/services/__tests__/pluginScanner.test.ts +0 -287
  787. package/backend/src/services/__tests__/pluginSymlink.test.ts +0 -340
  788. package/backend/src/services/__tests__/projectMetadataStorage.test.ts +0 -158
  789. package/backend/src/services/__tests__/sessionConcurrency.test.ts +0 -132
  790. package/backend/src/services/__tests__/slackAIService.test.ts +0 -561
  791. package/backend/src/services/__tests__/slackThreadMapper.test.ts +0 -228
  792. package/backend/src/services/a2a/__tests__/a2aClientTool.integration.test.ts +0 -347
  793. package/backend/src/services/a2a/__tests__/a2aClientTool.test.ts +0 -710
  794. package/backend/src/services/a2a/__tests__/a2aConfigService.test.ts +0 -526
  795. package/backend/src/services/a2a/__tests__/a2aConfigServicePath.test.ts +0 -55
  796. package/backend/src/services/a2a/__tests__/a2aSdkMcp.test.ts +0 -254
  797. package/backend/src/services/a2a/__tests__/agentCardService.test.ts +0 -357
  798. package/backend/src/services/a2a/__tests__/apiKeyService.test.ts +0 -378
  799. package/backend/src/services/a2a/__tests__/buildQueryOptionsIntegration.test.ts +0 -41
  800. package/backend/src/services/a2a/__tests__/dynamic_config_verification.test.ts +0 -71
  801. package/backend/src/services/a2a/__tests__/integrateA2AMcpServer.test.ts +0 -97
  802. package/backend/src/services/a2a/__tests__/taskManager.integration.test.ts +0 -417
  803. package/backend/src/services/a2a/__tests__/taskManager.test.ts +0 -511
  804. package/backend/src/services/a2a/__tests__/webhookService.test.ts +0 -258
  805. package/backend/src/services/a2a/a2aClientTool.ts +0 -723
  806. package/backend/src/services/a2a/a2aConfigService.ts +0 -194
  807. package/backend/src/services/a2a/a2aHistoryService.ts +0 -111
  808. package/backend/src/services/a2a/a2aIntegration.ts +0 -40
  809. package/backend/src/services/a2a/a2aQueryService.ts +0 -275
  810. package/backend/src/services/a2a/a2aSdkMcp.ts +0 -208
  811. package/backend/src/services/a2a/a2aStreamEvents.ts +0 -166
  812. package/backend/src/services/a2a/agentCardService.ts +0 -256
  813. package/backend/src/services/a2a/agentMappingService.ts +0 -202
  814. package/backend/src/services/a2a/apiKeyService.ts +0 -361
  815. package/backend/src/services/a2a/taskCleanup.ts +0 -199
  816. package/backend/src/services/a2a/taskManager.ts +0 -327
  817. package/backend/src/services/a2a/webhookService.ts +0 -161
  818. package/backend/src/services/agentStorage.ts +0 -506
  819. package/backend/src/services/askUserQuestion/askUserQuestionIntegration.ts +0 -68
  820. package/backend/src/services/askUserQuestion/askUserQuestionMcp.ts +0 -173
  821. package/backend/src/services/askUserQuestion/index.ts +0 -48
  822. package/backend/src/services/askUserQuestion/init.ts +0 -53
  823. package/backend/src/services/askUserQuestion/notificationChannel.ts +0 -218
  824. package/backend/src/services/askUserQuestion/slackNotificationChannel.ts +0 -150
  825. package/backend/src/services/askUserQuestion/sseNotificationChannel.ts +0 -102
  826. package/backend/src/services/askUserQuestion/userInputRegistry.ts +0 -307
  827. package/backend/src/services/claudeSession.ts +0 -421
  828. package/backend/src/services/claudeVersionStorage.ts +0 -389
  829. package/backend/src/services/mcpAdmin/__tests__/adminApiKeyService.test.ts +0 -385
  830. package/backend/src/services/mcpAdmin/__tests__/mcpAdminRoutes.test.ts +0 -356
  831. package/backend/src/services/mcpAdmin/__tests__/mcpAdminServer.test.ts +0 -541
  832. package/backend/src/services/mcpAdmin/__tests__/providerTools.test.ts +0 -347
  833. package/backend/src/services/mcpAdmin/__tests__/tools.test.ts +0 -463
  834. package/backend/src/services/mcpAdmin/adminApiKeyService.ts +0 -329
  835. package/backend/src/services/mcpAdmin/index.ts +0 -19
  836. package/backend/src/services/mcpAdmin/mcpAdminServer.ts +0 -318
  837. package/backend/src/services/mcpAdmin/tools/agentTools.ts +0 -390
  838. package/backend/src/services/mcpAdmin/tools/index.ts +0 -29
  839. package/backend/src/services/mcpAdmin/tools/mcpServerTools.ts +0 -368
  840. package/backend/src/services/mcpAdmin/tools/projectTools.ts +0 -415
  841. package/backend/src/services/mcpAdmin/tools/providerTools.ts +0 -649
  842. package/backend/src/services/mcpAdmin/tools/systemTools.ts +0 -254
  843. package/backend/src/services/mcpAdmin/types.ts +0 -155
  844. package/backend/src/services/messageQueue.ts +0 -80
  845. package/backend/src/services/pluginInstaller.ts +0 -329
  846. package/backend/src/services/pluginParser.ts +0 -441
  847. package/backend/src/services/pluginPaths.ts +0 -270
  848. package/backend/src/services/pluginScanner.ts +0 -245
  849. package/backend/src/services/pluginSymlink.ts +0 -241
  850. package/backend/src/services/projectMetadataStorage.ts +0 -871
  851. package/backend/src/services/scheduledTaskStorage.ts +0 -377
  852. package/backend/src/services/schedulerService.ts +0 -668
  853. package/backend/src/services/sessionManager.ts +0 -738
  854. package/backend/src/services/skillStorage.ts +0 -521
  855. package/backend/src/services/slackAIService.ts +0 -1395
  856. package/backend/src/services/slackClient.ts +0 -110
  857. package/backend/src/services/slackSessionLock.ts +0 -364
  858. package/backend/src/services/slackThreadMapper.ts +0 -170
  859. package/backend/src/services/taskExecutor/BuiltinExecutor.ts +0 -611
  860. package/backend/src/services/taskExecutor/__tests__/a2a-tasks.test.ts +0 -382
  861. package/backend/src/services/taskExecutor/__tests__/e2e-workflows.test.ts +0 -528
  862. package/backend/src/services/taskExecutor/__tests__/error-handling.test.ts +0 -458
  863. package/backend/src/services/taskExecutor/__tests__/stress.test.ts +0 -400
  864. package/backend/src/services/taskExecutor/__tests__/taskExecutor.integration.test.ts +0 -240
  865. package/backend/src/services/taskExecutor/__tests__/timeout-cancellation.test.ts +0 -384
  866. package/backend/src/services/taskExecutor/index.ts +0 -168
  867. package/backend/src/services/taskExecutor/taskWorker.ts +0 -222
  868. package/backend/src/services/taskExecutor/types.ts +0 -179
  869. package/backend/src/services/telemetry.ts +0 -234
  870. package/backend/src/services/tunnelService.ts +0 -614
  871. package/backend/src/types/a2a.ts +0 -372
  872. package/backend/src/types/agents.ts +0 -161
  873. package/backend/src/types/claude-history.ts +0 -81
  874. package/backend/src/types/claude-versions.ts +0 -39
  875. package/backend/src/types/commands.ts +0 -63
  876. package/backend/src/types/plugins.ts +0 -157
  877. package/backend/src/types/projects.ts +0 -64
  878. package/backend/src/types/scheduledTasks.ts +0 -214
  879. package/backend/src/types/skills.ts +0 -130
  880. package/backend/src/types/slack.ts +0 -112
  881. package/backend/src/types/streaming.ts +0 -13
  882. package/backend/src/types/subagents.ts +0 -29
  883. package/backend/src/utils/__tests__/claudeUtils.test.ts +0 -312
  884. package/backend/src/utils/__tests__/configResolver.test.ts +0 -255
  885. package/backend/src/utils/__tests__/sessionUtils.test.ts +0 -384
  886. package/backend/src/utils/agentCardCache.ts +0 -245
  887. package/backend/src/utils/claudeUtils.ts +0 -377
  888. package/backend/src/utils/configResolver.ts +0 -175
  889. package/backend/src/utils/fileUtils.ts +0 -5
  890. package/backend/src/utils/jwt.ts +0 -104
  891. package/backend/src/utils/networkUtils.ts +0 -68
  892. package/backend/src/utils/sessionUtils.ts +0 -303
  893. package/backend/tsconfig.json +0 -25
  894. package/backend/vitest.config.ts +0 -29
  895. package/docker-compose.traefik.yml +0 -59
  896. package/docker-compose.yml +0 -38
  897. package/docker-entrypoint.sh +0 -30
  898. package/docs/CLOUDFLARE_TUNNEL.md +0 -233
  899. package/docs/CLOUDFLARE_TUNNEL_ARCHITECTURE.md +0 -406
  900. package/docs/LAVS-IMPLEMENTATION.md +0 -1973
  901. package/docs/LAVS-SPEC.md +0 -951
  902. package/docs/QUICK_START_CLOUDFLARE_TUNNEL.md +0 -304
  903. package/docs/SCHEDULER_CONTROL.md +0 -142
  904. package/docs/SCHEDULER_STATUS_DISPLAY.md +0 -86
  905. package/docs/USER_MANUAL.md +0 -1726
  906. package/docs/USER_MANUAL_EN.md +0 -1408
  907. package/docs/VERSION_COMPATIBILITY.md +0 -616
  908. package/docs/api/a2a-endpoints.md +0 -891
  909. package/docs/guides/unified-task-executor-summary.md +0 -365
  910. package/docs/guides/unified-task-executor.md +0 -304
  911. package/docs/screenshots/01-homepage.png +0 -0
  912. package/docs/screenshots/02-dashboard.png +0 -0
  913. package/docs/screenshots/03-projects.png +0 -0
  914. package/docs/screenshots/04-agents.png +0 -0
  915. package/docs/screenshots/05-mcp-services.png +0 -0
  916. package/docs/screenshots/06-commands.png +0 -0
  917. package/docs/screenshots/07-chat.png +0 -0
  918. package/docs/screenshots/08-skills.png +0 -0
  919. package/docs/screenshots/09-settings.png +0 -0
  920. package/docs/screenshots/10-suppliers.png +0 -0
  921. package/docs/screenshots/11-plugins.png +0 -0
  922. package/docs/screenshots/agent-create-dialog.png +0 -0
  923. package/docs/screenshots/agent-edit-dialog.png +0 -0
  924. package/docs/screenshots/agent-list-overview.png +0 -0
  925. package/docs/screenshots/agent-tools-selection.png +0 -0
  926. package/docs/screenshots/agents-management.png +0 -0
  927. package/docs/screenshots/auto-compacted-session.png +0 -0
  928. package/docs/screenshots/chat-interface.png +0 -0
  929. package/docs/screenshots/chat-session-debug.png +0 -0
  930. package/docs/screenshots/chat-session-history.png +0 -0
  931. package/docs/screenshots/chat-tools-selection.png +0 -0
  932. package/docs/screenshots/commands-create-dialog.png +0 -0
  933. package/docs/screenshots/commands-overview.png +0 -0
  934. package/docs/screenshots/create-project-dialog.png +0 -0
  935. package/docs/screenshots/dashboard-overview.png +0 -0
  936. package/docs/screenshots/file-browser-interface.png +0 -0
  937. package/docs/screenshots/import-project-dialog.png +0 -0
  938. package/docs/screenshots/mcp-add-service-dialog.png +0 -0
  939. package/docs/screenshots/mcp-admin-settings.png +0 -0
  940. package/docs/screenshots/mcp-import-claude-code.png +0 -0
  941. package/docs/screenshots/mcp-list-overview.png +0 -0
  942. package/docs/screenshots/mcp-services-page.png +0 -0
  943. package/docs/screenshots/password-management-modal.png +0 -0
  944. package/docs/screenshots/plugins-add-market.png +0 -0
  945. package/docs/screenshots/plugins-browse.png +0 -0
  946. package/docs/screenshots/plugins-overview.png +0 -0
  947. package/docs/screenshots/ppt-editor-chat-interface.png +0 -0
  948. package/docs/screenshots/project-commands-dialog.png +0 -0
  949. package/docs/screenshots/project-list-overview.png +0 -0
  950. package/docs/screenshots/project-memory-dialog.png +0 -0
  951. package/docs/screenshots/project-settings-dialog.png +0 -0
  952. package/docs/screenshots/project-subagent-dialog.png +0 -0
  953. package/docs/screenshots/projects-management.png +0 -0
  954. package/docs/screenshots/projects-overview.png +0 -0
  955. package/docs/screenshots/scheduled-tasks-create-dialog.png +0 -0
  956. package/docs/screenshots/scheduled-tasks-execution-history.png +0 -0
  957. package/docs/screenshots/scheduled-tasks-overview.png +0 -0
  958. package/docs/screenshots/session-display-issue.png +0 -0
  959. package/docs/screenshots/session-messages-fix.png +0 -0
  960. package/docs/screenshots/session-messages-loaded.png +0 -0
  961. package/docs/screenshots/settings-general.png +0 -0
  962. package/docs/screenshots/settings-memory.png +0 -0
  963. package/docs/screenshots/skills-create-dialog.png +0 -0
  964. package/docs/screenshots/skills-list-overview.png +0 -0
  965. package/docs/screenshots/skills-view-detail.png +0 -0
  966. package/docs/screenshots/slide-preview-after-fix.png +0 -0
  967. package/docs/screenshots/storybook-basetool-full.png +0 -0
  968. package/docs/screenshots/storybook-fixed.png +0 -0
  969. package/docs/screenshots/storybook-tasktool.png +0 -0
  970. package/docs/screenshots/supplier-add-dialog.png +0 -0
  971. package/docs/screenshots/supplier-edit-dialog.png +0 -0
  972. package/docs/screenshots/suppliers-overview.png +0 -0
  973. package/docs/screenshots/telemetry-settings.png +0 -0
  974. package/docs/screenshots/version-management-page.png +0 -0
  975. package/docs-site/.vitepress/cache/deps/@theme_index.js +0 -275
  976. package/docs-site/.vitepress/cache/deps/@theme_index.js.map +0 -7
  977. package/docs-site/.vitepress/cache/deps/_metadata.json +0 -58
  978. package/docs-site/.vitepress/cache/deps/chunk-CN42XFKG.js +0 -12824
  979. package/docs-site/.vitepress/cache/deps/chunk-CN42XFKG.js.map +0 -7
  980. package/docs-site/.vitepress/cache/deps/chunk-Y3A3J5YD.js +0 -9719
  981. package/docs-site/.vitepress/cache/deps/chunk-Y3A3J5YD.js.map +0 -7
  982. package/docs-site/.vitepress/cache/deps/package.json +0 -3
  983. package/docs-site/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
  984. package/docs-site/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  985. package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -583
  986. package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  987. package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +0 -1352
  988. package/docs-site/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +0 -7
  989. package/docs-site/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +0 -1665
  990. package/docs-site/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +0 -7
  991. package/docs-site/.vitepress/cache/deps/vitepress___minisearch.js +0 -1813
  992. package/docs-site/.vitepress/cache/deps/vitepress___minisearch.js.map +0 -7
  993. package/docs-site/.vitepress/cache/deps/vue.js +0 -347
  994. package/docs-site/.vitepress/cache/deps/vue.js.map +0 -7
  995. package/docs-site/src/.vitepress/cache/deps/_metadata.json +0 -52
  996. package/docs-site/src/.vitepress/cache/deps/chunk-CN42XFKG.js +0 -12824
  997. package/docs-site/src/.vitepress/cache/deps/chunk-CN42XFKG.js.map +0 -7
  998. package/docs-site/src/.vitepress/cache/deps/chunk-Y3A3J5YD.js +0 -9719
  999. package/docs-site/src/.vitepress/cache/deps/chunk-Y3A3J5YD.js.map +0 -7
  1000. package/docs-site/src/.vitepress/cache/deps/package.json +0 -3
  1001. package/docs-site/src/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
  1002. package/docs-site/src/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  1003. package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -583
  1004. package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  1005. package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +0 -1352
  1006. package/docs-site/src/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +0 -7
  1007. package/docs-site/src/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +0 -1665
  1008. package/docs-site/src/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +0 -7
  1009. package/docs-site/src/.vitepress/cache/deps/vitepress___minisearch.js +0 -1813
  1010. package/docs-site/src/.vitepress/cache/deps/vitepress___minisearch.js.map +0 -7
  1011. package/docs-site/src/.vitepress/cache/deps/vue.js +0 -347
  1012. package/docs-site/src/.vitepress/cache/deps/vue.js.map +0 -7
  1013. package/frontend/.storybook/main.ts +0 -22
  1014. package/frontend/.storybook/preview.ts +0 -27
  1015. package/frontend/.storybook/vitest.setup.ts +0 -7
  1016. package/frontend/README.md +0 -69
  1017. package/frontend/components.json +0 -17
  1018. package/frontend/eslint.config.js +0 -26
  1019. package/frontend/index.html +0 -62
  1020. package/frontend/package-lock.json +0 -7922
  1021. package/frontend/package.json +0 -90
  1022. package/frontend/pnpm-lock.yaml +0 -4714
  1023. package/frontend/postcss.config.js +0 -6
  1024. package/frontend/scripts/extract-chinese.js +0 -146
  1025. package/frontend/src/App.css +0 -42
  1026. package/frontend/src/App.tsx +0 -201
  1027. package/frontend/src/__tests__/smoke.test.tsx +0 -15
  1028. package/frontend/src/agents/README.md +0 -136
  1029. package/frontend/src/agents/chat/index.ts +0 -17
  1030. package/frontend/src/agents/registry.ts +0 -22
  1031. package/frontend/src/agents/slides/components/SlidePreview.tsx +0 -287
  1032. package/frontend/src/agents/slides/components/SlidePreviewPanel.tsx +0 -120
  1033. package/frontend/src/agents/slides/hooks/useSlides.ts +0 -245
  1034. package/frontend/src/agents/slides/index.ts +0 -17
  1035. package/frontend/src/agents/slides/stores/useSlidesStore.ts +0 -56
  1036. package/frontend/src/agents/types.ts +0 -18
  1037. package/frontend/src/api/skills.ts +0 -184
  1038. package/frontend/src/assets/react.svg +0 -1
  1039. package/frontend/src/components/AgentChatPanel.tsx +0 -901
  1040. package/frontend/src/components/ApiSettingsModal.tsx +0 -267
  1041. package/frontend/src/components/BackendOnboardingWizard.tsx +0 -255
  1042. package/frontend/src/components/BackendServiceSwitcher.tsx +0 -356
  1043. package/frontend/src/components/CSVPreview.tsx +0 -465
  1044. package/frontend/src/components/ChatMessageRenderer.tsx +0 -279
  1045. package/frontend/src/components/CommandForm.tsx +0 -560
  1046. package/frontend/src/components/CommandSelector.tsx +0 -218
  1047. package/frontend/src/components/CompactSummary.tsx +0 -52
  1048. package/frontend/src/components/ConfirmDialog.tsx +0 -69
  1049. package/frontend/src/components/DiffViewer.css +0 -78
  1050. package/frontend/src/components/DiffViewer.tsx +0 -89
  1051. package/frontend/src/components/EnvVarsConfig.tsx +0 -113
  1052. package/frontend/src/components/ErrorBoundary.tsx +0 -100
  1053. package/frontend/src/components/ErrorMessage.tsx +0 -197
  1054. package/frontend/src/components/FileBrowser.tsx +0 -480
  1055. package/frontend/src/components/FileContentViewer.tsx +0 -155
  1056. package/frontend/src/components/FileExplorer/FileIcon.tsx +0 -32
  1057. package/frontend/src/components/FileExplorer/FilePreview.tsx +0 -130
  1058. package/frontend/src/components/FileExplorer/FileTabs.tsx +0 -104
  1059. package/frontend/src/components/FileExplorer/FileTreeToolbar.tsx +0 -30
  1060. package/frontend/src/components/FileExplorer/ImagePreview.tsx +0 -86
  1061. package/frontend/src/components/FileExplorer/REFACTOR_SUMMARY.md +0 -117
  1062. package/frontend/src/components/FileExplorer/TabDropdown.tsx +0 -59
  1063. package/frontend/src/components/FileExplorer/TreeNode.tsx +0 -73
  1064. package/frontend/src/components/FileExplorer/constants.ts +0 -16
  1065. package/frontend/src/components/FileExplorer/fileTypes.ts +0 -156
  1066. package/frontend/src/components/FileExplorer/hooks/index.ts +0 -2
  1067. package/frontend/src/components/FileExplorer/hooks/useFileTabs.ts +0 -120
  1068. package/frontend/src/components/FileExplorer/hooks/useLazyFileTree.ts +0 -260
  1069. package/frontend/src/components/FileExplorer/index.ts +0 -15
  1070. package/frontend/src/components/FileExplorer.tsx +0 -1124
  1071. package/frontend/src/components/FloatingToggle.tsx +0 -66
  1072. package/frontend/src/components/ImagePreview.tsx +0 -369
  1073. package/frontend/src/components/JSONLPreview.tsx +0 -421
  1074. package/frontend/src/components/LanguageSwitcher.tsx +0 -32
  1075. package/frontend/src/components/Layout.tsx +0 -57
  1076. package/frontend/src/components/MarkdownMessage.tsx +0 -136
  1077. package/frontend/src/components/McpStatusModal.tsx +0 -272
  1078. package/frontend/src/components/MermaidDiagram.tsx +0 -423
  1079. package/frontend/src/components/MobileChatInput.tsx +0 -158
  1080. package/frontend/src/components/MobileChatToolbar.tsx +0 -164
  1081. package/frontend/src/components/MobileNavigation.tsx +0 -101
  1082. package/frontend/src/components/MobileSettingsModal.tsx +0 -272
  1083. package/frontend/src/components/MobileSidebar.tsx +0 -56
  1084. package/frontend/src/components/PanelToggle.tsx +0 -69
  1085. package/frontend/src/components/ProjectA2AModal.tsx +0 -1430
  1086. package/frontend/src/components/ProjectCommandsModal.tsx +0 -453
  1087. package/frontend/src/components/ProjectMemoryModal.tsx +0 -178
  1088. package/frontend/src/components/ProjectSelector.tsx +0 -498
  1089. package/frontend/src/components/ProjectSettingsModal.tsx +0 -210
  1090. package/frontend/src/components/ProjectSubAgentsModal.tsx +0 -421
  1091. package/frontend/src/components/ProjectTable.tsx +0 -387
  1092. package/frontend/src/components/ProtectedRoute.tsx +0 -123
  1093. package/frontend/src/components/RecentActivity.tsx +0 -145
  1094. package/frontend/src/components/ResponsiveTable.tsx +0 -164
  1095. package/frontend/src/components/RightPanelHeader.tsx +0 -87
  1096. package/frontend/src/components/RightPanelWrapper.tsx +0 -74
  1097. package/frontend/src/components/ScheduledTaskEditor.tsx +0 -718
  1098. package/frontend/src/components/ServiceManagementModal.tsx +0 -794
  1099. package/frontend/src/components/ServiceStatusIndicator.tsx +0 -334
  1100. package/frontend/src/components/SessionsDashboard.tsx +0 -295
  1101. package/frontend/src/components/SessionsDropdown.tsx +0 -168
  1102. package/frontend/src/components/SettingsDropdown.tsx +0 -236
  1103. package/frontend/src/components/SettingsLayout.tsx +0 -16
  1104. package/frontend/src/components/Sidebar.tsx +0 -283
  1105. package/frontend/src/components/SplitLayout.tsx +0 -261
  1106. package/frontend/src/components/SubagentForm.tsx +0 -468
  1107. package/frontend/src/components/SwipeActions.tsx +0 -413
  1108. package/frontend/src/components/SystemPromptEditor.tsx +0 -126
  1109. package/frontend/src/components/TaskExecutionHistory.tsx +0 -373
  1110. package/frontend/src/components/TelemetryProvider.tsx +0 -157
  1111. package/frontend/src/components/ToolUsage.tsx +0 -34
  1112. package/frontend/src/components/ToolsList.tsx +0 -86
  1113. package/frontend/src/components/UnifiedToolSelector.tsx +0 -508
  1114. package/frontend/src/components/UpdateNotification.tsx +0 -105
  1115. package/frontend/src/components/agentChat/AgentChatInput.tsx +0 -249
  1116. package/frontend/src/components/agentChat/AgentChatMobileInput.tsx +0 -266
  1117. package/frontend/src/components/agentChat/AgentCommandSelector.tsx +0 -226
  1118. package/frontend/src/components/agentChat/AgentInputArea.tsx +0 -573
  1119. package/frontend/src/components/agentChat/ChatMessageList.tsx +0 -125
  1120. package/frontend/src/components/agentChat/index.ts +0 -7
  1121. package/frontend/src/components/onboarding/BackendDetectingStep.tsx +0 -42
  1122. package/frontend/src/components/onboarding/BackendFoundStep.tsx +0 -75
  1123. package/frontend/src/components/onboarding/BackendNotFoundStep.tsx +0 -249
  1124. package/frontend/src/components/onboarding/OnboardingCompleteStep.tsx +0 -90
  1125. package/frontend/src/components/onboarding/WelcomeStep.tsx +0 -93
  1126. package/frontend/src/components/plugins/AddMarketplaceModal.tsx +0 -186
  1127. package/frontend/src/components/plugins/BrowsePluginsTab.tsx +0 -262
  1128. package/frontend/src/components/plugins/InstalledPluginsTab.tsx +0 -246
  1129. package/frontend/src/components/plugins/MarketplacesTab.tsx +0 -168
  1130. package/frontend/src/components/plugins/PluginDetailModal.tsx +0 -307
  1131. package/frontend/src/components/settings/version/ClaudeVersionForm.tsx +0 -266
  1132. package/frontend/src/components/settings/version/ClaudeVersionList.tsx +0 -61
  1133. package/frontend/src/components/settings/version/EnvironmentVariablesSection.tsx +0 -173
  1134. package/frontend/src/components/settings/version/ModelConfigSection.tsx +0 -129
  1135. package/frontend/src/components/settings/version/VersionListItem.tsx +0 -133
  1136. package/frontend/src/components/settings/version/VersionTemplateSelector.tsx +0 -53
  1137. package/frontend/src/components/skills/CreateSkillModal.tsx +0 -702
  1138. package/frontend/src/components/skills/SkillDetailModal.tsx +0 -180
  1139. package/frontend/src/components/skills/SkillFileBrowserModal.tsx +0 -67
  1140. package/frontend/src/components/skills/SkillPreview.tsx +0 -150
  1141. package/frontend/src/components/skills/SkillsPage.tsx +0 -329
  1142. package/frontend/src/components/skills/index.ts +0 -4
  1143. package/frontend/src/components/tools/A2ACallTool.tsx +0 -733
  1144. package/frontend/src/components/tools/AskUserQuestionTool.stories.tsx +0 -223
  1145. package/frontend/src/components/tools/AskUserQuestionTool.tsx +0 -546
  1146. package/frontend/src/components/tools/BaseToolComponent.stories.tsx +0 -316
  1147. package/frontend/src/components/tools/BaseToolComponent.tsx +0 -226
  1148. package/frontend/src/components/tools/BashOutputTool.stories.tsx +0 -106
  1149. package/frontend/src/components/tools/BashOutputTool.tsx +0 -198
  1150. package/frontend/src/components/tools/BashTool.stories.tsx +0 -163
  1151. package/frontend/src/components/tools/BashTool.tsx +0 -80
  1152. package/frontend/src/components/tools/EditTool.stories.tsx +0 -109
  1153. package/frontend/src/components/tools/EditTool.tsx +0 -60
  1154. package/frontend/src/components/tools/ExitPlanModeTool.stories.tsx +0 -118
  1155. package/frontend/src/components/tools/ExitPlanModeTool.tsx +0 -34
  1156. package/frontend/src/components/tools/GlobTool.stories.tsx +0 -122
  1157. package/frontend/src/components/tools/GlobTool.tsx +0 -50
  1158. package/frontend/src/components/tools/GrepTool.stories.tsx +0 -125
  1159. package/frontend/src/components/tools/GrepTool.tsx +0 -87
  1160. package/frontend/src/components/tools/KillBashTool.stories.tsx +0 -120
  1161. package/frontend/src/components/tools/KillBashTool.tsx +0 -112
  1162. package/frontend/src/components/tools/LSTool.stories.tsx +0 -132
  1163. package/frontend/src/components/tools/LSTool.tsx +0 -41
  1164. package/frontend/src/components/tools/ListMcpResourcesTool.stories.tsx +0 -125
  1165. package/frontend/src/components/tools/ListMcpResourcesTool.tsx +0 -84
  1166. package/frontend/src/components/tools/McpTool.stories.tsx +0 -140
  1167. package/frontend/src/components/tools/McpTool.tsx +0 -266
  1168. package/frontend/src/components/tools/MultiEditTool.stories.tsx +0 -127
  1169. package/frontend/src/components/tools/MultiEditTool.tsx +0 -59
  1170. package/frontend/src/components/tools/NotebookEditTool.stories.tsx +0 -137
  1171. package/frontend/src/components/tools/NotebookEditTool.tsx +0 -57
  1172. package/frontend/src/components/tools/NotebookReadTool.stories.tsx +0 -134
  1173. package/frontend/src/components/tools/NotebookReadTool.tsx +0 -25
  1174. package/frontend/src/components/tools/README.md +0 -677
  1175. package/frontend/src/components/tools/ReadMcpResourceTool.stories.tsx +0 -125
  1176. package/frontend/src/components/tools/ReadMcpResourceTool.tsx +0 -126
  1177. package/frontend/src/components/tools/ReadTool.stories.tsx +0 -116
  1178. package/frontend/src/components/tools/ReadTool.tsx +0 -37
  1179. package/frontend/src/components/tools/SkillTool.tsx +0 -91
  1180. package/frontend/src/components/tools/SubAgentMessageFlow.tsx +0 -172
  1181. package/frontend/src/components/tools/TaskTool.stories.tsx +0 -483
  1182. package/frontend/src/components/tools/TaskTool.tsx +0 -199
  1183. package/frontend/src/components/tools/TimeMachineTool.stories.tsx +0 -254
  1184. package/frontend/src/components/tools/TimeMachineTool.tsx +0 -126
  1185. package/frontend/src/components/tools/TodoWriteTool.stories.tsx +0 -128
  1186. package/frontend/src/components/tools/TodoWriteTool.tsx +0 -74
  1187. package/frontend/src/components/tools/ToolRenderer.stories.tsx +0 -460
  1188. package/frontend/src/components/tools/ToolRenderer.tsx +0 -147
  1189. package/frontend/src/components/tools/WebFetchTool.stories.tsx +0 -114
  1190. package/frontend/src/components/tools/WebFetchTool.tsx +0 -50
  1191. package/frontend/src/components/tools/WebSearchTool.stories.tsx +0 -124
  1192. package/frontend/src/components/tools/WebSearchTool.tsx +0 -67
  1193. package/frontend/src/components/tools/WriteTool.stories.tsx +0 -115
  1194. package/frontend/src/components/tools/WriteTool.tsx +0 -41
  1195. package/frontend/src/components/tools/__mocks__/toolTestData.ts +0 -557
  1196. package/frontend/src/components/tools/customMcpTools.tsx +0 -17
  1197. package/frontend/src/components/tools/index.stories.tsx +0 -107
  1198. package/frontend/src/components/tools/index.ts +0 -24
  1199. package/frontend/src/components/tools/mcpUtils.ts +0 -27
  1200. package/frontend/src/components/tools/sdk-types.ts +0 -327
  1201. package/frontend/src/components/tools/types.ts +0 -218
  1202. package/frontend/src/components/ui/Button.tsx +0 -39
  1203. package/frontend/src/components/ui/Input.tsx +0 -24
  1204. package/frontend/src/components/ui/Textarea.tsx +0 -23
  1205. package/frontend/src/components/ui/VersionInfo.tsx +0 -116
  1206. package/frontend/src/components/ui/dialog.tsx +0 -90
  1207. package/frontend/src/components/ui/index.ts +0 -4
  1208. package/frontend/src/components/ui/label.tsx +0 -19
  1209. package/frontend/src/components/ui/select.tsx +0 -121
  1210. package/frontend/src/components/ui/table.tsx +0 -117
  1211. package/frontend/src/components/ui/tabs.tsx +0 -124
  1212. package/frontend/src/components/ui/toast.tsx +0 -127
  1213. package/frontend/src/components/ui/toaster.tsx +0 -33
  1214. package/frontend/src/contexts/MobileContext.tsx +0 -109
  1215. package/frontend/src/hooks/__tests__/useAIStreamHandler.test.ts +0 -1198
  1216. package/frontend/src/hooks/agentChat/index.ts +0 -10
  1217. package/frontend/src/hooks/agentChat/useAIStreamHandler.ts +0 -1594
  1218. package/frontend/src/hooks/agentChat/useClaudeVersionManager.ts +0 -99
  1219. package/frontend/src/hooks/agentChat/useCommandCompletion.ts +0 -253
  1220. package/frontend/src/hooks/agentChat/useImageUpload.ts +0 -176
  1221. package/frontend/src/hooks/agentChat/useMessageSender.ts +0 -391
  1222. package/frontend/src/hooks/agentChat/useScrollManagement.ts +0 -66
  1223. package/frontend/src/hooks/agentChat/useSessionManager.ts +0 -110
  1224. package/frontend/src/hooks/agentChat/useToolSelector.ts +0 -82
  1225. package/frontend/src/hooks/agentChat/useUIState.ts +0 -103
  1226. package/frontend/src/hooks/index.ts +0 -3
  1227. package/frontend/src/hooks/use-toast.ts +0 -194
  1228. package/frontend/src/hooks/useA2AConfig.ts +0 -224
  1229. package/frontend/src/hooks/useA2AManagement.ts +0 -456
  1230. package/frontend/src/hooks/useAI.ts +0 -264
  1231. package/frontend/src/hooks/useAgents.ts +0 -411
  1232. package/frontend/src/hooks/useApiBase.ts +0 -31
  1233. package/frontend/src/hooks/useAuth.ts +0 -454
  1234. package/frontend/src/hooks/useBackendServices.ts +0 -58
  1235. package/frontend/src/hooks/useClaudeVersions.ts +0 -128
  1236. package/frontend/src/hooks/useCommands.ts +0 -312
  1237. package/frontend/src/hooks/useDashboardStats.ts +0 -61
  1238. package/frontend/src/hooks/useFileSystem.ts +0 -349
  1239. package/frontend/src/hooks/useFiles.ts +0 -80
  1240. package/frontend/src/hooks/useMarketplaces.ts +0 -120
  1241. package/frontend/src/hooks/useMobile.tsx +0 -110
  1242. package/frontend/src/hooks/usePlugins.ts +0 -239
  1243. package/frontend/src/hooks/useProjects.ts +0 -45
  1244. package/frontend/src/hooks/useResponsiveSettings.tsx +0 -22
  1245. package/frontend/src/hooks/useScheduledTasks.ts +0 -483
  1246. package/frontend/src/hooks/useSessionHeartbeat.ts +0 -173
  1247. package/frontend/src/hooks/useSessionHeartbeatOnSuccess.ts +0 -80
  1248. package/frontend/src/hooks/useSessions.ts +0 -96
  1249. package/frontend/src/hooks/useSkills.ts +0 -197
  1250. package/frontend/src/hooks/useSubagents.ts +0 -274
  1251. package/frontend/src/hooks/useTabNotification.ts +0 -155
  1252. package/frontend/src/hooks/useVersionCheck.ts +0 -164
  1253. package/frontend/src/i18n/index.ts +0 -66
  1254. package/frontend/src/i18n/locales/en-US/agents.json +0 -85
  1255. package/frontend/src/i18n/locales/en-US/common.json +0 -155
  1256. package/frontend/src/i18n/locales/en-US/components.json +0 -1197
  1257. package/frontend/src/i18n/locales/en-US/errors.json +0 -56
  1258. package/frontend/src/i18n/locales/en-US/home.json +0 -27
  1259. package/frontend/src/i18n/locales/en-US/onboarding.json +0 -122
  1260. package/frontend/src/i18n/locales/en-US/pages.json +0 -1409
  1261. package/frontend/src/i18n/locales/en-US/skills.json +0 -120
  1262. package/frontend/src/i18n/locales/zh-CN/agents.json +0 -85
  1263. package/frontend/src/i18n/locales/zh-CN/common.json +0 -155
  1264. package/frontend/src/i18n/locales/zh-CN/components.json +0 -1199
  1265. package/frontend/src/i18n/locales/zh-CN/errors.json +0 -56
  1266. package/frontend/src/i18n/locales/zh-CN/home.json +0 -27
  1267. package/frontend/src/i18n/locales/zh-CN/onboarding.json +0 -122
  1268. package/frontend/src/i18n/locales/zh-CN/pages.json +0 -1540
  1269. package/frontend/src/i18n/locales/zh-CN/pages.json.tmp +0 -0
  1270. package/frontend/src/i18n/locales/zh-CN/pages_new.json +0 -0
  1271. package/frontend/src/i18n/locales/zh-CN/skills.json +0 -120
  1272. package/frontend/src/i18n/types.ts +0 -19
  1273. package/frontend/src/index.css +0 -112
  1274. package/frontend/src/lib/authFetch.ts +0 -183
  1275. package/frontend/src/lib/config.ts +0 -120
  1276. package/frontend/src/lib/utils.ts +0 -6
  1277. package/frontend/src/main.tsx +0 -13
  1278. package/frontend/src/pages/AgentsPage.tsx +0 -781
  1279. package/frontend/src/pages/AnalyticsPage.tsx +0 -363
  1280. package/frontend/src/pages/ChatPage.tsx +0 -286
  1281. package/frontend/src/pages/CommandsPage.tsx +0 -445
  1282. package/frontend/src/pages/DashboardPage.tsx +0 -519
  1283. package/frontend/src/pages/HomePage.tsx +0 -223
  1284. package/frontend/src/pages/LandingPage.tsx +0 -607
  1285. package/frontend/src/pages/LoginPage.tsx +0 -510
  1286. package/frontend/src/pages/McpPage.tsx +0 -1049
  1287. package/frontend/src/pages/PluginsPage.tsx +0 -98
  1288. package/frontend/src/pages/ProjectSettings/A2AConfigTab.tsx +0 -468
  1289. package/frontend/src/pages/ProjectsPage.tsx +0 -818
  1290. package/frontend/src/pages/ScheduledTasksPage.tsx +0 -574
  1291. package/frontend/src/pages/SkillsPage.tsx +0 -6
  1292. package/frontend/src/pages/ToastTestPage.tsx +0 -33
  1293. package/frontend/src/pages/index.ts +0 -3
  1294. package/frontend/src/pages/settings/ApiSettingsPage.tsx +0 -240
  1295. package/frontend/src/pages/settings/CloudflareTunnelPage.tsx +0 -730
  1296. package/frontend/src/pages/settings/GeneralSettingsPage.tsx +0 -456
  1297. package/frontend/src/pages/settings/McpAdminSettingsPage.tsx +0 -1088
  1298. package/frontend/src/pages/settings/MemorySettingsPage.tsx +0 -153
  1299. package/frontend/src/pages/settings/SubagentsPage.tsx +0 -412
  1300. package/frontend/src/pages/settings/SystemInfoPage.tsx +0 -268
  1301. package/frontend/src/pages/settings/TelemetrySettingsPage.tsx +0 -175
  1302. package/frontend/src/pages/settings/VersionSettingsPage.tsx +0 -366
  1303. package/frontend/src/pages/settings/WebSocketTunnelPage.tsx +0 -1578
  1304. package/frontend/src/stores/authStore.ts +0 -99
  1305. package/frontend/src/stores/useAgentStore.ts +0 -426
  1306. package/frontend/src/stores/useSubAgentStore.ts +0 -207
  1307. package/frontend/src/styles/mobile.css +0 -156
  1308. package/frontend/src/test/setup.ts +0 -64
  1309. package/frontend/src/types/agents.ts +0 -109
  1310. package/frontend/src/types/backendServices.ts +0 -20
  1311. package/frontend/src/types/claude-versions.ts +0 -45
  1312. package/frontend/src/types/commands.ts +0 -63
  1313. package/frontend/src/types/index.ts +0 -171
  1314. package/frontend/src/types/plugins.ts +0 -128
  1315. package/frontend/src/types/scheduledTasks.ts +0 -140
  1316. package/frontend/src/types/skills.ts +0 -161
  1317. package/frontend/src/types/subagents.ts +0 -48
  1318. package/frontend/src/types/versionTemplates.ts +0 -270
  1319. package/frontend/src/utils/authHelpers.ts +0 -89
  1320. package/frontend/src/utils/backendServiceStorage.ts +0 -100
  1321. package/frontend/src/utils/commandFormatter.ts +0 -100
  1322. package/frontend/src/utils/commandGenerator.ts +0 -72
  1323. package/frontend/src/utils/commandHandler.ts +0 -205
  1324. package/frontend/src/utils/dateFormat.ts +0 -35
  1325. package/frontend/src/utils/eventBus.ts +0 -53
  1326. package/frontend/src/utils/index.ts +0 -34
  1327. package/frontend/src/utils/onboardingStorage.ts +0 -40
  1328. package/frontend/src/utils/smartNavigation.ts +0 -244
  1329. package/frontend/src/utils/streamReader.ts +0 -32
  1330. package/frontend/src/utils/systemCommands.ts +0 -49
  1331. package/frontend/src/utils/tabManager.ts +0 -816
  1332. package/frontend/src/utils/toast.ts +0 -49
  1333. package/frontend/src/utils/toolMapping.ts +0 -83
  1334. package/frontend/src/vite-env.d.ts +0 -3
  1335. package/frontend/tailwind.config.js +0 -119
  1336. package/frontend/tsconfig.app.json +0 -33
  1337. package/frontend/tsconfig.json +0 -7
  1338. package/frontend/tsconfig.node.json +0 -25
  1339. package/frontend/vite.config.ts +0 -73
  1340. package/frontend/vitest.config.ts +0 -39
  1341. package/frontend/vitest.shims.d.ts +0 -1
  1342. package/nginx.conf +0 -153
  1343. package/pnpm-workspace.yaml +0 -3
  1344. package/scripts/API_KEY_GENERATION_README.md +0 -181
  1345. package/scripts/README-nginx.md +0 -327
  1346. package/scripts/README.md +0 -259
  1347. package/scripts/build-complete.js +0 -98
  1348. package/scripts/build-npm.js +0 -251
  1349. package/scripts/check-system.sh +0 -153
  1350. package/scripts/cloudflare_tunnel.py +0 -292
  1351. package/scripts/deploy-feature.sh +0 -265
  1352. package/scripts/generate-api-key.ts +0 -59
  1353. package/scripts/install-linux.sh +0 -1507
  1354. package/scripts/install-macos.sh +0 -1194
  1355. package/scripts/remote-install.sh +0 -244
  1356. package/scripts/remove-feature.sh +0 -214
  1357. package/scripts/remove.sh +0 -390
  1358. package/scripts/requirements.txt +0 -1
  1359. package/scripts/restore.sh +0 -331
  1360. package/scripts/setup-nginx-ssl.sh +0 -242
  1361. package/scripts/setup_nginx.sh +0 -110
  1362. package/scripts/windows-install-simple.bat +0 -277
  1363. package/scripts/windows-install.ps1 +0 -620
  1364. package/tsconfig.json +0 -30
  1365. package/vercel.json +0 -44
  1366. /package/{frontend/public → public}/cc-studio.png +0 -0
  1367. /package/{frontend/public → public}/screenshot-chat.png +0 -0
  1368. /package/{frontend/public → public}/screenshot-mcp.png +0 -0
  1369. /package/{frontend/public → public}/vite.svg +0 -0
  1370. /package/{frontend/public → public}/wechat-qr-code.png +0 -0
@@ -0,0 +1,1026 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_1 = __importDefault(require("express"));
7
+ const zod_1 = require("zod");
8
+ const agentStorage_1 = require("../services/agentStorage");
9
+ const sessionManager_1 = require("../services/sessionManager");
10
+ const claudeUtils_js_1 = require("../utils/claudeUtils.js");
11
+ const sessionUtils_js_1 = require("../utils/sessionUtils.js");
12
+ const index_js_1 = require("../services/askUserQuestion/index.js");
13
+ const a2aStreamEvents_js_1 = require("../services/a2a/a2aStreamEvents.js");
14
+ // 类型守卫函数
15
+ function isSDKSystemMessage(message) {
16
+ return message && message.type === 'system';
17
+ }
18
+ function isSDKResultMessage(message) {
19
+ return message && message.type === 'result';
20
+ }
21
+ // isSDKPartialAssistantMessage removed - not currently used
22
+ function isSDKCompactBoundaryMessage(message) {
23
+ return message && message.type === 'system' && message.subtype === 'compact_boundary';
24
+ }
25
+ const router = express_1.default.Router();
26
+ // Storage instances
27
+ const globalAgentStorage = new agentStorage_1.AgentStorage();
28
+ // Validation schemas
29
+ // 定义 SystemPrompt schema,支持字符串或预设对象格式
30
+ const PresetSystemPromptSchema = zod_1.z.object({
31
+ type: zod_1.z.literal('preset'),
32
+ preset: zod_1.z.literal('claude_code'),
33
+ append: zod_1.z.string().optional()
34
+ });
35
+ const SystemPromptSchema = zod_1.z.union([
36
+ zod_1.z.string().min(1),
37
+ PresetSystemPromptSchema
38
+ ]);
39
+ const CreateAgentSchema = zod_1.z.object({
40
+ id: zod_1.z.string().min(1).regex(/^[a-z0-9-_]+$/, 'ID must contain only lowercase letters, numbers, hyphens, and underscores'),
41
+ name: zod_1.z.string().min(1),
42
+ description: zod_1.z.string(),
43
+ systemPrompt: SystemPromptSchema,
44
+ // maxTurns 可以是数字(1-100)、null(不限制)或 undefined(使用默认值)
45
+ maxTurns: zod_1.z.union([zod_1.z.number().min(1).max(100), zod_1.z.null()]).optional().default(25),
46
+ permissionMode: zod_1.z.enum(['default', 'acceptEdits', 'bypassPermissions', 'plan']).optional().default('acceptEdits'),
47
+ model: zod_1.z.string().min(1).optional().default('sonnet'),
48
+ allowedTools: zod_1.z.array(zod_1.z.object({
49
+ name: zod_1.z.string(),
50
+ enabled: zod_1.z.boolean(),
51
+ permissions: zod_1.z.object({
52
+ requireConfirmation: zod_1.z.boolean().optional(),
53
+ allowedPaths: zod_1.z.array(zod_1.z.string()).optional(),
54
+ blockedPaths: zod_1.z.array(zod_1.z.string()).optional(),
55
+ }).optional()
56
+ })),
57
+ ui: zod_1.z.object({
58
+ icon: zod_1.z.string().optional().default('🤖'),
59
+ primaryColor: zod_1.z.string().optional().default('#3B82F6'),
60
+ headerTitle: zod_1.z.string(),
61
+ headerDescription: zod_1.z.string(),
62
+ welcomeMessage: zod_1.z.string().optional(),
63
+ customComponent: zod_1.z.string().optional()
64
+ }),
65
+ workingDirectory: zod_1.z.string().optional(),
66
+ dataDirectory: zod_1.z.string().optional(),
67
+ fileTypes: zod_1.z.array(zod_1.z.string()).optional(),
68
+ author: zod_1.z.string().min(1),
69
+ homepage: zod_1.z.string().url().optional(),
70
+ tags: zod_1.z.array(zod_1.z.string()).optional().default([]),
71
+ enabled: zod_1.z.boolean().optional().default(true)
72
+ });
73
+ const UpdateAgentSchema = CreateAgentSchema.partial().omit({ id: true });
74
+ // 获取活跃会话列表 (需要在通用获取agents路由之前)
75
+ router.get('/sessions', (req, res) => {
76
+ try {
77
+ const activeCount = sessionManager_1.sessionManager.getActiveSessionCount();
78
+ const sessionsInfo = sessionManager_1.sessionManager.getSessionsInfo();
79
+ res.json({
80
+ activeSessionCount: activeCount,
81
+ sessions: sessionsInfo,
82
+ message: `${activeCount} active Claude sessions`
83
+ });
84
+ }
85
+ catch (error) {
86
+ console.error('Failed to get sessions:', error);
87
+ res.status(500).json({ error: 'Failed to retrieve session info' });
88
+ }
89
+ });
90
+ // 手动关闭指定会话
91
+ router.delete('/sessions/:sessionId', async (req, res) => {
92
+ try {
93
+ const { sessionId } = req.params;
94
+ const removed = await sessionManager_1.sessionManager.removeSession(sessionId);
95
+ if (removed) {
96
+ res.json({ success: true, message: `Session ${sessionId} closed` });
97
+ }
98
+ else {
99
+ res.status(404).json({ error: 'Session not found' });
100
+ }
101
+ }
102
+ catch (error) {
103
+ console.error('Failed to close session:', error);
104
+ res.status(500).json({ error: 'Failed to close session' });
105
+ }
106
+ });
107
+ // 清除所有会话
108
+ router.delete('/sessions', async (req, res) => {
109
+ try {
110
+ const clearedCount = await sessionManager_1.sessionManager.clearAllSessions();
111
+ res.json({
112
+ success: true,
113
+ clearedCount,
114
+ message: `Successfully cleared ${clearedCount} sessions`
115
+ });
116
+ }
117
+ catch (error) {
118
+ console.error('Failed to clear all sessions:', error);
119
+ res.status(500).json({ error: 'Failed to clear all sessions' });
120
+ }
121
+ });
122
+ // 中断指定会话的当前请求
123
+ router.post('/sessions/:sessionId/interrupt', async (req, res) => {
124
+ try {
125
+ const { sessionId } = req.params;
126
+ console.log(`🛑 API: Interrupt request for session: ${sessionId}`);
127
+ const result = await sessionManager_1.sessionManager.interruptSession(sessionId);
128
+ if (result.success) {
129
+ res.json({
130
+ success: true,
131
+ message: `Session ${sessionId} interrupted successfully`
132
+ });
133
+ }
134
+ else {
135
+ res.status(result.error === 'Session not found' ? 404 : 500).json({
136
+ success: false,
137
+ error: result.error || 'Failed to interrupt session'
138
+ });
139
+ }
140
+ }
141
+ catch (error) {
142
+ console.error('Failed to interrupt session:', error);
143
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
144
+ res.status(500).json({
145
+ success: false,
146
+ error: 'Failed to interrupt session',
147
+ details: errorMessage
148
+ });
149
+ }
150
+ });
151
+ // Get all agents
152
+ router.get('/', (req, res) => {
153
+ try {
154
+ const { enabled } = req.query;
155
+ let agents = globalAgentStorage.getAllAgents();
156
+ // Filter by enabled status
157
+ if (enabled !== undefined) {
158
+ const isEnabled = enabled === 'true';
159
+ agents = agents.filter(agent => agent.enabled === isEnabled);
160
+ }
161
+ // Filter by component type
162
+ // componentType filtering removed - no longer needed
163
+ res.json({ agents });
164
+ }
165
+ catch (error) {
166
+ console.error('Failed to get agents:', error);
167
+ res.status(500).json({ error: 'Failed to retrieve agents' });
168
+ }
169
+ });
170
+ // Get specific agent
171
+ router.get('/:agentId', (req, res) => {
172
+ try {
173
+ const { agentId } = req.params;
174
+ const agent = globalAgentStorage.getAgent(agentId);
175
+ if (!agent) {
176
+ return res.status(404).json({ error: 'Agent not found' });
177
+ }
178
+ res.json({ agent });
179
+ }
180
+ catch (error) {
181
+ console.error('Failed to get agent:', error);
182
+ res.status(500).json({ error: 'Failed to retrieve agent' });
183
+ }
184
+ });
185
+ // Create new agent
186
+ router.post('/', (req, res) => {
187
+ try {
188
+ const validation = CreateAgentSchema.safeParse(req.body);
189
+ if (!validation.success) {
190
+ return res.status(400).json({ error: 'Invalid agent data', details: validation.error });
191
+ }
192
+ const agentData = validation.data;
193
+ // Check if agent ID already exists
194
+ const existingAgent = globalAgentStorage.getAgent(agentData.id);
195
+ if (existingAgent) {
196
+ return res.status(409).json({ error: 'Agent with this ID already exists' });
197
+ }
198
+ const agent = globalAgentStorage.createAgent({
199
+ ...agentData,
200
+ version: '1.0.0',
201
+ model: 'sonnet',
202
+ source: 'local'
203
+ });
204
+ res.json({ agent, message: 'Agent created successfully' });
205
+ }
206
+ catch (error) {
207
+ console.error('Failed to create agent:', error);
208
+ res.status(500).json({ error: 'Failed to create agent' });
209
+ }
210
+ });
211
+ // Update agent
212
+ router.put('/:agentId', (req, res) => {
213
+ try {
214
+ const { agentId } = req.params;
215
+ const validation = UpdateAgentSchema.safeParse(req.body);
216
+ if (!validation.success) {
217
+ return res.status(400).json({ error: 'Invalid agent data', details: validation.error });
218
+ }
219
+ const existingAgent = globalAgentStorage.getAgent(agentId);
220
+ if (!existingAgent) {
221
+ return res.status(404).json({ error: 'Agent not found' });
222
+ }
223
+ // 过滤并转换 validation.data,将 maxTurns: null 转换为 undefined
224
+ const updateData = { ...validation.data };
225
+ if (updateData.maxTurns === null) {
226
+ updateData.maxTurns = undefined;
227
+ }
228
+ // 构建更新后的 agent
229
+ const updatedAgent = {
230
+ ...existingAgent,
231
+ ...updateData,
232
+ id: agentId, // Ensure ID doesn't change
233
+ updatedAt: new Date().toISOString()
234
+ };
235
+ globalAgentStorage.saveAgent(updatedAgent);
236
+ res.json({ agent: updatedAgent, message: 'Agent updated successfully' });
237
+ }
238
+ catch (error) {
239
+ console.error('Failed to update agent:', error);
240
+ res.status(500).json({ error: 'Failed to update agent' });
241
+ }
242
+ });
243
+ // Delete agent
244
+ router.delete('/:agentId', (req, res) => {
245
+ try {
246
+ const { agentId } = req.params;
247
+ console.log(`🗑️ [ROUTE DEBUG] DELETE request for agent: ${agentId}`);
248
+ const deleted = globalAgentStorage.deleteAgent(agentId);
249
+ console.log(`🗑️ [ROUTE DEBUG] Delete result:`, deleted);
250
+ if (!deleted) {
251
+ console.log(`❌ [ROUTE DEBUG] Agent not found: ${agentId}`);
252
+ return res.status(404).json({ error: 'Agent not found' });
253
+ }
254
+ console.log(`✅ [ROUTE DEBUG] Agent deleted successfully: ${agentId}`);
255
+ res.json({ success: true, message: 'Agent deleted successfully' });
256
+ }
257
+ catch (error) {
258
+ console.error('❌ [ROUTE DEBUG] Failed to delete agent:', error);
259
+ res.status(500).json({ error: 'Failed to delete agent' });
260
+ }
261
+ });
262
+ // Validation schemas for chat
263
+ const ImageSchema = zod_1.z.object({
264
+ id: zod_1.z.string(),
265
+ data: zod_1.z.string(), // base64 encoded image data
266
+ mediaType: zod_1.z.enum(['image/jpeg', 'image/png', 'image/gif', 'image/webp']),
267
+ filename: zod_1.z.string().optional()
268
+ });
269
+ const ChatRequestSchema = zod_1.z.object({
270
+ message: zod_1.z.string(),
271
+ images: zod_1.z.array(ImageSchema).optional(),
272
+ agentId: zod_1.z.string().min(1),
273
+ sessionId: zod_1.z.string().optional().nullable(),
274
+ projectPath: zod_1.z.string().optional(),
275
+ mcpTools: zod_1.z.array(zod_1.z.string()).optional(),
276
+ permissionMode: zod_1.z.enum(['default', 'acceptEdits', 'bypassPermissions', 'plan']).optional(),
277
+ model: zod_1.z.string().optional(),
278
+ claudeVersion: zod_1.z.string().optional(), // Claude版本ID
279
+ channel: zod_1.z.enum(['web', 'slack']).optional().default('web'), // Channel for streaming control
280
+ context: zod_1.z.object({
281
+ currentSlide: zod_1.z.number().optional().nullable(),
282
+ slideContent: zod_1.z.string().optional(),
283
+ allSlides: zod_1.z.array(zod_1.z.object({
284
+ index: zod_1.z.number(),
285
+ title: zod_1.z.string(),
286
+ path: zod_1.z.string(),
287
+ exists: zod_1.z.boolean().optional()
288
+ })).optional(),
289
+ // Generic context for other agent types
290
+ currentItem: zod_1.z.any().optional(),
291
+ allItems: zod_1.z.array(zod_1.z.any()).optional(),
292
+ customContext: zod_1.z.record(zod_1.z.any()).optional()
293
+ }).optional(),
294
+ envVars: zod_1.z.record(zod_1.z.string()).optional()
295
+ }).refine(data => {
296
+ // Either message text or images must be provided
297
+ return data.message.trim().length > 0 || (data.images && data.images.length > 0);
298
+ }, {
299
+ message: "Either message text or images must be provided"
300
+ });
301
+ // Helper functions for chat endpoint
302
+ /**
303
+ * 设置 SSE 连接管理
304
+ */
305
+ function setupSSEConnectionManagement(req, res, agentId) {
306
+ // 连接管理变量
307
+ let isConnectionClosed = false;
308
+ let connectionTimeout = null;
309
+ let currentRequestId = null;
310
+ let claudeSession; // 会话实例,稍后赋值
311
+ // 安全关闭连接的函数
312
+ const safeCloseConnection = (reason) => {
313
+ if (isConnectionClosed)
314
+ return;
315
+ isConnectionClosed = true;
316
+ console.log(`🔚 Closing SSE connection for agent ${agentId}: ${reason}`);
317
+ // 清理超时定时器
318
+ if (connectionTimeout) {
319
+ clearTimeout(connectionTimeout);
320
+ connectionTimeout = null;
321
+ }
322
+ // 清理 Claude 请求回调
323
+ if (currentRequestId && claudeSession) {
324
+ claudeSession.cancelRequest(currentRequestId);
325
+ if (reason === 'request completed') {
326
+ console.log(`✅ Cleaned up Claude request ${currentRequestId}: ${reason}`);
327
+ }
328
+ else {
329
+ console.log(`🚫 Cancelled Claude request ${currentRequestId} due to: ${reason}`);
330
+ }
331
+ }
332
+ // 确保连接关闭
333
+ if (!res.headersSent) {
334
+ try {
335
+ res.write(`data: ${JSON.stringify({
336
+ type: 'connection_closed',
337
+ reason: reason,
338
+ timestamp: Date.now()
339
+ })}\n\n`);
340
+ }
341
+ catch (writeError) {
342
+ console.error('Failed to write connection close event:', writeError);
343
+ }
344
+ }
345
+ try {
346
+ if (!res.destroyed) {
347
+ res.end();
348
+ }
349
+ }
350
+ catch (endError) {
351
+ console.error('Failed to end response:', endError);
352
+ }
353
+ };
354
+ // 监听客户端断开连接 - 只在响应阶段监听
355
+ res.on('close', () => {
356
+ if (!isConnectionClosed) {
357
+ safeCloseConnection('client disconnected');
358
+ }
359
+ });
360
+ // 监听请求完成
361
+ req.on('end', () => {
362
+ console.log('📤 Request data received completely');
363
+ });
364
+ // 监听连接错误
365
+ req.on('error', (error) => {
366
+ console.error('SSE request error:', error);
367
+ safeCloseConnection(`request error: ${error.message}`);
368
+ });
369
+ // 监听响应错误
370
+ res.on('error', (error) => {
371
+ console.error('SSE response error:', error);
372
+ safeCloseConnection(`response error: ${error.message}`);
373
+ });
374
+ // 设置连接超时保护(30分钟)
375
+ const CONNECTION_TIMEOUT_MS = 30 * 60 * 1000;
376
+ connectionTimeout = setTimeout(() => {
377
+ safeCloseConnection('connection timeout');
378
+ }, CONNECTION_TIMEOUT_MS);
379
+ return {
380
+ isConnectionClosed: () => isConnectionClosed,
381
+ safeCloseConnection,
382
+ setCurrentRequestId: (id) => { currentRequestId = id; },
383
+ setClaudeSession: (session) => { claudeSession = session; }
384
+ };
385
+ }
386
+ // POST /api/agents/chat - Agent-based AI chat using Claude Code SDK with session management
387
+ router.post('/chat', async (req, res) => {
388
+ // 重试逻辑:最多重试1次
389
+ let retryCount = 0;
390
+ const MAX_RETRIES = 1;
391
+ try {
392
+ console.log('Chat request received:', req.body);
393
+ // 输出当前Session Manager的状态
394
+ console.log('📊 SessionManager状态 - 收到/chat消息时:');
395
+ console.log(` 活跃会话总数: ${sessionManager_1.sessionManager.getActiveSessionCount()}`);
396
+ const sessionsInfo = sessionManager_1.sessionManager.getSessionsInfo();
397
+ console.log(' 会话详情:');
398
+ sessionsInfo.forEach(session => {
399
+ console.log(` - SessionId: ${session.sessionId}`);
400
+ console.log(` AgentId: ${session.agentId}`);
401
+ console.log(` 状态: ${session.status}`);
402
+ console.log(` 是否活跃: ${session.isActive}`);
403
+ console.log(` 空闲时间: ${Math.round(session.idleTimeMs / 1000)}秒`);
404
+ console.log(` 最后活动: ${new Date(session.lastActivity).toISOString()}`);
405
+ });
406
+ // 验证请求数据
407
+ const validation = ChatRequestSchema.safeParse(req.body);
408
+ if (!validation.success) {
409
+ console.log('Validation failed:', validation.error);
410
+ return res.status(400).json({ error: 'Invalid request body', details: validation.error });
411
+ }
412
+ const { message, images, agentId, sessionId: initialSessionId, projectPath, mcpTools, permissionMode, model, claudeVersion, channel, envVars } = validation.data;
413
+ let sessionId = initialSessionId;
414
+ console.log('[Backend] Received chat request:', {
415
+ agentId,
416
+ sessionId,
417
+ envVarsKeys: envVars ? Object.keys(envVars) : [],
418
+ envVars
419
+ });
420
+ // Configure partial message streaming based on channel
421
+ const includePartialMessages = channel === 'web';
422
+ console.log(`📡 Channel: ${channel}, includePartialMessages: ${includePartialMessages}`);
423
+ // 获取 agent 配置
424
+ const agent = globalAgentStorage.getAgent(agentId);
425
+ if (!agent) {
426
+ return res.status(404).json({ error: 'Agent not found' });
427
+ }
428
+ if (!agent.enabled) {
429
+ return res.status(403).json({ error: 'Agent is disabled' });
430
+ }
431
+ // 设置 SSE 响应头
432
+ res.setHeader('Content-Type', 'text/event-stream');
433
+ res.setHeader('Cache-Control', 'no-cache');
434
+ res.setHeader('Connection', 'keep-alive');
435
+ res.setHeader('Access-Control-Allow-Origin', '*');
436
+ res.setHeader('Access-Control-Allow-Headers', 'Cache-Control');
437
+ // 设置连接管理
438
+ const connectionManager = setupSSEConnectionManagement(req, res, agentId);
439
+ // 🎤 初始化 AskUserQuestion 模块(只会初始化一次)
440
+ (0, index_js_1.initAskUserQuestionModule)();
441
+ // 🎤 生成 SSE channel ID(用于通知渠道管理)
442
+ const sseChannelId = (0, index_js_1.generateSSEChannelId)();
443
+ // 注意:SSE channel 需要 sessionId,但新会话还没有 sessionId
444
+ // 我们使用临时 ID,稍后在收到 Claude SDK 的 sessionId 时更新
445
+ const tempSessionId = sessionId || `temp_${Date.now()}`;
446
+ // 创建 SSE channel,传入 onClose 回调用于自动注销和清理
447
+ const sseChannel = new index_js_1.SSENotificationChannel(sseChannelId, tempSessionId, agentId, res, () => {
448
+ // 连接关闭时自动注销渠道,防止内存泄漏
449
+ index_js_1.notificationChannelManager.unregisterChannel(sseChannelId);
450
+ // 🎤 取消该 session 的所有等待中的用户输入请求
451
+ // 使用 sseChannel.sessionId 获取最新的 sessionId(可能已从 temp 更新为真实 ID)
452
+ const currentSessionId = sseChannel.sessionId;
453
+ const cancelledCount = index_js_1.userInputRegistry.cancelAllBySession(currentSessionId, 'SSE connection closed');
454
+ if (cancelledCount > 0) {
455
+ console.log(`🎤 [AskUserQuestion] Cancelled ${cancelledCount} pending inputs for session: ${currentSessionId}`);
456
+ }
457
+ });
458
+ index_js_1.notificationChannelManager.registerChannel(sseChannel);
459
+ console.log(`📡 [AskUserQuestion] Registered SSE channel: ${sseChannelId}`);
460
+ // =================================================================================
461
+ // A2A Stream Event Subscription
462
+ // Subscribe to A2A stream events to forward sessionId to frontend
463
+ // This allows frontend to connect to history stream early for real-time display
464
+ // =================================================================================
465
+ const a2aStreamStartHandler = (event) => {
466
+ // Only forward events for the same project
467
+ if (event.projectId === projectPath) {
468
+ try {
469
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
470
+ res.write(`data: ${JSON.stringify({
471
+ type: 'a2a_stream_start',
472
+ sessionId: event.sessionId,
473
+ contextId: event.contextId, // A2A standard contextId
474
+ taskId: event.taskId, // A2A standard taskId
475
+ agentUrl: event.agentUrl,
476
+ message: event.message,
477
+ timestamp: event.timestamp,
478
+ })}\n\n`);
479
+ }
480
+ }
481
+ catch (writeError) {
482
+ console.error('Failed to write A2A stream start event:', writeError);
483
+ }
484
+ }
485
+ };
486
+ const a2aStreamDataHandler = (event) => {
487
+ // Only forward events for the same project
488
+ if (event.projectId === projectPath) {
489
+ try {
490
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
491
+ res.write(`data: ${JSON.stringify({
492
+ type: 'a2a_stream_data',
493
+ sessionId: event.sessionId,
494
+ agentUrl: event.agentUrl, // Agent URL for frontend matching
495
+ event: event.event, // The actual A2A standard event
496
+ timestamp: event.timestamp,
497
+ })}\n\n`);
498
+ }
499
+ }
500
+ catch (writeError) {
501
+ console.error('Failed to write A2A stream data event:', writeError);
502
+ }
503
+ }
504
+ };
505
+ const a2aStreamEndHandler = (event) => {
506
+ // Only forward events for the same project
507
+ if (event.projectId === projectPath) {
508
+ try {
509
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
510
+ res.write(`data: ${JSON.stringify({
511
+ type: 'a2a_stream_end',
512
+ sessionId: event.sessionId,
513
+ success: event.success,
514
+ error: event.error,
515
+ finalState: event.finalState, // A2A standard TaskState
516
+ timestamp: event.timestamp,
517
+ })}\n\n`);
518
+ }
519
+ }
520
+ catch (writeError) {
521
+ console.error('Failed to write A2A stream end event:', writeError);
522
+ }
523
+ }
524
+ };
525
+ // Subscribe to A2A stream events
526
+ a2aStreamEvents_js_1.a2aStreamEventEmitter.on('a2a_stream_start', a2aStreamStartHandler);
527
+ a2aStreamEvents_js_1.a2aStreamEventEmitter.on('a2a_stream_data', a2aStreamDataHandler);
528
+ a2aStreamEvents_js_1.a2aStreamEventEmitter.on('a2a_stream_end', a2aStreamEndHandler);
529
+ // Clean up subscription when connection closes
530
+ res.on('close', () => {
531
+ a2aStreamEvents_js_1.a2aStreamEventEmitter.off('a2a_stream_start', a2aStreamStartHandler);
532
+ a2aStreamEvents_js_1.a2aStreamEventEmitter.off('a2a_stream_data', a2aStreamDataHandler);
533
+ a2aStreamEvents_js_1.a2aStreamEventEmitter.off('a2a_stream_end', a2aStreamEndHandler);
534
+ });
535
+ // =================================================================================
536
+ // 重试循环:处理会话失败的情况
537
+ while (retryCount <= MAX_RETRIES) {
538
+ try {
539
+ console.log(`🔄 Attempt ${retryCount + 1}/${MAX_RETRIES + 1} for session: ${sessionId || 'new'}`);
540
+ // 构建查询选项(包含 AskUserQuestion MCP 工具)
541
+ // 使用 tempSessionId 作为 MCP 工具的 sessionId(新会话还没有真实 sessionId)
542
+ // Enable A2A streaming for web frontend (real-time updates for external agent calls)
543
+ const { queryOptions, askUserSessionRef } = await (0, claudeUtils_js_1.buildQueryOptions)(agent, projectPath, mcpTools, permissionMode, model, claudeVersion, undefined, envVars, tempSessionId, agentId, true);
544
+ // 📊 输出传到 query 中的模型参数
545
+ console.log('📊 [Chat API] QueryOptions 模型参数:');
546
+ console.log(` 请求中的 model 参数: ${model || '(未指定)'}`);
547
+ console.log(` 请求中的 claudeVersion: ${claudeVersion || '(未指定)'}`);
548
+ console.log(` 最终 queryOptions.model: ${queryOptions.model}`);
549
+ console.log(` queryOptions.pathToClaudeCodeExecutable: ${queryOptions.pathToClaudeCodeExecutable || '(未指定)'}`);
550
+ console.log(` queryOptions.cwd: ${queryOptions.cwd}`);
551
+ console.log(` queryOptions.permissionMode: ${queryOptions.permissionMode}`);
552
+ // ⚡ CRITICAL: Add includePartialMessages BEFORE creating session
553
+ // This must be set before handleSessionManagement because ClaudeSession
554
+ // uses these options to configure the Claude SDK query
555
+ queryOptions.includePartialMessages = includePartialMessages;
556
+ // 构建配置快照,用于检测配置变化
557
+ const configSnapshot = {
558
+ model: queryOptions.model,
559
+ claudeVersionId: claudeVersion,
560
+ permissionMode: queryOptions.permissionMode,
561
+ mcpTools: mcpTools || [],
562
+ allowedTools: agent.allowedTools
563
+ .filter((tool) => tool.enabled)
564
+ .map((tool) => tool.name)
565
+ };
566
+ console.log('📸 [Chat API] Config snapshot:', configSnapshot);
567
+ // 处理会话管理(传入配置快照)
568
+ const { claudeSession, actualSessionId: initialSessionId } = await (0, sessionUtils_js_1.handleSessionManagement)(agentId, sessionId || null, projectPath, queryOptions, claudeVersion, model, 'reuse', // session mode
569
+ configSnapshot);
570
+ let actualSessionId = initialSessionId;
571
+ // 📊 输出 Session 初始化后的信息
572
+ console.log('📊 [Chat API] Session 初始化后的信息:');
573
+ console.log(` Session ID: ${claudeSession.getClaudeSessionId?.() || '(无法获取)'}`);
574
+ console.log(` actualSessionId: ${actualSessionId || '(新会话)'}`);
575
+ console.log(` Agent ID: ${agentId}`);
576
+ // 尝试获取 session 的内部配置
577
+ try {
578
+ const sessionOptions = claudeSession.getOptions?.() || claudeSession.options || queryOptions;
579
+ console.log(` Session 使用的 model: ${sessionOptions?.model || '(未知)'}`);
580
+ console.log(` Session pathToClaudeCodeExecutable: ${sessionOptions?.pathToClaudeCodeExecutable || '(未知)'}`);
581
+ }
582
+ catch (e) {
583
+ console.log(` 无法获取 Session 内部配置`);
584
+ }
585
+ // 设置会话到连接管理器
586
+ connectionManager.setClaudeSession(claudeSession);
587
+ // 获取最终的模型名称(从queryOptions中获取,因为buildQueryOptions已经处理了优先级)
588
+ const finalModel = queryOptions.model || 'sonnet';
589
+ // 构建用户消息(传递claudeVersion以便查询isVision配置)
590
+ const userMessage = await (0, sessionUtils_js_1.buildUserMessageContent)(message, images, finalModel, projectPath, claudeVersion);
591
+ // 设置会话标题(使用第一条消息的前50个字符)
592
+ claudeSession.setSessionTitle(message);
593
+ // 为这个特定请求创建一个独立的query调用,但复用session context
594
+ const currentSessionId = claudeSession.getClaudeSessionId();
595
+ // 使用会话的 sendMessage 方法发送消息
596
+ let compactMessageBuffer = []; // 缓存 compact 相关消息
597
+ const currentRequestId = await claudeSession.sendMessage(userMessage, (sdkMessage) => {
598
+ if (isSDKSystemMessage(sdkMessage) && sdkMessage.subtype === "init") {
599
+ // 📊 打印完整的 system.init 消息体,用于调试模型使用情况
600
+ console.log('📊 [Chat API] System Init Message 完整消息体:');
601
+ console.log(JSON.stringify(sdkMessage, null, 2));
602
+ // 检查 MCP 服务器连接状态
603
+ if (sdkMessage.mcp_servers && Array.isArray(sdkMessage.mcp_servers)) {
604
+ const failedServers = sdkMessage.mcp_servers.filter((s) => s.status !== "connected");
605
+ if (failedServers.length > 0) {
606
+ console.warn("🚨 [MCP] Failed to connect MCP servers:", failedServers.map((s) => ({
607
+ name: s.name,
608
+ status: s.status,
609
+ error: s.error
610
+ })));
611
+ // 发送 MCP 状态通知给前端
612
+ const mcpStatusEvent = {
613
+ type: 'mcp_status',
614
+ subtype: 'connection_failed',
615
+ failedServers: failedServers,
616
+ timestamp: Date.now(),
617
+ agentId: agentId,
618
+ sessionId: actualSessionId || currentSessionId
619
+ };
620
+ try {
621
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
622
+ res.write(`data: ${JSON.stringify(mcpStatusEvent)}\n\n`);
623
+ }
624
+ }
625
+ catch (writeError) {
626
+ console.error('Failed to write MCP status event:', writeError);
627
+ }
628
+ }
629
+ else {
630
+ // 所有 MCP 服务器连接成功
631
+ const connectedServers = sdkMessage.mcp_servers.filter((s) => s.status === "connected");
632
+ if (connectedServers.length > 0) {
633
+ console.log("✅ [MCP] Successfully connected MCP servers:", connectedServers.map((s) => s.name));
634
+ // 发送成功连接通知给前端
635
+ const mcpStatusEvent = {
636
+ type: 'mcp_status',
637
+ subtype: 'connection_success',
638
+ connectedServers: connectedServers,
639
+ timestamp: Date.now(),
640
+ agentId: agentId,
641
+ sessionId: actualSessionId || currentSessionId
642
+ };
643
+ try {
644
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
645
+ res.write(`data: ${JSON.stringify(mcpStatusEvent)}\n\n`);
646
+ }
647
+ }
648
+ catch (writeError) {
649
+ console.error('Failed to write MCP success event:', writeError);
650
+ }
651
+ }
652
+ }
653
+ }
654
+ }
655
+ // 🚨 MCP 工具日志观察 - 检查执行错误
656
+ if (isSDKResultMessage(sdkMessage) && sdkMessage.subtype === "error_during_execution") {
657
+ const errorMessage = sdkMessage; // 临时类型断言以访问错误详情
658
+ console.error("❌ [MCP] Execution failed:", {
659
+ error: errorMessage.error,
660
+ details: errorMessage.details,
661
+ tool: errorMessage.tool,
662
+ timestamp: Date.now()
663
+ });
664
+ // 发送执行错误通知给前端
665
+ const mcpErrorEvent = {
666
+ type: 'mcp_error',
667
+ subtype: 'execution_failed',
668
+ error: errorMessage.error,
669
+ details: errorMessage.details,
670
+ tool: errorMessage.tool,
671
+ timestamp: Date.now(),
672
+ agentId: agentId,
673
+ sessionId: actualSessionId || currentSessionId
674
+ };
675
+ try {
676
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
677
+ res.write(`data: ${JSON.stringify(mcpErrorEvent)}\n\n`);
678
+ }
679
+ }
680
+ catch (writeError) {
681
+ console.error('Failed to write MCP error event:', writeError);
682
+ }
683
+ }
684
+ // 🔍 添加详细日志来观察消息结构
685
+ if (message === '/compact') {
686
+ const msgWithContent = sdkMessage; // 临时使用 any 访问 message 属性
687
+ console.log('📦 [COMPACT] Received SDK message:', {
688
+ type: sdkMessage.type,
689
+ subtype: sdkMessage.subtype,
690
+ hasMessage: !!msgWithContent.message,
691
+ messageType: typeof msgWithContent.message,
692
+ messageContentType: msgWithContent.message?.content ? typeof msgWithContent.message.content : 'no content',
693
+ messageContentLength: Array.isArray(msgWithContent.message?.content) ? msgWithContent.message.content.length : 'not array',
694
+ firstBlock: Array.isArray(msgWithContent.message?.content) && msgWithContent.message.content.length > 0
695
+ ? { type: msgWithContent.message.content[0].type, hasText: !!msgWithContent.message.content[0].text, textPreview: msgWithContent.message.content[0].text?.substring(0, 100) }
696
+ : 'no blocks'
697
+ });
698
+ }
699
+ // 处理 /compact 命令的特殊消息序列
700
+ if (message === '/compact' && isSDKCompactBoundaryMessage(sdkMessage)) {
701
+ compactMessageBuffer.push(sdkMessage);
702
+ console.log('📦 [COMPACT] Detected compact_boundary, buffering messages...');
703
+ return; // 不发送给前端,等待完整的消息序列
704
+ }
705
+ // 如果在 compact 模式下,缓存消息直到找到完整序列
706
+ if (compactMessageBuffer.length > 0) {
707
+ compactMessageBuffer.push(sdkMessage);
708
+ // 检查是否有足够的消息来构成完整的 compact 序列
709
+ if (compactMessageBuffer.length >= 5) {
710
+ console.log('📦 [COMPACT] Processing complete compact sequence...');
711
+ // 提取摘要内容(第二个消息应该是 isCompactSummary)
712
+ const summaryMsg = compactMessageBuffer.find(msg => msg.isCompactSummary);
713
+ let compactContent = '会话上下文已压缩';
714
+ if (summaryMsg?.message?.content) {
715
+ if (Array.isArray(summaryMsg.message.content)) {
716
+ const textBlock = summaryMsg.message.content.find((block) => block.type === 'text');
717
+ compactContent = textBlock?.text || compactContent;
718
+ }
719
+ else if (typeof summaryMsg.message.content === 'string') {
720
+ compactContent = summaryMsg.message.content;
721
+ }
722
+ }
723
+ // 创建 compact summary 消息发送给前端
724
+ const compactSummaryMessage = {
725
+ type: 'assistant',
726
+ role: 'assistant',
727
+ content: [
728
+ {
729
+ type: 'compactSummary',
730
+ text: compactContent
731
+ }
732
+ ],
733
+ agentId: agentId,
734
+ sessionId: actualSessionId || currentSessionId,
735
+ timestamp: Date.now(),
736
+ isCompactSummary: true
737
+ };
738
+ console.log('📦 [COMPACT] Sending compact summary to frontend:', compactContent.substring(0, 100));
739
+ try {
740
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
741
+ res.write(`data: ${JSON.stringify(compactSummaryMessage)}\n\n`);
742
+ }
743
+ }
744
+ catch (writeError) {
745
+ console.error('Failed to write compact summary:', writeError);
746
+ }
747
+ // 清空缓存
748
+ compactMessageBuffer = [];
749
+ return; // 不继续处理原始消息
750
+ }
751
+ }
752
+ // 检查连接是否已关闭
753
+ if (connectionManager.isConnectionClosed()) {
754
+ console.log(`⚠️ Skipping response for closed connection, agent: ${agentId}`);
755
+ return;
756
+ }
757
+ // 当收到 init 消息时,确认会话 ID
758
+ const responseSessionId = sdkMessage.session_id;
759
+ if (isSDKSystemMessage(sdkMessage) && sdkMessage.subtype === 'init' && responseSessionId) {
760
+ if (!actualSessionId || !currentSessionId) {
761
+ // 新会话:保存session ID
762
+ claudeSession.setClaudeSessionId(responseSessionId);
763
+ sessionManager_1.sessionManager.confirmSessionId(claudeSession, responseSessionId, configSnapshot);
764
+ console.log(`✅ Confirmed session ${responseSessionId} for agent: ${agentId}`);
765
+ // 🎤 更新 NotificationChannel、UserInputRegistry 和 MCP Server 的 sessionId
766
+ if (tempSessionId !== responseSessionId) {
767
+ index_js_1.notificationChannelManager.updateChannelSession(sseChannelId, responseSessionId);
768
+ index_js_1.userInputRegistry.updateSessionId(tempSessionId, responseSessionId);
769
+ // 更新 AskUserQuestion MCP Server 使用的 session ID
770
+ if (askUserSessionRef) {
771
+ askUserSessionRef.current = responseSessionId;
772
+ }
773
+ console.log(`📡 [AskUserQuestion] Updated session: ${tempSessionId} -> ${responseSessionId}`);
774
+ }
775
+ }
776
+ else if (currentSessionId && responseSessionId !== currentSessionId) {
777
+ // Resume场景:Claude SDK返回了新的session ID,需要通知前端
778
+ console.log(`🔄 Session resumed: ${currentSessionId} -> ${responseSessionId} for agent: ${agentId}`);
779
+ // 更新会话管理器中的session ID映射
780
+ sessionManager_1.sessionManager.replaceSessionId(claudeSession, currentSessionId, responseSessionId);
781
+ claudeSession.setClaudeSessionId(responseSessionId);
782
+ // 发送session resume通知给前端
783
+ const resumeNotification = {
784
+ type: 'session_resumed',
785
+ subtype: 'new_branch',
786
+ originalSessionId: currentSessionId,
787
+ newSessionId: responseSessionId,
788
+ sessionId: responseSessionId,
789
+ message: `会话已从历史记录恢复并创建新分支。原始会话ID: ${currentSessionId},新会话ID: ${responseSessionId}`,
790
+ timestamp: Date.now()
791
+ };
792
+ try {
793
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
794
+ res.write(`data: ${JSON.stringify(resumeNotification)}\n\n`);
795
+ console.log(`🔄 Sent session resume notification: ${currentSessionId} -> ${responseSessionId}`);
796
+ }
797
+ }
798
+ catch (writeError) {
799
+ console.error('Failed to write session resume notification:', writeError);
800
+ }
801
+ // 更新实际的session ID为新的ID
802
+ actualSessionId = responseSessionId;
803
+ }
804
+ else {
805
+ // 继续会话:使用现有session ID
806
+ console.log(`♻️ Continued session ${currentSessionId} for agent: ${agentId}`);
807
+ }
808
+ }
809
+ // 🎯 检测子Agent消息:通过 parent_tool_use_id 字段判断
810
+ const msgAny = sdkMessage;
811
+ const isSidechain = !!msgAny.parent_tool_use_id;
812
+ const parentToolUseId = msgAny.parent_tool_use_id;
813
+ if (isSidechain) {
814
+ const contentBlocks = msgAny.message?.content || [];
815
+ const blockTypes = contentBlocks.map((b) => b.type);
816
+ console.log('🎯 [SIDECHAIN] Sub-agent message:', {
817
+ type: sdkMessage.type,
818
+ parentToolUseId,
819
+ blockTypes,
820
+ // 如果有文本内容,打印前100字符
821
+ textPreview: contentBlocks.find((b) => b.type === 'text')?.text?.substring(0, 100),
822
+ });
823
+ }
824
+ const eventData = {
825
+ ...sdkMessage,
826
+ agentId: agentId,
827
+ sessionId: actualSessionId || responseSessionId || currentSessionId,
828
+ timestamp: Date.now(),
829
+ // 🎯 添加子Agent标识
830
+ isSidechain,
831
+ parentToolUseId,
832
+ };
833
+ // 确保返回的 session_id 字段与 sessionId 一致
834
+ if (actualSessionId || currentSessionId) {
835
+ eventData.session_id = actualSessionId || currentSessionId;
836
+ }
837
+ // 🎤 AskUserQuestion 工具调用说明(事件驱动架构):
838
+ // 1. MCP 工具调用 userInputRegistry.waitForUserInput()
839
+ // 2. UserInputRegistry 发出 'awaiting_input' 事件
840
+ // 3. NotificationChannelManager 通过活跃渠道(SSE/Slack等)发送通知
841
+ // 4. 用户响应后,调用 /agents/user-response API
842
+ // 5. MCP 工具返回,Claude 继续执行
843
+ // 不需要在这里检测工具调用或关闭连接
844
+ try {
845
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
846
+ res.write(`data: ${JSON.stringify(eventData)}\n\n`);
847
+ }
848
+ }
849
+ catch (writeError) {
850
+ console.error('Failed to write SSE data:', writeError);
851
+ const errorMessage = writeError instanceof Error ? writeError.message : 'unknown write error';
852
+ connectionManager.safeCloseConnection(`write error: ${errorMessage}`);
853
+ return;
854
+ }
855
+ // 当收到 result 事件时,检查是否为错误类型
856
+ if (isSDKResultMessage(sdkMessage)) {
857
+ const resultMsg = sdkMessage; // 类型断言以访问 subtype 和 errors 字段
858
+ // 检查是否为错误类型的 result
859
+ if (resultMsg.subtype !== 'success') {
860
+ console.error(`❌ Received error result (subtype: ${resultMsg.subtype}):`, resultMsg.errors);
861
+ // 发送错误事件给前端
862
+ const errorEvent = {
863
+ type: 'error',
864
+ error: 'Claude API request failed',
865
+ message: resultMsg.errors?.join('\n') || 'Unknown error occurred',
866
+ subtype: resultMsg.subtype,
867
+ timestamp: Date.now(),
868
+ agentId: agentId,
869
+ sessionId: actualSessionId || currentSessionId
870
+ };
871
+ try {
872
+ if (!res.destroyed && !connectionManager.isConnectionClosed()) {
873
+ res.write(`data: ${JSON.stringify(errorEvent)}\n\n`);
874
+ }
875
+ }
876
+ catch (writeError) {
877
+ console.error('Failed to write error event:', writeError);
878
+ }
879
+ }
880
+ console.log(`✅ Received result event (subtype: ${resultMsg.subtype}), closing SSE connection for sessionId: ${actualSessionId || currentSessionId}`);
881
+ connectionManager.safeCloseConnection('request completed');
882
+ }
883
+ });
884
+ // 设置当前请求ID到连接管理器
885
+ connectionManager.setCurrentRequestId(currentRequestId);
886
+ console.log(`📨 Started Claude request for agent: ${agentId}, sessionId: ${currentSessionId || 'new'}, requestId: ${currentRequestId}`);
887
+ // 如果成功发送消息,跳出重试循环
888
+ break;
889
+ }
890
+ catch (sessionError) {
891
+ console.error(`❌ Claude session error (attempt ${retryCount + 1}/${MAX_RETRIES + 1}):`, sessionError);
892
+ const errorMessage = sessionError instanceof Error ? sessionError.message : 'Unknown error';
893
+ const originalSessionId = sessionId; // 使用外部作用域的sessionId
894
+ // 检查是否应该重试
895
+ const shouldRetry = retryCount < MAX_RETRIES && originalSessionId !== null;
896
+ if (shouldRetry && originalSessionId) {
897
+ // 尝试重试:从SessionManager中移除失败的会话
898
+ console.log(`🔄 Attempting to recover from session failure for session: ${originalSessionId}`);
899
+ console.log(` Error details: ${errorMessage}`);
900
+ try {
901
+ // 从SessionManager中移除失败的会话
902
+ const removed = await sessionManager_1.sessionManager.removeSession(originalSessionId);
903
+ if (removed) {
904
+ console.log(`✅ Removed failed session ${originalSessionId} from SessionManager`);
905
+ }
906
+ else {
907
+ console.log(`⚠️ Session ${originalSessionId} was not found in SessionManager (may have been cleaned up already)`);
908
+ }
909
+ }
910
+ catch (removeError) {
911
+ console.error(`⚠️ Failed to remove session ${originalSessionId}:`, removeError);
912
+ }
913
+ // 将sessionId设为null,下次循环将创建新会话
914
+ sessionId = null;
915
+ retryCount++;
916
+ console.log(`🔄 Retrying with new session (attempt ${retryCount + 1}/${MAX_RETRIES + 1})...`);
917
+ continue; // 继续下一次循环
918
+ }
919
+ // 不再重试,发送错误给前端
920
+ console.log(`❌ Maximum retries reached or no sessionId to retry. Sending error to frontend.`);
921
+ if (!connectionManager.isConnectionClosed()) {
922
+ try {
923
+ res.write(`data: ${JSON.stringify({
924
+ type: 'error',
925
+ error: 'Claude session failed',
926
+ message: errorMessage,
927
+ timestamp: Date.now(),
928
+ retriesExhausted: retryCount >= MAX_RETRIES
929
+ })}\n\n`);
930
+ }
931
+ catch (writeError) {
932
+ console.error('Failed to write error message:', writeError);
933
+ }
934
+ connectionManager.safeCloseConnection(`session error: ${errorMessage}`);
935
+ }
936
+ break; // 跳出重试循环
937
+ }
938
+ } // End of while loop
939
+ }
940
+ catch (error) {
941
+ console.error('Error in AI chat:', error);
942
+ // 使用安全关闭连接函数(如果在 try 块内部定义的话)
943
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
944
+ if (!res.headersSent) {
945
+ // 如果还没有设置为 SSE,返回 JSON 错误
946
+ res.status(500).json({ error: 'AI request failed', message: errorMessage });
947
+ }
948
+ else {
949
+ // 如果已经是 SSE 连接,发送错误事件并关闭
950
+ try {
951
+ if (!res.destroyed) {
952
+ res.write(`data: ${JSON.stringify({
953
+ type: 'error',
954
+ error: 'AI request failed',
955
+ message: errorMessage,
956
+ timestamp: Date.now()
957
+ })}\n\n`);
958
+ res.end();
959
+ }
960
+ }
961
+ catch (writeError) {
962
+ console.error('Failed to write final error message:', writeError);
963
+ try {
964
+ if (!res.destroyed) {
965
+ res.end();
966
+ }
967
+ }
968
+ catch (endError) {
969
+ console.error('Failed to end response in error handler:', endError);
970
+ }
971
+ }
972
+ }
973
+ }
974
+ });
975
+ // =================================================================================
976
+ // 🎤 AskUserQuestion: Submit User Response API
977
+ // =================================================================================
978
+ // 当用户在前端交互组件中提交答案时,前端调用此 API
979
+ // 这会 resolve MCP 工具中正在等待的 Promise,使工具返回用户答案
980
+ const UserResponseSchema = zod_1.z.object({
981
+ toolUseId: zod_1.z.string().min(1, 'toolUseId is required'),
982
+ response: zod_1.z.string().min(1, 'response is required'),
983
+ // 可选的验证参数,用于防止伪造响应
984
+ sessionId: zod_1.z.string().optional(),
985
+ agentId: zod_1.z.string().optional()
986
+ });
987
+ router.post('/user-response', async (req, res) => {
988
+ try {
989
+ const validation = UserResponseSchema.safeParse(req.body);
990
+ if (!validation.success) {
991
+ return res.status(400).json({
992
+ error: 'Invalid request body',
993
+ details: validation.error.errors
994
+ });
995
+ }
996
+ const { toolUseId, response, sessionId, agentId } = validation.data;
997
+ console.log(`🎤 [AskUserQuestion] Received user response for tool: ${toolUseId}`);
998
+ // 使用带验证的提交方法,防止伪造响应
999
+ const result = index_js_1.userInputRegistry.validateAndSubmitUserResponse(toolUseId, response, sessionId, agentId);
1000
+ if (result.success) {
1001
+ console.log(`✅ [AskUserQuestion] User response submitted successfully for tool: ${toolUseId}`);
1002
+ res.json({
1003
+ success: true,
1004
+ message: 'User response submitted successfully'
1005
+ });
1006
+ }
1007
+ else {
1008
+ console.warn(`⚠️ [AskUserQuestion] Failed to submit response for tool: ${toolUseId}, error: ${result.error}`);
1009
+ // 根据错误类型返回不同的状态码
1010
+ const statusCode = result.error === 'No pending input found for this tool use ID' ? 404 : 403;
1011
+ res.status(statusCode).json({
1012
+ success: false,
1013
+ error: result.error
1014
+ });
1015
+ }
1016
+ }
1017
+ catch (error) {
1018
+ console.error('❌ [AskUserQuestion] Error processing user response:', error);
1019
+ res.status(500).json({
1020
+ success: false,
1021
+ error: 'Internal server error'
1022
+ });
1023
+ }
1024
+ });
1025
+ exports.default = router;
1026
+ //# sourceMappingURL=agents.js.map