solace-agent-mesh 1.11.2__py3-none-any.whl → 1.12.0__py3-none-any.whl

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 (308) hide show
  1. solace_agent_mesh/agent/adk/callbacks.py +177 -10
  2. solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +3 -0
  3. solace_agent_mesh/agent/adk/models/lite_llm.py +34 -16
  4. solace_agent_mesh/agent/adk/runner.py +66 -8
  5. solace_agent_mesh/agent/adk/setup.py +61 -26
  6. solace_agent_mesh/agent/protocol/event_handlers.py +48 -0
  7. solace_agent_mesh/agent/proxies/a2a/component.py +27 -0
  8. solace_agent_mesh/agent/sac/component.py +84 -2
  9. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +41 -22
  10. solace_agent_mesh/agent/tools/peer_agent_tool.py +19 -12
  11. solace_agent_mesh/agent/tools/tool_config_types.py +21 -1
  12. solace_agent_mesh/agent/utils/artifact_helpers.py +54 -0
  13. solace_agent_mesh/assets/docs/404.html +3 -3
  14. solace_agent_mesh/assets/docs/assets/js/15ba94aa.e186750d.js +1 -0
  15. solace_agent_mesh/assets/docs/assets/js/240a0364.83e37aa8.js +1 -0
  16. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.2f0db237.js +1 -0
  17. solace_agent_mesh/assets/docs/assets/js/3a6c6137.7e61915d.js +1 -0
  18. solace_agent_mesh/assets/docs/assets/js/{3ac1795d.28b7c67b.js → 3ac1795d.dc006e20.js} +1 -1
  19. solace_agent_mesh/assets/docs/assets/js/3ff0015d.f08618fb.js +1 -0
  20. solace_agent_mesh/assets/docs/assets/js/4667dc50.bf2ad456.js +1 -0
  21. solace_agent_mesh/assets/docs/assets/js/547e15cc.8e6da617.js +1 -0
  22. solace_agent_mesh/assets/docs/assets/js/5b8d9c11.d4eb37b8.js +1 -0
  23. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.1ee87753.js +1 -0
  24. solace_agent_mesh/assets/docs/assets/js/64195356.09dbd087.js +1 -0
  25. solace_agent_mesh/assets/docs/assets/js/66d4869e.30340bd3.js +1 -0
  26. solace_agent_mesh/assets/docs/assets/js/729898df.7249e9fd.js +1 -0
  27. solace_agent_mesh/assets/docs/assets/js/7e294c01.7c5f6906.js +1 -0
  28. solace_agent_mesh/assets/docs/assets/js/8024126c.e3467286.js +1 -0
  29. solace_agent_mesh/assets/docs/assets/js/81a99df0.95be65d4.js +1 -0
  30. solace_agent_mesh/assets/docs/assets/js/9bb13469.4523ae20.js +1 -0
  31. solace_agent_mesh/assets/docs/assets/js/a7d42657.a956689d.js +1 -0
  32. solace_agent_mesh/assets/docs/assets/js/ab9708a8.3e563275.js +1 -0
  33. solace_agent_mesh/assets/docs/assets/js/e04b235d.06d23db6.js +1 -0
  34. solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.deb2b62e.js +1 -0
  35. solace_agent_mesh/assets/docs/assets/js/e6f9706b.acc800d3.js +1 -0
  36. solace_agent_mesh/assets/docs/assets/js/e92d0134.c147a429.js +1 -0
  37. solace_agent_mesh/assets/docs/assets/js/ee0c2fe7.94d0a351.js +1 -0
  38. solace_agent_mesh/assets/docs/assets/js/f284c35a.08fab659.js +1 -0
  39. solace_agent_mesh/assets/docs/assets/js/main.b241af3e.js +2 -0
  40. solace_agent_mesh/assets/docs/assets/js/runtime~main.4ca7d2e2.js +1 -0
  41. solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +4 -4
  42. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +4 -4
  43. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +4 -4
  44. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +4 -4
  45. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +4 -4
  46. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/image-tools/index.html +81 -0
  47. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +14 -12
  48. solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +30 -9
  49. solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +4 -4
  50. solace_agent_mesh/assets/docs/docs/documentation/components/index.html +6 -4
  51. solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +4 -4
  52. solace_agent_mesh/assets/docs/docs/documentation/components/platform-service/index.html +33 -0
  53. solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +4 -4
  54. solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +4 -4
  55. solace_agent_mesh/assets/docs/docs/documentation/components/prompts/index.html +4 -4
  56. solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +4 -4
  57. solace_agent_mesh/assets/docs/docs/documentation/components/speech/index.html +4 -4
  58. solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +4 -4
  59. solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +5 -5
  60. solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +4 -4
  61. solace_agent_mesh/assets/docs/docs/documentation/deploying/{kubernetes-deployment → kubernetes}/index.html +6 -6
  62. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/kubernetes-deployment-guide/index.html +197 -0
  63. solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +11 -6
  64. solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +4 -4
  65. solace_agent_mesh/assets/docs/docs/documentation/deploying/proxy_configuration/index.html +4 -4
  66. solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +4 -4
  67. solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +4 -4
  68. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +23 -5
  69. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +4 -4
  70. solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +4 -4
  71. solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +4 -4
  72. solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +4 -4
  73. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +4 -4
  74. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +4 -4
  75. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +4 -4
  76. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +17 -8
  77. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +4 -4
  78. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +4 -4
  79. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +4 -4
  80. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +4 -4
  81. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +4 -4
  82. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/teams-integration/index.html +4 -4
  83. solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +5 -5
  84. solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +4 -4
  85. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +4 -4
  86. solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +4 -4
  87. solace_agent_mesh/assets/docs/docs/documentation/enterprise/openapi-tools/index.html +4 -4
  88. solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +4 -4
  89. solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +4 -4
  90. solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +4 -4
  91. solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +4 -4
  92. solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +4 -4
  93. solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +6 -5
  94. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +4 -4
  95. solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +4 -4
  96. solace_agent_mesh/assets/docs/docs/documentation/getting-started/vibe_coding/index.html +62 -0
  97. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +25 -4
  98. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +4 -4
  99. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +4 -4
  100. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +4 -4
  101. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +4 -4
  102. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +4 -4
  103. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +4 -4
  104. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +4 -4
  105. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +4 -4
  106. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +4 -4
  107. solace_agent_mesh/assets/docs/docs/documentation/migrations/platform-service-split/index.html +85 -0
  108. solace_agent_mesh/assets/docs/lunr-index-1767712284328.json +1 -0
  109. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  110. solace_agent_mesh/assets/docs/search-doc-1767712284328.json +1 -0
  111. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  112. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  113. solace_agent_mesh/cli/__init__.py +1 -1
  114. solace_agent_mesh/cli/commands/init_cmd/__init__.py +15 -0
  115. solace_agent_mesh/cli/commands/init_cmd/directory_step.py +1 -1
  116. solace_agent_mesh/cli/commands/init_cmd/env_step.py +29 -2
  117. solace_agent_mesh/cli/commands/init_cmd/platform_service_step.py +85 -0
  118. solace_agent_mesh/cli/commands/tools_cmd.py +315 -0
  119. solace_agent_mesh/cli/main.py +2 -0
  120. solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-Dj3JtK42.js → authCallback-8Nihi8rv.js} +1 -1
  121. solace_agent_mesh/client/webui/frontend/static/assets/{client-ZKk9kEJ5.js → client-DYtZN8p-.js} +1 -1
  122. solace_agent_mesh/client/webui/frontend/static/assets/main-BYGUHQMk.js +435 -0
  123. solace_agent_mesh/client/webui/frontend/static/assets/main-D2CSH1bp.css +1 -0
  124. solace_agent_mesh/client/webui/frontend/static/assets/{vendor-BNV4kZN0.js → vendor-XBWAmrun.js} +106 -101
  125. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -3
  126. solace_agent_mesh/client/webui/frontend/static/index.html +4 -4
  127. solace_agent_mesh/client/webui/frontend/static/ui-version.json +1 -1
  128. solace_agent_mesh/common/a2a/types.py +1 -1
  129. solace_agent_mesh/common/agent_registry.py +38 -11
  130. solace_agent_mesh/common/data_parts.py +28 -0
  131. solace_agent_mesh/common/error_handlers.py +83 -0
  132. solace_agent_mesh/common/sam_events/event_service.py +2 -2
  133. solace_agent_mesh/config_portal/backend/common.py +2 -0
  134. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-ZV-jX48T.js +103 -0
  135. solace_agent_mesh/config_portal/frontend/static/client/assets/{manifest-ba77705e.js → manifest-ce5bc5da.js} +1 -1
  136. solace_agent_mesh/config_portal/frontend/static/client/index.html +1 -1
  137. solace_agent_mesh/core_a2a/service.py +3 -2
  138. solace_agent_mesh/gateway/adapter/base.py +28 -1
  139. solace_agent_mesh/gateway/adapter/types.py +9 -0
  140. solace_agent_mesh/gateway/base/auth_interface.py +103 -0
  141. solace_agent_mesh/gateway/base/component.py +68 -1
  142. solace_agent_mesh/gateway/generic/component.py +195 -30
  143. solace_agent_mesh/gateway/http_sse/app.py +23 -6
  144. solace_agent_mesh/gateway/http_sse/component.py +9 -61
  145. solace_agent_mesh/gateway/http_sse/dependencies.py +9 -51
  146. solace_agent_mesh/gateway/http_sse/main.py +28 -418
  147. solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +2 -2
  148. solace_agent_mesh/gateway/http_sse/repository/entities/project.py +1 -1
  149. solace_agent_mesh/gateway/http_sse/repository/entities/project_user.py +1 -1
  150. solace_agent_mesh/gateway/http_sse/repository/entities/session.py +2 -2
  151. solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +2 -2
  152. solace_agent_mesh/gateway/http_sse/repository/interfaces.py +2 -2
  153. solace_agent_mesh/gateway/http_sse/repository/models/prompt_model.py +1 -1
  154. solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +1 -1
  155. solace_agent_mesh/gateway/http_sse/repository/project_repository.py +1 -1
  156. solace_agent_mesh/gateway/http_sse/repository/project_user_repository.py +1 -1
  157. solace_agent_mesh/gateway/http_sse/repository/session_repository.py +4 -4
  158. solace_agent_mesh/gateway/http_sse/repository/task_repository.py +2 -2
  159. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +16 -15
  160. solace_agent_mesh/gateway/http_sse/routers/auth.py +61 -132
  161. solace_agent_mesh/gateway/http_sse/routers/config.py +12 -8
  162. solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +1 -1
  163. solace_agent_mesh/gateway/http_sse/routers/dto/responses/base_responses.py +1 -1
  164. solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +2 -2
  165. solace_agent_mesh/gateway/http_sse/routers/feedback.py +2 -2
  166. solace_agent_mesh/gateway/http_sse/routers/people.py +2 -2
  167. solace_agent_mesh/gateway/http_sse/routers/projects.py +2 -1
  168. solace_agent_mesh/gateway/http_sse/routers/prompts.py +2 -1
  169. solace_agent_mesh/gateway/http_sse/routers/sessions.py +3 -3
  170. solace_agent_mesh/gateway/http_sse/routers/speech.py +1 -1
  171. solace_agent_mesh/gateway/http_sse/routers/tasks.py +3 -2
  172. solace_agent_mesh/gateway/http_sse/routers/users.py +1 -1
  173. solace_agent_mesh/gateway/http_sse/routers/visualization.py +2 -1
  174. solace_agent_mesh/gateway/http_sse/services/background_task_monitor.py +1 -1
  175. solace_agent_mesh/gateway/http_sse/services/data_retention_service.py +1 -1
  176. solace_agent_mesh/gateway/http_sse/services/feedback_service.py +1 -1
  177. solace_agent_mesh/gateway/http_sse/services/session_service.py +4 -4
  178. solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +1 -1
  179. solace_agent_mesh/services/platform/__init__.py +23 -12
  180. solace_agent_mesh/services/platform/api/dependencies.py +23 -16
  181. solace_agent_mesh/services/platform/api/main.py +118 -43
  182. solace_agent_mesh/services/platform/api/routers/__init__.py +12 -3
  183. solace_agent_mesh/services/platform/api/routers/health_router.py +31 -0
  184. solace_agent_mesh/services/platform/app.py +101 -7
  185. solace_agent_mesh/services/platform/component.py +552 -33
  186. solace_agent_mesh/shared/__init__.py +14 -0
  187. solace_agent_mesh/shared/api/__init__.py +42 -0
  188. solace_agent_mesh/shared/auth/__init__.py +26 -0
  189. solace_agent_mesh/shared/auth/dependencies.py +204 -0
  190. solace_agent_mesh/shared/auth/middleware.py +291 -0
  191. solace_agent_mesh/shared/database/__init__.py +20 -0
  192. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/base_repository.py +1 -1
  193. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_exceptions.py +1 -1
  194. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_helpers.py +1 -1
  195. solace_agent_mesh/shared/exceptions/__init__.py +36 -0
  196. solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exception_handlers.py +1 -1
  197. solace_agent_mesh/shared/utils/__init__.py +21 -0
  198. solace_agent_mesh/templates/platform.yaml +49 -0
  199. solace_agent_mesh/templates/webui.yaml +12 -3
  200. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/METADATA +2 -1
  201. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/RECORD +214 -258
  202. solace_agent_mesh/agent/adk/adk_llm.txt +0 -226
  203. solace_agent_mesh/agent/adk/adk_llm_detail.txt +0 -566
  204. solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +0 -171
  205. solace_agent_mesh/agent/adk/models/models_llm.txt +0 -189
  206. solace_agent_mesh/agent/agent_llm.txt +0 -369
  207. solace_agent_mesh/agent/agent_llm_detail.txt +0 -1702
  208. solace_agent_mesh/agent/protocol/protocol_llm.txt +0 -81
  209. solace_agent_mesh/agent/protocol/protocol_llm_detail.txt +0 -92
  210. solace_agent_mesh/agent/proxies/a2a/a2a_llm.txt +0 -190
  211. solace_agent_mesh/agent/proxies/base/base_llm.txt +0 -148
  212. solace_agent_mesh/agent/proxies/proxies_llm.txt +0 -283
  213. solace_agent_mesh/agent/sac/sac_llm.txt +0 -189
  214. solace_agent_mesh/agent/sac/sac_llm_detail.txt +0 -200
  215. solace_agent_mesh/agent/testing/testing_llm.txt +0 -58
  216. solace_agent_mesh/agent/testing/testing_llm_detail.txt +0 -68
  217. solace_agent_mesh/agent/tools/tools_llm.txt +0 -276
  218. solace_agent_mesh/agent/tools/tools_llm_detail.txt +0 -275
  219. solace_agent_mesh/agent/utils/utils_llm.txt +0 -152
  220. solace_agent_mesh/agent/utils/utils_llm_detail.txt +0 -149
  221. solace_agent_mesh/assets/docs/assets/js/15ba94aa.92fea363.js +0 -1
  222. solace_agent_mesh/assets/docs/assets/js/240a0364.9ad94d1b.js +0 -1
  223. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.33f5d75b.js +0 -1
  224. solace_agent_mesh/assets/docs/assets/js/3a6c6137.f5940cfa.js +0 -1
  225. solace_agent_mesh/assets/docs/assets/js/3ff0015d.2ddc75c0.js +0 -1
  226. solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +0 -1
  227. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.90a87880.js +0 -1
  228. solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +0 -1
  229. solace_agent_mesh/assets/docs/assets/js/66d4869e.b77431fc.js +0 -1
  230. solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +0 -1
  231. solace_agent_mesh/assets/docs/assets/js/81a99df0.2484b8d9.js +0 -1
  232. solace_agent_mesh/assets/docs/assets/js/9bb13469.b2333011.js +0 -1
  233. solace_agent_mesh/assets/docs/assets/js/ab9708a8.245ae0ef.js +0 -1
  234. solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +0 -1
  235. solace_agent_mesh/assets/docs/assets/js/e04b235d.52cb25ed.js +0 -1
  236. solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.b1068f9b.js +0 -1
  237. solace_agent_mesh/assets/docs/assets/js/e6f9706b.4488e34c.js +0 -1
  238. solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +0 -1
  239. solace_agent_mesh/assets/docs/assets/js/f284c35a.250993bf.js +0 -1
  240. solace_agent_mesh/assets/docs/assets/js/main.7acf7ace.js +0 -2
  241. solace_agent_mesh/assets/docs/assets/js/runtime~main.9e0813a2.js +0 -1
  242. solace_agent_mesh/assets/docs/lunr-index-1765810064709.json +0 -1
  243. solace_agent_mesh/assets/docs/search-doc-1765810064709.json +0 -1
  244. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +0 -250
  245. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +0 -365
  246. solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +0 -305
  247. solace_agent_mesh/client/webui/frontend/static/assets/main-BcUaNZ-Q.css +0 -1
  248. solace_agent_mesh/client/webui/frontend/static/assets/main-vjch4RYc.js +0 -435
  249. solace_agent_mesh/common/a2a/a2a_llm.txt +0 -175
  250. solace_agent_mesh/common/a2a/a2a_llm_detail.txt +0 -193
  251. solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +0 -445
  252. solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +0 -736
  253. solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +0 -330
  254. solace_agent_mesh/common/common_llm.txt +0 -230
  255. solace_agent_mesh/common/common_llm_detail.txt +0 -2562
  256. solace_agent_mesh/common/middleware/middleware_llm.txt +0 -174
  257. solace_agent_mesh/common/middleware/middleware_llm_detail.txt +0 -185
  258. solace_agent_mesh/common/sac/sac_llm.txt +0 -71
  259. solace_agent_mesh/common/sac/sac_llm_detail.txt +0 -82
  260. solace_agent_mesh/common/sam_events/sam_events_llm.txt +0 -104
  261. solace_agent_mesh/common/sam_events/sam_events_llm_detail.txt +0 -115
  262. solace_agent_mesh/common/services/providers/providers_llm.txt +0 -81
  263. solace_agent_mesh/common/services/services_llm.txt +0 -368
  264. solace_agent_mesh/common/services/services_llm_detail.txt +0 -459
  265. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +0 -220
  266. solace_agent_mesh/common/utils/utils_llm.txt +0 -335
  267. solace_agent_mesh/common/utils/utils_llm_detail.txt +0 -572
  268. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-DiOiAjzL.js +0 -103
  269. solace_agent_mesh/core_a2a/core_a2a_llm.txt +0 -90
  270. solace_agent_mesh/core_a2a/core_a2a_llm_detail.txt +0 -101
  271. solace_agent_mesh/gateway/base/base_llm.txt +0 -226
  272. solace_agent_mesh/gateway/base/base_llm_detail.txt +0 -235
  273. solace_agent_mesh/gateway/gateway_llm.txt +0 -369
  274. solace_agent_mesh/gateway/gateway_llm_detail.txt +0 -3885
  275. solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +0 -345
  276. solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +0 -161
  277. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +0 -105
  278. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +0 -299
  279. solace_agent_mesh/gateway/http_sse/http_sse_llm_detail.txt +0 -3278
  280. solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +0 -221
  281. solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +0 -257
  282. solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +0 -308
  283. solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +0 -450
  284. solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +0 -133
  285. solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +0 -123
  286. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +0 -312
  287. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +0 -303
  288. solace_agent_mesh/gateway/http_sse/shared/__init__.py +0 -146
  289. solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +0 -319
  290. solace_agent_mesh/gateway/http_sse/utils/utils_llm.txt +0 -47
  291. solace_agent_mesh/llm.txt +0 -228
  292. solace_agent_mesh/llm_detail.txt +0 -2835
  293. solace_agent_mesh/solace_agent_mesh_llm.txt +0 -362
  294. solace_agent_mesh/solace_agent_mesh_llm_detail.txt +0 -8599
  295. solace_agent_mesh/templates/templates_llm.txt +0 -147
  296. /solace_agent_mesh/assets/docs/assets/js/{main.7acf7ace.js.LICENSE.txt → main.b241af3e.js.LICENSE.txt} +0 -0
  297. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/auth_utils.py +0 -0
  298. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/pagination.py +0 -0
  299. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/response_utils.py +0 -0
  300. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/error_dto.py +0 -0
  301. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exceptions.py +0 -0
  302. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/enums.py +0 -0
  303. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/timestamp_utils.py +0 -0
  304. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/types.py +0 -0
  305. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/utils.py +0 -0
  306. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/WHEEL +0 -0
  307. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/entry_points.txt +0 -0
  308. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,7 @@
1
1
  """
2
2
  FastAPI router for managing session-specific artifacts via REST endpoints.
3
3
  """
4
+ from __future__ import annotations
4
5
 
5
6
  import logging
6
7
  from collections.abc import Callable
@@ -319,20 +320,19 @@ async def upload_artifact_with_session(
319
320
  except ValueError:
320
321
  log.warning("%s Invalid Content-Length header: %s", log_prefix, content_length)
321
322
 
322
- # Read file content in chunks with size validation
323
+ # Validate file size by streaming through WITHOUT accumulating chunks in memory
323
324
  chunk_size = LOAD_FILE_CHUNK_SIZE
324
- content_bytes = bytearray()
325
325
  total_bytes_read = 0
326
-
326
+
327
327
  try:
328
+ # Step 1: Validate size by reading chunks (discard data, just count bytes)
328
329
  while True:
329
330
  chunk = await upload_file.read(chunk_size)
330
331
  if not chunk:
331
332
  break # End of file
332
-
333
- chunk_len = len(chunk)
334
- total_bytes_read += chunk_len
335
-
333
+
334
+ total_bytes_read += len(chunk)
335
+
336
336
  # Validate size during reading (fail fast)
337
337
  if total_bytes_read > max_upload_size:
338
338
  error_msg = (
@@ -341,19 +341,20 @@ async def upload_artifact_with_session(
341
341
  f"{total_bytes_read / (1024*1024):.2f} MB > {max_upload_size / (1024*1024):.2f} MB)"
342
342
  )
343
343
  log.warning("%s %s", log_prefix, error_msg)
344
-
344
+
345
345
  raise HTTPException(
346
346
  status_code=status.HTTP_413_REQUEST_ENTITY_TOO_LARGE,
347
347
  detail=error_msg
348
348
  )
349
-
350
- content_bytes.extend(chunk)
351
-
352
- # Convert to bytes for consistency with existing code
353
- content_bytes = bytes(content_bytes)
354
-
349
+
350
+ # Step 2: Size is valid - reset to beginning
351
+ await upload_file.seek(0)
352
+
353
+ # Step 3: Read all content at once
354
+ content_bytes = await upload_file.read()
355
+
355
356
  log.debug(
356
- "%s File read successfully in chunks: %d bytes total",
357
+ "%s File validated (%d bytes) and loaded into memory",
357
358
  log_prefix,
358
359
  total_bytes_read
359
360
  )
@@ -1,12 +1,11 @@
1
1
  """
2
2
  Router for handling authentication-related endpoints.
3
3
  """
4
+ from __future__ import annotations
4
5
 
5
6
  import logging
6
7
  import secrets
7
- from urllib.parse import urlencode
8
8
 
9
- import httpx
10
9
  from fastapi import (
11
10
  APIRouter,
12
11
  Depends,
@@ -14,7 +13,7 @@ from fastapi import (
14
13
  Request as FastAPIRequest,
15
14
  Response,
16
15
  )
17
- from fastapi.responses import HTMLResponse, RedirectResponse
16
+ from fastapi.responses import HTMLResponse
18
17
 
19
18
  from ...http_sse.dependencies import get_api_config, get_sac_component
20
19
 
@@ -30,20 +29,16 @@ async def initiate_login(
30
29
  """
31
30
  Initiates the login flow by redirecting to the external authorization service.
32
31
  """
33
- external_auth_url = config.get("external_auth_service_url", "http://localhost:8080")
34
- callback_url = config.get(
35
- "external_auth_callback_uri", "http://localhost:8000/api/v1/auth/callback"
36
- )
37
-
38
- params = {
39
- "provider": config.get("external_auth_provider", "azure"),
40
- "redirect_uri": callback_url,
41
- }
42
-
43
- login_url = f"{external_auth_url}/login?{urlencode(params)}"
44
- log.info(f"Redirecting to external authorization service: {login_url}")
32
+ try:
33
+ from solace_agent_mesh_enterprise.gateway.auth import handle_login_initiation
45
34
 
46
- return RedirectResponse(url=login_url)
35
+ return await handle_login_initiation(request, config)
36
+ except ImportError:
37
+ raise HTTPException(
38
+ status_code=501,
39
+ detail="OAuth authentication requires enterprise package. "
40
+ "Install: pip install solace-agent-mesh-enterprise",
41
+ )
47
42
 
48
43
 
49
44
  @router.get("/csrf-token")
@@ -76,86 +71,56 @@ async def auth_callback(
76
71
  """
77
72
  Handles the callback from the OIDC provider by calling an external exchange service.
78
73
  """
79
- code = request.query_params.get("code")
80
-
81
- if not code:
82
- raise HTTPException(status_code=400, detail="Missing authorization code")
83
-
84
- external_auth_url = config.get("external_auth_service_url", "http://localhost:8080")
85
- exchange_url = f"{external_auth_url}/exchange-code"
86
- redirect_uri = config.get(
87
- "external_auth_callback_uri", "http://localhost:8000/api/v1/auth/callback"
88
- )
89
-
90
- async with httpx.AsyncClient() as client:
91
- try:
92
- response = await client.post(
93
- exchange_url,
94
- json={
95
- "code": code,
96
- "provider": config.get("external_auth_provider", "azure"),
97
- "redirect_uri": redirect_uri,
98
- },
99
- timeout=20.0,
100
- )
101
- response.raise_for_status()
102
- token_data = response.json()
103
- except httpx.HTTPStatusError as e:
104
- log.error(f"Failed to exchange code: {e.response.text}")
105
- raise HTTPException(
106
- status_code=e.response.status_code,
107
- detail=f"Failed to exchange code: {e.response.text}",
108
- )
109
- except Exception as e:
110
- log.error(f"Error during code exchange: {e}")
111
- raise HTTPException(status_code=500, detail="Error during code exchange")
112
-
113
- access_token = token_data.get("access_token")
114
- refresh_token = token_data.get("refresh_token")
74
+ try:
75
+ from solace_agent_mesh_enterprise.gateway.auth import handle_auth_callback
115
76
 
116
- if not access_token:
77
+ return await handle_auth_callback(
78
+ request, config, component
79
+ )
80
+ except ImportError:
117
81
  raise HTTPException(
118
- status_code=400, detail="Access token not in response from exchange service"
82
+ status_code=501,
83
+ detail="OAuth authentication requires enterprise package. "
84
+ "Install: pip install solace-agent-mesh-enterprise",
119
85
  )
120
86
 
121
- request.session["access_token"] = access_token
122
- if refresh_token:
123
- request.session["refresh_token"] = refresh_token
124
- log.debug("Tokens stored directly in session.")
125
87
 
88
+ @router.post("/auth/logout")
89
+ async def logout(request: FastAPIRequest):
90
+ """
91
+ Logout endpoint - clears server-side session and access token.
92
+
93
+ This endpoint:
94
+ - Clears the access_token from the session storage
95
+ - Clears all session data
96
+ - Returns success even if already logged out (idempotent)
97
+
98
+ The session cookie will be invalidated, requiring re-authentication
99
+ on the next request.
100
+ """
126
101
  try:
127
- async with httpx.AsyncClient() as client:
128
- user_info_response = await client.get(
129
- f"{external_auth_url}/user_info",
130
- params={"provider": config.get("external_auth_provider", "azure")},
131
- headers={"Authorization": f"Bearer {access_token}"},
132
- )
133
- user_info_response.raise_for_status()
134
- user_info = user_info_response.json()
135
-
136
- user_id = user_info.get("email", "authenticated_user")
137
- if user_id:
138
- session_manager = component.get_session_manager()
139
- session_manager.store_user_id(request, user_id)
140
- else:
141
- log.warning("Could not find 'email' in user info response.")
142
-
143
- except httpx.HTTPStatusError as e:
144
- log.error(f"Failed to get user info: {e.response.text}")
145
-
102
+ # Clear access token from session storage
103
+ if hasattr(request, 'session') and 'access_token' in request.session:
104
+ del request.session['access_token']
105
+ log.debug("Cleared access_token from session")
106
+
107
+ # Clear refresh token if present
108
+ if hasattr(request, 'session') and 'refresh_token' in request.session:
109
+ del request.session['refresh_token']
110
+ log.debug("Cleared refresh_token from session")
111
+
112
+ # Clear all other session data
113
+ if hasattr(request, 'session'):
114
+ request.session.clear()
115
+ log.debug("Cleared all session data")
116
+
117
+ log.info("User logged out successfully")
118
+ return {"success": True, "message": "Logged out successfully"}
119
+
146
120
  except Exception as e:
147
- log.error(f"Error getting user info: {e}")
148
-
149
- frontend_base_url = config.get("frontend_redirect_url", "http://localhost:3000")
150
-
151
- hash_params = {"access_token": access_token}
152
- if refresh_token:
153
- hash_params["refresh_token"] = refresh_token
154
-
155
- hash_fragment = urlencode(hash_params)
156
-
157
- frontend_redirect_url = f"{frontend_base_url}/auth-callback.html#{hash_fragment}"
158
- return RedirectResponse(url=frontend_redirect_url)
121
+ log.error(f"Error during logout: {e}")
122
+ # Still return success - logout should be idempotent
123
+ return {"success": True, "message": "Logged out successfully"}
159
124
 
160
125
 
161
126
  @router.post("/auth/refresh")
@@ -167,53 +132,17 @@ async def refresh_token(
167
132
  """
168
133
  Refreshes an access token using the external authorization service.
169
134
  """
170
- data = await request.json()
171
- refresh_token = data.get("refresh_token")
172
- if not refresh_token:
173
- raise HTTPException(status_code=400, detail="Missing refresh_token")
174
-
175
- external_auth_url = config.get("external_auth_service_url", "http://localhost:8080")
176
- refresh_url = f"{external_auth_url}/refresh_token"
177
-
178
- async with httpx.AsyncClient() as client:
179
- try:
180
- response = await client.post(
181
- refresh_url,
182
- json={
183
- "refresh_token": refresh_token,
184
- "provider": config.get("external_auth_provider", "azure"),
185
- },
186
- timeout=20.0,
187
- )
188
- response.raise_for_status()
189
- token_data = response.json()
190
- except httpx.HTTPStatusError as e:
191
- log.error(f"Failed to refresh token: {e.response.text}")
192
- raise HTTPException(
193
- status_code=e.response.status_code,
194
- detail=f"Failed to refresh token: {e.response.text}",
195
- )
196
- except Exception as e:
197
- log.error(f"Error during token refresh: {e}")
198
- raise HTTPException(status_code=500, detail="Error during token refresh")
199
-
200
- access_token = token_data.get("access_token")
201
- new_refresh_token = token_data.get("refresh_token")
135
+ try:
136
+ from solace_agent_mesh_enterprise.gateway.auth import handle_token_refresh
202
137
 
203
- if not access_token:
138
+ return await handle_token_refresh(request, config, component)
139
+ except ImportError:
204
140
  raise HTTPException(
205
- status_code=400, detail="Access token not in response from refresh service"
141
+ status_code=501,
142
+ detail="OAuth authentication requires enterprise package. "
143
+ "Install: pip install solace-agent-mesh-enterprise",
206
144
  )
207
145
 
208
- session_manager = component.get_session_manager()
209
- session_manager.store_auth_tokens(request, access_token, new_refresh_token)
210
- log.info("Successfully refreshed and updated tokens in session.")
211
-
212
- return {
213
- "access_token": access_token,
214
- "refresh_token": new_refresh_token,
215
- }
216
-
217
146
 
218
147
  @router.get("/auth/tool/callback")
219
148
  async def auth_tool_callback(
@@ -1,17 +1,19 @@
1
1
  """
2
2
  API Router for providing frontend configuration.
3
3
  """
4
+ from __future__ import annotations
4
5
 
5
6
  import logging
6
- from fastapi import APIRouter, Depends, HTTPException, status
7
7
  from typing import Dict, Any
8
+ from typing import TYPE_CHECKING
9
+
10
+ from fastapi import APIRouter, Depends, HTTPException, status
8
11
 
12
+ from ..routers.dto.requests.project_requests import CreateProjectRequest
9
13
  from ....gateway.http_sse.dependencies import get_sac_component, get_api_config
10
- from ..routers.dto.requests.project_requests import CreateProjectRequest, UpdateProjectRequest
11
- from typing import TYPE_CHECKING
12
14
 
13
15
  if TYPE_CHECKING:
14
- from gateway.http_sse.component import WebUIBackendComponent
16
+ from ..component import WebUIBackendComponent
15
17
 
16
18
  log = logging.getLogger(__name__)
17
19
 
@@ -337,14 +339,16 @@ async def get_app_config(
337
339
  "ttsProvider": tts_provider,
338
340
  }
339
341
 
342
+ platform_config = component.get_config("platform_service", {})
343
+ platform_service_url = platform_config.get("url", "")
344
+
340
345
  config_data = {
341
- "frontend_server_url": "",
346
+ "frontend_server_url": component.frontend_server_url,
347
+ "frontend_platform_server_url": platform_service_url,
342
348
  "frontend_auth_login_url": component.get_config(
343
349
  "frontend_auth_login_url", ""
344
350
  ),
345
- "frontend_use_authorization": component.get_config(
346
- "frontend_use_authorization", False
347
- ),
351
+ "frontend_use_authorization": component.get_config("frontend_use_authorization", False),
348
352
  "frontend_welcome_message": component.get_config(
349
353
  "frontend_welcome_message", ""
350
354
  ),
@@ -5,7 +5,7 @@ Session-related request DTOs.
5
5
  from typing import Optional
6
6
  from pydantic import BaseModel, Field
7
7
 
8
- from ....shared.types import SessionId, UserId
8
+ from solace_agent_mesh.shared.utils.types import SessionId, UserId
9
9
 
10
10
 
11
11
  class GetSessionRequest(BaseModel):
@@ -6,7 +6,7 @@ from typing import Any
6
6
 
7
7
  from pydantic import BaseModel, ConfigDict
8
8
 
9
- from ....shared import epoch_ms_to_iso8601
9
+ from solace_agent_mesh.shared.utils.timestamp_utils import epoch_ms_to_iso8601
10
10
 
11
11
 
12
12
  class BaseTimestampResponse(BaseModel):
@@ -4,8 +4,8 @@ Session-related response DTOs.
4
4
 
5
5
  from pydantic import BaseModel, ConfigDict, Field
6
6
 
7
- from ....shared.pagination import PaginationMeta
8
- from ....shared.types import SessionId, UserId
7
+ from solace_agent_mesh.shared.api.pagination import PaginationMeta
8
+ from solace_agent_mesh.shared.utils.types import SessionId, UserId
9
9
  from .base_responses import BaseTimestampResponse
10
10
 
11
11
 
@@ -22,8 +22,8 @@ from ..repository.entities import Feedback
22
22
  from ..repository.feedback_repository import FeedbackRepository
23
23
  from ..repository.interfaces import ITaskRepository
24
24
  from ..services.feedback_service import FeedbackService
25
- from ..shared.pagination import PaginationParams
26
- from ..shared.types import UserId
25
+ from solace_agent_mesh.shared.api.pagination import PaginationParams
26
+ from solace_agent_mesh.shared.utils.types import UserId
27
27
 
28
28
  router = APIRouter()
29
29
  log = logging.getLogger(__name__)
@@ -9,8 +9,8 @@ from fastapi import APIRouter, Depends, Query
9
9
 
10
10
  from ..dependencies import get_people_service
11
11
  from ..services.people_service import PeopleService
12
- from ..shared.pagination import DataResponse
13
- from ..shared.response_utils import create_data_response
12
+ from solace_agent_mesh.shared.api.pagination import DataResponse
13
+ from solace_agent_mesh.shared.api.response_utils import create_data_response
14
14
 
15
15
  log = logging.getLogger(__name__)
16
16
 
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Project API controller using 3-tiered architecture.
3
3
  """
4
+ from __future__ import annotations
4
5
 
5
6
  import json
6
7
  from typing import List, Optional, Dict, Any
@@ -20,7 +21,7 @@ from solace_ai_connector.common.log import log
20
21
 
21
22
  from ..dependencies import get_project_service, get_sac_component, get_api_config, get_db
22
23
  from ..services.project_service import ProjectService
23
- from ..shared.auth_utils import get_current_user
24
+ from solace_agent_mesh.shared.api.auth_utils import get_current_user
24
25
  from ....common.a2a.types import ArtifactInfo
25
26
  from typing import TYPE_CHECKING
26
27
 
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Prompts API router for prompt library feature.
3
3
  """
4
+ from __future__ import annotations
4
5
 
5
6
  import uuid
6
7
  from typing import List, Optional, Dict, Any, Literal
@@ -27,7 +28,7 @@ from .dto.prompt_dto import (
27
28
  PromptImportRequest,
28
29
  PromptImportResponse,
29
30
  )
30
- from ..shared import now_epoch_ms
31
+ from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
31
32
  from solace_ai_connector.common.log import log
32
33
 
33
34
  from typing import TYPE_CHECKING
@@ -6,9 +6,9 @@ from sqlalchemy.orm import Session
6
6
 
7
7
  from ..dependencies import get_session_business_service, get_db
8
8
  from ..services.session_service import SessionService
9
- from ..shared.auth_utils import get_current_user
10
- from ..shared.pagination import DataResponse, PaginatedResponse, PaginationParams
11
- from ..shared.response_utils import create_data_response
9
+ from solace_agent_mesh.shared.api.auth_utils import get_current_user
10
+ from solace_agent_mesh.shared.api.pagination import DataResponse, PaginatedResponse, PaginationParams
11
+ from solace_agent_mesh.shared.api.response_utils import create_data_response
12
12
  from .dto.requests.session_requests import (
13
13
  GetSessionRequest,
14
14
  UpdateSessionRequest,
@@ -11,7 +11,7 @@ from solace_ai_connector.common.log import log
11
11
 
12
12
  from ..services.audio_service import AudioService
13
13
  from ..dependencies import get_audio_service
14
- from ..shared.auth_utils import get_current_user
14
+ from solace_agent_mesh.shared.api.auth_utils import get_current_user
15
15
 
16
16
 
17
17
  router = APIRouter()
@@ -2,6 +2,7 @@
2
2
  API Router for submitting and managing tasks to agents.
3
3
  Includes background task status endpoints.
4
4
  """
5
+ from __future__ import annotations
5
6
 
6
7
  import logging
7
8
  from typing import TYPE_CHECKING
@@ -43,8 +44,8 @@ from ....gateway.http_sse.repository.task_repository import TaskRepository
43
44
  from ....gateway.http_sse.services.session_service import SessionService
44
45
  from ....gateway.http_sse.services.task_service import TaskService
45
46
  from ....gateway.http_sse.session_manager import SessionManager
46
- from ....gateway.http_sse.shared.pagination import PaginationParams
47
- from ....gateway.http_sse.shared.types import UserId
47
+ from solace_agent_mesh.shared.api.pagination import PaginationParams
48
+ from solace_agent_mesh.shared.utils.types import UserId
48
49
  from ..utils.stim_utils import create_stim_from_task_data
49
50
 
50
51
  if TYPE_CHECKING:
@@ -9,7 +9,7 @@ from typing import Any
9
9
  from fastapi import APIRouter, Depends, Query
10
10
 
11
11
  from ..dependencies import get_config_resolver, get_user_config
12
- from ..shared.auth_utils import get_current_user
12
+ from solace_agent_mesh.shared.api.auth_utils import get_current_user
13
13
  from ....common.middleware.config_resolver import ConfigResolver
14
14
 
15
15
  log = logging.getLogger(__name__)
@@ -1,6 +1,7 @@
1
1
  """
2
2
  API Router for managing A2A message visualization streams.
3
3
  """
4
+ from __future__ import annotations
4
5
 
5
6
  import logging
6
7
  import asyncio
@@ -47,7 +48,7 @@ class SubscriptionTarget(BaseModel):
47
48
  "my_a2a_messages",
48
49
  "current_namespace_a2a_messages",
49
50
  "namespace_a2a_messages",
50
- "agent_a2a_messages",
51
+ "agent_a2a_messages"
51
52
  ],
52
53
  )
53
54
  identifier: Optional[str] = Field(
@@ -9,7 +9,7 @@ from sqlalchemy.orm import Session as DBSession
9
9
 
10
10
  from ....gateway.http_sse.repository.task_repository import TaskRepository
11
11
  from ....gateway.http_sse.services.task_service import TaskService
12
- from ....gateway.http_sse.shared import now_epoch_ms
12
+ from ....shared.utils.timestamp_utils import now_epoch_ms
13
13
 
14
14
  log = logging.getLogger(__name__)
15
15
 
@@ -10,7 +10,7 @@ from sqlalchemy.orm import Session as DBSession
10
10
 
11
11
  from ..repository.feedback_repository import FeedbackRepository
12
12
  from ..repository.task_repository import TaskRepository
13
- from ..shared import now_epoch_ms
13
+ from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
14
14
 
15
15
  log = logging.getLogger(__name__)
16
16
 
@@ -11,7 +11,7 @@ from sqlalchemy.orm import Session as DBSession
11
11
 
12
12
  from ..repository.entities import Feedback
13
13
  from ..repository.feedback_repository import FeedbackRepository
14
- from ..shared import now_epoch_ms
14
+ from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
15
15
  from ..utils.stim_utils import create_stim_from_task_data
16
16
 
17
17
  # The FeedbackPayload is defined in the router, this creates a forward reference
@@ -11,10 +11,10 @@ from ..repository import (
11
11
  from ..repository.chat_task_repository import ChatTaskRepository
12
12
  from ..repository.task_repository import TaskRepository
13
13
  from ..repository.entities import ChatTask
14
- from ..shared.enums import SenderType
15
- from ..shared.types import SessionId, UserId
16
- from ..shared import now_epoch_ms
17
- from ..shared.pagination import PaginationParams, PaginatedResponse, get_pagination_or_default
14
+ from solace_agent_mesh.shared.utils.enums import SenderType
15
+ from solace_agent_mesh.shared.utils.types import SessionId, UserId
16
+ from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
17
+ from solace_agent_mesh.shared.api.pagination import PaginationParams, PaginatedResponse, get_pagination_or_default
18
18
 
19
19
  log = logging.getLogger(__name__)
20
20
 
@@ -21,7 +21,7 @@ from sqlalchemy.orm import Session as DBSession
21
21
  from ....common import a2a
22
22
  from ..repository.entities import Task, TaskEvent
23
23
  from ..repository.task_repository import TaskRepository
24
- from ..shared import now_epoch_ms
24
+ from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
25
25
 
26
26
  log = logging.getLogger(__name__)
27
27
 
@@ -1,18 +1,29 @@
1
1
  """
2
2
  Platform Service for Solace Agent Mesh.
3
3
 
4
- Provides REST API for platform configuration management:
5
- - Agents
6
- - Connectors
7
- - Toolsets
8
- - Deployments
9
- - AI Assistant
4
+ ARCHITECTURE: Service vs Gateway
5
+ --------------------------------
6
+ SERVICES provide internal platform functionality (this component).
7
+ GATEWAYS handle external communication channels (http_sse, slack, webhook, etc.).
10
8
 
11
- This service is NOT a gateway - it does not:
12
- - Manage chat sessions
13
- - Submit tasks to agents via A2A
14
- - Handle artifacts or embeds
15
- - Communicate with the agent mesh
9
+ Platform Service Responsibilities:
10
+ - REST API for platform configuration management
11
+ - Agent Builder (CRUD operations on agents)
12
+ - Connector management (CRUD operations on connectors)
13
+ - Toolset discovery and management
14
+ - Deployment orchestration (deploy/update/undeploy agents)
15
+ - AI Assistant (AI-powered configuration help)
16
+ - Deployer heartbeat monitoring (track deployer availability)
17
+ - Background deployment status checking (verify agent deployments succeed)
16
18
 
17
- It only validates OAuth2 tokens and performs CRUD operations on platform data.
19
+ Message Communication (Direct Messaging - Not A2A Protocol):
20
+ - PUBLISHES: Deployment commands (direct publishing) to deployer ({namespace}/deployer/agent/...)
21
+ - RECEIVES: Deployer heartbeats ({namespace}/deployer/heartbeat)
22
+ - RECEIVES: Agent cards for deployment monitoring ({namespace}/a2a/agent-cards)
23
+
24
+ What Platform Service is NOT:
25
+ - NOT a chat interface (no user sessions)
26
+ - NOT for task submission to agents (no orchestration of user tasks)
27
+ - NOT for artifact management (no chat artifacts or embeds)
28
+ - NOT for end-user communication (admin/platform operations only)
18
29
  """