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