solace-agent-mesh 1.4.6__py3-none-any.whl → 1.4.7__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.
- solace_agent_mesh/agent/adk/runner.py +24 -8
- solace_agent_mesh/agent/sac/component.py +14 -1
- solace_agent_mesh/assets/docs/404.html +3 -3
- solace_agent_mesh/assets/docs/assets/js/166ab619.bdddc63a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{1c6e87d2.43771adc.js → 1c6e87d2.e056b7e0.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/483cef9a.4736f2d8.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{4c2787c2.fc6804f2.js → 4c2787c2.c1290a40.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/{5b4258a4.dff11eca.js → 5b4258a4.fdfd2325.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/{75384d09.abdf9cf9.js → 75384d09.1e7d7cb7.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/85387663.be2bc838.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/945fb41e.16e00776.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a12a4955.25fbed32.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a3a92b25.6def8980.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ae0e903d.5fe5203f.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/bac0be12.bf0181cf.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/beecea0d.ce915979.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/cee5d587.47904f5e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/f284c35a.525933db.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/f897a61a.126663fe.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{fbfa3e75.aca209c9.js → fbfa3e75.e144b16c.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/main.11f9f9f3.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/runtime~main.5922bcf0.js +1 -0
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/rbac-setup-guilde/index.html +201 -0
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +6 -6
- solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +6 -6
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +6 -6
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-python-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +6 -6
- solace_agent_mesh/assets/docs/lunr-index-1759151175744.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -1
- solace_agent_mesh/assets/docs/search-doc-1759151175744.json +1 -0
- solace_agent_mesh/assets/docs/search-doc.json +1 -1
- solace_agent_mesh/assets/docs/sitemap.xml +1 -1
- solace_agent_mesh/cli/__init__.py +1 -1
- solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py +112 -42
- solace_agent_mesh/gateway/http_sse/app.py +0 -28
- solace_agent_mesh/gateway/http_sse/main.py +29 -13
- {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/METADATA +1 -1
- {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/RECORD +76 -74
- solace_agent_mesh/assets/docs/assets/js/166ab619.e8f3a7c7.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/483cef9a.8d318c2f.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/85387663.6bf41934.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/945fb41e.abf2be91.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/a3a92b25.1d029b81.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/ae0e903d.c786e887.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/bac0be12.27ee2c26.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/beecea0d.8bbd852c.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/cee5d587.f1e1ca86.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/f284c35a.2b2f5048.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/f897a61a.bc634a3e.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/main.72d74e33.js +0 -2
- solace_agent_mesh/assets/docs/assets/js/runtime~main.3dcfaf51.js +0 -1
- solace_agent_mesh/assets/docs/lunr-index-1758893005563.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1758893005563.json +0 -1
- /solace_agent_mesh/assets/docs/assets/js/{main.72d74e33.js.LICENSE.txt → main.11f9f9f3.js.LICENSE.txt} +0 -0
- {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/WHEEL +0 -0
- {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/entry_points.txt +0 -0
- {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/licenses/LICENSE +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/architecture</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/cli</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/gateways</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/orchestrator</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/plugins</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/debugging</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/deploy</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/observability</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/Enterprise/installation</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/Enterprise/single-sign-on</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/component-overview</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/configurations</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/installation</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/introduction</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/quick-start</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/Migrations/A2A%20Upgrade%20To%200.3.0/a2a-gateway-upgrade-to-0.3.0</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/Migrations/A2A%20Upgrade%20To%200.3.0/a2a-technical-migration-map</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/bedrock-agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/custom-agent</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/event-mesh-gateway</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/mcp-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/mongodb-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/rag-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/rest-gateway</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/slack-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/sql-database</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/artifact-management</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/audio-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/data-analysis-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/embeds</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/create-agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/create-gateways</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/creating-python-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/creating-service-providers</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/solace-ai-connector</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/structure</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/architecture</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/cli</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/gateways</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/orchestrator</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/plugins</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/debugging</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/deploy</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/observability</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/Enterprise/installation</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/Enterprise/rbac-setup-guilde</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/Enterprise/single-sign-on</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/component-overview</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/configurations</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/installation</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/introduction</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/quick-start</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/Migrations/A2A%20Upgrade%20To%200.3.0/a2a-gateway-upgrade-to-0.3.0</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/Migrations/A2A%20Upgrade%20To%200.3.0/a2a-technical-migration-map</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/bedrock-agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/custom-agent</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/event-mesh-gateway</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/mcp-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/mongodb-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/rag-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/rest-gateway</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/slack-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/sql-database</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/artifact-management</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/audio-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/data-analysis-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/embeds</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/create-agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/create-gateways</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/creating-python-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/creating-service-providers</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/solace-ai-connector</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/structure</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "1.4.
|
|
1
|
+
__version__ = "1.4.7"
|
|
@@ -104,22 +104,38 @@ def _upgrade_sqlite(current_time_ms: int) -> None:
|
|
|
104
104
|
def _upgrade_standard_sql(current_time_ms: int) -> None:
|
|
105
105
|
"""Handle PostgreSQL/MySQL upgrade using ALTER COLUMN (standard SQL approach)."""
|
|
106
106
|
|
|
107
|
+
bind = op.get_bind()
|
|
108
|
+
|
|
107
109
|
# For sessions table
|
|
108
110
|
op.add_column("sessions", sa.Column("created_time", sa.BigInteger(), nullable=True))
|
|
109
111
|
op.add_column("sessions", sa.Column("updated_time", sa.BigInteger(), nullable=True))
|
|
110
112
|
|
|
111
|
-
# Convert timestamps using
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
113
|
+
# Convert timestamps using database-appropriate functions
|
|
114
|
+
if bind.dialect.name == 'postgresql':
|
|
115
|
+
op.execute("""
|
|
116
|
+
UPDATE sessions
|
|
117
|
+
SET created_time = CAST(EXTRACT(EPOCH FROM created_at) * 1000 AS BIGINT)
|
|
118
|
+
WHERE created_at IS NOT NULL
|
|
119
|
+
""")
|
|
120
|
+
|
|
121
|
+
op.execute("""
|
|
122
|
+
UPDATE sessions
|
|
123
|
+
SET updated_time = CAST(EXTRACT(EPOCH FROM updated_at) * 1000 AS BIGINT)
|
|
124
|
+
WHERE updated_at IS NOT NULL
|
|
125
|
+
""")
|
|
126
|
+
else:
|
|
127
|
+
# MySQL and other databases use UNIX_TIMESTAMP
|
|
128
|
+
op.execute("""
|
|
129
|
+
UPDATE sessions
|
|
130
|
+
SET created_time = CAST(UNIX_TIMESTAMP(created_at) * 1000 AS UNSIGNED)
|
|
131
|
+
WHERE created_at IS NOT NULL
|
|
132
|
+
""")
|
|
133
|
+
|
|
134
|
+
op.execute("""
|
|
135
|
+
UPDATE sessions
|
|
136
|
+
SET updated_time = CAST(UNIX_TIMESTAMP(updated_at) * 1000 AS UNSIGNED)
|
|
137
|
+
WHERE updated_at IS NOT NULL
|
|
138
|
+
""")
|
|
123
139
|
|
|
124
140
|
# Set current epoch ms for null values
|
|
125
141
|
op.execute(f"""
|
|
@@ -145,11 +161,19 @@ def _upgrade_standard_sql(current_time_ms: int) -> None:
|
|
|
145
161
|
# For chat_messages table
|
|
146
162
|
op.add_column("chat_messages", sa.Column("created_time", sa.BigInteger(), nullable=True))
|
|
147
163
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
164
|
+
if bind.dialect.name == 'postgresql':
|
|
165
|
+
op.execute("""
|
|
166
|
+
UPDATE chat_messages
|
|
167
|
+
SET created_time = CAST(EXTRACT(EPOCH FROM created_at) * 1000 AS BIGINT)
|
|
168
|
+
WHERE created_at IS NOT NULL
|
|
169
|
+
""")
|
|
170
|
+
else:
|
|
171
|
+
# MySQL and other databases use UNIX_TIMESTAMP
|
|
172
|
+
op.execute("""
|
|
173
|
+
UPDATE chat_messages
|
|
174
|
+
SET created_time = CAST(UNIX_TIMESTAMP(created_at) * 1000 AS UNSIGNED)
|
|
175
|
+
WHERE created_at IS NOT NULL
|
|
176
|
+
""")
|
|
153
177
|
|
|
154
178
|
op.execute(f"""
|
|
155
179
|
UPDATE chat_messages
|
|
@@ -199,18 +223,41 @@ def _create_updated_indexes() -> None:
|
|
|
199
223
|
|
|
200
224
|
def _create_indexes_safe(index_name: str, table_name: str, columns: list) -> None:
|
|
201
225
|
"""Create index only if it doesn't exist."""
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
226
|
+
bind = op.get_bind()
|
|
227
|
+
inspector = sa.inspect(bind)
|
|
228
|
+
|
|
229
|
+
if bind.dialect.name == 'postgresql':
|
|
230
|
+
columns_str = ', '.join(columns)
|
|
231
|
+
bind.execute(sa.text(f"CREATE INDEX IF NOT EXISTS {index_name} ON {table_name} ({columns_str})"))
|
|
232
|
+
elif bind.dialect.name == 'sqlite':
|
|
233
|
+
try:
|
|
234
|
+
op.create_index(index_name, table_name, columns)
|
|
235
|
+
except Exception:
|
|
236
|
+
pass
|
|
237
|
+
else:
|
|
238
|
+
existing_indexes = inspector.get_indexes(table_name)
|
|
239
|
+
index_exists = any(idx['name'] == index_name for idx in existing_indexes)
|
|
240
|
+
if not index_exists:
|
|
241
|
+
op.create_index(index_name, table_name, columns)
|
|
206
242
|
|
|
207
243
|
|
|
208
244
|
def _drop_index_safe(index_name: str, table_name: str) -> None:
|
|
209
245
|
"""Drop index only if it exists."""
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
246
|
+
bind = op.get_bind()
|
|
247
|
+
inspector = sa.inspect(bind)
|
|
248
|
+
|
|
249
|
+
if bind.dialect.name == 'postgresql':
|
|
250
|
+
bind.execute(sa.text(f"DROP INDEX IF EXISTS {index_name}"))
|
|
251
|
+
elif bind.dialect.name == 'sqlite':
|
|
252
|
+
try:
|
|
253
|
+
op.drop_index(index_name, table_name=table_name)
|
|
254
|
+
except Exception:
|
|
255
|
+
pass
|
|
256
|
+
else:
|
|
257
|
+
existing_indexes = inspector.get_indexes(table_name)
|
|
258
|
+
index_exists = any(idx['name'] == index_name for idx in existing_indexes)
|
|
259
|
+
if index_exists:
|
|
260
|
+
op.drop_index(index_name, table_name=table_name)
|
|
214
261
|
|
|
215
262
|
|
|
216
263
|
def downgrade() -> None:
|
|
@@ -297,6 +344,7 @@ def _downgrade_sqlite() -> None:
|
|
|
297
344
|
|
|
298
345
|
def _downgrade_standard_sql() -> None:
|
|
299
346
|
"""Handle PostgreSQL/MySQL downgrade using ALTER COLUMN."""
|
|
347
|
+
bind = op.get_bind()
|
|
300
348
|
|
|
301
349
|
# Drop indexes on new columns
|
|
302
350
|
_drop_index_safe("ix_chat_messages_session_id_created_time", "chat_messages")
|
|
@@ -308,18 +356,32 @@ def _downgrade_standard_sql() -> None:
|
|
|
308
356
|
op.add_column("sessions", sa.Column("created_at", sa.DateTime(), nullable=True))
|
|
309
357
|
op.add_column("sessions", sa.Column("updated_at", sa.DateTime(), nullable=True))
|
|
310
358
|
|
|
311
|
-
# Convert epoch milliseconds back to datetime
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
359
|
+
# Convert epoch milliseconds back to datetime based on database type
|
|
360
|
+
if bind.dialect.name == 'postgresql':
|
|
361
|
+
op.execute("""
|
|
362
|
+
UPDATE sessions
|
|
363
|
+
SET created_at = to_timestamp(created_time / 1000.0)
|
|
364
|
+
WHERE created_time IS NOT NULL
|
|
365
|
+
""")
|
|
366
|
+
|
|
367
|
+
op.execute("""
|
|
368
|
+
UPDATE sessions
|
|
369
|
+
SET updated_at = to_timestamp(updated_time / 1000.0)
|
|
370
|
+
WHERE updated_time IS NOT NULL
|
|
371
|
+
""")
|
|
372
|
+
else:
|
|
373
|
+
# MySQL and other databases
|
|
374
|
+
op.execute("""
|
|
375
|
+
UPDATE sessions
|
|
376
|
+
SET created_at = FROM_UNIXTIME(created_time / 1000.0)
|
|
377
|
+
WHERE created_time IS NOT NULL
|
|
378
|
+
""")
|
|
379
|
+
|
|
380
|
+
op.execute("""
|
|
381
|
+
UPDATE sessions
|
|
382
|
+
SET updated_at = FROM_UNIXTIME(updated_time / 1000.0)
|
|
383
|
+
WHERE updated_time IS NOT NULL
|
|
384
|
+
""")
|
|
323
385
|
|
|
324
386
|
op.drop_column("sessions", "created_time")
|
|
325
387
|
op.drop_column("sessions", "updated_time")
|
|
@@ -327,11 +389,19 @@ def _downgrade_standard_sql() -> None:
|
|
|
327
389
|
# For chat_messages table: convert back to datetime column
|
|
328
390
|
op.add_column("chat_messages", sa.Column("created_at", sa.DateTime(), nullable=True))
|
|
329
391
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
392
|
+
if bind.dialect.name == 'postgresql':
|
|
393
|
+
op.execute("""
|
|
394
|
+
UPDATE chat_messages
|
|
395
|
+
SET created_at = to_timestamp(created_time / 1000.0)
|
|
396
|
+
WHERE created_time IS NOT NULL
|
|
397
|
+
""")
|
|
398
|
+
else:
|
|
399
|
+
# MySQL and other databases
|
|
400
|
+
op.execute("""
|
|
401
|
+
UPDATE chat_messages
|
|
402
|
+
SET created_at = FROM_UNIXTIME(created_time / 1000.0)
|
|
403
|
+
WHERE created_time IS NOT NULL
|
|
404
|
+
""")
|
|
335
405
|
|
|
336
406
|
op.drop_column("chat_messages", "created_time")
|
|
337
407
|
|
|
@@ -4,9 +4,6 @@ Defines configuration schema and programmatically creates the WebUIBackendCompon
|
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
6
|
from typing import Any, Dict, List
|
|
7
|
-
import os
|
|
8
|
-
from alembic import command
|
|
9
|
-
from alembic.config import Config
|
|
10
7
|
from solace_ai_connector.common.log import log
|
|
11
8
|
|
|
12
9
|
from ...gateway.http_sse.component import WebUIBackendComponent
|
|
@@ -188,31 +185,6 @@ class WebUIBackendApp(BaseGatewayApp):
|
|
|
188
185
|
)
|
|
189
186
|
super().__init__(app_info, **kwargs)
|
|
190
187
|
|
|
191
|
-
try:
|
|
192
|
-
|
|
193
|
-
alembic_ini_path = os.path.join(os.path.dirname(__file__), "alembic.ini")
|
|
194
|
-
if os.path.exists(alembic_ini_path):
|
|
195
|
-
log.debug("Loading Alembic configuration from alembic.ini.")
|
|
196
|
-
alembic_cfg = Config(alembic_ini_path)
|
|
197
|
-
else:
|
|
198
|
-
log.warning(
|
|
199
|
-
"alembic.ini not found. Falling back to programmatic configuration."
|
|
200
|
-
)
|
|
201
|
-
alembic_cfg = Config()
|
|
202
|
-
alembic_cfg.set_main_option(
|
|
203
|
-
"script_location",
|
|
204
|
-
os.path.join(os.path.dirname(__file__), "alembic"),
|
|
205
|
-
)
|
|
206
|
-
|
|
207
|
-
session_service_config = self.get_config("session_service", {})
|
|
208
|
-
db_url = session_service_config.get("database_url")
|
|
209
|
-
if db_url:
|
|
210
|
-
alembic_cfg.set_main_option("sqlalchemy.url", db_url)
|
|
211
|
-
command.upgrade(alembic_cfg, "head")
|
|
212
|
-
else:
|
|
213
|
-
log.warning("Database URL not configured. Skipping migrations.")
|
|
214
|
-
except Exception as e:
|
|
215
|
-
log.warning(f"Alembic migration failed: {e}")
|
|
216
188
|
|
|
217
189
|
log.debug("%s WebUIBackendApp initialization complete.", self.name)
|
|
218
190
|
|
|
@@ -310,38 +310,48 @@ def _setup_alembic_config(database_url: str) -> Config:
|
|
|
310
310
|
|
|
311
311
|
|
|
312
312
|
def _run_community_migrations(database_url: str) -> None:
|
|
313
|
+
"""
|
|
314
|
+
Run Alembic migrations for the community database schema.
|
|
315
|
+
This includes sessions, chat_messages tables and their indexes.
|
|
316
|
+
"""
|
|
313
317
|
try:
|
|
314
318
|
from sqlalchemy import create_engine
|
|
315
319
|
|
|
320
|
+
log.info("Starting community migrations...")
|
|
316
321
|
engine = create_engine(database_url)
|
|
317
322
|
inspector = sa.inspect(engine)
|
|
318
323
|
existing_tables = inspector.get_table_names()
|
|
319
324
|
|
|
320
325
|
if not existing_tables or "sessions" not in existing_tables:
|
|
321
|
-
log.info("Running community database
|
|
326
|
+
log.info("Running initial community database setup")
|
|
322
327
|
alembic_cfg = _setup_alembic_config(database_url)
|
|
323
328
|
command.upgrade(alembic_cfg, "head")
|
|
324
|
-
log.info("Community database migrations
|
|
329
|
+
log.info("Community database migrations completed")
|
|
325
330
|
else:
|
|
326
|
-
log.info(
|
|
327
|
-
|
|
328
|
-
)
|
|
331
|
+
log.info("Checking for community schema updates")
|
|
332
|
+
alembic_cfg = _setup_alembic_config(database_url)
|
|
333
|
+
command.upgrade(alembic_cfg, "head")
|
|
334
|
+
log.info("Community database schema is current")
|
|
329
335
|
except Exception as e:
|
|
330
336
|
log.warning(
|
|
331
|
-
"Community migration check failed
|
|
337
|
+
"Community migration check failed: %s - attempting to run migrations",
|
|
332
338
|
e,
|
|
333
339
|
)
|
|
334
340
|
try:
|
|
335
341
|
alembic_cfg = _setup_alembic_config(database_url)
|
|
336
342
|
command.upgrade(alembic_cfg, "head")
|
|
337
|
-
log.info("Community database migrations
|
|
343
|
+
log.info("Community database migrations completed")
|
|
338
344
|
except Exception as migration_error:
|
|
339
|
-
log.
|
|
340
|
-
|
|
341
|
-
)
|
|
345
|
+
log.error("Community migration failed: %s", migration_error)
|
|
346
|
+
log.error("Check database connectivity and permissions")
|
|
347
|
+
raise RuntimeError(f"Community database migration failed: {migration_error}") from migration_error
|
|
342
348
|
|
|
343
349
|
|
|
344
350
|
def _run_enterprise_migrations(component: "WebUIBackendComponent", database_url: str) -> None:
|
|
351
|
+
"""
|
|
352
|
+
Run migrations for enterprise features like advanced analytics, audit logs, etc.
|
|
353
|
+
This is optional and only runs if the enterprise package is available.
|
|
354
|
+
"""
|
|
345
355
|
try:
|
|
346
356
|
from solace_agent_mesh_enterprise.webui_backend.migration_runner import (
|
|
347
357
|
run_migrations,
|
|
@@ -349,19 +359,25 @@ def _run_enterprise_migrations(component: "WebUIBackendComponent", database_url:
|
|
|
349
359
|
|
|
350
360
|
webui_app = component.get_app()
|
|
351
361
|
app_config = getattr(webui_app, "app_config", {}) if webui_app else {}
|
|
352
|
-
log.info("
|
|
362
|
+
log.info("Starting enterprise migrations...")
|
|
353
363
|
run_migrations(database_url, app_config)
|
|
354
364
|
log.info("Enterprise migrations completed")
|
|
355
365
|
except (ImportError, ModuleNotFoundError):
|
|
356
366
|
log.debug("Enterprise module not found - skipping enterprise migrations")
|
|
357
367
|
except Exception as e:
|
|
358
|
-
log.
|
|
368
|
+
log.error("Enterprise migration failed: %s", e)
|
|
369
|
+
log.error("Advanced features may be unavailable")
|
|
370
|
+
raise RuntimeError(f"Enterprise database migration failed: {e}") from e
|
|
359
371
|
|
|
360
372
|
|
|
361
373
|
def _setup_database(component: "WebUIBackendComponent", database_url: str) -> None:
|
|
374
|
+
"""
|
|
375
|
+
Initialize database connection and run all required migrations.
|
|
376
|
+
This sets up both community and enterprise database schemas.
|
|
377
|
+
"""
|
|
362
378
|
dependencies.init_database(database_url)
|
|
363
379
|
log.info("Persistence enabled - sessions will be stored in database")
|
|
364
|
-
log.info("
|
|
380
|
+
log.info("Running database migrations...")
|
|
365
381
|
|
|
366
382
|
_run_community_migrations(database_url)
|
|
367
383
|
_run_enterprise_migrations(component, database_url)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: solace-agent-mesh
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.7
|
|
4
4
|
Summary: Solace Agent Mesh is an open-source framework for building event-driven, multi-agent AI systems where specialized agents collaborate on complex tasks.
|
|
5
5
|
Project-URL: Homepage, https://github.com/SolaceLabs/solace-agent-mesh
|
|
6
6
|
Project-URL: Repository, https://github.com/SolaceLabs/solace-agent-mesh
|