solace-agent-mesh 1.7.1__py3-none-any.whl → 1.13.2__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.

Potentially problematic release.


This version of solace-agent-mesh might be problematic. Click here for more details.

Files changed (447) hide show
  1. solace_agent_mesh/agent/adk/alembic/README +74 -0
  2. solace_agent_mesh/agent/adk/alembic/env.py +77 -0
  3. solace_agent_mesh/agent/adk/alembic/script.py.mako +28 -0
  4. solace_agent_mesh/agent/adk/alembic/versions/e2902798564d_adk_session_db_upgrade.py +52 -0
  5. solace_agent_mesh/agent/adk/alembic.ini +112 -0
  6. solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py +164 -0
  7. solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py +163 -0
  8. solace_agent_mesh/agent/adk/callbacks.py +752 -127
  9. solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +99 -7
  10. solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py +52 -5
  11. solace_agent_mesh/agent/adk/mcp_content_processor.py +1 -1
  12. solace_agent_mesh/agent/adk/models/lite_llm.py +34 -16
  13. solace_agent_mesh/agent/adk/models/oauth2_token_manager.py +24 -137
  14. solace_agent_mesh/agent/adk/runner.py +66 -8
  15. solace_agent_mesh/agent/adk/schema_migration.py +88 -0
  16. solace_agent_mesh/agent/adk/services.py +41 -1
  17. solace_agent_mesh/agent/adk/setup.py +220 -32
  18. solace_agent_mesh/agent/adk/stream_parser.py +229 -40
  19. solace_agent_mesh/agent/protocol/event_handlers.py +219 -33
  20. solace_agent_mesh/agent/proxies/a2a/component.py +572 -75
  21. solace_agent_mesh/agent/proxies/a2a/config.py +80 -4
  22. solace_agent_mesh/agent/proxies/base/component.py +188 -22
  23. solace_agent_mesh/agent/proxies/base/proxy_task_context.py +3 -1
  24. solace_agent_mesh/agent/sac/app.py +37 -12
  25. solace_agent_mesh/agent/sac/component.py +322 -52
  26. solace_agent_mesh/agent/sac/patch_adk.py +8 -16
  27. solace_agent_mesh/agent/sac/task_execution_context.py +90 -0
  28. solace_agent_mesh/agent/tools/__init__.py +3 -0
  29. solace_agent_mesh/agent/tools/audio_tools.py +3 -3
  30. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +698 -24
  31. solace_agent_mesh/agent/tools/deep_research_tools.py +2161 -0
  32. solace_agent_mesh/agent/tools/peer_agent_tool.py +82 -15
  33. solace_agent_mesh/agent/tools/time_tools.py +126 -0
  34. solace_agent_mesh/agent/tools/tool_config_types.py +54 -2
  35. solace_agent_mesh/agent/tools/web_search_tools.py +279 -0
  36. solace_agent_mesh/agent/tools/web_tools.py +125 -17
  37. solace_agent_mesh/agent/utils/artifact_helpers.py +243 -5
  38. solace_agent_mesh/agent/utils/context_helpers.py +17 -0
  39. solace_agent_mesh/assets/docs/404.html +6 -6
  40. solace_agent_mesh/assets/docs/assets/css/{styles.906a1503.css → styles.8162edfb.css} +1 -1
  41. solace_agent_mesh/assets/docs/assets/js/05749d90.19ac4f35.js +1 -0
  42. solace_agent_mesh/assets/docs/assets/js/15ba94aa.e186750d.js +1 -0
  43. solace_agent_mesh/assets/docs/assets/js/15e40e79.434bb30f.js +1 -0
  44. solace_agent_mesh/assets/docs/assets/js/17896441.e612dfb4.js +1 -0
  45. solace_agent_mesh/assets/docs/assets/js/2279.550aa580.js +2 -0
  46. solace_agent_mesh/assets/docs/assets/js/{17896441.a5e82f9b.js.LICENSE.txt → 2279.550aa580.js.LICENSE.txt} +6 -0
  47. solace_agent_mesh/assets/docs/assets/js/240a0364.83e37aa8.js +1 -0
  48. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.2f0db237.js +1 -0
  49. solace_agent_mesh/assets/docs/assets/js/3a6c6137.7e61915d.js +1 -0
  50. solace_agent_mesh/assets/docs/assets/js/3ac1795d.7f7ab1c1.js +1 -0
  51. solace_agent_mesh/assets/docs/assets/js/3ff0015d.e53c9b78.js +1 -0
  52. solace_agent_mesh/assets/docs/assets/js/41adc471.0e95b87c.js +1 -0
  53. solace_agent_mesh/assets/docs/assets/js/4667dc50.bf2ad456.js +1 -0
  54. solace_agent_mesh/assets/docs/assets/js/49eed117.493d6f99.js +1 -0
  55. solace_agent_mesh/assets/docs/assets/js/{509e993c.4c7a1a6d.js → 509e993c.a1fbf45a.js} +1 -1
  56. solace_agent_mesh/assets/docs/assets/js/547e15cc.8e6da617.js +1 -0
  57. solace_agent_mesh/assets/docs/assets/js/55b7b518.29d6e75d.js +1 -0
  58. solace_agent_mesh/assets/docs/assets/js/5b8d9c11.d4eb37b8.js +1 -0
  59. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.1ee87753.js +1 -0
  60. solace_agent_mesh/assets/docs/assets/js/60702c0e.a8bdd79b.js +1 -0
  61. solace_agent_mesh/assets/docs/assets/js/64195356.09dbd087.js +1 -0
  62. solace_agent_mesh/assets/docs/assets/js/66d4869e.30340bd3.js +1 -0
  63. solace_agent_mesh/assets/docs/assets/js/6aaedf65.7253541d.js +1 -0
  64. solace_agent_mesh/assets/docs/assets/js/6d84eae0.fd23ba4a.js +1 -0
  65. solace_agent_mesh/assets/docs/assets/js/729898df.7249e9fd.js +1 -0
  66. solace_agent_mesh/assets/docs/assets/js/7e294c01.7c5f6906.js +1 -0
  67. solace_agent_mesh/assets/docs/assets/js/8024126c.e3467286.js +1 -0
  68. solace_agent_mesh/assets/docs/assets/js/81a99df0.7ed65d45.js +1 -0
  69. solace_agent_mesh/assets/docs/assets/js/82fbfb93.161823a5.js +1 -0
  70. solace_agent_mesh/assets/docs/assets/js/924ffdeb.975e428a.js +1 -0
  71. solace_agent_mesh/assets/docs/assets/js/94e8668d.16083b3f.js +1 -0
  72. solace_agent_mesh/assets/docs/assets/js/9bb13469.4523ae20.js +1 -0
  73. solace_agent_mesh/assets/docs/assets/js/a7d42657.a956689d.js +1 -0
  74. solace_agent_mesh/assets/docs/assets/js/a94703ab.3e5fbcb3.js +1 -0
  75. solace_agent_mesh/assets/docs/assets/js/ab9708a8.3e563275.js +1 -0
  76. solace_agent_mesh/assets/docs/assets/js/c93cbaa0.0e0d8baf.js +1 -0
  77. solace_agent_mesh/assets/docs/assets/js/cab03b5b.6a073091.js +1 -0
  78. solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.07e170dd.js +1 -0
  79. solace_agent_mesh/assets/docs/assets/js/e04b235d.06d23db6.js +1 -0
  80. solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.deb2b62e.js +1 -0
  81. solace_agent_mesh/assets/docs/assets/js/e3d9abda.1476f570.js +1 -0
  82. solace_agent_mesh/assets/docs/assets/js/e6f9706b.acc800d3.js +1 -0
  83. solace_agent_mesh/assets/docs/assets/js/e92d0134.c147a429.js +1 -0
  84. solace_agent_mesh/assets/docs/assets/js/ee0c2fe7.94d0a351.js +1 -0
  85. solace_agent_mesh/assets/docs/assets/js/f284c35a.cc97854c.js +1 -0
  86. solace_agent_mesh/assets/docs/assets/js/main.d634009f.js +2 -0
  87. solace_agent_mesh/assets/docs/assets/js/runtime~main.27bb82a7.js +1 -0
  88. solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +68 -68
  89. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +50 -50
  90. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +42 -42
  91. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +55 -55
  92. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +75 -75
  93. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/image-tools/index.html +81 -0
  94. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +67 -50
  95. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/research-tools/index.html +136 -0
  96. solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +178 -144
  97. solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +43 -42
  98. solace_agent_mesh/assets/docs/docs/documentation/components/index.html +20 -18
  99. solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +23 -23
  100. solace_agent_mesh/assets/docs/docs/documentation/components/platform-service/index.html +33 -0
  101. solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +45 -45
  102. solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +98 -112
  103. solace_agent_mesh/assets/docs/docs/documentation/components/prompts/index.html +147 -0
  104. solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +208 -125
  105. solace_agent_mesh/assets/docs/docs/documentation/components/speech/index.html +52 -0
  106. solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +28 -28
  107. solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +29 -29
  108. solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +14 -14
  109. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/index.html +47 -0
  110. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/kubernetes-deployment-guide/index.html +197 -0
  111. solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +67 -53
  112. solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +17 -17
  113. solace_agent_mesh/assets/docs/docs/documentation/deploying/proxy_configuration/index.html +49 -0
  114. solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +38 -38
  115. solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +87 -87
  116. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +67 -49
  117. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +17 -17
  118. solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +51 -51
  119. solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +22 -22
  120. solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +27 -27
  121. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +135 -135
  122. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +66 -66
  123. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +51 -51
  124. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +50 -38
  125. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +86 -86
  126. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +51 -51
  127. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +24 -24
  128. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +30 -30
  129. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +44 -44
  130. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/teams-integration/index.html +115 -0
  131. solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +50 -23
  132. solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +29 -24
  133. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +21 -21
  134. solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +40 -37
  135. solace_agent_mesh/assets/docs/docs/documentation/enterprise/openapi-tools/index.html +324 -0
  136. solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +96 -66
  137. solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +181 -181
  138. solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +75 -75
  139. solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +27 -27
  140. solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +44 -44
  141. solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +39 -38
  142. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +30 -30
  143. solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +18 -18
  144. solace_agent_mesh/assets/docs/docs/documentation/getting-started/vibe_coding/index.html +62 -0
  145. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +135 -114
  146. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +37 -37
  147. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +14 -14
  148. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +27 -25
  149. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +69 -69
  150. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +72 -72
  151. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +112 -112
  152. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +28 -28
  153. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +42 -42
  154. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +20 -20
  155. solace_agent_mesh/assets/docs/docs/documentation/migrations/platform-service-split/index.html +85 -0
  156. solace_agent_mesh/assets/docs/lunr-index-1768329217460.json +1 -0
  157. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  158. solace_agent_mesh/assets/docs/search-doc-1768329217460.json +1 -0
  159. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  160. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  161. solace_agent_mesh/cli/__init__.py +1 -1
  162. solace_agent_mesh/cli/commands/add_cmd/__init__.py +3 -1
  163. solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +6 -1
  164. solace_agent_mesh/cli/commands/add_cmd/proxy_cmd.py +100 -0
  165. solace_agent_mesh/cli/commands/eval_cmd.py +1 -1
  166. solace_agent_mesh/cli/commands/init_cmd/__init__.py +15 -0
  167. solace_agent_mesh/cli/commands/init_cmd/directory_step.py +1 -1
  168. solace_agent_mesh/cli/commands/init_cmd/env_step.py +30 -3
  169. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +3 -4
  170. solace_agent_mesh/cli/commands/init_cmd/platform_service_step.py +85 -0
  171. solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +16 -3
  172. solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +2 -1
  173. solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +1 -0
  174. solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +3 -3
  175. solace_agent_mesh/cli/commands/run_cmd.py +64 -49
  176. solace_agent_mesh/cli/commands/tools_cmd.py +315 -0
  177. solace_agent_mesh/cli/main.py +15 -0
  178. solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-tcIFZLis.js → authCallback-KnKMP_vb.js} +1 -1
  179. solace_agent_mesh/client/webui/frontend/static/assets/client-DpBL2stg.js +25 -0
  180. solace_agent_mesh/client/webui/frontend/static/assets/main-Cd498TV2.js +435 -0
  181. solace_agent_mesh/client/webui/frontend/static/assets/main-rSf8Vu29.css +1 -0
  182. solace_agent_mesh/client/webui/frontend/static/assets/{vendor-CINwxvwV.js → vendor-CGk8Suyh.js} +189 -94
  183. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -3
  184. solace_agent_mesh/client/webui/frontend/static/index.html +4 -4
  185. solace_agent_mesh/client/webui/frontend/static/mockServiceWorker.js +336 -0
  186. solace_agent_mesh/client/webui/frontend/static/ui-version.json +6 -0
  187. solace_agent_mesh/common/a2a/types.py +1 -1
  188. solace_agent_mesh/common/agent_registry.py +38 -11
  189. solace_agent_mesh/common/data_parts.py +124 -0
  190. solace_agent_mesh/common/error_handlers.py +83 -0
  191. solace_agent_mesh/common/exceptions.py +24 -0
  192. solace_agent_mesh/common/oauth/__init__.py +17 -0
  193. solace_agent_mesh/common/oauth/oauth_client.py +408 -0
  194. solace_agent_mesh/common/oauth/utils.py +50 -0
  195. solace_agent_mesh/common/rag_dto.py +156 -0
  196. solace_agent_mesh/common/sac/sam_component_base.py +73 -1
  197. solace_agent_mesh/common/sam_events/event_service.py +2 -2
  198. solace_agent_mesh/common/utils/embeds/converter.py +1 -8
  199. solace_agent_mesh/common/utils/embeds/modifiers.py +2 -27
  200. solace_agent_mesh/common/utils/embeds/resolver.py +94 -25
  201. solace_agent_mesh/common/utils/embeds/types.py +1 -0
  202. solace_agent_mesh/common/utils/log_formatters.py +20 -0
  203. solace_agent_mesh/common/utils/mime_helpers.py +12 -5
  204. solace_agent_mesh/common/utils/rbac_utils.py +69 -0
  205. solace_agent_mesh/common/utils/templates/__init__.py +8 -0
  206. solace_agent_mesh/common/utils/templates/liquid_renderer.py +210 -0
  207. solace_agent_mesh/common/utils/templates/template_resolver.py +161 -0
  208. solace_agent_mesh/config_portal/backend/common.py +12 -0
  209. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-CljP4_mv.js +103 -0
  210. solace_agent_mesh/config_portal/frontend/static/client/assets/{components-Rk0n-9cK.js → components-CaC6hG8d.js} +22 -22
  211. solace_agent_mesh/config_portal/frontend/static/client/assets/{entry.client-mvZjNKiz.js → entry.client-H_TM0YBt.js} +3 -3
  212. solace_agent_mesh/config_portal/frontend/static/client/assets/{index-DzNKzXrc.js → index-CnFykb2v.js} +16 -16
  213. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-f8439d40.js +1 -0
  214. solace_agent_mesh/config_portal/frontend/static/client/assets/root-BIMqslJB.css +1 -0
  215. solace_agent_mesh/config_portal/frontend/static/client/assets/root-mJmTIdIk.js +10 -0
  216. solace_agent_mesh/config_portal/frontend/static/client/index.html +3 -3
  217. solace_agent_mesh/core_a2a/service.py +3 -2
  218. solace_agent_mesh/gateway/adapter/base.py +28 -1
  219. solace_agent_mesh/gateway/adapter/types.py +9 -0
  220. solace_agent_mesh/gateway/base/app.py +10 -0
  221. solace_agent_mesh/gateway/base/auth_interface.py +103 -0
  222. solace_agent_mesh/gateway/base/component.py +451 -10
  223. solace_agent_mesh/gateway/generic/component.py +274 -30
  224. solace_agent_mesh/gateway/http_sse/alembic/env.py +0 -7
  225. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py +2 -43
  226. solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_default_agent_to_projects.py +2 -2
  227. solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py +154 -0
  228. solace_agent_mesh/gateway/http_sse/alembic/versions/20251115_add_parent_task_id.py +32 -0
  229. solace_agent_mesh/gateway/http_sse/alembic/versions/20251126_add_background_task_fields.py +47 -0
  230. solace_agent_mesh/gateway/http_sse/alembic/versions/20251202_add_versioned_fields_to_prompts.py +52 -0
  231. solace_agent_mesh/gateway/http_sse/alembic.ini +0 -36
  232. solace_agent_mesh/gateway/http_sse/app.py +23 -6
  233. solace_agent_mesh/gateway/http_sse/component.py +158 -73
  234. solace_agent_mesh/gateway/http_sse/dependencies.py +50 -57
  235. solace_agent_mesh/gateway/http_sse/main.py +58 -482
  236. solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +2 -2
  237. solace_agent_mesh/gateway/http_sse/repository/entities/project.py +1 -1
  238. solace_agent_mesh/gateway/http_sse/repository/entities/project_user.py +1 -1
  239. solace_agent_mesh/gateway/http_sse/repository/entities/session.py +3 -2
  240. solace_agent_mesh/gateway/http_sse/repository/entities/task.py +7 -0
  241. solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +2 -2
  242. solace_agent_mesh/gateway/http_sse/repository/interfaces.py +2 -2
  243. solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +5 -0
  244. solace_agent_mesh/gateway/http_sse/repository/models/prompt_model.py +159 -0
  245. solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +1 -1
  246. solace_agent_mesh/gateway/http_sse/repository/models/task_model.py +8 -1
  247. solace_agent_mesh/gateway/http_sse/repository/project_repository.py +1 -1
  248. solace_agent_mesh/gateway/http_sse/repository/project_user_repository.py +1 -1
  249. solace_agent_mesh/gateway/http_sse/repository/session_repository.py +12 -107
  250. solace_agent_mesh/gateway/http_sse/repository/task_repository.py +86 -2
  251. solace_agent_mesh/gateway/http_sse/routers/agent_cards.py +38 -7
  252. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +113 -7
  253. solace_agent_mesh/gateway/http_sse/routers/auth.py +69 -132
  254. solace_agent_mesh/gateway/http_sse/routers/config.py +235 -10
  255. solace_agent_mesh/gateway/http_sse/routers/dto/project_dto.py +69 -0
  256. solace_agent_mesh/gateway/http_sse/routers/dto/prompt_dto.py +255 -0
  257. solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +1 -1
  258. solace_agent_mesh/gateway/http_sse/routers/dto/responses/base_responses.py +1 -1
  259. solace_agent_mesh/gateway/http_sse/routers/dto/responses/project_responses.py +1 -0
  260. solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +3 -2
  261. solace_agent_mesh/gateway/http_sse/routers/dto/responses/version_responses.py +31 -0
  262. solace_agent_mesh/gateway/http_sse/routers/feedback.py +2 -2
  263. solace_agent_mesh/gateway/http_sse/routers/people.py +2 -2
  264. solace_agent_mesh/gateway/http_sse/routers/projects.py +250 -24
  265. solace_agent_mesh/gateway/http_sse/routers/prompts.py +1416 -0
  266. solace_agent_mesh/gateway/http_sse/routers/sessions.py +14 -5
  267. solace_agent_mesh/gateway/http_sse/routers/speech.py +355 -0
  268. solace_agent_mesh/gateway/http_sse/routers/sse.py +117 -4
  269. solace_agent_mesh/gateway/http_sse/routers/tasks.py +509 -149
  270. solace_agent_mesh/gateway/http_sse/routers/users.py +1 -1
  271. solace_agent_mesh/gateway/http_sse/routers/version.py +343 -0
  272. solace_agent_mesh/gateway/http_sse/routers/visualization.py +2 -1
  273. solace_agent_mesh/gateway/http_sse/services/audio_service.py +1227 -0
  274. solace_agent_mesh/gateway/http_sse/services/background_task_monitor.py +186 -0
  275. solace_agent_mesh/gateway/http_sse/services/data_retention_service.py +1 -1
  276. solace_agent_mesh/gateway/http_sse/services/feedback_service.py +1 -1
  277. solace_agent_mesh/gateway/http_sse/services/project_service.py +539 -12
  278. solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py +303 -0
  279. solace_agent_mesh/gateway/http_sse/services/session_service.py +198 -21
  280. solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +354 -4
  281. solace_agent_mesh/gateway/http_sse/sse_manager.py +280 -169
  282. solace_agent_mesh/gateway/http_sse/utils/artifact_copy_utils.py +370 -0
  283. solace_agent_mesh/gateway/http_sse/utils/stim_utils.py +41 -1
  284. solace_agent_mesh/services/__init__.py +0 -0
  285. solace_agent_mesh/services/platform/__init__.py +29 -0
  286. solace_agent_mesh/services/platform/alembic/env.py +85 -0
  287. solace_agent_mesh/services/platform/alembic/script.py.mako +28 -0
  288. solace_agent_mesh/services/platform/alembic.ini +109 -0
  289. solace_agent_mesh/services/platform/api/__init__.py +3 -0
  290. solace_agent_mesh/services/platform/api/dependencies.py +154 -0
  291. solace_agent_mesh/services/platform/api/main.py +314 -0
  292. solace_agent_mesh/services/platform/api/middleware.py +51 -0
  293. solace_agent_mesh/services/platform/api/routers/__init__.py +33 -0
  294. solace_agent_mesh/services/platform/api/routers/health_router.py +31 -0
  295. solace_agent_mesh/services/platform/app.py +215 -0
  296. solace_agent_mesh/services/platform/component.py +777 -0
  297. solace_agent_mesh/shared/__init__.py +14 -0
  298. solace_agent_mesh/shared/api/__init__.py +42 -0
  299. solace_agent_mesh/shared/auth/__init__.py +26 -0
  300. solace_agent_mesh/shared/auth/dependencies.py +204 -0
  301. solace_agent_mesh/shared/auth/middleware.py +347 -0
  302. solace_agent_mesh/shared/database/__init__.py +20 -0
  303. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/base_repository.py +1 -1
  304. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_exceptions.py +1 -1
  305. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_helpers.py +1 -1
  306. solace_agent_mesh/shared/exceptions/__init__.py +36 -0
  307. solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exception_handlers.py +1 -1
  308. solace_agent_mesh/shared/utils/__init__.py +21 -0
  309. solace_agent_mesh/templates/logging_config_template.yaml +48 -0
  310. solace_agent_mesh/templates/main_orchestrator.yaml +12 -1
  311. solace_agent_mesh/templates/platform.yaml +49 -0
  312. solace_agent_mesh/templates/plugin_readme_template.md +3 -25
  313. solace_agent_mesh/templates/plugin_tool_config_template.yaml +109 -0
  314. solace_agent_mesh/templates/proxy_template.yaml +62 -0
  315. solace_agent_mesh/templates/webui.yaml +148 -6
  316. solace_agent_mesh/tools/web_search/__init__.py +18 -0
  317. solace_agent_mesh/tools/web_search/base.py +84 -0
  318. solace_agent_mesh/tools/web_search/google_search.py +247 -0
  319. solace_agent_mesh/tools/web_search/models.py +99 -0
  320. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/METADATA +29 -8
  321. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/RECORD +334 -313
  322. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/WHEEL +1 -1
  323. solace_agent_mesh/agent/adk/adk_llm.txt +0 -226
  324. solace_agent_mesh/agent/adk/adk_llm_detail.txt +0 -566
  325. solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +0 -171
  326. solace_agent_mesh/agent/adk/models/models_llm.txt +0 -189
  327. solace_agent_mesh/agent/agent_llm.txt +0 -369
  328. solace_agent_mesh/agent/agent_llm_detail.txt +0 -1702
  329. solace_agent_mesh/agent/protocol/protocol_llm.txt +0 -81
  330. solace_agent_mesh/agent/protocol/protocol_llm_detail.txt +0 -92
  331. solace_agent_mesh/agent/proxies/a2a/a2a_llm.txt +0 -190
  332. solace_agent_mesh/agent/proxies/base/base_llm.txt +0 -148
  333. solace_agent_mesh/agent/proxies/proxies_llm.txt +0 -283
  334. solace_agent_mesh/agent/sac/sac_llm.txt +0 -189
  335. solace_agent_mesh/agent/sac/sac_llm_detail.txt +0 -200
  336. solace_agent_mesh/agent/testing/testing_llm.txt +0 -58
  337. solace_agent_mesh/agent/testing/testing_llm_detail.txt +0 -68
  338. solace_agent_mesh/agent/tools/tools_llm.txt +0 -276
  339. solace_agent_mesh/agent/tools/tools_llm_detail.txt +0 -275
  340. solace_agent_mesh/agent/utils/utils_llm.txt +0 -152
  341. solace_agent_mesh/agent/utils/utils_llm_detail.txt +0 -149
  342. solace_agent_mesh/assets/docs/assets/js/05749d90.c70b2be9.js +0 -1
  343. solace_agent_mesh/assets/docs/assets/js/15ba94aa.92fea363.js +0 -1
  344. solace_agent_mesh/assets/docs/assets/js/15e40e79.36003774.js +0 -1
  345. solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js +0 -2
  346. solace_agent_mesh/assets/docs/assets/js/240a0364.c39f8388.js +0 -1
  347. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.33f5d75b.js +0 -1
  348. solace_agent_mesh/assets/docs/assets/js/3a6c6137.f5940cfa.js +0 -1
  349. solace_agent_mesh/assets/docs/assets/js/3ac1795d.e4870a49.js +0 -1
  350. solace_agent_mesh/assets/docs/assets/js/3ff0015d.b63ee53a.js +0 -1
  351. solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +0 -1
  352. solace_agent_mesh/assets/docs/assets/js/55b7b518.f2b1d1ba.js +0 -1
  353. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.45b32c2b.js +0 -1
  354. solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +0 -1
  355. solace_agent_mesh/assets/docs/assets/js/66d4869e.830d443f.js +0 -1
  356. solace_agent_mesh/assets/docs/assets/js/6d84eae0.4a5fbf39.js +0 -1
  357. solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +0 -1
  358. solace_agent_mesh/assets/docs/assets/js/81a99df0.07034dd9.js +0 -1
  359. solace_agent_mesh/assets/docs/assets/js/82fbfb93.139a1a1f.js +0 -1
  360. solace_agent_mesh/assets/docs/assets/js/924ffdeb.8095e148.js +0 -1
  361. solace_agent_mesh/assets/docs/assets/js/94e8668d.09ed9234.js +0 -1
  362. solace_agent_mesh/assets/docs/assets/js/9bb13469.dd1c9b54.js +0 -1
  363. solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js +0 -1
  364. solace_agent_mesh/assets/docs/assets/js/ab9708a8.245ae0ef.js +0 -1
  365. solace_agent_mesh/assets/docs/assets/js/c93cbaa0.eaff365e.js +0 -1
  366. solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.f902fad8.js +0 -1
  367. solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +0 -1
  368. solace_agent_mesh/assets/docs/assets/js/e04b235d.c9c50c7b.js +0 -1
  369. solace_agent_mesh/assets/docs/assets/js/e3d9abda.d11c67a7.js +0 -1
  370. solace_agent_mesh/assets/docs/assets/js/e6f9706b.045d0fa1.js +0 -1
  371. solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +0 -1
  372. solace_agent_mesh/assets/docs/assets/js/f284c35a.5099c51e.js +0 -1
  373. solace_agent_mesh/assets/docs/assets/js/main.f213fe0c.js +0 -2
  374. solace_agent_mesh/assets/docs/assets/js/runtime~main.d9606d6a.js +0 -1
  375. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes-deployment/index.html +0 -47
  376. solace_agent_mesh/assets/docs/lunr-index-1762283454666.json +0 -1
  377. solace_agent_mesh/assets/docs/search-doc-1762283454666.json +0 -1
  378. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +0 -250
  379. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +0 -365
  380. solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +0 -305
  381. solace_agent_mesh/client/webui/frontend/static/assets/client-CRYdKo2Q.js +0 -25
  382. solace_agent_mesh/client/webui/frontend/static/assets/main-CojeY_1w.css +0 -1
  383. solace_agent_mesh/client/webui/frontend/static/assets/main-ILja9MCG.js +0 -353
  384. solace_agent_mesh/common/a2a/a2a_llm.txt +0 -175
  385. solace_agent_mesh/common/a2a/a2a_llm_detail.txt +0 -193
  386. solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +0 -445
  387. solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +0 -736
  388. solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +0 -330
  389. solace_agent_mesh/common/common_llm.txt +0 -230
  390. solace_agent_mesh/common/common_llm_detail.txt +0 -2562
  391. solace_agent_mesh/common/middleware/middleware_llm.txt +0 -174
  392. solace_agent_mesh/common/middleware/middleware_llm_detail.txt +0 -185
  393. solace_agent_mesh/common/sac/sac_llm.txt +0 -71
  394. solace_agent_mesh/common/sac/sac_llm_detail.txt +0 -82
  395. solace_agent_mesh/common/sam_events/sam_events_llm.txt +0 -104
  396. solace_agent_mesh/common/sam_events/sam_events_llm_detail.txt +0 -115
  397. solace_agent_mesh/common/services/providers/providers_llm.txt +0 -81
  398. solace_agent_mesh/common/services/services_llm.txt +0 -368
  399. solace_agent_mesh/common/services/services_llm_detail.txt +0 -459
  400. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +0 -220
  401. solace_agent_mesh/common/utils/utils_llm.txt +0 -335
  402. solace_agent_mesh/common/utils/utils_llm_detail.txt +0 -572
  403. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-ByU1X1HD.js +0 -98
  404. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-61038fc6.js +0 -1
  405. solace_agent_mesh/config_portal/frontend/static/client/assets/root-BWvk5-gF.js +0 -10
  406. solace_agent_mesh/config_portal/frontend/static/client/assets/root-DxRwaWiE.css +0 -1
  407. solace_agent_mesh/core_a2a/core_a2a_llm.txt +0 -90
  408. solace_agent_mesh/core_a2a/core_a2a_llm_detail.txt +0 -101
  409. solace_agent_mesh/gateway/base/base_llm.txt +0 -226
  410. solace_agent_mesh/gateway/base/base_llm_detail.txt +0 -235
  411. solace_agent_mesh/gateway/gateway_llm.txt +0 -369
  412. solace_agent_mesh/gateway/gateway_llm_detail.txt +0 -3885
  413. solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +0 -345
  414. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_fulltext_search_indexes.py +0 -92
  415. solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +0 -161
  416. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +0 -105
  417. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +0 -299
  418. solace_agent_mesh/gateway/http_sse/http_sse_llm_detail.txt +0 -3278
  419. solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +0 -221
  420. solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +0 -257
  421. solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +0 -308
  422. solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +0 -450
  423. solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +0 -133
  424. solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +0 -123
  425. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +0 -312
  426. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +0 -303
  427. solace_agent_mesh/gateway/http_sse/shared/__init__.py +0 -146
  428. solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +0 -319
  429. solace_agent_mesh/gateway/http_sse/utils/utils_llm.txt +0 -47
  430. solace_agent_mesh/llm.txt +0 -228
  431. solace_agent_mesh/llm_detail.txt +0 -2835
  432. solace_agent_mesh/solace_agent_mesh_llm.txt +0 -362
  433. solace_agent_mesh/solace_agent_mesh_llm_detail.txt +0 -8599
  434. solace_agent_mesh/templates/logging_config_template.ini +0 -45
  435. solace_agent_mesh/templates/templates_llm.txt +0 -147
  436. /solace_agent_mesh/assets/docs/assets/js/{main.f213fe0c.js.LICENSE.txt → main.d634009f.js.LICENSE.txt} +0 -0
  437. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/auth_utils.py +0 -0
  438. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/pagination.py +0 -0
  439. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/response_utils.py +0 -0
  440. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/error_dto.py +0 -0
  441. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exceptions.py +0 -0
  442. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/enums.py +0 -0
  443. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/timestamp_utils.py +0 -0
  444. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/types.py +0 -0
  445. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/utils.py +0 -0
  446. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/entry_points.txt +0 -0
  447. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/licenses/LICENSE +0 -0
@@ -1,345 +0,0 @@
1
- # DEVELOPER GUIDE: alembic
2
-
3
- ## Quick Summary
4
- This directory contains Alembic database migration configuration and version files for the HTTP SSE gateway. It provides database schema management capabilities, including initial table creation, performance optimization through indexing, timestamp format standardization, and task management features with token usage tracking. The directory consists of the main Alembic environment configuration (`env.py`) and a versions subdirectory containing sequential migration files that handle schema evolution over time.
5
-
6
- ## Files and Subdirectories Overview
7
- - **Direct files:**
8
- - `env.py` - Alembic environment configuration for running migrations in offline/online modes
9
-
10
- - **Subdirectories:**
11
- - `versions/` - Contains sequential database migration files for schema evolution and task management
12
-
13
- ## Developer API Reference
14
-
15
- ### Direct Files
16
-
17
- #### env.py
18
- **Purpose:** Alembic environment configuration that handles migration execution in both offline and online modes with proper model registration
19
- **Import:** This is an Alembic configuration file - not directly imported by application code
20
-
21
- **Functions:**
22
- - `run_migrations_offline() -> None` - Executes migrations without database connection (generates SQL scripts)
23
- - `run_migrations_online() -> None` - Executes migrations with live database connection and proper URL handling
24
-
25
- **Constants/Variables:**
26
- - `config` - Alembic Config object providing access to .ini file values
27
- - `target_metadata` - SQLAlchemy metadata from repository Base class for autogenerate support
28
-
29
- ### Subdirectory APIs
30
-
31
- #### versions/
32
- **Purpose:** Contains sequential Alembic migration files that define database schema changes including core tables, indexes, timestamp modernization, task management, and performance optimization
33
- **Key Exports:** Migration functions for complete schema evolution (upgrade/downgrade operations)
34
- **Import Examples:**
35
- ```python
36
- # These are migration files executed by Alembic CLI, not directly imported
37
- # Access via Alembic commands:
38
- # alembic upgrade head
39
- # alembic downgrade base
40
- ```
41
-
42
- **Available Migrations:**
43
- - `d5b3f8f2e9a0` - Initial database schema (sessions and chat_messages tables)
44
- - `b1c2d3e4f5g6` - Performance indexes for query optimization
45
- - `f6e7d8c9b0a1` - Timestamp conversion to epoch milliseconds
46
- - `98882922fa59` - Task management tables (tasks, task_events, feedback, chat_tasks)
47
- - `20251015_session_idx` - Optimized composite indexes for better query performance
48
-
49
- ## Complete Usage Guide
50
-
51
- ### 1. Setting Up Alembic Environment
52
-
53
- ```python
54
- # The env.py automatically imports all repository models for metadata
55
- from solace_agent_mesh.gateway.http_sse.repository.models.base import Base
56
- from solace_agent_mesh.gateway.http_sse.repository.models.task_model import TaskModel
57
- from solace_agent_mesh.gateway.http_sse.repository.models.task_event_model import TaskEventModel
58
- from solace_agent_mesh.gateway.http_sse.repository.models.feedback_model import FeedbackModel
59
-
60
- target_metadata = Base.metadata
61
- ```
62
-
63
- ### 2. Running Migrations
64
-
65
- ```bash
66
- # Check current migration status
67
- alembic current
68
-
69
- # Run all pending migrations to latest
70
- alembic upgrade head
71
-
72
- # Run specific migration
73
- alembic upgrade d5b3f8f2e9a0
74
-
75
- # Rollback to previous migration
76
- alembic downgrade -1
77
-
78
- # Rollback to specific migration
79
- alembic downgrade b1c2d3e4f5g6
80
-
81
- # Rollback all migrations
82
- alembic downgrade base
83
-
84
- # View migration history
85
- alembic history
86
- ```
87
-
88
- ### 3. Complete Migration Sequence and Schema Evolution
89
-
90
- ```bash
91
- # Step 1: Create initial database schema
92
- alembic upgrade d5b3f8f2e9a0
93
- # Creates: sessions table, chat_messages table with relationships
94
-
95
- # Step 2: Add performance indexes
96
- alembic upgrade b1c2d3e4f5g6
97
- # Adds: indexes on user_id, timestamps, composite fields
98
-
99
- # Step 3: Modernize timestamp format
100
- alembic upgrade f6e7d8c9b0a1
101
- # Converts: datetime columns to epoch milliseconds
102
- # Renames: columns for consistency (created_at → created_time)
103
-
104
- # Step 4: Add task management features
105
- alembic upgrade 98882922fa59
106
- # Creates: tasks, task_events, feedback, chat_tasks tables
107
- # Replaces: chat_messages with chat_tasks for better task tracking
108
-
109
- # Step 5: Add optimized performance indexes
110
- alembic upgrade 20251015_session_idx
111
- # Adds: composite indexes for optimal query patterns
112
- ```
113
-
114
- ### 4. Working with Different Database Engines
115
-
116
- ```python
117
- # The env.py handles multiple database types automatically
118
- # Configure database URL in alembic.ini or environment:
119
-
120
- # PostgreSQL
121
- # sqlalchemy.url = postgresql://user:pass@localhost/dbname
122
-
123
- # SQLite
124
- # sqlalchemy.url = sqlite:///./database.db
125
-
126
- # MySQL
127
- # sqlalchemy.url = mysql://user:pass@localhost/dbname
128
- ```
129
-
130
- ### 5. Integration with Repository Layer
131
-
132
- ```python
133
- # The migrations work with the repository models
134
- from solace_agent_mesh.gateway.http_sse.repository.models.base import Base
135
- from solace_agent_mesh.gateway.http_sse.repository.models.task_model import TaskModel
136
- from solace_agent_mesh.gateway.http_sse.repository.models.task_event_model import TaskEventModel
137
- from solace_agent_mesh.gateway.http_sse.repository.models.feedback_model import FeedbackModel
138
-
139
- # After running all migrations, your models will have the updated schema:
140
- # - All timestamp fields use epoch milliseconds
141
- # - Proper indexes for performance
142
- # - Standardized column names
143
- # - Complete task management functionality
144
- # - Optimized composite indexes for query performance
145
- ```
146
-
147
- ### 6. Offline Migration Generation
148
-
149
- ```bash
150
- # Generate SQL scripts without executing (useful for production deployments)
151
- # This uses run_migrations_offline() function from env.py
152
-
153
- # Generate SQL for specific migration
154
- alembic upgrade d5b3f8f2e9a0 --sql
155
-
156
- # Generate SQL for all pending migrations
157
- alembic upgrade head --sql
158
-
159
- # Generate SQL for performance optimization
160
- alembic upgrade 20251015_session_idx --sql
161
- ```
162
-
163
- ### 7. Common Development Patterns
164
-
165
- ```bash
166
- # Development workflow:
167
- # 1. Make model changes in repository
168
- # 2. Generate new migration
169
- alembic revision --autogenerate -m "description of changes"
170
-
171
- # 3. Review generated migration file
172
- # 4. Test migration
173
- alembic upgrade head
174
-
175
- # 5. Test rollback
176
- alembic downgrade -1
177
-
178
- # Production deployment:
179
- # 1. Generate SQL scripts
180
- alembic upgrade head --sql > migration.sql
181
-
182
- # 2. Review and execute SQL manually in production
183
- ```
184
-
185
- ### 8. Database Schema After All Migrations
186
-
187
- ```sql
188
- -- Final schema structure after all migrations:
189
-
190
- -- Core tables with epoch millisecond timestamps:
191
- -- sessions table:
192
- -- id (String, Primary Key)
193
- -- name (String)
194
- -- user_id (String, Indexed)
195
- -- agent_id (String)
196
- -- created_time (BigInteger, epoch ms)
197
- -- updated_time (BigInteger, epoch ms)
198
-
199
- -- chat_tasks table (replaces chat_messages):
200
- -- id (String, Primary Key)
201
- -- session_id (String, Foreign Key to sessions.id)
202
- -- user_id (String)
203
- -- user_message (Text)
204
- -- message_bubbles (Text, JSON)
205
- -- task_metadata (Text, JSON)
206
- -- created_time (BigInteger, epoch ms)
207
- -- updated_time (BigInteger, epoch ms)
208
-
209
- -- Task management tables:
210
- -- tasks table:
211
- -- id (String, Primary Key)
212
- -- user_id (String, Indexed)
213
- -- start_time (BigInteger, epoch ms)
214
- -- end_time (BigInteger, epoch ms)
215
- -- status (String)
216
- -- initial_request_text (Text)
217
- -- total_input_tokens (Integer)
218
- -- total_output_tokens (Integer)
219
- -- total_cached_input_tokens (Integer)
220
- -- token_usage_details (Text, JSON)
221
-
222
- -- task_events table:
223
- -- id (String, Primary Key)
224
- -- task_id (String, Foreign Key to tasks.id)
225
- -- user_id (String)
226
- -- created_time (BigInteger, epoch ms)
227
- -- topic (String)
228
- -- direction (String)
229
- -- payload (Text)
230
-
231
- -- feedback table:
232
- -- id (String, Primary Key)
233
- -- session_id (String, Foreign Key to sessions.id)
234
- -- task_id (String, Foreign Key to tasks.id)
235
- -- user_id (String)
236
- -- rating (Integer)
237
- -- comment (Text)
238
- -- created_time (BigInteger, epoch ms)
239
-
240
- -- Optimized performance indexes:
241
- -- ix_sessions_user_id
242
- -- ix_sessions_user_updated (composite: user_id, updated_time)
243
- -- ix_chat_tasks_session_user_created (composite: session_id, user_id, created_time)
244
- -- ix_tasks_user_start_time (composite: user_id, start_time)
245
- -- ix_task_events_task_created (composite: task_id, created_time)
246
- -- ix_feedback_task_id
247
- -- ix_feedback_user_id
248
- -- ix_feedback_created_time
249
- ```
250
-
251
- ### 9. Cross-Platform Timestamp Handling
252
-
253
- ```python
254
- # The f6e7d8c9b0a1 migration handles database-specific timestamp conversion:
255
-
256
- # SQLite: Uses table recreation approach
257
- # - Creates new tables with epoch millisecond columns
258
- # - Migrates data with timestamp conversion
259
- # - Drops old tables and renames new ones
260
-
261
- # PostgreSQL/MySQL: Uses ALTER COLUMN approach
262
- # - Directly modifies column types
263
- # - Converts existing data in place
264
- # - More efficient for large datasets
265
- ```
266
-
267
- ### 10. Performance Optimization Features
268
-
269
- ```python
270
- # The migrations include comprehensive performance optimizations:
271
-
272
- # Single-column indexes for basic filtering:
273
- # - user_id columns for user-specific queries
274
- # - timestamp columns for time-based filtering
275
-
276
- # Composite indexes for complex queries:
277
- # - (user_id, updated_time) for recent user sessions
278
- # - (session_id, user_id, created_time) for session chat history
279
- # - (task_id, created_time) for task event chronology
280
- # - (user_id, start_time) for user task history
281
-
282
- # Usage example after all migrations:
283
- from solace_agent_mesh.gateway.http_sse.repository.models.task_model import TaskModel
284
-
285
- # Efficient queries using optimized indexes:
286
- # Get recent user sessions (uses ix_sessions_user_updated)
287
- recent_sessions = session.query(SessionModel)\
288
- .filter_by(user_id="user123")\
289
- .order_by(SessionModel.updated_time.desc())\
290
- .limit(10)
291
-
292
- # Get task events chronologically (uses ix_task_events_task_created)
293
- task_events = session.query(TaskEventModel)\
294
- .filter_by(task_id="task456")\
295
- .order_by(TaskEventModel.created_time)\
296
- .all()
297
- ```
298
-
299
- ### 11. Task Management Integration
300
-
301
- ```python
302
- # After running all migrations, the complete task management system is available:
303
-
304
- from solace_agent_mesh.gateway.http_sse.repository.models.task_model import TaskModel
305
- from solace_agent_mesh.gateway.http_sse.repository.models.task_event_model import TaskEventModel
306
- from solace_agent_mesh.gateway.http_sse.repository.models.feedback_model import FeedbackModel
307
-
308
- # Create a new task with token tracking
309
- task = TaskModel(
310
- id="task_123",
311
- user_id="user_456",
312
- start_time=1634567890000, # epoch milliseconds
313
- status="in_progress",
314
- initial_request_text="User's initial request",
315
- total_input_tokens=150,
316
- total_output_tokens=300,
317
- total_cached_input_tokens=50,
318
- token_usage_details='{"model": "gpt-4", "breakdown": {...}}'
319
- )
320
-
321
- # Add task events for tracking
322
- event = TaskEventModel(
323
- id="event_789",
324
- task_id="task_123",
325
- user_id="user_456",
326
- created_time=1634567891000,
327
- topic="ai_response",
328
- direction="outbound",
329
- payload='{"response": "AI generated response"}'
330
- )
331
-
332
- # Collect user feedback
333
- feedback = FeedbackModel(
334
- id="feedback_101",
335
- task_id="task_123",
336
- user_id="user_456",
337
- rating=5,
338
- comment="Excellent response quality",
339
- created_time=1634567892000
340
- )
341
- ```
342
-
343
- This Alembic configuration provides a comprehensive database migration system that handles schema evolution, performance optimization, cross-database compatibility, complete task management functionality, and optimized query patterns for the HTTP SSE gateway component.
344
-
345
- # content_hash: 1211a2aee2a0eb3361ee0f61e504f720c4cf454569a46c5f3991507db9a0cab9
@@ -1,92 +0,0 @@
1
- """Add full-text search indexes for chat search optimization (PostgreSQL only)
2
-
3
- Revision ID: fts_indexes_001
4
- Revises: soft_del_search_001
5
- Create Date: 2025-10-23
6
-
7
- This migration adds PostgreSQL full-text search (FTS) indexes to optimize
8
- chat search performance. It creates GIN indexes on the user_message and
9
- message_bubbles columns of the chat_tasks table.
10
-
11
- Database Compatibility:
12
- - PostgreSQL: Creates GIN indexes for full-text search (10-100x faster)
13
- - SQLite: Skips index creation (uses ILIKE fallback in repository)
14
-
15
- Performance Impact (PostgreSQL only):
16
- - Search queries will be 10-100x faster
17
- - Supports stemming (e.g., "running" matches "run", "ran")
18
- - Enables relevance ranking
19
- - Scales efficiently to millions of records
20
-
21
- Index Details:
22
- - Uses 'english' text search configuration
23
- - GIN (Generalized Inverted Index) for fast lookups
24
- - Automatically maintained by PostgreSQL
25
- """
26
-
27
- from alembic import op
28
- from sqlalchemy import inspect
29
-
30
-
31
- # revision identifiers, used by Alembic.
32
- revision = 'fts_indexes_001'
33
- down_revision = 'soft_del_search_001'
34
- branch_labels = None
35
- depends_on = None
36
-
37
-
38
- def upgrade() -> None:
39
- """
40
- Add GIN indexes for full-text search on chat_tasks table (PostgreSQL only).
41
-
42
- Creates three indexes:
43
- 1. idx_chat_tasks_user_message_fts - For searching user messages
44
- 2. idx_chat_tasks_message_bubbles_fts - For searching full conversation content
45
- 3. idx_sessions_name_fts - For searching session names
46
-
47
- Note: Silently skips index creation for non-PostgreSQL databases (e.g., SQLite).
48
- """
49
- # Get database connection and check dialect
50
- conn = op.get_bind()
51
- dialect_name = conn.dialect.name
52
-
53
- # Only create FTS indexes for PostgreSQL
54
- if dialect_name == 'postgresql':
55
- # Create GIN index for user_message full-text search
56
- op.execute("""
57
- CREATE INDEX IF NOT EXISTS idx_chat_tasks_user_message_fts
58
- ON chat_tasks
59
- USING gin(to_tsvector('english', COALESCE(user_message, '')))
60
- """)
61
-
62
- # Create GIN index for message_bubbles full-text search
63
- op.execute("""
64
- CREATE INDEX IF NOT EXISTS idx_chat_tasks_message_bubbles_fts
65
- ON chat_tasks
66
- USING gin(to_tsvector('english', message_bubbles))
67
- """)
68
-
69
- # Create GIN index for session name full-text search
70
- op.execute("""
71
- CREATE INDEX IF NOT EXISTS idx_sessions_name_fts
72
- ON sessions
73
- USING gin(to_tsvector('english', COALESCE(name, '')))
74
- """)
75
- # For SQLite and other databases, skip FTS index creation
76
- # The repository will automatically use ILIKE-based search instead
77
-
78
-
79
- def downgrade() -> None:
80
- """
81
- Remove full-text search indexes (PostgreSQL only).
82
-
83
- Note: Downgrading will revert to slower ILIKE-based search.
84
- Silently skips for non-PostgreSQL databases.
85
- """
86
- conn = op.get_bind()
87
- dialect_name = conn.dialect.name
88
-
89
- if dialect_name == 'postgresql':
90
- op.execute("DROP INDEX IF EXISTS idx_chat_tasks_user_message_fts")
91
- op.execute("DROP INDEX IF EXISTS idx_chat_tasks_message_bubbles_fts")
92
- op.execute("DROP INDEX IF EXISTS idx_sessions_name_fts")
@@ -1,161 +0,0 @@
1
- # DEVELOPER GUIDE: versions
2
-
3
- ## Quick Summary
4
- This directory contains Alembic database migration files for the HTTP SSE gateway. These migrations handle the evolution of the database schema, including initial table creation, performance optimization through indexing, timestamp format standardization, and task management features.
5
-
6
- ## Files Overview
7
- - `20250910_d5b3f8f2e9a0_create_initial_database.py` - Creates the initial database schema with sessions and chat_messages tables
8
- - `20250911_b1c2d3e4f5g6_add_database_indexes.py` - Adds performance indexes for common query patterns
9
- - `20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py` - Converts datetime columns to epoch milliseconds and standardizes column names
10
- - `20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py` - Adds task management tables and replaces chat_messages with chat_tasks
11
- - `20251015_add_session_performance_indexes.py` - Adds optimized composite indexes for better query performance
12
- - `versions_llm.txt` - LLM-generated documentation for the versions directory
13
-
14
- ## Developer API Reference
15
-
16
- ### 20250910_d5b3f8f2e9a0_create_initial_database.py
17
- **Purpose:** Initial database migration that creates the core tables for session and message management
18
- **Import:** This is an Alembic migration file - not directly imported
19
-
20
- **Functions:**
21
- - `upgrade() -> None` - Creates sessions and chat_messages tables with proper relationships and foreign key constraints
22
- - `downgrade() -> None` - Drops all created tables (chat_messages first, then sessions)
23
-
24
- **Constants/Variables:**
25
- - `revision: str` - Migration identifier "d5b3f8f2e9a0"
26
- - `down_revision: Union[str, None]` - Previous migration (None for initial migration)
27
- - `branch_labels: Union[str, Sequence[str], None]` - Branch labels (None)
28
- - `depends_on: Union[str, Sequence[str], None]` - Dependencies (None)
29
-
30
- **Usage Examples:**
31
- ```bash
32
- # Run this migration
33
- alembic upgrade d5b3f8f2e9a0
34
-
35
- # Rollback this migration
36
- alembic downgrade base
37
- ```
38
-
39
- ### 20250911_b1c2d3e4f5g6_add_database_indexes.py
40
- **Purpose:** Performance optimization migration that adds indexes for efficient querying
41
- **Import:** This is an Alembic migration file - not directly imported
42
-
43
- **Functions:**
44
- - `upgrade() -> None` - Creates indexes on user_id, timestamps, agent_id, and composite fields for optimal query performance
45
- - `downgrade() -> None` - Removes all created indexes in reverse order
46
-
47
- **Constants/Variables:**
48
- - `revision: str` - Migration identifier "b1c2d3e4f5g6"
49
- - `down_revision: Union[str, None]` - Previous migration "d5b3f8f2e9a0"
50
-
51
- **Usage Examples:**
52
- ```bash
53
- # Run this migration
54
- alembic upgrade b1c2d3e4f5g6
55
-
56
- # Rollback this migration
57
- alembic downgrade d5b3f8f2e9a0
58
- ```
59
-
60
- ### 20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py
61
- **Purpose:** Schema modernization migration that converts datetime columns to epoch milliseconds for cross-platform compatibility
62
- **Import:** This is an Alembic migration file - not directly imported
63
-
64
- **Functions:**
65
- - `upgrade() -> None` - Converts datetime columns to epoch milliseconds and renames columns (created_at → created_time, updated_at → updated_time)
66
- - `downgrade() -> None` - Reverts back to datetime columns with original names
67
- - `_upgrade_sqlite(current_time_ms: int) -> None` - SQLite-specific upgrade logic using table recreation
68
- - `_upgrade_standard_sql(current_time_ms: int) -> None` - PostgreSQL/MySQL upgrade logic using ALTER COLUMN
69
- - `_downgrade_sqlite() -> None` - SQLite-specific downgrade logic
70
- - `_downgrade_standard_sql() -> None` - PostgreSQL/MySQL downgrade logic
71
- - `_create_updated_indexes() -> None` - Creates indexes on new timestamp columns
72
- - `_create_indexes_safe(index_name: str, table_name: str, columns: list) -> None` - Safely creates indexes (ignores if exists)
73
- - `_drop_index_safe(index_name: str, table_name: str) -> None` - Safely drops indexes (ignores if not exists)
74
-
75
- **Constants/Variables:**
76
- - `revision: str` - Migration identifier "f6e7d8c9b0a1"
77
- - `down_revision: str | None` - Previous migration "b1c2d3e4f5g6"
78
-
79
- **Usage Examples:**
80
- ```bash
81
- # Run this migration
82
- alembic upgrade f6e7d8c9b0a1
83
-
84
- # Rollback this migration
85
- alembic downgrade b1c2d3e4f5g6
86
- ```
87
-
88
- ### 20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py
89
- **Purpose:** Major schema update that adds task management functionality and replaces chat_messages with chat_tasks
90
- **Import:** This is an Alembic migration file - not directly imported
91
-
92
- **Functions:**
93
- - `upgrade() -> None` - Creates tasks, task_events, feedback, and chat_tasks tables; drops old chat_messages table and indexes
94
- - `downgrade() -> None` - Recreates chat_messages table and drops all task-related tables
95
-
96
- **Constants/Variables:**
97
- - `revision: str` - Migration identifier "98882922fa59"
98
- - `down_revision: Union[str, Sequence[str], None]` - Previous migration "f6e7d8c9b0a1"
99
-
100
- **Usage Examples:**
101
- ```bash
102
- # Run this migration
103
- alembic upgrade 98882922fa59
104
-
105
- # Rollback this migration
106
- alembic downgrade f6e7d8c9b0a1
107
- ```
108
-
109
- ### 20251015_add_session_performance_indexes.py
110
- **Purpose:** Performance optimization migration that adds composite indexes for optimal query patterns
111
- **Import:** This is an Alembic migration file - not directly imported
112
-
113
- **Functions:**
114
- - `upgrade() -> None` - Creates optimized composite indexes for user sessions, chat tasks, and task events; removes unused text index
115
- - `downgrade() -> None` - Removes performance indexes and recreates the original text index
116
-
117
- **Constants/Variables:**
118
- - `revision: str` - Migration identifier "20251015_session_idx"
119
- - `down_revision: str | Sequence[str] | None` - Previous migration "98882922fa59"
120
-
121
- **Usage Examples:**
122
- ```bash
123
- # Run this migration
124
- alembic upgrade 20251015_session_idx
125
-
126
- # Rollback this migration
127
- alembic downgrade 98882922fa59
128
-
129
- # Run all migrations to latest
130
- alembic upgrade head
131
-
132
- # Check current migration status
133
- alembic current
134
-
135
- # View migration history
136
- alembic history
137
-
138
- # Generate new migration
139
- alembic revision --autogenerate -m "description"
140
- ```
141
-
142
- **Final Database Schema After All Migrations:**
143
- ```sql
144
- -- Core tables with epoch millisecond timestamps:
145
- -- sessions: id, name, user_id, agent_id, created_time, updated_time
146
- -- chat_tasks: id, session_id, user_id, user_message, message_bubbles, task_metadata, created_time, updated_time
147
-
148
- -- Task management tables:
149
- -- tasks: id, user_id, start_time, end_time, status, initial_request_text,
150
- -- total_input_tokens, total_output_tokens, total_cached_input_tokens, token_usage_details
151
- -- task_events: id, task_id, user_id, created_time, topic, direction, payload
152
- -- feedback: id, session_id, task_id, user_id, rating, comment, created_time
153
-
154
- -- Performance indexes:
155
- -- ix_sessions_user_id, ix_sessions_user_updated
156
- -- ix_chat_tasks_session_user_created
157
- -- ix_tasks_user_start_time, ix_task_events_task_created
158
- -- ix_feedback_task_id, ix_feedback_user_id, ix_feedback_created_time
159
- ```
160
-
161
- # content_hash: c1d3d7f6855eba76bdabdb5cc0c7253756faf1583ef349dc503418c611a23bd2