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,450 +0,0 @@
1
- # DEVELOPER GUIDE: dto
2
-
3
- ## Quick Summary
4
- The `dto` directory contains Data Transfer Objects (DTOs) for API contract definition and validation in the HTTP SSE gateway. It's organized into two main subdirectories: `requests` for incoming API request validation using Pydantic models, and `responses` for structured API response formatting with automatic timestamp conversion. The DTOs primarily focus on session management and task operations, providing type-safe interfaces for API endpoints with field aliasing and validation.
5
-
6
- ## Files and Subdirectories Overview
7
- - **Direct files:**
8
- - `__init__.py` - Main module exports for requests and responses submodules
9
- - **Subdirectories:**
10
- - `requests/` - Request DTOs for API endpoint validation (session and task CRUD operations)
11
- - `responses/` - Response DTOs with automatic timestamp serialization and field aliasing
12
-
13
- ## Developer API Reference
14
-
15
- ### Direct Files
16
-
17
- #### __init__.py
18
- **Purpose:** Main entry point that exports the requests and responses submodules
19
- **Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto import requests, responses`
20
-
21
- **Exports:**
22
- - `requests` - Module containing all request DTOs
23
- - `responses` - Module containing all response DTOs
24
-
25
- ### Subdirectory APIs
26
-
27
- #### requests/
28
- **Purpose:** Provides Pydantic models for validating incoming API requests for session management and task operations
29
- **Key Exports:** GetSessionRequest, UpdateSessionRequest, SaveTaskRequest
30
- **Import Examples:**
31
- ```python
32
- from solace_agent_mesh.gateway.http_sse.routers.dto.requests import (
33
- GetSessionRequest,
34
- UpdateSessionRequest,
35
- SaveTaskRequest
36
- )
37
- ```
38
-
39
- #### responses/
40
- **Purpose:** Provides structured response DTOs with automatic timestamp conversion and field aliasing for API consistency
41
- **Key Exports:** SessionResponse, SessionListResponse, TaskResponse, TaskListResponse, BaseTimestampResponse
42
- **Import Examples:**
43
- ```python
44
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses import (
45
- SessionResponse,
46
- SessionListResponse,
47
- TaskResponse,
48
- TaskListResponse
49
- )
50
- ```
51
-
52
- ## Complete Usage Guide
53
-
54
- ### 1. Basic Imports and Setup
55
-
56
- ```python
57
- # Import the main dto modules
58
- from solace_agent_mesh.gateway.http_sse.routers.dto import requests, responses
59
-
60
- # Or import specific DTOs directly
61
- from solace_agent_mesh.gateway.http_sse.routers.dto.requests import (
62
- GetSessionRequest,
63
- UpdateSessionRequest,
64
- SaveTaskRequest
65
- )
66
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses import (
67
- SessionResponse,
68
- SessionListResponse,
69
- TaskResponse,
70
- TaskListResponse
71
- )
72
- ```
73
-
74
- ### 2. Working with Session Request DTOs
75
-
76
- ```python
77
- from solace_agent_mesh.gateway.http_sse.routers.dto.requests import (
78
- GetSessionRequest,
79
- UpdateSessionRequest
80
- )
81
- from pydantic import ValidationError
82
-
83
- # Create a request to get a specific session
84
- def get_session(session_id: str, user_id: str):
85
- try:
86
- request = GetSessionRequest(
87
- session_id=session_id,
88
- user_id=user_id
89
- )
90
- return request
91
- except ValidationError as e:
92
- print(f"Invalid request parameters: {e}")
93
- return None
94
-
95
- # Create a request to update session name
96
- def update_session_name(session_id: str, user_id: str, new_name: str):
97
- try:
98
- request = UpdateSessionRequest(
99
- session_id=session_id,
100
- user_id=user_id,
101
- name=new_name # Automatically validated (1-255 characters)
102
- )
103
- return request
104
- except ValidationError as e:
105
- print(f"Validation failed: {e}")
106
- return None
107
- ```
108
-
109
- ### 3. Working with Task Request DTOs
110
-
111
- ```python
112
- from solace_agent_mesh.gateway.http_sse.routers.dto.requests import SaveTaskRequest
113
- from pydantic import ValidationError
114
- import json
115
-
116
- # Create a save task request with camelCase field names (API style)
117
- def save_task_with_validation(task_id: str, message_bubbles: list, user_message: str = None, metadata: dict = None):
118
- try:
119
- # Convert data to JSON strings as required
120
- bubbles_json = json.dumps(message_bubbles)
121
- metadata_json = json.dumps(metadata) if metadata else None
122
-
123
- request = SaveTaskRequest(
124
- task_id=task_id,
125
- user_message=user_message,
126
- message_bubbles=bubbles_json,
127
- task_metadata=metadata_json
128
- )
129
- return request
130
- except ValidationError as e:
131
- print(f"Task validation failed: {e}")
132
- return None
133
-
134
- # Example usage
135
- task_request = save_task_with_validation(
136
- task_id="task_123",
137
- message_bubbles=[
138
- {"type": "user", "content": "Hello"},
139
- {"type": "assistant", "content": "Hi there!"}
140
- ],
141
- user_message="Please analyze this data",
142
- metadata={"priority": "high", "category": "analysis"}
143
- )
144
- ```
145
-
146
- ### 4. Working with Session Response DTOs
147
-
148
- ```python
149
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses import (
150
- SessionResponse,
151
- SessionListResponse
152
- )
153
- import time
154
-
155
- # Create session responses
156
- def create_session_response(session_data: dict) -> SessionResponse:
157
- return SessionResponse(
158
- id=session_data["id"],
159
- user_id=session_data["user_id"],
160
- name=session_data.get("name"),
161
- agent_id=session_data.get("agent_id"),
162
- created_time=int(time.time() * 1000), # Current time in epoch ms
163
- updated_time=session_data.get("updated_time")
164
- )
165
-
166
- # Create paginated session list responses
167
- def create_session_list_response(sessions: list, total: int) -> SessionListResponse:
168
- session_responses = [create_session_response(session) for session in sessions]
169
- return SessionListResponse(
170
- sessions=session_responses,
171
- pagination={"page": 1, "size": len(sessions), "total_pages": 1},
172
- total_count=total
173
- )
174
- ```
175
-
176
- ### 5. Working with Task Response DTOs
177
-
178
- ```python
179
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses import (
180
- TaskResponse,
181
- TaskListResponse
182
- )
183
- import json
184
- import time
185
-
186
- # Create task responses
187
- def create_task_response(task_data: dict) -> TaskResponse:
188
- return TaskResponse(
189
- task_id=task_data["task_id"],
190
- session_id=task_data["session_id"],
191
- user_message=task_data.get("user_message"),
192
- message_bubbles=json.dumps(task_data["message_bubbles"]),
193
- task_metadata=json.dumps(task_data["metadata"]) if task_data.get("metadata") else None,
194
- created_time=int(time.time() * 1000),
195
- updated_time=task_data.get("updated_time")
196
- )
197
-
198
- # Create task list responses
199
- def create_task_list_response(tasks: list) -> TaskListResponse:
200
- task_responses = [create_task_response(task) for task in tasks]
201
- return TaskListResponse(tasks=task_responses)
202
- ```
203
-
204
- ### 6. Complete API Endpoint Examples
205
-
206
- ```python
207
- from fastapi import APIRouter, HTTPException
208
- from solace_agent_mesh.gateway.http_sse.routers.dto.requests import (
209
- GetSessionRequest,
210
- UpdateSessionRequest,
211
- SaveTaskRequest
212
- )
213
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses import (
214
- SessionResponse,
215
- SessionListResponse,
216
- TaskResponse
217
- )
218
-
219
- router = APIRouter()
220
-
221
- @router.get("/sessions/{session_id}")
222
- async def get_session(session_id: str, user_id: str) -> SessionResponse:
223
- """Get a specific session"""
224
-
225
- # Create and validate request DTO
226
- request = GetSessionRequest(
227
- session_id=session_id,
228
- user_id=user_id
229
- )
230
-
231
- # Fetch data (mock implementation)
232
- session_data = fetch_session(request)
233
-
234
- # Return structured response with automatic timestamp conversion
235
- return SessionResponse(
236
- id=session_data["id"],
237
- user_id=session_data["user_id"],
238
- name=session_data["name"],
239
- created_time=session_data["created_time"]
240
- )
241
-
242
- @router.put("/sessions/{session_id}")
243
- async def update_session(
244
- session_id: str,
245
- user_id: str,
246
- name: str
247
- ) -> SessionResponse:
248
- """Update session name"""
249
-
250
- # Validate request using DTO
251
- try:
252
- request = UpdateSessionRequest(
253
- session_id=session_id,
254
- user_id=user_id,
255
- name=name
256
- )
257
- except ValidationError as e:
258
- raise HTTPException(status_code=400, detail=str(e))
259
-
260
- # Update session (mock implementation)
261
- updated_session = update_session_in_db(request)
262
-
263
- # Return response DTO with automatic field aliasing
264
- return SessionResponse(
265
- id=updated_session["id"],
266
- user_id=updated_session["user_id"],
267
- name=updated_session["name"],
268
- created_time=updated_session["created_time"],
269
- updated_time=updated_session["updated_time"]
270
- )
271
-
272
- @router.post("/tasks")
273
- async def save_task(
274
- task_id: str,
275
- message_bubbles: str,
276
- user_message: str = None,
277
- task_metadata: str = None
278
- ) -> TaskResponse:
279
- """Save a new task"""
280
-
281
- # Validate request using DTO
282
- try:
283
- request = SaveTaskRequest(
284
- task_id=task_id,
285
- user_message=user_message,
286
- message_bubbles=message_bubbles,
287
- task_metadata=task_metadata
288
- )
289
- except ValidationError as e:
290
- raise HTTPException(status_code=400, detail=str(e))
291
-
292
- # Save task (mock implementation)
293
- saved_task = save_task_to_db(request)
294
-
295
- # Return response DTO
296
- return TaskResponse(
297
- task_id=saved_task["task_id"],
298
- session_id=saved_task["session_id"],
299
- user_message=saved_task["user_message"],
300
- message_bubbles=saved_task["message_bubbles"],
301
- task_metadata=saved_task["task_metadata"],
302
- created_time=saved_task["created_time"]
303
- )
304
- ```
305
-
306
- ### 7. JSON Serialization with Automatic Timestamp Conversion
307
-
308
- ```python
309
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses import SessionResponse, TaskResponse
310
- import json
311
-
312
- # Create a session response
313
- session = SessionResponse(
314
- id="sess_123",
315
- user_id="user_456",
316
- name="My Session",
317
- created_time=1640995200000, # Epoch milliseconds
318
- updated_time=1640995260000
319
- )
320
-
321
- # Automatic conversion to ISO strings in JSON output
322
- json_output = session.model_dump_json()
323
- print(json_output)
324
- # Output: {
325
- # "id": "sess_123",
326
- # "userId": "user_456", # Note the camelCase aliasing
327
- # "name": "My Session",
328
- # "createdTime": "2022-01-01T00:00:00Z", # Converted to ISO string
329
- # "updatedTime": "2022-01-01T00:01:00Z"
330
- # }
331
-
332
- # Create a task response with field aliasing
333
- task = TaskResponse(
334
- task_id="task_789",
335
- session_id="sess_123",
336
- user_message="Process this data",
337
- message_bubbles='[{"type": "text", "content": "Processing..."}]',
338
- task_metadata='{"priority": "high"}',
339
- created_time=1640995200000
340
- )
341
-
342
- # Get dict with converted timestamps and aliased fields
343
- dict_output = task.model_dump()
344
- print(dict_output["taskId"]) # "task_789" (camelCase alias)
345
- print(dict_output["sessionId"]) # "sess_123" (camelCase alias)
346
- print(dict_output["createdTime"]) # "2022-01-01T00:00:00Z" (converted timestamp)
347
- ```
348
-
349
- ### 8. Custom Response Classes Using Base
350
-
351
- ```python
352
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses.base_responses import BaseTimestampResponse
353
-
354
- class CustomResponse(BaseTimestampResponse):
355
- """Custom response with automatic timestamp handling"""
356
- name: str
357
- status: str
358
- created_time: int
359
- last_accessed: int | None = None
360
-
361
- class Config:
362
- # Add field aliases if needed
363
- alias_generator = lambda field_name: ''.join(
364
- word.capitalize() if i > 0 else word
365
- for i, word in enumerate(field_name.split('_'))
366
- )
367
-
368
- # Usage
369
- custom_response = CustomResponse(
370
- name="Test Item",
371
- status="active",
372
- created_time=1640995200000,
373
- last_accessed=1640995300000
374
- )
375
-
376
- # Automatic timestamp conversion in JSON
377
- json_data = custom_response.model_dump_json()
378
- # Fields like created_time become ISO strings automatically
379
- ```
380
-
381
- ### 9. Working with Both Requests and Responses Together
382
-
383
- ```python
384
- from solace_agent_mesh.gateway.http_sse.routers.dto.requests import UpdateSessionRequest, SaveTaskRequest
385
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses import SessionResponse, TaskResponse
386
- from pydantic import ValidationError
387
- import json
388
-
389
- async def complete_session_workflow():
390
- """Example showing complete request/response workflow"""
391
-
392
- # 1. Validate incoming request data
393
- try:
394
- update_request = UpdateSessionRequest(
395
- session_id="sess_123",
396
- user_id="user_456",
397
- name="Updated Session Name"
398
- )
399
- except ValidationError as e:
400
- return {"error": f"Invalid session update request: {e}"}
401
-
402
- # 2. Process the request (mock database operation)
403
- updated_session_data = {
404
- "id": update_request.session_id,
405
- "user_id": update_request.user_id,
406
- "name": update_request.name,
407
- "created_time": 1640995200000,
408
- "updated_time": 1640995260000
409
- }
410
-
411
- # 3. Create structured response
412
- session_response = SessionResponse(**updated_session_data)
413
-
414
- # 4. Save a related task
415
- try:
416
- task_request = SaveTaskRequest(
417
- task_id="task_456",
418
- user_message="Session updated successfully",
419
- message_bubbles=json.dumps([
420
- {"type": "system", "content": "Session name updated"}
421
- ]),
422
- task_metadata=json.dumps({"action": "session_update"})
423
- )
424
- except ValidationError as e:
425
- return {"error": f"Invalid task request: {e}"}
426
-
427
- # 5. Create task response
428
- task_response = TaskResponse(
429
- task_id=task_request.task_id,
430
- session_id=update_request.session_id,
431
- user_message=task_request.user_message,
432
- message_bubbles=task_request.message_bubbles,
433
- task_metadata=task_request.task_metadata,
434
- created_time=1640995300000
435
- )
436
-
437
- # 6. Return both responses with automatic field aliasing and timestamp conversion
438
- return {
439
- "session": session_response.model_dump(),
440
- "task": task_response.model_dump()
441
- }
442
-
443
- # Usage
444
- result = await complete_session_workflow()
445
- print(json.dumps(result, indent=2))
446
- ```
447
-
448
- This comprehensive guide shows how the `dto` directory provides a complete type-safe API contract system with automatic validation for requests and structured responses with timestamp conversion and field aliasing for both session management and task operations in the HTTP SSE gateway.
449
-
450
- # content_hash: 4a446edeace8a993477cc29e6c5676bbeb9fc98ae411e799017a21b610e486be
@@ -1,133 +0,0 @@
1
- # DEVELOPER GUIDE: requests
2
-
3
- ## Quick Summary
4
- This directory contains request Data Transfer Objects (DTOs) for API endpoints, providing Pydantic models for session management and task operations. These DTOs handle request validation, field transformation, and type safety for incoming API requests.
5
-
6
- ## Files Overview
7
- - `__init__.py` - Exports all request DTOs for centralized importing
8
- - `session_requests.py` - Defines request DTOs for session operations (get, update)
9
- - `task_requests.py` - Defines request DTOs for task operations (save)
10
-
11
- ## Developer API Reference
12
-
13
- ### __init__.py
14
- **Purpose:** Provides centralized imports for all request DTOs
15
- **Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.requests import GetSessionRequest, UpdateSessionRequest, SaveTaskRequest`
16
-
17
- **Usage Examples:**
18
- ```python
19
- # Import all request DTOs
20
- from solace_agent_mesh.gateway.http_sse.routers.dto.requests import (
21
- GetSessionRequest,
22
- UpdateSessionRequest,
23
- SaveTaskRequest
24
- )
25
- ```
26
-
27
- ### session_requests.py
28
- **Purpose:** Defines Pydantic models for session-related API request validation
29
- **Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.requests.session_requests import GetSessionRequest, UpdateSessionRequest`
30
-
31
- **Classes:**
32
- - `GetSessionRequest(session_id: SessionId, user_id: UserId)` - Request DTO for retrieving a specific session by ID
33
- - `UpdateSessionRequest(session_id: SessionId, user_id: UserId, name: str)` - Request DTO for updating session details with validation (name must be 1-255 characters)
34
-
35
- **Usage Examples:**
36
- ```python
37
- from solace_agent_mesh.gateway.http_sse.routers.dto.requests.session_requests import (
38
- GetSessionRequest,
39
- UpdateSessionRequest
40
- )
41
- from pydantic import ValidationError
42
-
43
- # Create a request to get a specific session
44
- get_session_req = GetSessionRequest(
45
- session_id="session456",
46
- user_id="user123"
47
- )
48
-
49
- # Create a request to update a session name
50
- update_req = UpdateSessionRequest(
51
- session_id="session456",
52
- user_id="user123",
53
- name="My Updated Session"
54
- )
55
-
56
- # Validate request data from dictionary
57
- request_data = {
58
- "session_id": "session789",
59
- "user_id": "user456",
60
- "name": "New Session Name"
61
- }
62
-
63
- try:
64
- validated_request = UpdateSessionRequest(**request_data)
65
- print(f"Valid request: {validated_request}")
66
- except ValidationError as e:
67
- print(f"Validation failed: {e}")
68
-
69
- # Access validated fields
70
- print(f"Session ID: {update_req.session_id}")
71
- print(f"User ID: {update_req.user_id}")
72
- print(f"New name: {update_req.name}")
73
- ```
74
-
75
- ### task_requests.py
76
- **Purpose:** Defines Pydantic models for task-related API request validation with JSON field handling
77
- **Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.requests.task_requests import SaveTaskRequest`
78
-
79
- **Classes:**
80
- - `SaveTaskRequest(task_id: str, user_message: Optional[str], message_bubbles: str, task_metadata: Optional[str])` - Request DTO for saving tasks with JSON validation
81
- - `validate_task_id(v: str) -> str` - Validates task_id is non-empty and strips whitespace
82
- - `validate_message_bubbles(v: str) -> str` - Validates message_bubbles is valid non-empty JSON array
83
- - `validate_task_metadata(v: Optional[str]) -> Optional[str]` - Validates task_metadata is valid JSON if provided
84
-
85
- **Usage Examples:**
86
- ```python
87
- from solace_agent_mesh.gateway.http_sse.routers.dto.requests.task_requests import SaveTaskRequest
88
- from pydantic import ValidationError
89
- import json
90
-
91
- # Create a save task request with camelCase field names (API style)
92
- task_data = {
93
- "taskId": "task_123",
94
- "userMessage": "Please analyze this data",
95
- "messageBubbles": json.dumps([
96
- {"type": "user", "content": "Hello"},
97
- {"type": "assistant", "content": "Hi there!"}
98
- ]),
99
- "taskMetadata": json.dumps({"priority": "high", "category": "analysis"})
100
- }
101
-
102
- try:
103
- save_task_req = SaveTaskRequest(**task_data)
104
- print(f"Task ID: {save_task_req.task_id}")
105
- print(f"User Message: {save_task_req.user_message}")
106
- print(f"Message Bubbles: {save_task_req.message_bubbles}")
107
- print(f"Task Metadata: {save_task_req.task_metadata}")
108
- except ValidationError as e:
109
- print(f"Validation failed: {e}")
110
-
111
- # Create with snake_case field names (internal style)
112
- task_data_snake = {
113
- "task_id": "task_456",
114
- "user_message": "Process this request",
115
- "message_bubbles": json.dumps([{"type": "system", "content": "Processing..."}]),
116
- "task_metadata": None # Optional field
117
- }
118
-
119
- save_task_req2 = SaveTaskRequest(**task_data_snake)
120
-
121
- # Handle validation errors
122
- invalid_data = {
123
- "taskId": "", # Empty task_id will fail validation
124
- "messageBubbles": "invalid json" # Invalid JSON will fail
125
- }
126
-
127
- try:
128
- SaveTaskRequest(**invalid_data)
129
- except ValidationError as e:
130
- print(f"Expected validation error: {e}")
131
- ```
132
-
133
- # content_hash: 57595b5f602ab4728452316a250ef1ecdcf8dedba497c07de378959b659eccc2
@@ -1,123 +0,0 @@
1
- # DEVELOPER GUIDE: responses
2
-
3
- ## Quick Summary
4
- The `responses` directory contains Pydantic response DTOs (Data Transfer Objects) for API endpoints. It provides structured response models with automatic timestamp conversion from epoch milliseconds to ISO 8601 strings for JSON serialization, covering sessions, tasks, and messages.
5
-
6
- ## Files Overview
7
- - `__init__.py` - Exports all response DTOs for easy importing
8
- - `base_responses.py` - Base response class with automatic timestamp serialization
9
- - `session_responses.py` - Session-related response DTOs with field aliasing
10
- - `task_responses.py` - Task-related response DTOs with field aliasing
11
-
12
- ## Developer API Reference
13
-
14
- ### __init__.py
15
- **Purpose:** Central import point for all response DTOs
16
- **Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.responses import SessionResponse, SessionListResponse, TaskResponse, TaskListResponse`
17
-
18
- ### base_responses.py
19
- **Purpose:** Provides base response class with automatic timestamp field conversion
20
- **Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.responses.base_responses import BaseTimestampResponse`
21
-
22
- **Classes:**
23
- - `BaseTimestampResponse(BaseModel)` - Base class for responses with timestamp fields that auto-converts epoch ms to ISO strings
24
- - `model_dump(**kwargs) -> dict[str, Any]` - Converts timestamp fields to ISO strings in output
25
- - `model_dump_json(**kwargs) -> str` - Serializes to JSON with timestamp conversion
26
-
27
- **Usage Examples:**
28
- ```python
29
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses.base_responses import BaseTimestampResponse
30
-
31
- class MyResponse(BaseTimestampResponse):
32
- name: str
33
- created_time: int # Will be auto-converted to ISO string in JSON output
34
- updated_time: int | None = None
35
-
36
- # Usage
37
- response = MyResponse(name="test", created_time=1640995200000)
38
- json_data = response.model_dump() # created_time becomes ISO string
39
- ```
40
-
41
- ### session_responses.py
42
- **Purpose:** Session response DTOs with field aliasing for API consistency
43
- **Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.responses import SessionResponse, SessionListResponse`
44
-
45
- **Classes:**
46
- - `SessionResponse(BaseTimestampResponse)` - Response DTO for chat sessions
47
- - `id: SessionId` - Unique session identifier
48
- - `user_id: UserId` - User who owns the session (aliased as "userId")
49
- - `name: str | None` - Optional session name
50
- - `agent_id: str | None` - Optional agent identifier (aliased as "agentId")
51
- - `created_time: int` - Creation timestamp in epoch ms (aliased as "createdTime")
52
- - `updated_time: int | None` - Update timestamp in epoch ms (aliased as "updatedTime")
53
-
54
- - `SessionListResponse(BaseModel)` - Response DTO for paginated session lists
55
- - `sessions: list[SessionResponse]` - List of session objects
56
- - `pagination: PaginationMeta | None` - Pagination metadata
57
- - `total_count: int` - Total number of sessions (aliased as "totalCount")
58
-
59
- **Usage Examples:**
60
- ```python
61
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses import SessionResponse, SessionListResponse
62
-
63
- # Create a session response
64
- session = SessionResponse(
65
- id="sess_456",
66
- user_id="user_789",
67
- name="My Chat Session",
68
- agent_id="agent_001",
69
- created_time=1640995200000
70
- )
71
-
72
- # Create a session list response
73
- session_list = SessionListResponse(
74
- sessions=[session],
75
- total_count=1
76
- )
77
-
78
- # Serialize to JSON (timestamps auto-converted to ISO strings)
79
- json_output = session.model_dump_json()
80
- ```
81
-
82
- ### task_responses.py
83
- **Purpose:** Task response DTOs with field aliasing for API consistency
84
- **Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.responses import TaskResponse, TaskListResponse`
85
-
86
- **Classes:**
87
- - `TaskResponse(BaseTimestampResponse)` - Response DTO for a single task
88
- - `task_id: str` - Unique task identifier (aliased as "taskId")
89
- - `session_id: str` - Session this task belongs to (aliased as "sessionId")
90
- - `user_message: str | None` - Optional user message (aliased as "userMessage")
91
- - `message_bubbles: str` - JSON string containing message bubbles (aliased as "messageBubbles")
92
- - `task_metadata: str | None` - Optional JSON string with task metadata (aliased as "taskMetadata")
93
- - `created_time: int` - Creation timestamp in epoch ms (aliased as "createdTime")
94
- - `updated_time: int | None` - Update timestamp in epoch ms (aliased as "updatedTime")
95
-
96
- - `TaskListResponse(BaseModel)` - Response DTO for a list of tasks
97
- - `tasks: list[TaskResponse]` - List of task objects
98
-
99
- **Usage Examples:**
100
- ```python
101
- from solace_agent_mesh.gateway.http_sse.routers.dto.responses import TaskResponse, TaskListResponse
102
-
103
- # Create a task response
104
- task = TaskResponse(
105
- task_id="task_123",
106
- session_id="sess_456",
107
- user_message="Process this data",
108
- message_bubbles='{"bubbles": [{"type": "text", "content": "Processing..."}]}',
109
- task_metadata='{"priority": "high"}',
110
- created_time=1640995200000,
111
- updated_time=1640995260000
112
- )
113
-
114
- # Create a task list response
115
- task_list = TaskListResponse(
116
- tasks=[task]
117
- )
118
-
119
- # Serialize to JSON (timestamps auto-converted to ISO strings)
120
- json_output = task.model_dump_json()
121
- ```
122
-
123
- # content_hash: 059aa6ca2472994cbde0e223252c8e78ba2be6c5d0d4f3e91f5e10976e173e5d