agentstudio 0.1.18 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (664) hide show
  1. package/README.md +26 -505
  2. package/bin/agentstudio.js +305 -0
  3. package/bin/agentstudio.js.map +1 -0
  4. package/bin/serviceManager.d.ts +16 -0
  5. package/bin/serviceManager.d.ts.map +1 -0
  6. package/bin/serviceManager.js +434 -0
  7. package/bin/serviceManager.js.map +1 -0
  8. package/config/index.d.ts +74 -0
  9. package/config/index.d.ts.map +1 -0
  10. package/config/index.js +166 -0
  11. package/config/index.js.map +1 -0
  12. package/config/paths.d.ts +81 -0
  13. package/config/paths.d.ts.map +1 -0
  14. package/config/paths.js +98 -0
  15. package/config/paths.js.map +1 -0
  16. package/index.d.ts +4 -0
  17. package/index.d.ts.map +1 -0
  18. package/index.js +369 -0
  19. package/index.js.map +1 -0
  20. package/jobs/taskTimeoutMonitor.d.ts +25 -0
  21. package/jobs/taskTimeoutMonitor.d.ts.map +1 -0
  22. package/jobs/taskTimeoutMonitor.js +94 -0
  23. package/jobs/taskTimeoutMonitor.js.map +1 -0
  24. package/middleware/a2aAuth.d.ts +38 -0
  25. package/middleware/a2aAuth.d.ts.map +1 -0
  26. package/middleware/a2aAuth.js +134 -0
  27. package/middleware/a2aAuth.js.map +1 -0
  28. package/{backend/dist/middleware → middleware}/auth.d.ts +3 -1
  29. package/middleware/auth.d.ts.map +1 -0
  30. package/middleware/auth.js +35 -0
  31. package/middleware/auth.js.map +1 -0
  32. package/middleware/httpsOnly.d.ts +38 -0
  33. package/middleware/httpsOnly.d.ts.map +1 -0
  34. package/middleware/httpsOnly.js +105 -0
  35. package/middleware/httpsOnly.js.map +1 -0
  36. package/middleware/rateLimiting.d.ts +37 -0
  37. package/middleware/rateLimiting.d.ts.map +1 -0
  38. package/middleware/rateLimiting.js +118 -0
  39. package/middleware/rateLimiting.js.map +1 -0
  40. package/package.json +43 -38
  41. package/public/assets/AgentsPage-Nvg2xu6K.js +10 -0
  42. package/public/assets/Button-Co56C389.js +1 -0
  43. package/public/assets/ChatPage-D6sol0ad.js +442 -0
  44. package/public/assets/CommandForm-Bk7F_HU8.js +7 -0
  45. package/public/assets/CommandsPage-DZHyOdKd.js +1 -0
  46. package/public/assets/DashboardPage-29qC7Ev1.js +15 -0
  47. package/public/assets/FileBrowser-BYweUPH4.js +6 -0
  48. package/public/assets/FileExplorer-DNYj6Tsx.js +1 -0
  49. package/public/assets/GeneralSettingsPage-D9Xa7Nd8.js +1 -0
  50. package/public/assets/LandingPage-CjnT-cvO.js +1 -0
  51. package/public/assets/LoginPage-DcaGNCXH.js +16 -0
  52. package/public/assets/McpAdminSettingsPage-DgR3E2Bd.js +7 -0
  53. package/public/assets/McpPage-CtWf1CoL.js +40 -0
  54. package/public/assets/MemorySettingsPage-JTry4Ccp.js +1 -0
  55. package/public/assets/PluginsPage-D-BHjQ3P.js +1 -0
  56. package/public/assets/ProjectSelector-DSXOjMQC.js +1 -0
  57. package/public/assets/ProjectsPage-lLUk4-Xa.js +21 -0
  58. package/public/assets/ScheduledTasksPage-5hPbd9Vs.js +1 -0
  59. package/public/assets/SettingsLayout-DGJspXLp.js +1 -0
  60. package/public/assets/SkillsPage-DBw0m7D2.js +18 -0
  61. package/{backend/dist/frontend/assets/SubagentForm-DXtTTIKg.js → public/assets/SubagentForm-BdUK1U4y.js} +2 -2
  62. package/public/assets/SubagentsPage-Dnq70IFd.js +1 -0
  63. package/{backend/dist/frontend/assets/ToastTestPage-DT4wuN5C.js → public/assets/ToastTestPage-BfJQRFIm.js} +1 -1
  64. package/public/assets/ToolsList-Dl5F2fWk.js +1 -0
  65. package/public/assets/UnifiedToolSelector-CNbPsiuq.js +1 -0
  66. package/public/assets/VersionSettingsPage-BfoCcham.js +5 -0
  67. package/public/assets/_basePickBy-7C_e0Xv1.js +1 -0
  68. package/public/assets/_baseUniq-eGJNLBzx.js +1 -0
  69. package/public/assets/agents-ChrA1R0y.js +1 -0
  70. package/public/assets/arc-CuA752eE.js +1 -0
  71. package/public/assets/architectureDiagram-VXUJARFQ-BnPYh1OW.js +36 -0
  72. package/public/assets/blockDiagram-VD42YOAC-72nsMt_i.js +122 -0
  73. package/public/assets/c4Diagram-YG6GDRKO-BNJSAXcg.js +10 -0
  74. package/public/assets/channel-CIunGC5m.js +1 -0
  75. package/public/assets/chunk-4BX2VUAB-RPxkCWhH.js +1 -0
  76. package/public/assets/chunk-55IACEB6-3ePDt0kp.js +1 -0
  77. package/public/assets/chunk-B4BG7PRW-CBg_BBfl.js +165 -0
  78. package/public/assets/chunk-DI55MBZ5-DIh69TUJ.js +220 -0
  79. package/public/assets/chunk-FMBD7UC4-BbjwhyTe.js +15 -0
  80. package/public/assets/chunk-QN33PNHL-BpH-o_YR.js +1 -0
  81. package/public/assets/chunk-QZHKN3VN-DYB7rh5Q.js +1 -0
  82. package/public/assets/chunk-TZMSLE5B-DPCYEVb3.js +1 -0
  83. package/public/assets/classDiagram-2ON5EDUG-aUQHFsTA.js +1 -0
  84. package/public/assets/classDiagram-v2-WZHVMYZB-aUQHFsTA.js +1 -0
  85. package/public/assets/clone-Ckf7tA1V.js +1 -0
  86. package/public/assets/cose-bilkent-S5V4N54A-CnpfmL-Y.js +1 -0
  87. package/public/assets/cytoscape.esm-DtBltrT8.js +331 -0
  88. package/public/assets/dagre-6UL2VRFP-DR9x77Xf.js +4 -0
  89. package/{backend/dist/frontend/assets/data-structures-DLJedtzx.js → public/assets/data-structures-C0h9Oap1.js} +1 -1
  90. package/public/assets/defaultLocale-C4B-KCzX.js +1 -0
  91. package/public/assets/diagram-PSM6KHXK-SONPsQNx.js +24 -0
  92. package/public/assets/diagram-QEK2KX5R-BKYFSfC1.js +43 -0
  93. package/public/assets/diagram-S2PKOQOG-CkM0APZj.js +24 -0
  94. package/public/assets/erDiagram-Q2GNP2WA-BX1DpOGx.js +60 -0
  95. package/public/assets/flowDiagram-NV44I4VS-HAAlzNbq.js +162 -0
  96. package/public/assets/ganttDiagram-LVOFAZNH-BqzWexqa.js +267 -0
  97. package/public/assets/gitGraphDiagram-NY62KEGX-CIPmSp43.js +65 -0
  98. package/public/assets/graph-m515btDj.js +1 -0
  99. package/public/assets/index-Bn3v3S9-.js +293 -0
  100. package/public/assets/index-DWieeYj4.css +1 -0
  101. package/public/assets/infoDiagram-F6ZHWCRC-Pn4yNWrF.js +2 -0
  102. package/public/assets/init-Gi6I4Gst.js +1 -0
  103. package/public/assets/journeyDiagram-XKPGCS4Q-BfzTomS0.js +139 -0
  104. package/public/assets/kanban-definition-3W4ZIXB7-Cgju7b-L.js +89 -0
  105. package/public/assets/katex-qrhCpa0F.js +261 -0
  106. package/public/assets/layout-BKQfQSxJ.js +1 -0
  107. package/public/assets/linear-DigtLz3B.js +1 -0
  108. package/public/assets/mindmap-definition-VGOIOE7T-qopraVFy.js +68 -0
  109. package/public/assets/monaco-editor-DHKm5-VF.js +19 -0
  110. package/public/assets/ordinal-Cboi1Yqb.js +1 -0
  111. package/public/assets/pieDiagram-ADFJNKIX-BcoaAI-L.js +30 -0
  112. package/public/assets/quadrantDiagram-AYHSOK5B-D-DwcoSd.js +7 -0
  113. package/public/assets/requirementDiagram-UZGBJVZJ-DbQCpx77.js +64 -0
  114. package/public/assets/sankeyDiagram-TZEHDZUN-BVk8387S.js +10 -0
  115. package/public/assets/sequenceDiagram-WL72ISMW-BdzICjxO.js +145 -0
  116. package/public/assets/stateDiagram-FKZM4ZOC-CYY-uUvJ.js +1 -0
  117. package/public/assets/stateDiagram-v2-4FDKWEC3-Dh2Kvomq.js +1 -0
  118. package/{backend/dist/frontend/assets/syntax-highlighting-YWvMU4Hm.js → public/assets/syntax-highlighting-CnREyncB.js} +5 -5
  119. package/public/assets/tabManager-B2LQO_Ll.js +30 -0
  120. package/{backend/dist/frontend/assets/table-D6q1rytw.js → public/assets/table-D0L2RL5i.js} +1 -1
  121. package/public/assets/timeline-definition-IT6M3QCI-BAvjPYvX.js +61 -0
  122. package/public/assets/tools-IcPNZlPj.js +1 -0
  123. package/public/assets/treemap-KMMF4GRG-DtkpVA56.js +128 -0
  124. package/{backend/dist/frontend/assets/ui-components-Cw21Epuw.js → public/assets/ui-components-D1St49qC.js} +231 -96
  125. package/public/assets/useAgents-BnDTkOG8.js +2 -0
  126. package/public/assets/useClaudeVersions-CD59tFWM.js +1 -0
  127. package/public/assets/useCommands-mvMu3mMD.js +1 -0
  128. package/public/assets/useProjects-YXOjaOwL.js +1 -0
  129. package/public/assets/xychartDiagram-PRI3JC2R-ByBTDWE2.js +7 -0
  130. package/{backend/dist/frontend → public}/index.html +8 -8
  131. package/routes/__tests__/a2a.integration.test.d.ts +11 -0
  132. package/routes/__tests__/a2a.integration.test.d.ts.map +1 -0
  133. package/routes/__tests__/a2a.integration.test.js +314 -0
  134. package/routes/__tests__/a2a.integration.test.js.map +1 -0
  135. package/routes/__tests__/a2a.test.d.ts +6 -0
  136. package/routes/__tests__/a2a.test.d.ts.map +1 -0
  137. package/routes/__tests__/a2a.test.js +622 -0
  138. package/routes/__tests__/a2a.test.js.map +1 -0
  139. package/routes/__tests__/agents.test.d.ts +6 -0
  140. package/routes/__tests__/agents.test.d.ts.map +1 -0
  141. package/routes/__tests__/agents.test.js +315 -0
  142. package/routes/__tests__/agents.test.js.map +1 -0
  143. package/routes/__tests__/sessions.test.d.ts +7 -0
  144. package/routes/__tests__/sessions.test.d.ts.map +1 -0
  145. package/routes/__tests__/sessions.test.js +330 -0
  146. package/routes/__tests__/sessions.test.js.map +1 -0
  147. package/routes/a2a.d.ts +18 -0
  148. package/routes/a2a.d.ts.map +1 -0
  149. package/routes/a2a.js +649 -0
  150. package/routes/a2a.js.map +1 -0
  151. package/routes/a2a.streaming.test.d.ts +2 -0
  152. package/routes/a2a.streaming.test.d.ts.map +1 -0
  153. package/routes/a2a.streaming.test.js +167 -0
  154. package/routes/a2a.streaming.test.js.map +1 -0
  155. package/routes/a2aManagement.d.ts +21 -0
  156. package/routes/a2aManagement.d.ts.map +1 -0
  157. package/routes/a2aManagement.js +466 -0
  158. package/routes/a2aManagement.js.map +1 -0
  159. package/{backend/dist/routes → routes}/agents.d.ts.map +1 -1
  160. package/routes/agents.js +997 -0
  161. package/routes/agents.js.map +1 -0
  162. package/{backend/dist/routes → routes}/auth.d.ts.map +1 -1
  163. package/routes/auth.js +135 -0
  164. package/routes/auth.js.map +1 -0
  165. package/{backend/dist/routes → routes}/commands.d.ts.map +1 -1
  166. package/{backend/dist/routes → routes}/commands.js +115 -31
  167. package/routes/commands.js.map +1 -0
  168. package/routes/config.d.ts +4 -0
  169. package/routes/config.d.ts.map +1 -0
  170. package/routes/config.js +211 -0
  171. package/routes/config.js.map +1 -0
  172. package/{backend/dist/routes → routes}/files.d.ts.map +1 -1
  173. package/{backend/dist/routes → routes}/files.js +103 -43
  174. package/routes/files.js.map +1 -0
  175. package/routes/mcp.d.ts +27 -0
  176. package/routes/mcp.d.ts.map +1 -0
  177. package/{backend/dist/routes → routes}/mcp.js +195 -105
  178. package/routes/mcp.js.map +1 -0
  179. package/routes/mcpAdmin.d.ts +16 -0
  180. package/routes/mcpAdmin.d.ts.map +1 -0
  181. package/routes/mcpAdmin.js +308 -0
  182. package/routes/mcpAdmin.js.map +1 -0
  183. package/routes/mcpAdminManagement.d.ts +17 -0
  184. package/routes/mcpAdminManagement.d.ts.map +1 -0
  185. package/routes/mcpAdminManagement.js +345 -0
  186. package/routes/mcpAdminManagement.js.map +1 -0
  187. package/routes/media.d.ts.map +1 -0
  188. package/{backend/dist/routes → routes}/media.js +52 -42
  189. package/routes/media.js.map +1 -0
  190. package/routes/mediaAuth.d.ts +8 -0
  191. package/routes/mediaAuth.d.ts.map +1 -0
  192. package/routes/mediaAuth.js +136 -0
  193. package/routes/mediaAuth.js.map +1 -0
  194. package/routes/plugins.d.ts +4 -0
  195. package/routes/plugins.d.ts.map +1 -0
  196. package/routes/plugins.js +339 -0
  197. package/routes/plugins.js.map +1 -0
  198. package/{backend/dist/routes → routes}/projects.d.ts.map +1 -1
  199. package/routes/projects.js +884 -0
  200. package/routes/projects.js.map +1 -0
  201. package/routes/scheduledTasks.d.ts +9 -0
  202. package/routes/scheduledTasks.d.ts.map +1 -0
  203. package/routes/scheduledTasks.js +320 -0
  204. package/routes/scheduledTasks.js.map +1 -0
  205. package/{backend/dist/routes → routes}/sessions.d.ts.map +1 -1
  206. package/{backend/dist/routes → routes}/sessions.js +258 -39
  207. package/routes/sessions.js.map +1 -0
  208. package/{backend/dist/routes → routes}/settings.d.ts.map +1 -1
  209. package/{backend/dist/routes → routes}/settings.js +82 -241
  210. package/routes/settings.js.map +1 -0
  211. package/{backend/dist/routes/mcp.d.ts → routes/skills.d.ts} +1 -1
  212. package/routes/skills.d.ts.map +1 -0
  213. package/routes/skills.js +272 -0
  214. package/routes/skills.js.map +1 -0
  215. package/routes/slack.d.ts +10 -0
  216. package/routes/slack.d.ts.map +1 -0
  217. package/routes/slack.js +189 -0
  218. package/routes/slack.js.map +1 -0
  219. package/{backend/dist/routes → routes}/slides.d.ts.map +1 -1
  220. package/{backend/dist/routes → routes}/slides.js +29 -27
  221. package/routes/slides.js.map +1 -0
  222. package/{backend/dist/routes → routes}/subagents.js +27 -22
  223. package/routes/subagents.js.map +1 -0
  224. package/schemas/a2a.d.ts +858 -0
  225. package/schemas/a2a.d.ts.map +1 -0
  226. package/schemas/a2a.js +300 -0
  227. package/schemas/a2a.js.map +1 -0
  228. package/scripts/postinstall.js +10 -0
  229. package/services/__tests__/pluginInstaller.test.d.ts +5 -0
  230. package/services/__tests__/pluginInstaller.test.d.ts.map +1 -0
  231. package/services/__tests__/pluginInstaller.test.js +290 -0
  232. package/services/__tests__/pluginInstaller.test.js.map +1 -0
  233. package/services/__tests__/pluginParser.test.d.ts +5 -0
  234. package/services/__tests__/pluginParser.test.d.ts.map +1 -0
  235. package/services/__tests__/pluginParser.test.js +272 -0
  236. package/services/__tests__/pluginParser.test.js.map +1 -0
  237. package/services/__tests__/pluginPaths.test.d.ts +5 -0
  238. package/services/__tests__/pluginPaths.test.d.ts.map +1 -0
  239. package/services/__tests__/pluginPaths.test.js +221 -0
  240. package/services/__tests__/pluginPaths.test.js.map +1 -0
  241. package/services/__tests__/pluginScanner.test.d.ts +5 -0
  242. package/services/__tests__/pluginScanner.test.d.ts.map +1 -0
  243. package/services/__tests__/pluginScanner.test.js +272 -0
  244. package/services/__tests__/pluginScanner.test.js.map +1 -0
  245. package/services/__tests__/pluginSymlink.test.d.ts +5 -0
  246. package/services/__tests__/pluginSymlink.test.d.ts.map +1 -0
  247. package/services/__tests__/pluginSymlink.test.js +318 -0
  248. package/services/__tests__/pluginSymlink.test.js.map +1 -0
  249. package/services/__tests__/slackAIService.test.d.ts +5 -0
  250. package/services/__tests__/slackAIService.test.d.ts.map +1 -0
  251. package/services/__tests__/slackAIService.test.js +477 -0
  252. package/services/__tests__/slackAIService.test.js.map +1 -0
  253. package/services/__tests__/slackThreadMapper.test.d.ts +5 -0
  254. package/services/__tests__/slackThreadMapper.test.d.ts.map +1 -0
  255. package/services/__tests__/slackThreadMapper.test.js +194 -0
  256. package/services/__tests__/slackThreadMapper.test.js.map +1 -0
  257. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts +6 -0
  258. package/services/a2a/__tests__/a2aClientTool.integration.test.d.ts.map +1 -0
  259. package/services/a2a/__tests__/a2aClientTool.integration.test.js +264 -0
  260. package/services/a2a/__tests__/a2aClientTool.integration.test.js.map +1 -0
  261. package/services/a2a/__tests__/a2aClientTool.test.d.ts +6 -0
  262. package/services/a2a/__tests__/a2aClientTool.test.d.ts.map +1 -0
  263. package/services/a2a/__tests__/a2aClientTool.test.js +418 -0
  264. package/services/a2a/__tests__/a2aClientTool.test.js.map +1 -0
  265. package/services/a2a/__tests__/a2aConfigService.test.d.ts +6 -0
  266. package/services/a2a/__tests__/a2aConfigService.test.d.ts.map +1 -0
  267. package/services/a2a/__tests__/a2aConfigService.test.js +431 -0
  268. package/services/a2a/__tests__/a2aConfigService.test.js.map +1 -0
  269. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts +2 -0
  270. package/services/a2a/__tests__/a2aConfigServicePath.test.d.ts.map +1 -0
  271. package/services/a2a/__tests__/a2aConfigServicePath.test.js +49 -0
  272. package/services/a2a/__tests__/a2aConfigServicePath.test.js.map +1 -0
  273. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts +10 -0
  274. package/services/a2a/__tests__/a2aSdkMcp.test.d.ts.map +1 -0
  275. package/services/a2a/__tests__/a2aSdkMcp.test.js +239 -0
  276. package/services/a2a/__tests__/a2aSdkMcp.test.js.map +1 -0
  277. package/services/a2a/__tests__/agentCardService.test.d.ts +6 -0
  278. package/services/a2a/__tests__/agentCardService.test.d.ts.map +1 -0
  279. package/services/a2a/__tests__/agentCardService.test.js +292 -0
  280. package/services/a2a/__tests__/agentCardService.test.js.map +1 -0
  281. package/services/a2a/__tests__/apiKeyService.test.d.ts +6 -0
  282. package/services/a2a/__tests__/apiKeyService.test.d.ts.map +1 -0
  283. package/services/a2a/__tests__/apiKeyService.test.js +284 -0
  284. package/services/a2a/__tests__/apiKeyService.test.js.map +1 -0
  285. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts +2 -0
  286. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.d.ts.map +1 -0
  287. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js +70 -0
  288. package/services/a2a/__tests__/buildQueryOptionsIntegration.test.js.map +1 -0
  289. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts +2 -0
  290. package/services/a2a/__tests__/dynamic_config_verification.test.d.ts.map +1 -0
  291. package/services/a2a/__tests__/dynamic_config_verification.test.js +67 -0
  292. package/services/a2a/__tests__/dynamic_config_verification.test.js.map +1 -0
  293. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts +2 -0
  294. package/services/a2a/__tests__/integrateA2AMcpServer.test.d.ts.map +1 -0
  295. package/services/a2a/__tests__/integrateA2AMcpServer.test.js +112 -0
  296. package/services/a2a/__tests__/integrateA2AMcpServer.test.js.map +1 -0
  297. package/services/a2a/__tests__/taskManager.integration.test.d.ts +7 -0
  298. package/services/a2a/__tests__/taskManager.integration.test.d.ts.map +1 -0
  299. package/services/a2a/__tests__/taskManager.integration.test.js +346 -0
  300. package/services/a2a/__tests__/taskManager.integration.test.js.map +1 -0
  301. package/services/a2a/__tests__/taskManager.test.d.ts +7 -0
  302. package/services/a2a/__tests__/taskManager.test.d.ts.map +1 -0
  303. package/services/a2a/__tests__/taskManager.test.js +423 -0
  304. package/services/a2a/__tests__/taskManager.test.js.map +1 -0
  305. package/services/a2a/a2aClientTool.d.ts +73 -0
  306. package/services/a2a/a2aClientTool.d.ts.map +1 -0
  307. package/services/a2a/a2aClientTool.js +572 -0
  308. package/services/a2a/a2aClientTool.js.map +1 -0
  309. package/services/a2a/a2aConfigService.d.ts +50 -0
  310. package/services/a2a/a2aConfigService.d.ts.map +1 -0
  311. package/services/a2a/a2aConfigService.js +186 -0
  312. package/services/a2a/a2aConfigService.js.map +1 -0
  313. package/services/a2a/a2aHistoryService.d.ts +32 -0
  314. package/services/a2a/a2aHistoryService.d.ts.map +1 -0
  315. package/services/a2a/a2aHistoryService.js +108 -0
  316. package/services/a2a/a2aHistoryService.js.map +1 -0
  317. package/services/a2a/a2aIntegration.d.ts +9 -0
  318. package/services/a2a/a2aIntegration.d.ts.map +1 -0
  319. package/services/a2a/a2aIntegration.js +41 -0
  320. package/services/a2a/a2aIntegration.js.map +1 -0
  321. package/services/a2a/a2aQueryService.d.ts +71 -0
  322. package/services/a2a/a2aQueryService.d.ts.map +1 -0
  323. package/services/a2a/a2aQueryService.js +166 -0
  324. package/services/a2a/a2aQueryService.js.map +1 -0
  325. package/services/a2a/a2aSdkMcp.d.ts +51 -0
  326. package/services/a2a/a2aSdkMcp.d.ts.map +1 -0
  327. package/services/a2a/a2aSdkMcp.js +185 -0
  328. package/services/a2a/a2aSdkMcp.js.map +1 -0
  329. package/services/a2a/a2aStreamEvents.d.ts +94 -0
  330. package/services/a2a/a2aStreamEvents.d.ts.map +1 -0
  331. package/services/a2a/a2aStreamEvents.js +92 -0
  332. package/services/a2a/a2aStreamEvents.js.map +1 -0
  333. package/services/a2a/agentCardService.d.ts +34 -0
  334. package/services/a2a/agentCardService.d.ts.map +1 -0
  335. package/services/a2a/agentCardService.js +228 -0
  336. package/services/a2a/agentCardService.js.map +1 -0
  337. package/services/a2a/agentMappingService.d.ts +53 -0
  338. package/services/a2a/agentMappingService.d.ts.map +1 -0
  339. package/services/a2a/agentMappingService.js +185 -0
  340. package/services/a2a/agentMappingService.js.map +1 -0
  341. package/services/a2a/apiKeyService.d.ts +101 -0
  342. package/services/a2a/apiKeyService.d.ts.map +1 -0
  343. package/services/a2a/apiKeyService.js +314 -0
  344. package/services/a2a/apiKeyService.js.map +1 -0
  345. package/services/a2a/taskCleanup.d.ts +30 -0
  346. package/services/a2a/taskCleanup.d.ts.map +1 -0
  347. package/services/a2a/taskCleanup.js +184 -0
  348. package/services/a2a/taskCleanup.js.map +1 -0
  349. package/services/a2a/taskManager.d.ts +86 -0
  350. package/services/a2a/taskManager.d.ts.map +1 -0
  351. package/services/a2a/taskManager.js +263 -0
  352. package/services/a2a/taskManager.js.map +1 -0
  353. package/services/agentStorage.d.ts +27 -0
  354. package/services/agentStorage.d.ts.map +1 -0
  355. package/services/agentStorage.js +487 -0
  356. package/services/agentStorage.js.map +1 -0
  357. package/services/askUserQuestion/askUserQuestionIntegration.d.ts +24 -0
  358. package/services/askUserQuestion/askUserQuestionIntegration.d.ts.map +1 -0
  359. package/services/askUserQuestion/askUserQuestionIntegration.js +52 -0
  360. package/services/askUserQuestion/askUserQuestionIntegration.js.map +1 -0
  361. package/services/askUserQuestion/askUserQuestionMcp.d.ts +103 -0
  362. package/services/askUserQuestion/askUserQuestionMcp.d.ts.map +1 -0
  363. package/services/askUserQuestion/askUserQuestionMcp.js +129 -0
  364. package/services/askUserQuestion/askUserQuestionMcp.js.map +1 -0
  365. package/services/askUserQuestion/index.d.ts +13 -0
  366. package/services/askUserQuestion/index.d.ts.map +1 -0
  367. package/services/askUserQuestion/index.js +35 -0
  368. package/services/askUserQuestion/index.js.map +1 -0
  369. package/services/askUserQuestion/init.d.ts +17 -0
  370. package/services/askUserQuestion/init.d.ts.map +1 -0
  371. package/services/askUserQuestion/init.js +47 -0
  372. package/services/askUserQuestion/init.js.map +1 -0
  373. package/services/askUserQuestion/notificationChannel.d.ts +97 -0
  374. package/services/askUserQuestion/notificationChannel.d.ts.map +1 -0
  375. package/services/askUserQuestion/notificationChannel.js +147 -0
  376. package/services/askUserQuestion/notificationChannel.js.map +1 -0
  377. package/services/askUserQuestion/slackNotificationChannel.d.ts +35 -0
  378. package/services/askUserQuestion/slackNotificationChannel.d.ts.map +1 -0
  379. package/services/askUserQuestion/slackNotificationChannel.js +129 -0
  380. package/services/askUserQuestion/slackNotificationChannel.js.map +1 -0
  381. package/services/askUserQuestion/sseNotificationChannel.d.ts +36 -0
  382. package/services/askUserQuestion/sseNotificationChannel.d.ts.map +1 -0
  383. package/services/askUserQuestion/sseNotificationChannel.js +88 -0
  384. package/services/askUserQuestion/sseNotificationChannel.js.map +1 -0
  385. package/services/askUserQuestion/userInputRegistry.d.ts +107 -0
  386. package/services/askUserQuestion/userInputRegistry.d.ts.map +1 -0
  387. package/services/askUserQuestion/userInputRegistry.js +253 -0
  388. package/services/askUserQuestion/userInputRegistry.js.map +1 -0
  389. package/{backend/dist/services → services}/claudeSession.d.ts +20 -5
  390. package/services/claudeSession.d.ts.map +1 -0
  391. package/{backend/dist/services → services}/claudeSession.js +123 -41
  392. package/services/claudeSession.js.map +1 -0
  393. package/services/claudeVersionStorage.d.ts +20 -0
  394. package/services/claudeVersionStorage.d.ts.map +1 -0
  395. package/services/claudeVersionStorage.js +331 -0
  396. package/services/claudeVersionStorage.js.map +1 -0
  397. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts +5 -0
  398. package/services/mcpAdmin/__tests__/adminApiKeyService.test.d.ts.map +1 -0
  399. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js +289 -0
  400. package/services/mcpAdmin/__tests__/adminApiKeyService.test.js.map +1 -0
  401. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts +5 -0
  402. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.d.ts.map +1 -0
  403. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js +345 -0
  404. package/services/mcpAdmin/__tests__/mcpAdminRoutes.test.js.map +1 -0
  405. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts +5 -0
  406. package/services/mcpAdmin/__tests__/mcpAdminServer.test.d.ts.map +1 -0
  407. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js +453 -0
  408. package/services/mcpAdmin/__tests__/mcpAdminServer.test.js.map +1 -0
  409. package/services/mcpAdmin/__tests__/tools.test.d.ts +5 -0
  410. package/services/mcpAdmin/__tests__/tools.test.d.ts.map +1 -0
  411. package/services/mcpAdmin/__tests__/tools.test.js +371 -0
  412. package/services/mcpAdmin/__tests__/tools.test.js.map +1 -0
  413. package/services/mcpAdmin/adminApiKeyService.d.ts +61 -0
  414. package/services/mcpAdmin/adminApiKeyService.d.ts.map +1 -0
  415. package/services/mcpAdmin/adminApiKeyService.js +270 -0
  416. package/services/mcpAdmin/adminApiKeyService.js.map +1 -0
  417. package/services/mcpAdmin/index.d.ts +10 -0
  418. package/services/mcpAdmin/index.d.ts.map +1 -0
  419. package/services/mcpAdmin/index.js +43 -0
  420. package/services/mcpAdmin/index.js.map +1 -0
  421. package/services/mcpAdmin/mcpAdminServer.d.ts +76 -0
  422. package/services/mcpAdmin/mcpAdminServer.d.ts.map +1 -0
  423. package/services/mcpAdmin/mcpAdminServer.js +243 -0
  424. package/services/mcpAdmin/mcpAdminServer.js.map +1 -0
  425. package/services/mcpAdmin/tools/agentTools.d.ts +27 -0
  426. package/services/mcpAdmin/tools/agentTools.d.ts.map +1 -0
  427. package/services/mcpAdmin/tools/agentTools.js +359 -0
  428. package/services/mcpAdmin/tools/agentTools.js.map +1 -0
  429. package/services/mcpAdmin/tools/index.d.ts +15 -0
  430. package/services/mcpAdmin/tools/index.d.ts.map +1 -0
  431. package/services/mcpAdmin/tools/index.js +30 -0
  432. package/services/mcpAdmin/tools/index.js.map +1 -0
  433. package/services/mcpAdmin/tools/mcpServerTools.d.ts +27 -0
  434. package/services/mcpAdmin/tools/mcpServerTools.d.ts.map +1 -0
  435. package/services/mcpAdmin/tools/mcpServerTools.js +334 -0
  436. package/services/mcpAdmin/tools/mcpServerTools.js.map +1 -0
  437. package/services/mcpAdmin/tools/projectTools.d.ts +27 -0
  438. package/services/mcpAdmin/tools/projectTools.d.ts.map +1 -0
  439. package/services/mcpAdmin/tools/projectTools.js +353 -0
  440. package/services/mcpAdmin/tools/projectTools.js.map +1 -0
  441. package/services/mcpAdmin/tools/systemTools.d.ts +23 -0
  442. package/services/mcpAdmin/tools/systemTools.d.ts.map +1 -0
  443. package/services/mcpAdmin/tools/systemTools.js +241 -0
  444. package/services/mcpAdmin/tools/systemTools.js.map +1 -0
  445. package/services/mcpAdmin/types.d.ts +124 -0
  446. package/services/mcpAdmin/types.d.ts.map +1 -0
  447. package/services/mcpAdmin/types.js +18 -0
  448. package/services/mcpAdmin/types.js.map +1 -0
  449. package/{backend/dist/services → services}/messageQueue.d.ts.map +1 -1
  450. package/{backend/dist/services → services}/messageQueue.js +16 -3
  451. package/services/messageQueue.js.map +1 -0
  452. package/services/pluginInstaller.d.ts +58 -0
  453. package/services/pluginInstaller.d.ts.map +1 -0
  454. package/services/pluginInstaller.js +321 -0
  455. package/services/pluginInstaller.js.map +1 -0
  456. package/services/pluginParser.d.ts +45 -0
  457. package/services/pluginParser.d.ts.map +1 -0
  458. package/services/pluginParser.js +437 -0
  459. package/services/pluginParser.js.map +1 -0
  460. package/services/pluginPaths.d.ts +80 -0
  461. package/services/pluginPaths.d.ts.map +1 -0
  462. package/services/pluginPaths.js +274 -0
  463. package/services/pluginPaths.js.map +1 -0
  464. package/services/pluginScanner.d.ts +36 -0
  465. package/services/pluginScanner.d.ts.map +1 -0
  466. package/services/pluginScanner.js +251 -0
  467. package/services/pluginScanner.js.map +1 -0
  468. package/services/pluginSymlink.d.ts +54 -0
  469. package/services/pluginSymlink.d.ts.map +1 -0
  470. package/services/pluginSymlink.js +223 -0
  471. package/services/pluginSymlink.js.map +1 -0
  472. package/services/projectMetadataStorage.d.ts +114 -0
  473. package/services/projectMetadataStorage.d.ts.map +1 -0
  474. package/services/projectMetadataStorage.js +711 -0
  475. package/services/projectMetadataStorage.js.map +1 -0
  476. package/services/scheduledTaskStorage.d.ts +52 -0
  477. package/services/scheduledTaskStorage.d.ts.map +1 -0
  478. package/services/scheduledTaskStorage.js +285 -0
  479. package/services/scheduledTaskStorage.js.map +1 -0
  480. package/services/schedulerService.d.ts +81 -0
  481. package/services/schedulerService.d.ts.map +1 -0
  482. package/services/schedulerService.js +743 -0
  483. package/services/schedulerService.js.map +1 -0
  484. package/{backend/dist/services → services}/sessionManager.d.ts +6 -4
  485. package/services/sessionManager.d.ts.map +1 -0
  486. package/{backend/dist/services → services}/sessionManager.js +77 -16
  487. package/services/sessionManager.js.map +1 -0
  488. package/services/skillStorage.d.ts +60 -0
  489. package/services/skillStorage.d.ts.map +1 -0
  490. package/services/skillStorage.js +398 -0
  491. package/services/skillStorage.js.map +1 -0
  492. package/services/slackAIService.d.ts +81 -0
  493. package/services/slackAIService.d.ts.map +1 -0
  494. package/services/slackAIService.js +1091 -0
  495. package/services/slackAIService.js.map +1 -0
  496. package/services/slackClient.d.ts +46 -0
  497. package/services/slackClient.d.ts.map +1 -0
  498. package/services/slackClient.js +85 -0
  499. package/services/slackClient.js.map +1 -0
  500. package/services/slackSessionLock.d.ts +79 -0
  501. package/services/slackSessionLock.d.ts.map +1 -0
  502. package/services/slackSessionLock.js +353 -0
  503. package/services/slackSessionLock.js.map +1 -0
  504. package/services/slackThreadMapper.d.ts +57 -0
  505. package/services/slackThreadMapper.d.ts.map +1 -0
  506. package/services/slackThreadMapper.js +140 -0
  507. package/services/slackThreadMapper.js.map +1 -0
  508. package/types/a2a.d.ts +275 -0
  509. package/types/a2a.d.ts.map +1 -0
  510. package/types/a2a.js +23 -0
  511. package/types/a2a.js.map +1 -0
  512. package/types/agents.d.ts +95 -0
  513. package/types/agents.d.ts.map +1 -0
  514. package/types/agents.js +46 -0
  515. package/types/agents.js.map +1 -0
  516. package/types/claude-history.d.ts +62 -0
  517. package/types/claude-history.d.ts.map +1 -0
  518. package/types/claude-history.js +4 -0
  519. package/types/claude-history.js.map +1 -0
  520. package/types/claude-versions.d.ts +36 -0
  521. package/types/claude-versions.d.ts.map +1 -0
  522. package/types/claude-versions.js +3 -0
  523. package/types/claude-versions.js.map +1 -0
  524. package/types/commands.d.ts +50 -0
  525. package/types/commands.d.ts.map +1 -0
  526. package/types/commands.js +23 -0
  527. package/types/commands.js.map +1 -0
  528. package/types/plugins.d.ts +144 -0
  529. package/types/plugins.d.ts.map +1 -0
  530. package/types/plugins.js +8 -0
  531. package/types/plugins.js.map +1 -0
  532. package/types/projects.d.ts +42 -0
  533. package/types/projects.d.ts.map +1 -0
  534. package/types/projects.js +4 -0
  535. package/types/projects.js.map +1 -0
  536. package/types/scheduledTasks.d.ts +164 -0
  537. package/types/scheduledTasks.d.ts.map +1 -0
  538. package/types/scheduledTasks.js +17 -0
  539. package/types/scheduledTasks.js.map +1 -0
  540. package/types/skills.d.ts +91 -0
  541. package/types/skills.d.ts.map +1 -0
  542. package/types/skills.js +6 -0
  543. package/types/skills.js.map +1 -0
  544. package/types/slack.d.ts +97 -0
  545. package/types/slack.d.ts.map +1 -0
  546. package/types/slack.js +8 -0
  547. package/types/slack.js.map +1 -0
  548. package/types/streaming.d.ts +12 -0
  549. package/types/streaming.d.ts.map +1 -0
  550. package/types/streaming.js +8 -0
  551. package/types/streaming.js.map +1 -0
  552. package/types/subagents.d.ts +26 -0
  553. package/types/subagents.d.ts.map +1 -0
  554. package/types/subagents.js +3 -0
  555. package/types/subagents.js.map +1 -0
  556. package/utils/__tests__/claudeUtils.test.d.ts +5 -0
  557. package/utils/__tests__/claudeUtils.test.d.ts.map +1 -0
  558. package/utils/__tests__/claudeUtils.test.js +282 -0
  559. package/utils/__tests__/claudeUtils.test.js.map +1 -0
  560. package/utils/__tests__/sessionUtils.test.d.ts +5 -0
  561. package/utils/__tests__/sessionUtils.test.d.ts.map +1 -0
  562. package/utils/__tests__/sessionUtils.test.js +295 -0
  563. package/utils/__tests__/sessionUtils.test.js.map +1 -0
  564. package/utils/agentCardCache.d.ts +93 -0
  565. package/utils/agentCardCache.d.ts.map +1 -0
  566. package/utils/agentCardCache.js +212 -0
  567. package/utils/agentCardCache.js.map +1 -0
  568. package/utils/claudeUtils.d.ts +54 -0
  569. package/utils/claudeUtils.d.ts.map +1 -0
  570. package/utils/claudeUtils.js +387 -0
  571. package/utils/claudeUtils.js.map +1 -0
  572. package/utils/fileUtils.d.ts +2 -0
  573. package/utils/fileUtils.d.ts.map +1 -0
  574. package/utils/fileUtils.js +11 -0
  575. package/utils/fileUtils.js.map +1 -0
  576. package/utils/jwt.d.ts +30 -0
  577. package/utils/jwt.d.ts.map +1 -0
  578. package/utils/jwt.js +95 -0
  579. package/utils/jwt.js.map +1 -0
  580. package/utils/sessionUtils.d.ts +64 -0
  581. package/utils/sessionUtils.d.ts.map +1 -0
  582. package/utils/sessionUtils.js +266 -0
  583. package/utils/sessionUtils.js.map +1 -0
  584. package/README.zh-CN.md +0 -525
  585. package/backend/dist/bin/agentstudio.js +0 -120
  586. package/backend/dist/bin/agentstudio.js.map +0 -1
  587. package/backend/dist/frontend/assets/AgentsPage-Dqb_aqAA.js +0 -1
  588. package/backend/dist/frontend/assets/ChatPage-L8Paywyc.js +0 -91
  589. package/backend/dist/frontend/assets/CommandForm-DLl7EIMS.js +0 -7
  590. package/backend/dist/frontend/assets/CommandsPage-Bzavq0Ec.js +0 -1
  591. package/backend/dist/frontend/assets/DashboardPage-B3o4AYFT.js +0 -15
  592. package/backend/dist/frontend/assets/FileBrowser-DL3ayaqb.js +0 -1
  593. package/backend/dist/frontend/assets/GeneralSettingsPage-CBN_de-V.js +0 -1
  594. package/backend/dist/frontend/assets/LandingPage-Dl4ioKos.js +0 -1
  595. package/backend/dist/frontend/assets/LoginPage-4QqRdiSi.js +0 -12
  596. package/backend/dist/frontend/assets/McpPage-CY3tYiqj.js +0 -39
  597. package/backend/dist/frontend/assets/MemorySettingsPage-DGxrok5K.js +0 -1
  598. package/backend/dist/frontend/assets/ProjectSelector-hgmGYVFh.js +0 -1
  599. package/backend/dist/frontend/assets/ProjectsPage-D399IM0c.js +0 -14
  600. package/backend/dist/frontend/assets/SettingsLayout-CL_K-lzJ.js +0 -1
  601. package/backend/dist/frontend/assets/SubagentsPage-Chbhj8p2.js +0 -1
  602. package/backend/dist/frontend/assets/UnifiedToolSelector-CsM9qBvs.js +0 -1
  603. package/backend/dist/frontend/assets/VersionSettingsPage-74Q-LVgA.js +0 -5
  604. package/backend/dist/frontend/assets/agents-ClAzIJTw.js +0 -1
  605. package/backend/dist/frontend/assets/authFetch-BATQyPG5.js +0 -1
  606. package/backend/dist/frontend/assets/index-B9YHa7XT.css +0 -1
  607. package/backend/dist/frontend/assets/index-B_CTNvca.js +0 -268
  608. package/backend/dist/frontend/assets/monaco-editor-C7Z4sOhS.js +0 -19
  609. package/backend/dist/frontend/assets/tabManager-DV8urRBM.js +0 -30
  610. package/backend/dist/frontend/assets/tools-C4EPanYi.js +0 -1
  611. package/backend/dist/frontend/assets/useAgents-DwnOE1_k.js +0 -2
  612. package/backend/dist/frontend/assets/useClaudeVersions-CQdGnCqv.js +0 -1
  613. package/backend/dist/frontend/assets/useCommands-CCVaurbt.js +0 -1
  614. package/backend/dist/index.d.ts +0 -3
  615. package/backend/dist/index.d.ts.map +0 -1
  616. package/backend/dist/index.js +0 -157
  617. package/backend/dist/index.js.map +0 -1
  618. package/backend/dist/middleware/auth.d.ts.map +0 -1
  619. package/backend/dist/middleware/auth.js +0 -21
  620. package/backend/dist/middleware/auth.js.map +0 -1
  621. package/backend/dist/routes/agents.js +0 -803
  622. package/backend/dist/routes/agents.js.map +0 -1
  623. package/backend/dist/routes/auth.js +0 -60
  624. package/backend/dist/routes/auth.js.map +0 -1
  625. package/backend/dist/routes/commands.js.map +0 -1
  626. package/backend/dist/routes/files.js.map +0 -1
  627. package/backend/dist/routes/mcp.d.ts.map +0 -1
  628. package/backend/dist/routes/mcp.js.map +0 -1
  629. package/backend/dist/routes/media.d.ts.map +0 -1
  630. package/backend/dist/routes/media.js.map +0 -1
  631. package/backend/dist/routes/projects.js +0 -528
  632. package/backend/dist/routes/projects.js.map +0 -1
  633. package/backend/dist/routes/sessions.js.map +0 -1
  634. package/backend/dist/routes/settings.js.map +0 -1
  635. package/backend/dist/routes/slides.js.map +0 -1
  636. package/backend/dist/routes/subagents.js.map +0 -1
  637. package/backend/dist/services/claudeSession.d.ts.map +0 -1
  638. package/backend/dist/services/claudeSession.js.map +0 -1
  639. package/backend/dist/services/messageQueue.js.map +0 -1
  640. package/backend/dist/services/sessionManager.d.ts.map +0 -1
  641. package/backend/dist/services/sessionManager.js.map +0 -1
  642. package/backend/dist/utils/jwt.d.ts +0 -15
  643. package/backend/dist/utils/jwt.d.ts.map +0 -1
  644. package/backend/dist/utils/jwt.js +0 -28
  645. package/backend/dist/utils/jwt.js.map +0 -1
  646. /package/{backend/dist/bin → bin}/agentstudio.d.ts +0 -0
  647. /package/{backend/dist/bin → bin}/agentstudio.d.ts.map +0 -0
  648. /package/{backend/dist/frontend → public}/assets/ChatPage-BvQmXfcP.css +0 -0
  649. /package/{backend/dist/frontend → public}/assets/agents-DwCY2K8p.css +0 -0
  650. /package/{backend/dist/frontend → public}/assets/dateFormat-CXa8VnEC.js +0 -0
  651. /package/{backend/dist/frontend → public}/cc-studio.png +0 -0
  652. /package/{backend/dist/frontend → public}/vite.svg +0 -0
  653. /package/{backend/dist/routes → routes}/agents.d.ts +0 -0
  654. /package/{backend/dist/routes → routes}/auth.d.ts +0 -0
  655. /package/{backend/dist/routes → routes}/commands.d.ts +0 -0
  656. /package/{backend/dist/routes → routes}/files.d.ts +0 -0
  657. /package/{backend/dist/routes → routes}/media.d.ts +0 -0
  658. /package/{backend/dist/routes → routes}/projects.d.ts +0 -0
  659. /package/{backend/dist/routes → routes}/sessions.d.ts +0 -0
  660. /package/{backend/dist/routes → routes}/settings.d.ts +0 -0
  661. /package/{backend/dist/routes → routes}/slides.d.ts +0 -0
  662. /package/{backend/dist/routes → routes}/subagents.d.ts +0 -0
  663. /package/{backend/dist/routes → routes}/subagents.d.ts.map +0 -0
  664. /package/{backend/dist/services → services}/messageQueue.d.ts +0 -0
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * A2A Configuration Service
4
+ *
5
+ * Manages project-level A2A configuration including allowed agents, timeouts, and limits.
6
+ * Configuration stored in projects/:projectId/.a2a/config.json
7
+ *
8
+ * Phase 5: US3 - Agent as A2A Client (config dependency)
9
+ * Phase 7: US5 - Project-Level A2A Configuration (full implementation)
10
+ */
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.loadA2AConfig = loadA2AConfig;
16
+ exports.saveA2AConfig = saveA2AConfig;
17
+ exports.validateA2AConfig = validateA2AConfig;
18
+ exports.initializeA2AConfig = initializeA2AConfig;
19
+ const promises_1 = __importDefault(require("fs/promises"));
20
+ const path_1 = __importDefault(require("path"));
21
+ const proper_lockfile_1 = __importDefault(require("proper-lockfile"));
22
+ const a2a_js_1 = require("../../types/a2a.js");
23
+ const httpsOnly_js_1 = require("../../middleware/httpsOnly.js");
24
+ const LOCK_OPTIONS = {
25
+ retries: { retries: 5, minTimeout: 100, maxTimeout: 500 },
26
+ };
27
+ /**
28
+ * Get path to project's A2A config file
29
+ *
30
+ * @param projectId - Project identifier (used as directory name)
31
+ * @returns Absolute path to config file
32
+ */
33
+ function getConfigPath(projectId) {
34
+ // Check if the projectId looks like an absolute path
35
+ if (path_1.default.isAbsolute(projectId)) {
36
+ return path_1.default.join(projectId, '.a2a', 'config.json');
37
+ }
38
+ // Projects are stored in ~/.claude/projects/
39
+ const projectsDir = path_1.default.join(process.env.HOME || process.cwd(), '.claude', 'projects');
40
+ return path_1.default.join(projectsDir, projectId, '.a2a', 'config.json');
41
+ }
42
+ /**
43
+ * Load A2A configuration for a project
44
+ *
45
+ * Returns default config if file doesn't exist.
46
+ *
47
+ * @param projectId - Project identifier
48
+ * @returns A2A configuration or null on error
49
+ */
50
+ async function loadA2AConfig(projectId) {
51
+ const configPath = getConfigPath(projectId);
52
+ try {
53
+ const data = await promises_1.default.readFile(configPath, 'utf-8');
54
+ const config = JSON.parse(data);
55
+ return config;
56
+ }
57
+ catch (error) {
58
+ // If file doesn't exist, return default config
59
+ if (error.code === 'ENOENT') {
60
+ return a2a_js_1.DEFAULT_A2A_CONFIG;
61
+ }
62
+ console.error(`[A2A Config] Error loading config for project ${projectId}:`, error);
63
+ return null;
64
+ }
65
+ }
66
+ /**
67
+ * Save A2A configuration for a project
68
+ *
69
+ * Creates directory structure if needed.
70
+ * Uses file locking for concurrent safety.
71
+ *
72
+ * @param projectId - Project identifier
73
+ * @param config - A2A configuration to save
74
+ */
75
+ async function saveA2AConfig(projectId, config) {
76
+ const configPath = getConfigPath(projectId);
77
+ const configDir = path_1.default.dirname(configPath);
78
+ // Ensure directory exists
79
+ await promises_1.default.mkdir(configDir, { recursive: true });
80
+ // Create empty file if it doesn't exist (helps with file locking)
81
+ try {
82
+ await promises_1.default.access(configPath);
83
+ }
84
+ catch {
85
+ // File doesn't exist, create empty file
86
+ await promises_1.default.writeFile(configPath, '{}', 'utf-8');
87
+ }
88
+ // Acquire lock for atomic write
89
+ const release = await proper_lockfile_1.default.lock(configPath, LOCK_OPTIONS);
90
+ try {
91
+ await promises_1.default.writeFile(configPath, JSON.stringify(config, null, 2), 'utf-8');
92
+ }
93
+ finally {
94
+ await release();
95
+ }
96
+ }
97
+ /**
98
+ * Validate A2A configuration
99
+ *
100
+ * Checks for required fields and value constraints.
101
+ *
102
+ * @param config - Configuration to validate
103
+ * @returns Validation result with error details if invalid
104
+ */
105
+ function validateA2AConfig(config) {
106
+ const errors = [];
107
+ // Validate allowedAgents
108
+ if (!Array.isArray(config.allowedAgents)) {
109
+ errors.push('allowedAgents must be an array');
110
+ }
111
+ else {
112
+ config.allowedAgents.forEach((agent, index) => {
113
+ if (!agent.name || typeof agent.name !== 'string') {
114
+ errors.push(`allowedAgents[${index}].name is required and must be a string`);
115
+ }
116
+ if (!agent.url || typeof agent.url !== 'string') {
117
+ errors.push(`allowedAgents[${index}].url is required and must be a string`);
118
+ }
119
+ else {
120
+ // Validate URL format
121
+ try {
122
+ const parsedUrl = new URL(agent.url);
123
+ // In production, require HTTPS for domain names
124
+ // IP addresses are exempt (internal/proxy scenarios)
125
+ if (process.env.NODE_ENV === 'production' && !agent.url.startsWith('https://')) {
126
+ // Check if hostname is an IP address
127
+ const isIP = (0, httpsOnly_js_1.isIPAddress)(parsedUrl.hostname);
128
+ if (!isIP) {
129
+ errors.push(`allowedAgents[${index}].url must use HTTPS in production (IP addresses exempt)`);
130
+ }
131
+ }
132
+ }
133
+ catch {
134
+ errors.push(`allowedAgents[${index}].url is not a valid URL`);
135
+ }
136
+ }
137
+ if (agent.apiKey === undefined || typeof agent.apiKey !== 'string') {
138
+ errors.push(`allowedAgents[${index}].apiKey is required and must be a string`);
139
+ }
140
+ if (typeof agent.enabled !== 'boolean') {
141
+ errors.push(`allowedAgents[${index}].enabled must be a boolean`);
142
+ }
143
+ });
144
+ }
145
+ // Validate taskTimeout
146
+ if (typeof config.taskTimeout !== 'number') {
147
+ errors.push('taskTimeout must be a number');
148
+ }
149
+ else if (config.taskTimeout < 1000 || config.taskTimeout > 1800000) {
150
+ errors.push('taskTimeout must be between 1000 and 1800000 milliseconds');
151
+ }
152
+ // Validate maxConcurrentTasks
153
+ if (typeof config.maxConcurrentTasks !== 'number') {
154
+ errors.push('maxConcurrentTasks must be a number');
155
+ }
156
+ else if (config.maxConcurrentTasks < 1 || config.maxConcurrentTasks > 50) {
157
+ errors.push('maxConcurrentTasks must be between 1 and 50');
158
+ }
159
+ return {
160
+ valid: errors.length === 0,
161
+ errors: errors.length > 0 ? errors : undefined,
162
+ };
163
+ }
164
+ /**
165
+ * Initialize default A2A config for a new project
166
+ *
167
+ * Creates .a2a directory and config.json with default values.
168
+ *
169
+ * @param projectId - Project identifier
170
+ */
171
+ async function initializeA2AConfig(projectId) {
172
+ const existingConfig = await loadA2AConfig(projectId);
173
+ // Only initialize if config doesn't exist (loadA2AConfig returns DEFAULT_A2A_CONFIG for missing files)
174
+ const configPath = getConfigPath(projectId);
175
+ try {
176
+ await promises_1.default.access(configPath);
177
+ // File exists, don't overwrite
178
+ return;
179
+ }
180
+ catch {
181
+ // File doesn't exist, create it
182
+ await saveA2AConfig(projectId, a2a_js_1.DEFAULT_A2A_CONFIG);
183
+ console.info(`[A2A Config] Initialized default config for project ${projectId}`);
184
+ }
185
+ }
186
+ //# sourceMappingURL=a2aConfigService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2aConfigService.js","sourceRoot":"","sources":["../../../src/services/a2a/a2aConfigService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * A2A History Service
3
+ *
4
+ * Manages the persistence of A2A message history using JSONL files.
5
+ * This allows retrieving the full event stream of an external agent call later.
6
+ *
7
+ * Storage path: {workingDirectory}/.a2a/history/{sessionId}.jsonl
8
+ */
9
+ export declare class A2AHistoryService {
10
+ /**
11
+ * Get the directory path for A2A history
12
+ */
13
+ private getHistoryDir;
14
+ /**
15
+ * Get the file path for a specific session
16
+ */
17
+ private getHistoryFilePath;
18
+ /**
19
+ * Append an event to the history file
20
+ */
21
+ appendEvent(workingDirectory: string, sessionId: string, event: any): Promise<void>;
22
+ /**
23
+ * Read the full history for a session
24
+ */
25
+ getHistory(workingDirectory: string, sessionId: string): Promise<any[]>;
26
+ /**
27
+ * Watch the history file and yield new lines as they are written
28
+ */
29
+ tailHistory(workingDirectory: string, sessionId: string, signal?: AbortSignal): AsyncGenerator<any>;
30
+ }
31
+ export declare const a2aHistoryService: A2AHistoryService;
32
+ //# sourceMappingURL=a2aHistoryService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2aHistoryService.d.ts","sourceRoot":"","sources":["../../../src/services/a2a/a2aHistoryService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACG,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzF;;OAEG;IACG,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAiB7E;;OAEG;IACI,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC;CA2C3G;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ /**
3
+ * A2A History Service
4
+ *
5
+ * Manages the persistence of A2A message history using JSONL files.
6
+ * This allows retrieving the full event stream of an external agent call later.
7
+ *
8
+ * Storage path: {workingDirectory}/.a2a/history/{sessionId}.jsonl
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.a2aHistoryService = exports.A2AHistoryService = void 0;
15
+ const promises_1 = __importDefault(require("fs/promises"));
16
+ const path_1 = __importDefault(require("path"));
17
+ const fileUtils_js_1 = require("../../utils/fileUtils.js");
18
+ const buffer_1 = require("buffer");
19
+ class A2AHistoryService {
20
+ /**
21
+ * Get the directory path for A2A history
22
+ */
23
+ getHistoryDir(workingDirectory) {
24
+ return path_1.default.join(workingDirectory, '.a2a', 'history');
25
+ }
26
+ /**
27
+ * Get the file path for a specific session
28
+ */
29
+ getHistoryFilePath(workingDirectory, sessionId) {
30
+ return path_1.default.join(this.getHistoryDir(workingDirectory), `${sessionId}.jsonl`);
31
+ }
32
+ /**
33
+ * Append an event to the history file
34
+ */
35
+ async appendEvent(workingDirectory, sessionId, event) {
36
+ const historyDir = this.getHistoryDir(workingDirectory);
37
+ await (0, fileUtils_js_1.ensureDir)(historyDir);
38
+ const filePath = this.getHistoryFilePath(workingDirectory, sessionId);
39
+ const line = JSON.stringify(event) + '\n';
40
+ await promises_1.default.appendFile(filePath, line, 'utf-8');
41
+ }
42
+ /**
43
+ * Read the full history for a session
44
+ */
45
+ async getHistory(workingDirectory, sessionId) {
46
+ const filePath = this.getHistoryFilePath(workingDirectory, sessionId);
47
+ try {
48
+ const content = await promises_1.default.readFile(filePath, 'utf-8');
49
+ return content
50
+ .split('\n')
51
+ .filter((line) => line.trim())
52
+ .map((line) => JSON.parse(line));
53
+ }
54
+ catch (error) {
55
+ if (error.code === 'ENOENT') {
56
+ return [];
57
+ }
58
+ throw error;
59
+ }
60
+ }
61
+ /**
62
+ * Watch the history file and yield new lines as they are written
63
+ */
64
+ async *tailHistory(workingDirectory, sessionId, signal) {
65
+ const filePath = this.getHistoryFilePath(workingDirectory, sessionId);
66
+ let currentSize = 0;
67
+ // Wait for file to exist
68
+ while (!signal?.aborted) {
69
+ try {
70
+ const stats = await promises_1.default.stat(filePath);
71
+ if (stats.isFile())
72
+ break;
73
+ }
74
+ catch {
75
+ await new Promise(resolve => setTimeout(resolve, 100));
76
+ }
77
+ }
78
+ while (!signal?.aborted) {
79
+ try {
80
+ const stats = await promises_1.default.stat(filePath);
81
+ if (stats.size > currentSize) {
82
+ const handle = await promises_1.default.open(filePath, 'r');
83
+ const buffer = buffer_1.Buffer.alloc(stats.size - currentSize);
84
+ await handle.read(buffer, 0, stats.size - currentSize, currentSize);
85
+ await handle.close();
86
+ const content = buffer.toString('utf-8');
87
+ const lines = content.split('\n').filter((line) => line.trim());
88
+ for (const line of lines) {
89
+ try {
90
+ yield JSON.parse(line);
91
+ }
92
+ catch {
93
+ // Ignore parse errors
94
+ }
95
+ }
96
+ currentSize = stats.size;
97
+ }
98
+ }
99
+ catch {
100
+ // Ignore errors (e.g. file not found yet)
101
+ }
102
+ await new Promise(resolve => setTimeout(resolve, 200)); // Poll every 200ms
103
+ }
104
+ }
105
+ }
106
+ exports.A2AHistoryService = A2AHistoryService;
107
+ exports.a2aHistoryService = new A2AHistoryService();
108
+ //# sourceMappingURL=a2aHistoryService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2aHistoryService.js","sourceRoot":"","sources":["../../../src/services/a2a/a2aHistoryService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Helper to integrate A2A SDK MCP server into query options
3
+ *
4
+ * @param queryOptions - The query options object to modify
5
+ * @param projectId - Project identifier
6
+ * @returns The modified query options (same object reference)
7
+ */
8
+ export declare function integrateA2AMcpServer(queryOptions: any, projectId: string): Promise<any>;
9
+ //# sourceMappingURL=a2aIntegration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2aIntegration.d.ts","sourceRoot":"","sources":["../../../src/services/a2a/a2aIntegration.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,gBA6B/E"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.integrateA2AMcpServer = integrateA2AMcpServer;
4
+ const a2aSdkMcp_js_1 = require("./a2aSdkMcp.js");
5
+ /**
6
+ * Helper to integrate A2A SDK MCP server into query options
7
+ *
8
+ * @param queryOptions - The query options object to modify
9
+ * @param projectId - Project identifier
10
+ * @returns The modified query options (same object reference)
11
+ */
12
+ async function integrateA2AMcpServer(queryOptions, projectId) {
13
+ try {
14
+ // Create SDK MCP server for A2A (in-process)
15
+ const { server: a2aServer } = await (0, a2aSdkMcp_js_1.createA2ASdkMcpServer)(projectId);
16
+ // Add to mcpServers
17
+ if (a2aServer) {
18
+ queryOptions.mcpServers = {
19
+ ...queryOptions.mcpServers,
20
+ "a2a-client": a2aServer
21
+ };
22
+ // Add tool to allowedTools
23
+ const a2aToolName = (0, a2aSdkMcp_js_1.getA2AToolName)();
24
+ if (!queryOptions.allowedTools) {
25
+ queryOptions.allowedTools = [a2aToolName];
26
+ }
27
+ else {
28
+ // Avoid duplicates
29
+ if (!queryOptions.allowedTools.includes(a2aToolName)) {
30
+ queryOptions.allowedTools.push(a2aToolName);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ catch (error) {
36
+ console.error('❌ [A2A] Failed to integrate SDK MCP server:', error);
37
+ // Continue without A2A support rather than failing
38
+ }
39
+ return queryOptions;
40
+ }
41
+ //# sourceMappingURL=a2aIntegration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2aIntegration.js","sourceRoot":"","sources":["../../../src/services/a2a/a2aIntegration.ts"],"names":[],"mappings":";;AASA,sDA6BC;AAtCD,iDAAuE;AAEvE;;;;;;GAMG;AACI,KAAK,UAAU,qBAAqB,CAAC,YAAiB,EAAE,SAAiB;IAC5E,IAAI,CAAC;QACD,6CAA6C;QAC7C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,oCAAqB,EAAC,SAAS,CAAC,CAAC;QAErE,oBAAoB;QACpB,IAAI,SAAS,EAAE,CAAC;YACZ,YAAY,CAAC,UAAU,GAAG;gBACtB,GAAG,YAAY,CAAC,UAAU;gBAC1B,YAAY,EAAE,SAAS;aAC1B,CAAC;YAEF,2BAA2B;YAC3B,MAAM,WAAW,GAAG,IAAA,6BAAc,GAAE,CAAC;YACrC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC7B,YAAY,CAAC,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACJ,mBAAmB;gBACnB,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACnD,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAChD,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;QACpE,mDAAmD;IACvD,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * A2A Query Service - One-shot Query Mode
3
+ *
4
+ * This service provides a one-shot query mode for A2A requests.
5
+ * Instead of using ClaudeSession (Streaming Input Mode with MessageQueue),
6
+ * it uses an async generator that naturally completes after yielding the message.
7
+ *
8
+ * Benefits:
9
+ * - Each A2A request is independent, no session reuse issues
10
+ * - Query automatically completes when generator ends
11
+ * - Still supports resume for history context
12
+ * - Still supports images and multi-part messages via Streaming Input
13
+ */
14
+ import { Options } from '@anthropic-ai/claude-agent-sdk';
15
+ import type { SDKMessage } from '@anthropic-ai/claude-agent-sdk';
16
+ /**
17
+ * User message content type for multi-part messages (text + images)
18
+ */
19
+ export interface UserMessageContent {
20
+ type: 'text' | 'image';
21
+ text?: string;
22
+ source?: {
23
+ type: 'base64';
24
+ media_type: string;
25
+ data: string;
26
+ };
27
+ }
28
+ /**
29
+ * A2A Query options extending Claude SDK Options
30
+ */
31
+ export interface A2AQueryOptions extends Options {
32
+ resume?: string;
33
+ }
34
+ /**
35
+ * Execute a one-shot A2A query
36
+ *
37
+ * This function creates a new query for each A2A request, using an async generator
38
+ * that completes after yielding the message. This avoids the session reuse issues
39
+ * that can occur with ClaudeSession's MessageQueue approach.
40
+ *
41
+ * @param message - The user message (text string)
42
+ * @param images - Optional array of images to include in the message
43
+ * @param options - Query options including resume sessionId
44
+ * @param onMessage - Callback for each SDK message
45
+ * @returns Promise that resolves when query completes
46
+ */
47
+ export declare function executeA2AQuery(message: string, images: Array<{
48
+ data: string;
49
+ mediaType: string;
50
+ }> | undefined, options: A2AQueryOptions, onMessage: (message: SDKMessage) => Promise<void>): Promise<{
51
+ sessionId: string | null;
52
+ fullResponse: string;
53
+ tokensUsed: number;
54
+ }>;
55
+ /**
56
+ * Execute a one-shot A2A query with SSE streaming
57
+ *
58
+ * Similar to executeA2AQuery but designed for SSE streaming mode.
59
+ *
60
+ * @param message - The user message (text string)
61
+ * @param images - Optional array of images
62
+ * @param options - Query options including resume sessionId
63
+ * @param onMessage - Callback for each SDK message (for SSE streaming)
64
+ */
65
+ export declare function executeA2AQueryStreaming(message: string, images: Array<{
66
+ data: string;
67
+ mediaType: string;
68
+ }> | undefined, options: A2AQueryOptions, onMessage: (message: SDKMessage) => void): Promise<{
69
+ sessionId: string | null;
70
+ }>;
71
+ //# sourceMappingURL=a2aQueryService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2aQueryService.d.ts","sourceRoot":"","sources":["../../../src/services/a2a/a2aQueryService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAS,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4BD;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,EAC9D,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAChD,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA0EjF;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,EAC9D,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GACvC,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAiDvC"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ /**
3
+ * A2A Query Service - One-shot Query Mode
4
+ *
5
+ * This service provides a one-shot query mode for A2A requests.
6
+ * Instead of using ClaudeSession (Streaming Input Mode with MessageQueue),
7
+ * it uses an async generator that naturally completes after yielding the message.
8
+ *
9
+ * Benefits:
10
+ * - Each A2A request is independent, no session reuse issues
11
+ * - Query automatically completes when generator ends
12
+ * - Still supports resume for history context
13
+ * - Still supports images and multi-part messages via Streaming Input
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.executeA2AQuery = executeA2AQuery;
17
+ exports.executeA2AQueryStreaming = executeA2AQueryStreaming;
18
+ const claude_agent_sdk_1 = require("@anthropic-ai/claude-agent-sdk");
19
+ /**
20
+ * Create an async generator for A2A messages
21
+ * The generator yields the user message and then completes,
22
+ * allowing the query to naturally finish.
23
+ *
24
+ * Uses 'any' type to match MessageQueue's approach and avoid SDK type incompatibility.
25
+ *
26
+ * @param content - Message content (string or array of content blocks)
27
+ */
28
+ async function* createA2AMessageGenerator(content) {
29
+ const messageContent = typeof content === 'string'
30
+ ? [{ type: 'text', text: content }]
31
+ : content;
32
+ yield {
33
+ type: 'user',
34
+ message: {
35
+ role: 'user',
36
+ content: messageContent
37
+ }
38
+ };
39
+ // Generator ends here, query will naturally complete after processing
40
+ }
41
+ /**
42
+ * Execute a one-shot A2A query
43
+ *
44
+ * This function creates a new query for each A2A request, using an async generator
45
+ * that completes after yielding the message. This avoids the session reuse issues
46
+ * that can occur with ClaudeSession's MessageQueue approach.
47
+ *
48
+ * @param message - The user message (text string)
49
+ * @param images - Optional array of images to include in the message
50
+ * @param options - Query options including resume sessionId
51
+ * @param onMessage - Callback for each SDK message
52
+ * @returns Promise that resolves when query completes
53
+ */
54
+ async function executeA2AQuery(message, images, options, onMessage) {
55
+ // Build message content with optional images
56
+ const messageContent = [];
57
+ // Add images first if present
58
+ if (images && images.length > 0) {
59
+ for (const image of images) {
60
+ messageContent.push({
61
+ type: 'image',
62
+ source: {
63
+ type: 'base64',
64
+ media_type: image.mediaType,
65
+ data: image.data
66
+ }
67
+ });
68
+ }
69
+ }
70
+ // Add text message
71
+ messageContent.push({
72
+ type: 'text',
73
+ text: message
74
+ });
75
+ // Create the message generator
76
+ const messageGen = createA2AMessageGenerator(messageContent);
77
+ let sessionId = null;
78
+ let fullResponse = '';
79
+ let tokensUsed = 0;
80
+ console.log(`🚀 [A2A Query] Starting one-shot query with resume=${options.resume || 'none'}`);
81
+ // Execute the query
82
+ const queryResult = (0, claude_agent_sdk_1.query)({
83
+ prompt: messageGen,
84
+ options: options
85
+ });
86
+ // Process responses
87
+ for await (const sdkMessage of queryResult) {
88
+ // Capture session ID from system init message
89
+ if (sdkMessage.type === 'system' && sdkMessage.subtype === 'init' && sdkMessage.session_id) {
90
+ sessionId = sdkMessage.session_id;
91
+ console.log(`📝 [A2A Query] Captured sessionId: ${sessionId}`);
92
+ }
93
+ // Also check for session_id on any message
94
+ if (sdkMessage.session_id && !sessionId) {
95
+ sessionId = sdkMessage.session_id;
96
+ }
97
+ // Extract assistant response text
98
+ if (sdkMessage.type === 'assistant' && sdkMessage.message?.content) {
99
+ for (const block of sdkMessage.message.content) {
100
+ if (block.type === 'text') {
101
+ fullResponse += block.text;
102
+ }
103
+ }
104
+ }
105
+ // Extract token usage
106
+ if (sdkMessage.type === 'assistant' && sdkMessage.usage) {
107
+ const usage = sdkMessage.usage;
108
+ tokensUsed = (usage.input_tokens || 0) + (usage.output_tokens || 0);
109
+ }
110
+ // Call the message callback
111
+ await onMessage(sdkMessage);
112
+ }
113
+ console.log(`✅ [A2A Query] Query completed, sessionId=${sessionId}, responseLength=${fullResponse.length}`);
114
+ return { sessionId, fullResponse, tokensUsed };
115
+ }
116
+ /**
117
+ * Execute a one-shot A2A query with SSE streaming
118
+ *
119
+ * Similar to executeA2AQuery but designed for SSE streaming mode.
120
+ *
121
+ * @param message - The user message (text string)
122
+ * @param images - Optional array of images
123
+ * @param options - Query options including resume sessionId
124
+ * @param onMessage - Callback for each SDK message (for SSE streaming)
125
+ */
126
+ async function executeA2AQueryStreaming(message, images, options, onMessage) {
127
+ // Build message content with optional images
128
+ const messageContent = [];
129
+ if (images && images.length > 0) {
130
+ for (const image of images) {
131
+ messageContent.push({
132
+ type: 'image',
133
+ source: {
134
+ type: 'base64',
135
+ media_type: image.mediaType,
136
+ data: image.data
137
+ }
138
+ });
139
+ }
140
+ }
141
+ messageContent.push({
142
+ type: 'text',
143
+ text: message
144
+ });
145
+ const messageGen = createA2AMessageGenerator(messageContent);
146
+ let sessionId = null;
147
+ console.log(`🚀 [A2A Query Streaming] Starting one-shot query with resume=${options.resume || 'none'}`);
148
+ const queryResult = (0, claude_agent_sdk_1.query)({
149
+ prompt: messageGen,
150
+ options: options
151
+ });
152
+ for await (const sdkMessage of queryResult) {
153
+ // Capture session ID
154
+ if (sdkMessage.type === 'system' && sdkMessage.subtype === 'init' && sdkMessage.session_id) {
155
+ sessionId = sdkMessage.session_id;
156
+ }
157
+ if (sdkMessage.session_id && !sessionId) {
158
+ sessionId = sdkMessage.session_id;
159
+ }
160
+ // Stream the message (synchronous callback for SSE)
161
+ onMessage(sdkMessage);
162
+ }
163
+ console.log(`✅ [A2A Query Streaming] Query completed, sessionId=${sessionId}`);
164
+ return { sessionId };
165
+ }
166
+ //# sourceMappingURL=a2aQueryService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2aQueryService.js","sourceRoot":"","sources":["../../../src/services/a2a/a2aQueryService.ts"],"names":[],"mappings":"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"}