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.
- solace_agent_mesh/agent/adk/adk_llm.txt +12 -18
- solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +1 -1
- solace_agent_mesh/agent/adk/callbacks.py +138 -20
- solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +2 -0
- solace_agent_mesh/agent/adk/models/lite_llm.py +38 -5
- solace_agent_mesh/agent/adk/models/models_llm.txt +82 -35
- solace_agent_mesh/agent/adk/runner.py +9 -0
- solace_agent_mesh/agent/adk/services.py +3 -3
- solace_agent_mesh/agent/adk/stream_parser.py +6 -1
- solace_agent_mesh/agent/adk/tool_wrapper.py +3 -0
- solace_agent_mesh/agent/agent_llm.txt +61 -70
- solace_agent_mesh/agent/protocol/event_handlers.py +29 -1
- solace_agent_mesh/agent/protocol/protocol_llm.txt +1 -1
- solace_agent_mesh/agent/proxies/a2a/a2a_llm.txt +190 -0
- solace_agent_mesh/agent/proxies/base/base_llm.txt +148 -0
- solace_agent_mesh/agent/proxies/proxies_llm.txt +283 -0
- solace_agent_mesh/agent/sac/app.py +22 -0
- solace_agent_mesh/agent/sac/component.py +76 -40
- solace_agent_mesh/agent/sac/sac_llm.txt +1 -1
- solace_agent_mesh/agent/sac/task_execution_context.py +21 -0
- solace_agent_mesh/agent/testing/testing_llm.txt +2 -1
- solace_agent_mesh/agent/tools/builtin_artifact_tools.py +13 -148
- solace_agent_mesh/agent/tools/dynamic_tool.py +2 -0
- solace_agent_mesh/agent/tools/tools_llm.txt +93 -80
- solace_agent_mesh/agent/tools/tools_llm_detail.txt +3 -2
- solace_agent_mesh/agent/utils/artifact_helpers.py +4 -0
- solace_agent_mesh/agent/utils/utils_llm.txt +16 -2
- solace_agent_mesh/assets/docs/404.html +3 -3
- solace_agent_mesh/assets/docs/assets/js/05749d90.c70b2be9.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/15ba94aa.92fea363.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/15e40e79.36003774.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2987107d.a80604f9.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3ac1795d.e4870a49.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3ff0015d.b63ee53a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5c2bd65f.45b32c2b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/631738c7.fa471607.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6a520c9d.b6e3f2ce.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6ad8f0bd.a5b36a60.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/71da7b71.374b9d54.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8b032486.91a91afc.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/94e8668d.09ed9234.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{ab9708a8.3e6dd091.js → ab9708a8.245ae0ef.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/ad87452a.9d73dad6.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.f902fad8.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/da0b5bad.b62f7b08.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/dd817ffc.c37a755e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/dd81e2b8.b682e9c2.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/de915948.44a432bc.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e04b235d.c9c50c7b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e3d9abda.d11c67a7.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{e6f9706b.e74a984d.js → e6f9706b.045d0fa1.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/f284c35a.5099c51e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ff4d71f2.74710fc1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/main.e6488e8b.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/runtime~main.d9606d6a.js +1 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +18 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/components/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +196 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +6 -7
- solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes-deployment/index.html +47 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +160 -169
- solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +59 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +62 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +10 -6
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +24 -29
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +440 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +27 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +62 -0
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +5 -4
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +290 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +9 -9
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +251 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +88 -0
- solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +3 -3
- solace_agent_mesh/assets/docs/lunr-index-1762189824009.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -1
- solace_agent_mesh/assets/docs/search-doc-1762189824009.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/cli/commands/docs_cmd.py +4 -1
- solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +1 -1
- solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-D4_RMYRh.js → authCallback-tcIFZLis.js} +1 -1
- solace_agent_mesh/client/webui/frontend/static/assets/{client-UZ3qU6Bq.js → client-CRYdKo2Q.js} +3 -3
- solace_agent_mesh/client/webui/frontend/static/assets/main-CojeY_1w.css +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-ILja9MCG.js +353 -0
- solace_agent_mesh/client/webui/frontend/static/assets/vendor-CINwxvwV.js +470 -0
- solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -3
- solace_agent_mesh/client/webui/frontend/static/index.html +4 -4
- solace_agent_mesh/common/a2a/a2a_llm.txt +13 -20
- solace_agent_mesh/common/a2a/protocol.py +5 -0
- solace_agent_mesh/common/a2a/types.py +1 -0
- solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +49 -11
- solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json +23 -6
- solace_agent_mesh/common/a2a_spec/schemas/feedback_event.json +51 -0
- solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +26 -9
- solace_agent_mesh/common/common_llm.txt +13 -34
- solace_agent_mesh/common/data_parts.py +20 -4
- solace_agent_mesh/common/middleware/middleware_llm.txt +1 -1
- solace_agent_mesh/common/sac/sac_llm.txt +1 -1
- solace_agent_mesh/common/sam_events/sam_events_llm.txt +1 -1
- solace_agent_mesh/common/services/employee_service.py +1 -1
- solace_agent_mesh/common/services/providers/providers_llm.txt +3 -2
- solace_agent_mesh/common/services/services_llm.txt +9 -4
- solace_agent_mesh/common/utils/embeds/constants.py +1 -0
- solace_agent_mesh/common/utils/embeds/embeds_llm.txt +1 -1
- solace_agent_mesh/common/utils/embeds/modifiers.py +2 -1
- solace_agent_mesh/common/utils/embeds/resolver.py +58 -6
- solace_agent_mesh/common/utils/embeds/types.py +8 -0
- solace_agent_mesh/common/utils/utils_llm.txt +5 -6
- solace_agent_mesh/core_a2a/core_a2a_llm.txt +1 -1
- solace_agent_mesh/gateway/adapter/__init__.py +1 -0
- solace_agent_mesh/gateway/adapter/base.py +143 -0
- solace_agent_mesh/gateway/adapter/types.py +221 -0
- solace_agent_mesh/gateway/base/app.py +29 -2
- solace_agent_mesh/gateway/base/base_llm.txt +10 -8
- solace_agent_mesh/gateway/base/component.py +573 -142
- solace_agent_mesh/gateway/gateway_llm.txt +55 -59
- solace_agent_mesh/gateway/generic/__init__.py +1 -0
- solace_agent_mesh/gateway/generic/app.py +50 -0
- solace_agent_mesh/gateway/generic/component.py +650 -0
- solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +99 -49
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_fulltext_search_indexes.py +92 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py +72 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py +150 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_default_agent_to_projects.py +26 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py +135 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +26 -20
- solace_agent_mesh/gateway/http_sse/app.py +19 -14
- solace_agent_mesh/gateway/http_sse/component.py +150 -118
- solace_agent_mesh/gateway/http_sse/components/components_llm.txt +1 -1
- solace_agent_mesh/gateway/http_sse/dependencies.py +21 -3
- solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +8 -8
- solace_agent_mesh/gateway/http_sse/main.py +55 -14
- solace_agent_mesh/gateway/http_sse/repository/__init__.py +19 -1
- solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +56 -98
- solace_agent_mesh/gateway/http_sse/repository/entities/project.py +81 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/project_user.py +47 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/session.py +23 -1
- solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +47 -0
- solace_agent_mesh/gateway/http_sse/repository/interfaces.py +112 -4
- solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +9 -1
- solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +51 -60
- solace_agent_mesh/gateway/http_sse/repository/models/project_model.py +51 -0
- solace_agent_mesh/gateway/http_sse/repository/models/project_user_model.py +75 -0
- solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +7 -1
- solace_agent_mesh/gateway/http_sse/repository/project_repository.py +172 -0
- solace_agent_mesh/gateway/http_sse/repository/project_user_repository.py +186 -0
- solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +125 -157
- solace_agent_mesh/gateway/http_sse/repository/session_repository.py +269 -8
- solace_agent_mesh/gateway/http_sse/routers/artifacts.py +143 -51
- solace_agent_mesh/gateway/http_sse/routers/config.py +69 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +198 -94
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/project_requests.py +48 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +68 -18
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +13 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/project_responses.py +30 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +51 -35
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +2 -0
- solace_agent_mesh/gateway/http_sse/routers/feedback.py +133 -2
- solace_agent_mesh/gateway/http_sse/routers/projects.py +542 -0
- solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +9 -11
- solace_agent_mesh/gateway/http_sse/routers/sessions.py +154 -3
- solace_agent_mesh/gateway/http_sse/routers/tasks.py +296 -4
- solace_agent_mesh/gateway/http_sse/services/project_service.py +403 -0
- solace_agent_mesh/gateway/http_sse/services/services_llm.txt +16 -10
- solace_agent_mesh/gateway/http_sse/services/session_service.py +178 -6
- solace_agent_mesh/gateway/http_sse/shared/exception_handlers.py +2 -3
- solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +48 -14
- solace_agent_mesh/solace_agent_mesh_llm.txt +1 -1
- {solace_agent_mesh-1.6.2.dist-info → solace_agent_mesh-1.7.0.dist-info}/METADATA +3 -5
- {solace_agent_mesh-1.6.2.dist-info → solace_agent_mesh-1.7.0.dist-info}/RECORD +219 -176
- solace_agent_mesh/assets/docs/assets/js/15ba94aa.932dd2db.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/3ac1795d.76654dd9.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/3ff0015d.2be20244.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/547e15cc.2cbb060a.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/5c2bd65f.eda4bcb2.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/631738c7.7c4594c9.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/6a520c9d.ba015d81.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/6ad8f0bd.f4b15f3b.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/71da7b71.ddbdfbe2.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/8024126c.56e59919.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/94e8668d.b5ddb7a1.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/da0b5bad.d08a9466.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/dd817ffc.0aa9630a.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/dd81e2b8.d590bc9e.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/de915948.27d6b065.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e3d9abda.6b9493d0.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e92d0134.4f395c6b.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/f284c35a.720d2ef2.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/ff4d71f2.15b02f97.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/main.d1643f0b.js +0 -2
- solace_agent_mesh/assets/docs/assets/js/runtime~main.97f920d4.js +0 -1
- solace_agent_mesh/assets/docs/lunr-index-1761663789856.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1761663789856.json +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/main--3yJYl7S.css +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/main-DojKHS49.js +0 -342
- solace_agent_mesh/client/webui/frontend/static/assets/vendor-DSqhjwq_.js +0 -405
- /solace_agent_mesh/assets/docs/assets/js/{main.d1643f0b.js.LICENSE.txt → main.e6488e8b.js.LICENSE.txt} +0 -0
- {solace_agent_mesh-1.6.2.dist-info → solace_agent_mesh-1.7.0.dist-info}/WHEEL +0 -0
- {solace_agent_mesh-1.6.2.dist-info → solace_agent_mesh-1.7.0.dist-info}/entry_points.txt +0 -0
- {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
|
|
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
|
-
- `
|
|
11
|
-
- `
|
|
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
|
-
###
|
|
89
|
-
**Purpose:**
|
|
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
|
|
94
|
-
- `downgrade() -> None` -
|
|
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 "
|
|
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
|
|
103
|
+
alembic upgrade 98882922fa59
|
|
104
104
|
|
|
105
105
|
# Rollback this migration
|
|
106
106
|
alembic downgrade f6e7d8c9b0a1
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
-
###
|
|
110
|
-
**Purpose:**
|
|
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` -
|
|
115
|
-
- `downgrade() -> None` - Removes
|
|
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 "
|
|
119
|
-
- `down_revision:
|
|
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
|
|
124
|
+
alembic upgrade 20251015_session_idx
|
|
125
125
|
|
|
126
126
|
# Rollback this migration
|
|
127
|
-
alembic downgrade
|
|
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
|
-
--
|
|
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:
|
|
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,
|