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,369 +0,0 @@
1
- # DEVELOPER GUIDE: gateway
2
-
3
- ## Quick Summary
4
- The `gateway` directory provides a comprehensive framework for building gateways that connect external platforms (Slack, HTTP/SSE web interfaces) to the Solace AI Connector's A2A (Agent-to-Agent) messaging system. The architecture consists of a foundational `base` module that defines abstract classes for gateway implementations, and specific gateway implementations like `slack` for Slack integration and `http_sse` for web-based interfaces. The framework handles authentication, message translation between external formats and A2A protocol, real-time streaming updates, and manages the complete lifecycle of requests from external platforms to AI agents.
5
-
6
- ## Files and Subdirectories Overview
7
- - **Direct files:**
8
- - `__init__.py`: Standard Python package initializer
9
- - `gateway_llm.txt`: Documentation or configuration file for LLM-related gateway functionality
10
- - `gateway_llm_detail.txt`: Comprehensive documentation combining all gateway module summaries
11
-
12
- - **Subdirectories:**
13
- - `base/`: Foundational abstract classes and utilities for building gateway implementations
14
- - `http_sse/`: HTTP/Server-Sent Events gateway for web-based user interfaces
15
-
16
- ## Developer API Reference
17
-
18
- ### Direct Files
19
-
20
- #### __init__.py
21
- **Purpose:** Initializes the `gateway` Python package
22
- **Import:** `from solace_agent_mesh.gateway import ...`
23
-
24
- **Classes/Functions/Constants:**
25
- This file is empty and contains no direct exports.
26
-
27
- #### gateway_llm.txt
28
- **Purpose:** Documentation or configuration file for LLM-related gateway functionality
29
- **Import:** Not applicable (text/documentation file)
30
-
31
- **Content:** This appears to be a documentation or configuration file rather than executable code.
32
-
33
- #### gateway_llm_detail.txt
34
- **Purpose:** Comprehensive documentation combining all individual LLM summary files from the gateway directory tree
35
- **Import:** Not applicable (text/documentation file)
36
-
37
- **Content:** Contains concatenated developer guides for all gateway subdirectories and components.
38
-
39
- ### Subdirectory APIs
40
-
41
- #### base/
42
- **Purpose:** Provides foundational abstract classes for building Gateway implementations
43
- **Key Exports:** `BaseGatewayApp`, `BaseGatewayComponent`, `TaskContextManager`
44
- **Import Examples:**
45
- ```python
46
- from solace_agent_mesh.gateway.base.app import BaseGatewayApp
47
- from solace_agent_mesh.gateway.base.component import BaseGatewayComponent
48
- from solace_agent_mesh.gateway.base.task_context import TaskContextManager
49
- ```
50
-
51
- #### http_sse/
52
- **Purpose:** HTTP/Server-Sent Events gateway for web-based user interfaces with real-time streaming
53
- **Key Exports:** `WebUIBackendApp`, `WebUIBackendComponent`, `SSEManager`, `SessionManager`, routers, services
54
- **Import Examples:**
55
- ```python
56
- from solace_agent_mesh.gateway.http_sse.app import WebUIBackendApp
57
- from solace_agent_mesh.gateway.http_sse.component import WebUIBackendComponent
58
- from solace_agent_mesh.gateway.http_sse.sse_manager import SSEManager
59
- from solace_agent_mesh.gateway.http_sse.dependencies import get_sse_manager, get_session_manager
60
- ```
61
-
62
- ## Complete Usage Guide
63
-
64
- ### 1. Creating a Custom Gateway Implementation
65
-
66
- ```python
67
- from typing import Type, List, Dict, Any, Optional, Tuple, Union
68
- from solace_agent_mesh.gateway.base.app import BaseGatewayApp
69
- from solace_agent_mesh.gateway.base.component import BaseGatewayComponent
70
- from solace_agent_mesh.common.a2a.types import ContentPart, TextPart
71
- from a2a.types import Task, TaskStatusUpdateEvent, TaskArtifactUpdateEvent, JSONRPCError
72
-
73
- # Step 1: Define your gateway app class
74
- class MyCustomGatewayApp(BaseGatewayApp):
75
- """Custom gateway for My Platform integration."""
76
-
77
- # Define platform-specific configuration parameters
78
- SPECIFIC_APP_SCHEMA_PARAMS: List[Dict[str, Any]] = [
79
- {
80
- "name": "my_platform_api_key",
81
- "required": True,
82
- "type": "string",
83
- "description": "API key for My Platform"
84
- },
85
- {
86
- "name": "my_platform_webhook_url",
87
- "required": False,
88
- "type": "string",
89
- "description": "Webhook URL for receiving events"
90
- },
91
- {
92
- "name": "default_agent_name",
93
- "required": False,
94
- "type": "string",
95
- "default": "assistant",
96
- "description": "Default agent to route messages to"
97
- }
98
- ]
99
-
100
- def _get_gateway_component_class(self) -> Type[BaseGatewayComponent]:
101
- return MyCustomGatewayComponent
102
-
103
- # Step 2: Implement your gateway component
104
- class MyCustomGatewayComponent(BaseGatewayComponent):
105
- """Component implementing My Platform integration logic."""
106
-
107
- def __init__(self, **kwargs):
108
- super().__init__(**kwargs)
109
- self.api_key = self.get_config("my_platform_api_key")
110
- self.webhook_url = self.get_config("my_platform_webhook_url")
111
- self.default_agent = self.get_config("default_agent_name", "assistant")
112
- self.platform_client = None # Initialize your platform client
113
-
114
- async def _extract_initial_claims(self, external_event_data: Any) -> Optional[Dict[str, Any]]:
115
- """Extract user identity from platform event."""
116
- # Example: Extract user ID from your platform's event structure
117
- if hasattr(external_event_data, 'user_id'):
118
- return {
119
- "id": external_event_data.user_id,
120
- "platform": "my_platform",
121
- "username": getattr(external_event_data, 'username', None)
122
- }
123
- return None
124
-
125
- def _start_listener(self) -> None:
126
- """Start your platform's event listener."""
127
- # Example: Start webhook server, WebSocket connection, etc.
128
- print(f"Starting My Platform listener on {self.webhook_url}")
129
- # Initialize your platform client/listener here
130
-
131
- def _stop_listener(self) -> None:
132
- """Stop your platform's event listener."""
133
- print("Stopping My Platform listener")
134
- # Clean up platform client/listener here
135
-
136
- async def _translate_external_input(self, external_event: Any) -> Tuple[str, List[ContentPart], Dict[str, Any]]:
137
- """Convert platform event to A2A format."""
138
- # Extract message content
139
- message_text = getattr(external_event, 'message', '')
140
-
141
- # Determine target agent (could be extracted from message or use default)
142
- target_agent = getattr(external_event, 'target_agent', self.default_agent)
143
-
144
- # Create A2A content parts
145
- a2a_parts = [TextPart(text=message_text)]
146
-
147
- # Create context for tracking this request
148
- context = {
149
- "platform": "my_platform",
150
- "event_id": getattr(external_event, 'id', ''),
151
- "channel_id": getattr(external_event, 'channel_id', ''),
152
- "user_id_for_artifacts": getattr(external_event, 'user_id', ''),
153
- "a2a_session_id": f"my_platform_{getattr(external_event, 'session_id', '')}"
154
- }
155
-
156
- return target_agent, a2a_parts, context
157
-
158
- async def _send_update_to_external(self,
159
- external_request_context: Dict[str, Any],
160
- event_data: Union[TaskStatusUpdateEvent, TaskArtifactUpdateEvent],
161
- is_final_chunk_of_update: bool) -> None:
162
- """Send streaming update to your platform."""
163
- channel_id = external_request_context.get("channel_id")
164
-
165
- # Extract text content from the event
166
- if hasattr(event_data, 'text_delta'):
167
- text_content = event_data.text_delta
168
- elif hasattr(event_data, 'content'):
169
- text_content = str(event_data.content)
170
- else:
171
- text_content = "Update received"
172
-
173
- # Send to your platform (example)
174
- await self._send_to_platform(channel_id, text_content, is_partial=not is_final_chunk_of_update)
175
-
176
- async def _send_final_response_to_external(self,
177
- external_request_context: Dict[str, Any],
178
- task_data: Task) -> None:
179
- """Send final response to your platform."""
180
- channel_id = external_request_context.get("channel_id")
181
-
182
- # Extract final response from task data
183
- final_response = "Task completed"
184
- if task_data.result and hasattr(task_data.result, 'content'):
185
- final_response = str(task_data.result.content)
186
-
187
- await self._send_to_platform(channel_id, final_response, is_final=True)
188
-
189
- async def _send_error_to_external(self,
190
- external_request_context: Dict[str, Any],
191
- error_data: JSONRPCError) -> None:
192
- """Send error to your platform."""
193
- channel_id = external_request_context.get("channel_id")
194
- error_message = f"Error: {error_data.message}"
195
- await self._send_to_platform(channel_id, error_message, is_error=True)
196
-
197
- async def _send_to_platform(self, channel_id: str, message: str, **kwargs):
198
- """Helper method to send messages to your platform."""
199
- # Implement your platform's message sending logic here
200
- print(f"Sending to {channel_id}: {message}")
201
-
202
- # Step 3: Usage
203
- if __name__ == "__main__":
204
- config = {
205
- "name": "my-custom-gateway",
206
- "namespace": "/myorg/prod",
207
- "gateway_id": "my-gateway-01",
208
- "my_platform_api_key": "your-api-key",
209
- "my_platform_webhook_url": "https://my-webhook.example.com",
210
- "default_agent_name": "my-assistant",
211
- "solace_config": {
212
- "broker_url": "tcp://localhost:55555",
213
- "vpn_name": "default",
214
- "username": "default",
215
- "password": "default"
216
- }
217
- }
218
-
219
- app = MyCustomGatewayApp(app_info=config)
220
- app.run()
221
- ```
222
-
223
- ### 2. Using the HTTP/SSE Gateway for Web Interfaces
224
-
225
- ```python
226
- from solace_agent_mesh.gateway.http_sse.app import WebUIBackendApp
227
- from fastapi import APIRouter, Depends, Request
228
- from solace_agent_mesh.gateway.http_sse.dependencies import (
229
- get_sse_manager, get_session_manager, get_core_a2a_service
230
- )
231
-
232
- # Configure web UI gateway
233
- webui_config = {
234
- "name": "my-webui",
235
- "session_secret_key": "your-secret-key",
236
- "fastapi_host": "0.0.0.0",
237
- "fastapi_port": 8000,
238
- "namespace": "/myorg/prod",
239
- "gateway_id": "webui-01",
240
- "cors_allowed_origins": ["http://localhost:3000"],
241
- "frontend_welcome_message": "Welcome to AI Assistant!",
242
- "frontend_bot_name": "Assistant",
243
- "frontend_enable_file_upload": True,
244
- "frontend_enable_agent_selection": True,
245
-
246
- # Database for session persistence
247
- "session_service": {
248
- "type": "sql",
249
- "database_url": "sqlite:///./sessions.db"
250
- },
251
-
252
- # A2A system configuration
253
- "solace_config": {
254
- "broker_url": "tcp://localhost:55555",
255
- "vpn_name": "default",
256
- "username": "default",
257
- "password": "default"
258
- }
259
- }
260
-
261
- # Create custom router for additional endpoints
262
- custom_router = APIRouter(prefix="/api/custom")
263
-
264
- @custom_router.get("/my-endpoint")
265
- async def my_custom_endpoint(
266
- request: Request,
267
- sse_manager = Depends(get_sse_manager),
268
- session_manager = Depends(get_session_manager)
269
- ):
270
- """Custom endpoint with access to gateway services."""
271
- user_id = session_manager.get_a2a_client_id(request)
272
- return {"user_id": user_id, "message": "Custom endpoint response"}
273
-
274
- # Create and run the web UI gateway
275
- webui_app = WebUIBackendApp(app_info=webui_config)
276
- webui_app.run()
277
- ```
278
-
279
- ### 3. Working with Task Context and Session Management
280
-
281
- ```python
282
- from solace_agent_mesh.gateway.base.task_context import TaskContextManager
283
- from solace_agent_mesh.gateway.http_sse.session_manager import SessionManager
284
-
285
- # Task context management (used internally by gateways)
286
- context_manager = TaskContextManager()
287
-
288
- # Store context when submitting a task
289
- task_id = "task-123"
290
- context = {
291
- "platform": "http_sse",
292
- "session_id": "session-456",
293
- "user_id": "user-789",
294
- "client_id": "client-abc"
295
- }
296
- context_manager.store_context(task_id, context)
297
-
298
- # Retrieve context when processing response
299
- retrieved_context = context_manager.get_context(task_id)
300
- if retrieved_context:
301
- # Send response back to original platform
302
- session_id = retrieved_context["session_id"]
303
-
304
- # Session management for web interfaces
305
- session_manager = SessionManager(
306
- secret_key="your-secret-key",
307
- app_config={"session_timeout": 3600}
308
- )
309
-
310
- # In a FastAPI endpoint
311
- @app.get("/api/session-info")
312
- async def get_session_info(request: Request):
313
- # Get A2A client ID for this web session
314
- client_id = session_manager.get_a2a_client_id(request)
315
-
316
- # Ensure we have an A2A session
317
- session_id = session_manager.ensure_a2a_session(request)
318
-
319
- return {
320
- "client_id": client_id,
321
- "session_id": session_id
322
- }
323
- ```
324
-
325
- ### 4. Real-time Streaming with Server-Sent Events
326
-
327
- ```python
328
- import asyncio
329
- import httpx
330
- import json
331
- from solace_agent_mesh.gateway.http_sse.sse_manager import SSEManager
332
- from solace_agent_mesh.gateway.http_sse.sse_event_buffer import SSEEventBuffer
333
-
334
- # Server-side SSE management
335
- sse_buffer = SSEEventBuffer(max_queue_size=100, max_age_seconds=300)
336
- sse_manager = SSEManager(max_queue_size=100, event_buffer=sse_buffer)
337
-
338
- # Create SSE connection for a task
339
- task_id = "task-123"
340
- sse_queue = sse_manager.create_sse_connection(task_id)
341
-
342
- # Send events to connected clients
343
- sse_manager.send_event(
344
- task_id=task_id,
345
- event_data={"message": "Task started", "progress": 0},
346
- event_type="task_update"
347
- )
348
-
349
- # Client-side SSE consumption
350
- async def listen_to_task_events(task_id: str):
351
- async with httpx.AsyncClient() as client:
352
- async with client.stream(
353
- "GET",
354
- f"http://localhost:8000/api/v1/sse/subscribe/{task_id}",
355
- headers={"Accept": "text/event-stream"}
356
- ) as response:
357
- async for line in response.aiter_lines():
358
- if line.startswith("data: "):
359
- event_data = line[6:] # Remove "data: " prefix
360
- try:
361
- parsed_data = json.loads(event_data)
362
- print(f"Received event: {parsed_data}")
363
- except json.JSONDecodeError:
364
- print(f"Received raw data: {event_data}")
365
- ```
366
-
367
- ### 5. Database
368
-
369
- # content_hash: 0b7ed0154e912abecea7634ace04f072596af9b37780b6093ab5585b700d3d39