solace-agent-mesh 1.6.2__py3-none-any.whl → 1.7.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.

Potentially problematic release.


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

Files changed (245) hide show
  1. solace_agent_mesh/agent/adk/adk_llm.txt +12 -18
  2. solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +1 -1
  3. solace_agent_mesh/agent/adk/callbacks.py +138 -20
  4. solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +2 -0
  5. solace_agent_mesh/agent/adk/models/lite_llm.py +38 -5
  6. solace_agent_mesh/agent/adk/models/models_llm.txt +82 -35
  7. solace_agent_mesh/agent/adk/runner.py +9 -0
  8. solace_agent_mesh/agent/adk/services.py +3 -3
  9. solace_agent_mesh/agent/adk/stream_parser.py +6 -1
  10. solace_agent_mesh/agent/adk/tool_wrapper.py +3 -0
  11. solace_agent_mesh/agent/agent_llm.txt +61 -70
  12. solace_agent_mesh/agent/protocol/event_handlers.py +29 -1
  13. solace_agent_mesh/agent/protocol/protocol_llm.txt +1 -1
  14. solace_agent_mesh/agent/proxies/a2a/a2a_llm.txt +190 -0
  15. solace_agent_mesh/agent/proxies/base/base_llm.txt +148 -0
  16. solace_agent_mesh/agent/proxies/proxies_llm.txt +283 -0
  17. solace_agent_mesh/agent/sac/app.py +22 -0
  18. solace_agent_mesh/agent/sac/component.py +76 -40
  19. solace_agent_mesh/agent/sac/sac_llm.txt +1 -1
  20. solace_agent_mesh/agent/sac/task_execution_context.py +21 -0
  21. solace_agent_mesh/agent/testing/testing_llm.txt +2 -1
  22. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +13 -148
  23. solace_agent_mesh/agent/tools/dynamic_tool.py +2 -0
  24. solace_agent_mesh/agent/tools/tools_llm.txt +93 -80
  25. solace_agent_mesh/agent/tools/tools_llm_detail.txt +3 -2
  26. solace_agent_mesh/agent/utils/artifact_helpers.py +4 -0
  27. solace_agent_mesh/agent/utils/utils_llm.txt +16 -2
  28. solace_agent_mesh/assets/docs/404.html +3 -3
  29. solace_agent_mesh/assets/docs/assets/js/05749d90.c70b2be9.js +1 -0
  30. solace_agent_mesh/assets/docs/assets/js/15ba94aa.92fea363.js +1 -0
  31. solace_agent_mesh/assets/docs/assets/js/15e40e79.36003774.js +1 -0
  32. solace_agent_mesh/assets/docs/assets/js/2987107d.a80604f9.js +1 -0
  33. solace_agent_mesh/assets/docs/assets/js/3ac1795d.e4870a49.js +1 -0
  34. solace_agent_mesh/assets/docs/assets/js/3ff0015d.b63ee53a.js +1 -0
  35. solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +1 -0
  36. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.45b32c2b.js +1 -0
  37. solace_agent_mesh/assets/docs/assets/js/631738c7.fa471607.js +1 -0
  38. solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +1 -0
  39. solace_agent_mesh/assets/docs/assets/js/6a520c9d.b6e3f2ce.js +1 -0
  40. solace_agent_mesh/assets/docs/assets/js/6ad8f0bd.a5b36a60.js +1 -0
  41. solace_agent_mesh/assets/docs/assets/js/71da7b71.374b9d54.js +1 -0
  42. solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +1 -0
  43. solace_agent_mesh/assets/docs/assets/js/8b032486.91a91afc.js +1 -0
  44. solace_agent_mesh/assets/docs/assets/js/94e8668d.09ed9234.js +1 -0
  45. solace_agent_mesh/assets/docs/assets/js/{ab9708a8.3e6dd091.js → ab9708a8.245ae0ef.js} +1 -1
  46. solace_agent_mesh/assets/docs/assets/js/ad87452a.9d73dad6.js +1 -0
  47. solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.f902fad8.js +1 -0
  48. solace_agent_mesh/assets/docs/assets/js/da0b5bad.b62f7b08.js +1 -0
  49. solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +1 -0
  50. solace_agent_mesh/assets/docs/assets/js/dd817ffc.c37a755e.js +1 -0
  51. solace_agent_mesh/assets/docs/assets/js/dd81e2b8.b682e9c2.js +1 -0
  52. solace_agent_mesh/assets/docs/assets/js/de915948.44a432bc.js +1 -0
  53. solace_agent_mesh/assets/docs/assets/js/e04b235d.c9c50c7b.js +1 -0
  54. solace_agent_mesh/assets/docs/assets/js/e3d9abda.d11c67a7.js +1 -0
  55. solace_agent_mesh/assets/docs/assets/js/{e6f9706b.e74a984d.js → e6f9706b.045d0fa1.js} +1 -1
  56. solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +1 -0
  57. solace_agent_mesh/assets/docs/assets/js/f284c35a.5099c51e.js +1 -0
  58. solace_agent_mesh/assets/docs/assets/js/ff4d71f2.74710fc1.js +1 -0
  59. solace_agent_mesh/assets/docs/assets/js/main.e6488e8b.js +2 -0
  60. solace_agent_mesh/assets/docs/assets/js/runtime~main.d9606d6a.js +1 -0
  61. solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +4 -4
  62. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +4 -4
  63. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +4 -4
  64. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +4 -4
  65. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +18 -4
  66. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +4 -4
  67. solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +4 -4
  68. solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +5 -5
  69. solace_agent_mesh/assets/docs/docs/documentation/components/index.html +4 -4
  70. solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +4 -4
  71. solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +4 -4
  72. solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +196 -0
  73. solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +4 -4
  74. solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +5 -5
  75. solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +6 -7
  76. solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +4 -4
  77. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes-deployment/index.html +47 -0
  78. solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +4 -4
  79. solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +4 -4
  80. solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +4 -4
  81. solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +160 -169
  82. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +4 -4
  83. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +4 -4
  84. solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +4 -4
  85. solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +4 -4
  86. solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +4 -4
  87. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +4 -4
  88. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +5 -5
  89. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +4 -4
  90. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +4 -4
  91. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +4 -4
  92. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +4 -4
  93. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +4 -4
  94. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +4 -4
  95. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +4 -4
  96. solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +59 -0
  97. solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +62 -0
  98. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +10 -6
  99. solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +4 -4
  100. solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +24 -29
  101. solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +440 -0
  102. solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +27 -4
  103. solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +62 -0
  104. solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +4 -4
  105. solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +5 -4
  106. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +3 -3
  107. solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +3 -3
  108. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +290 -0
  109. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +9 -9
  110. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +4 -4
  111. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +4 -4
  112. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +4 -4
  113. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +4 -4
  114. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +251 -0
  115. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +88 -0
  116. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +3 -3
  117. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +3 -3
  118. solace_agent_mesh/assets/docs/lunr-index-1762189824009.json +1 -0
  119. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  120. solace_agent_mesh/assets/docs/search-doc-1762189824009.json +1 -0
  121. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  122. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  123. solace_agent_mesh/cli/__init__.py +1 -1
  124. solace_agent_mesh/cli/commands/docs_cmd.py +4 -1
  125. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +1 -1
  126. solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-D4_RMYRh.js → authCallback-tcIFZLis.js} +1 -1
  127. solace_agent_mesh/client/webui/frontend/static/assets/{client-UZ3qU6Bq.js → client-CRYdKo2Q.js} +3 -3
  128. solace_agent_mesh/client/webui/frontend/static/assets/main-CojeY_1w.css +1 -0
  129. solace_agent_mesh/client/webui/frontend/static/assets/main-ILja9MCG.js +353 -0
  130. solace_agent_mesh/client/webui/frontend/static/assets/vendor-CINwxvwV.js +470 -0
  131. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -3
  132. solace_agent_mesh/client/webui/frontend/static/index.html +4 -4
  133. solace_agent_mesh/common/a2a/a2a_llm.txt +13 -20
  134. solace_agent_mesh/common/a2a/protocol.py +5 -0
  135. solace_agent_mesh/common/a2a/types.py +1 -0
  136. solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +49 -11
  137. solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json +23 -6
  138. solace_agent_mesh/common/a2a_spec/schemas/feedback_event.json +51 -0
  139. solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +26 -9
  140. solace_agent_mesh/common/common_llm.txt +13 -34
  141. solace_agent_mesh/common/data_parts.py +20 -4
  142. solace_agent_mesh/common/middleware/middleware_llm.txt +1 -1
  143. solace_agent_mesh/common/sac/sac_llm.txt +1 -1
  144. solace_agent_mesh/common/sam_events/sam_events_llm.txt +1 -1
  145. solace_agent_mesh/common/services/employee_service.py +1 -1
  146. solace_agent_mesh/common/services/providers/providers_llm.txt +3 -2
  147. solace_agent_mesh/common/services/services_llm.txt +9 -4
  148. solace_agent_mesh/common/utils/embeds/constants.py +1 -0
  149. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +1 -1
  150. solace_agent_mesh/common/utils/embeds/modifiers.py +2 -1
  151. solace_agent_mesh/common/utils/embeds/resolver.py +58 -6
  152. solace_agent_mesh/common/utils/embeds/types.py +8 -0
  153. solace_agent_mesh/common/utils/utils_llm.txt +5 -6
  154. solace_agent_mesh/core_a2a/core_a2a_llm.txt +1 -1
  155. solace_agent_mesh/gateway/adapter/__init__.py +1 -0
  156. solace_agent_mesh/gateway/adapter/base.py +143 -0
  157. solace_agent_mesh/gateway/adapter/types.py +221 -0
  158. solace_agent_mesh/gateway/base/app.py +29 -2
  159. solace_agent_mesh/gateway/base/base_llm.txt +10 -8
  160. solace_agent_mesh/gateway/base/component.py +573 -142
  161. solace_agent_mesh/gateway/gateway_llm.txt +55 -59
  162. solace_agent_mesh/gateway/generic/__init__.py +1 -0
  163. solace_agent_mesh/gateway/generic/app.py +50 -0
  164. solace_agent_mesh/gateway/generic/component.py +650 -0
  165. solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +99 -49
  166. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_fulltext_search_indexes.py +92 -0
  167. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py +72 -0
  168. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py +150 -0
  169. solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_default_agent_to_projects.py +26 -0
  170. solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py +135 -0
  171. solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +26 -20
  172. solace_agent_mesh/gateway/http_sse/app.py +19 -14
  173. solace_agent_mesh/gateway/http_sse/component.py +150 -118
  174. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +1 -1
  175. solace_agent_mesh/gateway/http_sse/dependencies.py +21 -3
  176. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +8 -8
  177. solace_agent_mesh/gateway/http_sse/main.py +55 -14
  178. solace_agent_mesh/gateway/http_sse/repository/__init__.py +19 -1
  179. solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +56 -98
  180. solace_agent_mesh/gateway/http_sse/repository/entities/project.py +81 -0
  181. solace_agent_mesh/gateway/http_sse/repository/entities/project_user.py +47 -0
  182. solace_agent_mesh/gateway/http_sse/repository/entities/session.py +23 -1
  183. solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +47 -0
  184. solace_agent_mesh/gateway/http_sse/repository/interfaces.py +112 -4
  185. solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +9 -1
  186. solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +51 -60
  187. solace_agent_mesh/gateway/http_sse/repository/models/project_model.py +51 -0
  188. solace_agent_mesh/gateway/http_sse/repository/models/project_user_model.py +75 -0
  189. solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +7 -1
  190. solace_agent_mesh/gateway/http_sse/repository/project_repository.py +172 -0
  191. solace_agent_mesh/gateway/http_sse/repository/project_user_repository.py +186 -0
  192. solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +125 -157
  193. solace_agent_mesh/gateway/http_sse/repository/session_repository.py +269 -8
  194. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +143 -51
  195. solace_agent_mesh/gateway/http_sse/routers/config.py +69 -0
  196. solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +198 -94
  197. solace_agent_mesh/gateway/http_sse/routers/dto/requests/project_requests.py +48 -0
  198. solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +68 -18
  199. solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +13 -0
  200. solace_agent_mesh/gateway/http_sse/routers/dto/responses/project_responses.py +30 -0
  201. solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +51 -35
  202. solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +2 -0
  203. solace_agent_mesh/gateway/http_sse/routers/feedback.py +133 -2
  204. solace_agent_mesh/gateway/http_sse/routers/projects.py +542 -0
  205. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +9 -11
  206. solace_agent_mesh/gateway/http_sse/routers/sessions.py +154 -3
  207. solace_agent_mesh/gateway/http_sse/routers/tasks.py +296 -4
  208. solace_agent_mesh/gateway/http_sse/services/project_service.py +403 -0
  209. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +16 -10
  210. solace_agent_mesh/gateway/http_sse/services/session_service.py +178 -6
  211. solace_agent_mesh/gateway/http_sse/shared/exception_handlers.py +2 -3
  212. solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +48 -14
  213. solace_agent_mesh/solace_agent_mesh_llm.txt +1 -1
  214. {solace_agent_mesh-1.6.2.dist-info → solace_agent_mesh-1.7.0.dist-info}/METADATA +3 -5
  215. {solace_agent_mesh-1.6.2.dist-info → solace_agent_mesh-1.7.0.dist-info}/RECORD +219 -176
  216. solace_agent_mesh/assets/docs/assets/js/15ba94aa.932dd2db.js +0 -1
  217. solace_agent_mesh/assets/docs/assets/js/3ac1795d.76654dd9.js +0 -1
  218. solace_agent_mesh/assets/docs/assets/js/3ff0015d.2be20244.js +0 -1
  219. solace_agent_mesh/assets/docs/assets/js/547e15cc.2cbb060a.js +0 -1
  220. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.eda4bcb2.js +0 -1
  221. solace_agent_mesh/assets/docs/assets/js/631738c7.7c4594c9.js +0 -1
  222. solace_agent_mesh/assets/docs/assets/js/6a520c9d.ba015d81.js +0 -1
  223. solace_agent_mesh/assets/docs/assets/js/6ad8f0bd.f4b15f3b.js +0 -1
  224. solace_agent_mesh/assets/docs/assets/js/71da7b71.ddbdfbe2.js +0 -1
  225. solace_agent_mesh/assets/docs/assets/js/8024126c.56e59919.js +0 -1
  226. solace_agent_mesh/assets/docs/assets/js/94e8668d.b5ddb7a1.js +0 -1
  227. solace_agent_mesh/assets/docs/assets/js/da0b5bad.d08a9466.js +0 -1
  228. solace_agent_mesh/assets/docs/assets/js/dd817ffc.0aa9630a.js +0 -1
  229. solace_agent_mesh/assets/docs/assets/js/dd81e2b8.d590bc9e.js +0 -1
  230. solace_agent_mesh/assets/docs/assets/js/de915948.27d6b065.js +0 -1
  231. solace_agent_mesh/assets/docs/assets/js/e3d9abda.6b9493d0.js +0 -1
  232. solace_agent_mesh/assets/docs/assets/js/e92d0134.4f395c6b.js +0 -1
  233. solace_agent_mesh/assets/docs/assets/js/f284c35a.720d2ef2.js +0 -1
  234. solace_agent_mesh/assets/docs/assets/js/ff4d71f2.15b02f97.js +0 -1
  235. solace_agent_mesh/assets/docs/assets/js/main.d1643f0b.js +0 -2
  236. solace_agent_mesh/assets/docs/assets/js/runtime~main.97f920d4.js +0 -1
  237. solace_agent_mesh/assets/docs/lunr-index-1761663789856.json +0 -1
  238. solace_agent_mesh/assets/docs/search-doc-1761663789856.json +0 -1
  239. solace_agent_mesh/client/webui/frontend/static/assets/main--3yJYl7S.css +0 -1
  240. solace_agent_mesh/client/webui/frontend/static/assets/main-DojKHS49.js +0 -342
  241. solace_agent_mesh/client/webui/frontend/static/assets/vendor-DSqhjwq_.js +0 -405
  242. /solace_agent_mesh/assets/docs/assets/js/{main.d1643f0b.js.LICENSE.txt → main.e6488e8b.js.LICENSE.txt} +0 -0
  243. {solace_agent_mesh-1.6.2.dist-info → solace_agent_mesh-1.7.0.dist-info}/WHEEL +0 -0
  244. {solace_agent_mesh-1.6.2.dist-info → solace_agent_mesh-1.7.0.dist-info}/entry_points.txt +0 -0
  245. {solace_agent_mesh-1.6.2.dist-info → solace_agent_mesh-1.7.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,135 @@
1
+ """Add projects table and project_id to sessions
2
+
3
+ Revision ID: add_projects_table_001
4
+ Revises: 20251015_session_idx
5
+ Create Date: 2025-10-24 10:00:00.000000
6
+
7
+ """
8
+ from typing import Sequence, Union
9
+ from alembic import op
10
+ import sqlalchemy as sa
11
+ from sqlalchemy import inspect
12
+
13
+ # revision identifiers, used by Alembic.
14
+ revision: str = 'add_projects_table_001'
15
+ down_revision: Union[str, Sequence[str], None] = '20251015_session_idx'
16
+ branch_labels: Union[str, Sequence[str], None] = None
17
+ depends_on: Union[str, Sequence[str], None] = None
18
+
19
+
20
+ def upgrade() -> None:
21
+ """Create projects table and add project_id to sessions."""
22
+ bind = op.get_bind()
23
+ inspector = inspect(bind)
24
+ existing_tables = inspector.get_table_names()
25
+ dialect_name = bind.dialect.name
26
+
27
+ # Create projects table if it doesn't exist
28
+ # Note: This table is created without is_global and created_by_user_id columns
29
+ # as those were removed in the squashed migration
30
+ if 'projects' not in existing_tables:
31
+ op.create_table('projects',
32
+ sa.Column('id', sa.String(), nullable=False),
33
+ sa.Column('name', sa.String(), nullable=False),
34
+ sa.Column('user_id', sa.String(), nullable=False),
35
+ sa.Column('description', sa.Text(), nullable=True),
36
+ sa.Column('system_prompt', sa.Text(), nullable=True),
37
+ sa.Column('created_at', sa.BigInteger(), nullable=False),
38
+ sa.Column('updated_at', sa.BigInteger(), nullable=True),
39
+ sa.PrimaryKeyConstraint('id')
40
+ )
41
+
42
+ # Add project_id column to sessions if it doesn't exist
43
+ sessions_columns = [col['name'] for col in inspector.get_columns('sessions')]
44
+ if 'project_id' not in sessions_columns:
45
+ if dialect_name == 'sqlite':
46
+ # SQLite doesn't support ALTER TABLE ADD CONSTRAINT, recreate table
47
+ op.create_table(
48
+ 'sessions_new',
49
+ sa.Column('id', sa.String(), nullable=False),
50
+ sa.Column('name', sa.String(), nullable=True),
51
+ sa.Column('user_id', sa.String(), nullable=False),
52
+ sa.Column('agent_id', sa.String(), nullable=True),
53
+ sa.Column('created_time', sa.BigInteger(), nullable=False),
54
+ sa.Column('updated_time', sa.BigInteger(), nullable=False),
55
+ sa.Column('project_id', sa.String(), nullable=True),
56
+ sa.ForeignKeyConstraint(['project_id'], ['projects.id']),
57
+ sa.PrimaryKeyConstraint('id')
58
+ )
59
+
60
+ # Copy data from old table
61
+ op.execute("""
62
+ INSERT INTO sessions_new (id, name, user_id, agent_id, created_time, updated_time)
63
+ SELECT id, name, user_id, agent_id, created_time, updated_time
64
+ FROM sessions
65
+ """)
66
+
67
+ # Drop old table
68
+ op.drop_table('sessions')
69
+
70
+ # Rename new table
71
+ op.rename_table('sessions_new', 'sessions')
72
+
73
+ # Recreate indexes
74
+ op.create_index('ix_sessions_user_id', 'sessions', ['user_id'])
75
+ op.create_index('ix_sessions_project_id', 'sessions', ['project_id'])
76
+ else:
77
+ # PostgreSQL, MySQL - standard ALTER TABLE
78
+ op.add_column('sessions', sa.Column('project_id', sa.String(), nullable=True))
79
+ op.create_index('ix_sessions_project_id', 'sessions', ['project_id'])
80
+ op.create_foreign_key(
81
+ 'fk_sessions_project_id',
82
+ 'sessions',
83
+ 'projects',
84
+ ['project_id'],
85
+ ['id']
86
+ )
87
+
88
+
89
+ def downgrade() -> None:
90
+ """Downgrade schema - removes project-related changes."""
91
+ bind = op.get_bind()
92
+ inspector = inspect(bind)
93
+ dialect_name = bind.dialect.name
94
+
95
+ # Drop project_id column from sessions if it exists
96
+ sessions_columns = [col['name'] for col in inspector.get_columns('sessions')]
97
+ if 'project_id' in sessions_columns:
98
+ if dialect_name == 'sqlite':
99
+ # SQLite doesn't support ALTER TABLE DROP CONSTRAINT, recreate table
100
+ op.create_table(
101
+ 'sessions_old',
102
+ sa.Column('id', sa.String(), nullable=False),
103
+ sa.Column('name', sa.String(), nullable=True),
104
+ sa.Column('user_id', sa.String(), nullable=False),
105
+ sa.Column('agent_id', sa.String(), nullable=True),
106
+ sa.Column('created_time', sa.BigInteger(), nullable=False),
107
+ sa.Column('updated_time', sa.BigInteger(), nullable=False),
108
+ sa.PrimaryKeyConstraint('id')
109
+ )
110
+
111
+ # Copy data from current table (excluding project_id)
112
+ op.execute("""
113
+ INSERT INTO sessions_old (id, name, user_id, agent_id, created_time, updated_time)
114
+ SELECT id, name, user_id, agent_id, created_time, updated_time
115
+ FROM sessions
116
+ """)
117
+
118
+ # Drop current table
119
+ op.drop_table('sessions')
120
+
121
+ # Rename old table back
122
+ op.rename_table('sessions_old', 'sessions')
123
+
124
+ # Recreate index on user_id
125
+ op.create_index('ix_sessions_user_id', 'sessions', ['user_id'])
126
+ else:
127
+ # PostgreSQL, MySQL - standard ALTER TABLE
128
+ op.drop_constraint('fk_sessions_project_id', 'sessions', type_='foreignkey')
129
+ op.drop_index('ix_sessions_project_id', 'sessions')
130
+ op.drop_column('sessions', 'project_id')
131
+
132
+ # Drop projects table if it exists
133
+ existing_tables = inspector.get_table_names()
134
+ if 'projects' in existing_tables:
135
+ op.drop_table('projects')
@@ -1,14 +1,14 @@
1
1
  # DEVELOPER GUIDE: versions
2
2
 
3
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 with token usage tracking.
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
5
 
6
6
  ## Files Overview
7
7
  - `20250910_d5b3f8f2e9a0_create_initial_database.py` - Creates the initial database schema with sessions and chat_messages tables
8
8
  - `20250911_b1c2d3e4f5g6_add_database_indexes.py` - Adds performance indexes for common query patterns
9
9
  - `20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py` - Converts datetime columns to epoch milliseconds and standardizes column names
10
- - `20250928_079e06e9b448_add_tasks_task_events_and_feedback_.py` - Adds task management tables (tasks, task_events, feedback)
11
- - `20250930_add_token_usage_to_tasks.py` - Adds token usage tracking columns to tasks table
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
12
  - `versions_llm.txt` - LLM-generated documentation for the versions directory
13
13
 
14
14
  ## Developer API Reference
@@ -85,46 +85,46 @@ alembic upgrade f6e7d8c9b0a1
85
85
  alembic downgrade b1c2d3e4f5g6
86
86
  ```
87
87
 
88
- ### 20250928_079e06e9b448_add_tasks_task_events_and_feedback_.py
89
- **Purpose:** Adds task management functionality with tables for tracking tasks, events, and user feedback
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
90
  **Import:** This is an Alembic migration file - not directly imported
91
91
 
92
92
  **Functions:**
93
- - `upgrade() -> None` - Creates tasks, task_events, and feedback tables with appropriate indexes and foreign key relationships
94
- - `downgrade() -> None` - Drops all task-related tables and recreates original session/message indexes
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
95
 
96
96
  **Constants/Variables:**
97
- - `revision: str` - Migration identifier "079e06e9b448"
97
+ - `revision: str` - Migration identifier "98882922fa59"
98
98
  - `down_revision: Union[str, Sequence[str], None]` - Previous migration "f6e7d8c9b0a1"
99
99
 
100
100
  **Usage Examples:**
101
101
  ```bash
102
102
  # Run this migration
103
- alembic upgrade 079e06e9b448
103
+ alembic upgrade 98882922fa59
104
104
 
105
105
  # Rollback this migration
106
106
  alembic downgrade f6e7d8c9b0a1
107
107
  ```
108
108
 
109
- ### 20250930_add_token_usage_to_tasks.py
110
- **Purpose:** Adds token usage tracking columns to the tasks table for monitoring AI model consumption
109
+ ### 20251015_add_session_performance_indexes.py
110
+ **Purpose:** Performance optimization migration that adds composite indexes for optimal query patterns
111
111
  **Import:** This is an Alembic migration file - not directly imported
112
112
 
113
113
  **Functions:**
114
- - `upgrade() -> None` - Adds token usage columns (total_input_tokens, total_output_tokens, total_cached_input_tokens, token_usage_details) to tasks table
115
- - `downgrade() -> None` - Removes all token usage columns from tasks table
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
116
 
117
117
  **Constants/Variables:**
118
- - `revision: str` - Migration identifier "20250930_token_usage"
119
- - `down_revision: Union[str, None]` - Previous migration "079e06e9b448"
118
+ - `revision: str` - Migration identifier "20251015_session_idx"
119
+ - `down_revision: str | Sequence[str] | None` - Previous migration "98882922fa59"
120
120
 
121
121
  **Usage Examples:**
122
122
  ```bash
123
123
  # Run this migration
124
- alembic upgrade 20250930_token_usage
124
+ alembic upgrade 20251015_session_idx
125
125
 
126
126
  # Rollback this migration
127
- alembic downgrade 079e06e9b448
127
+ alembic downgrade 98882922fa59
128
128
 
129
129
  # Run all migrations to latest
130
130
  alembic upgrade head
@@ -139,17 +139,23 @@ alembic history
139
139
  alembic revision --autogenerate -m "description"
140
140
  ```
141
141
 
142
- **Database Schema After All Migrations:**
142
+ **Final Database Schema After All Migrations:**
143
143
  ```sql
144
144
  -- Core tables with epoch millisecond timestamps:
145
145
  -- sessions: id, name, user_id, agent_id, created_time, updated_time
146
- -- chat_messages: id, session_id, message, sender_type, sender_name, created_time
146
+ -- chat_tasks: id, session_id, user_id, user_message, message_bubbles, task_metadata, created_time, updated_time
147
147
 
148
148
  -- Task management tables:
149
149
  -- tasks: id, user_id, start_time, end_time, status, initial_request_text,
150
150
  -- total_input_tokens, total_output_tokens, total_cached_input_tokens, token_usage_details
151
151
  -- task_events: id, task_id, user_id, created_time, topic, direction, payload
152
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
153
159
  ```
154
160
 
155
- # content_hash: 93bf894b6e5451feedc0b65a723765d7e6798c6912fb3fc34eaf9548d27e4195
161
+ # content_hash: c1d3d7f6855eba76bdabdb5cc0c7253756faf1583ef349dc503418c611a23bd2
@@ -75,20 +75,6 @@ class WebUIBackendApp(BaseGatewayApp):
75
75
  "default": True,
76
76
  "description": "If true, the gateway will resolve artifact:// URIs found in A2A messages and embed the content as bytes before sending to the UI. If false, URIs are passed through.",
77
77
  },
78
- {
79
- "name": "system_purpose",
80
- "required": False,
81
- "type": "string",
82
- "default": "",
83
- "description": "Detailed description of the system's overall purpose, to be optionally used by agents.",
84
- },
85
- {
86
- "name": "response_format",
87
- "required": False,
88
- "type": "string",
89
- "default": "",
90
- "description": "General guidelines on how agent responses should be structured, to be optionally used by agents.",
91
- },
92
78
  {
93
79
  "name": "model",
94
80
  "required": False,
@@ -202,6 +188,25 @@ class WebUIBackendApp(BaseGatewayApp):
202
188
  },
203
189
  },
204
190
  },
191
+ {
192
+ "name": "platform_service",
193
+ "required": False,
194
+ "type": "dict",
195
+ "default": {},
196
+ "description": "Configuration for the Platform Service (enterprise features: agents, connectors, deployments).",
197
+ "dict_schema": {
198
+ "database_url": {
199
+ "type": "string",
200
+ "required": False,
201
+ "default": None,
202
+ "description": (
203
+ "Database URL for platform data (agents, connectors, deployments). "
204
+ "REQUIRED for platform features to be available. "
205
+ "Example: postgresql://user:pass@host:5432/platform_db"
206
+ ),
207
+ },
208
+ },
209
+ },
205
210
  {
206
211
  "name": "task_logging",
207
212
  "required": False,