solace-agent-mesh 1.6.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/app_llm_agent.py +26 -0
- solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py +165 -1
- solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py +163 -0
- solace_agent_mesh/agent/adk/callbacks.py +852 -109
- solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +234 -36
- 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 +77 -21
- solace_agent_mesh/agent/adk/models/oauth2_token_manager.py +24 -137
- solace_agent_mesh/agent/adk/runner.py +85 -20
- solace_agent_mesh/agent/adk/schema_migration.py +88 -0
- solace_agent_mesh/agent/adk/services.py +94 -18
- solace_agent_mesh/agent/adk/setup.py +281 -65
- solace_agent_mesh/agent/adk/stream_parser.py +231 -37
- solace_agent_mesh/agent/adk/tool_wrapper.py +3 -0
- solace_agent_mesh/agent/protocol/event_handlers.py +472 -137
- solace_agent_mesh/agent/proxies/a2a/app.py +3 -2
- 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/app.py +3 -2
- 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 +91 -3
- solace_agent_mesh/agent/sac/component.py +591 -157
- solace_agent_mesh/agent/sac/patch_adk.py +8 -16
- solace_agent_mesh/agent/sac/task_execution_context.py +146 -4
- 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 +710 -171
- solace_agent_mesh/agent/tools/deep_research_tools.py +2161 -0
- solace_agent_mesh/agent/tools/dynamic_tool.py +2 -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 +57 -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 +248 -6
- 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/2987107d.a80604f9.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/631738c7.fa471607.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/6a520c9d.b6e3f2ce.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6aaedf65.7253541d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6ad8f0bd.a5b36a60.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6d84eae0.fd23ba4a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/71da7b71.374b9d54.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/8b032486.91a91afc.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/ad87452a.9d73dad6.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/da0b5bad.b62f7b08.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.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/ff4d71f2.74710fc1.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 +82 -68
- 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 +182 -0
- 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 -49
- solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +29 -30
- 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 +90 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +17 -16
- 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 +162 -171
- 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 +86 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +67 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +23 -19
- 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 +112 -87
- 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 +87 -64
- 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 +44 -44
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +39 -37
- 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 +311 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +39 -42
- 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 +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 +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/docs_cmd.py +4 -1
- 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-BTf6dqwp.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-CGk8Suyh.js +565 -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/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/events.py +2 -1
- solace_agent_mesh/common/a2a/protocol.py +5 -0
- solace_agent_mesh/common/a2a/types.py +2 -1
- 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/agent_registry.py +38 -11
- solace_agent_mesh/common/data_parts.py +144 -4
- 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 +97 -19
- solace_agent_mesh/common/sam_events/event_service.py +2 -2
- solace_agent_mesh/common/services/employee_service.py +1 -1
- solace_agent_mesh/common/utils/embeds/constants.py +1 -0
- solace_agent_mesh/common/utils/embeds/converter.py +1 -8
- solace_agent_mesh/common/utils/embeds/modifiers.py +4 -28
- solace_agent_mesh/common/utils/embeds/resolver.py +152 -31
- solace_agent_mesh/common/utils/embeds/types.py +9 -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/pydantic_utils.py +90 -3
- 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/__init__.py +1 -0
- solace_agent_mesh/gateway/adapter/base.py +170 -0
- solace_agent_mesh/gateway/adapter/types.py +230 -0
- solace_agent_mesh/gateway/base/app.py +39 -2
- solace_agent_mesh/gateway/base/auth_interface.py +103 -0
- solace_agent_mesh/gateway/base/component.py +1027 -151
- 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 +894 -0
- solace_agent_mesh/gateway/http_sse/alembic/env.py +0 -7
- 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 +109 -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/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 +40 -11
- solace_agent_mesh/gateway/http_sse/component.py +285 -160
- solace_agent_mesh/gateway/http_sse/dependencies.py +149 -114
- solace_agent_mesh/gateway/http_sse/main.py +68 -450
- solace_agent_mesh/gateway/http_sse/repository/__init__.py +19 -1
- solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +2 -2
- 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 +26 -3
- solace_agent_mesh/gateway/http_sse/repository/entities/task.py +7 -0
- solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +47 -0
- solace_agent_mesh/gateway/http_sse/repository/interfaces.py +114 -6
- solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +13 -0
- 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/prompt_model.py +159 -0
- solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +8 -2
- solace_agent_mesh/gateway/http_sse/repository/models/task_model.py +8 -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/session_repository.py +177 -11
- 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 +256 -58
- solace_agent_mesh/gateway/http_sse/routers/auth.py +168 -134
- solace_agent_mesh/gateway/http_sse/routers/config.py +302 -8
- 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/project_requests.py +48 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +14 -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 +31 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +5 -2
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/version_responses.py +31 -0
- solace_agent_mesh/gateway/http_sse/routers/feedback.py +133 -2
- solace_agent_mesh/gateway/http_sse/routers/people.py +2 -2
- solace_agent_mesh/gateway/http_sse/routers/projects.py +768 -0
- solace_agent_mesh/gateway/http_sse/routers/prompts.py +1416 -0
- solace_agent_mesh/gateway/http_sse/routers/sessions.py +167 -7
- solace_agent_mesh/gateway/http_sse/routers/speech.py +355 -0
- solace_agent_mesh/gateway/http_sse/routers/sse.py +131 -8
- solace_agent_mesh/gateway/http_sse/routers/tasks.py +670 -18
- 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 +92 -9
- 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 +930 -0
- solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py +303 -0
- solace_agent_mesh/gateway/http_sse/services/session_service.py +361 -12
- solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +354 -4
- solace_agent_mesh/gateway/http_sse/session_manager.py +15 -15
- solace_agent_mesh/gateway/http_sse/sse_manager.py +286 -166
- 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 +19 -5
- 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.6.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/METADATA +31 -12
- solace_agent_mesh-1.13.2.dist-info/RECORD +591 -0
- {solace_agent_mesh-1.6.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/WHEEL +1 -1
- solace_agent_mesh/agent/adk/adk_llm.txt +0 -232
- 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 -142
- solace_agent_mesh/agent/agent_llm.txt +0 -378
- 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/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 -57
- solace_agent_mesh/agent/testing/testing_llm_detail.txt +0 -68
- solace_agent_mesh/agent/tools/tools_llm.txt +0 -263
- solace_agent_mesh/agent/tools/tools_llm_detail.txt +0 -274
- solace_agent_mesh/agent/utils/utils_llm.txt +0 -138
- solace_agent_mesh/agent/utils/utils_llm_detail.txt +0 -149
- solace_agent_mesh/assets/docs/assets/js/15ba94aa.932dd2db.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js +0 -2
- solace_agent_mesh/assets/docs/assets/js/240a0364.7eac6021.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.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/55b7b518.f2b1d1ba.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/5c2bd65f.eda4bcb2.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/631738c7.a8b1ef8b.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/6d84eae0.4a5fbf39.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/71da7b71.38583438.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/8024126c.56e59919.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.b5ddb7a1.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.3e6dd091.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/c93cbaa0.eaff365e.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/e6f9706b.e74a984d.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e92d0134.cf6d6522.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/f284c35a.42f59cdd.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/ff4d71f2.15b02f97.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/main.b12eac43.js +0 -2
- solace_agent_mesh/assets/docs/assets/js/runtime~main.e268214e.js +0 -1
- solace_agent_mesh/assets/docs/lunr-index-1761248203150.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1761248203150.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-CaY59VuC.js +0 -25
- solace_agent_mesh/client/webui/frontend/static/assets/main-B32noGmR.js +0 -342
- solace_agent_mesh/client/webui/frontend/static/assets/main-DHJKSW1S.css +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/vendor-BEmvJSYz.js +0 -405
- solace_agent_mesh/common/a2a/a2a_llm.txt +0 -182
- solace_agent_mesh/common/a2a/a2a_llm_detail.txt +0 -193
- solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +0 -407
- solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +0 -736
- solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +0 -313
- solace_agent_mesh/common/common_llm.txt +0 -251
- 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 -80
- solace_agent_mesh/common/services/services_llm.txt +0 -363
- 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 -336
- 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 -224
- solace_agent_mesh/gateway/base/base_llm_detail.txt +0 -235
- solace_agent_mesh/gateway/gateway_llm.txt +0 -373
- solace_agent_mesh/gateway/gateway_llm_detail.txt +0 -3885
- solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +0 -295
- solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +0 -155
- 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 -263
- solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +0 -266
- solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +0 -340
- solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +0 -346
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +0 -83
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +0 -107
- solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +0 -314
- solace_agent_mesh/gateway/http_sse/services/services_llm.txt +0 -297
- solace_agent_mesh/gateway/http_sse/shared/__init__.py +0 -146
- solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +0 -285
- 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-1.6.1.dist-info/RECORD +0 -525
- /solace_agent_mesh/assets/docs/assets/js/{main.b12eac43.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.6.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/entry_points.txt +0 -0
- {solace_agent_mesh-1.6.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
# DEVELOPER GUIDE: entities
|
|
2
|
-
|
|
3
|
-
## Quick Summary
|
|
4
|
-
The entities directory contains domain entities for the repository layer, providing core business objects for managing chat sessions, messages, tasks, feedback, and events with built-in validation and business logic.
|
|
5
|
-
|
|
6
|
-
## Files Overview
|
|
7
|
-
- `__init__.py` - Exports the main domain entities (Feedback, Message, Session, SessionHistory, Task, TaskEvent)
|
|
8
|
-
- `feedback.py` - Feedback entity for user ratings and comments on tasks
|
|
9
|
-
- `message.py` - Message entity with content validation and sender type checking
|
|
10
|
-
- `session.py` - Session entity with name management and access control
|
|
11
|
-
- `session_history.py` - Composite entity combining sessions with their message history
|
|
12
|
-
- `task.py` - Task entity for tracking user tasks and their status with token usage
|
|
13
|
-
- `task_event.py` - Task event entity for tracking events related to tasks
|
|
14
|
-
|
|
15
|
-
## Developer API Reference
|
|
16
|
-
|
|
17
|
-
### __init__.py
|
|
18
|
-
**Purpose:** Provides centralized imports for all domain entities
|
|
19
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.entities import Feedback, Message, Session, SessionHistory, Task, TaskEvent`
|
|
20
|
-
|
|
21
|
-
### feedback.py
|
|
22
|
-
**Purpose:** Defines the Feedback domain entity for user ratings and comments
|
|
23
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.entities import Feedback`
|
|
24
|
-
|
|
25
|
-
**Classes:**
|
|
26
|
-
- `Feedback(id: str, session_id: str, task_id: str, user_id: str, rating: str, comment: str | None = None, created_time: int)` - Feedback domain entity
|
|
27
|
-
- `id: str` - Unique feedback identifier
|
|
28
|
-
- `session_id: str` - Associated session identifier
|
|
29
|
-
- `task_id: str` - Associated task identifier
|
|
30
|
-
- `user_id: str` - User who provided feedback
|
|
31
|
-
- `rating: str` - User rating
|
|
32
|
-
- `comment: str | None` - Optional feedback comment
|
|
33
|
-
- `created_time: int` - Feedback creation timestamp
|
|
34
|
-
|
|
35
|
-
**Usage Examples:**
|
|
36
|
-
```python
|
|
37
|
-
from solace_agent_mesh.gateway.http_sse.repository.entities import Feedback
|
|
38
|
-
|
|
39
|
-
# Create feedback
|
|
40
|
-
feedback = Feedback(
|
|
41
|
-
id="feedback_123",
|
|
42
|
-
session_id="session_456",
|
|
43
|
-
task_id="task_789",
|
|
44
|
-
user_id="user_123",
|
|
45
|
-
rating="5",
|
|
46
|
-
comment="Great service!",
|
|
47
|
-
created_time=1640995200000
|
|
48
|
-
)
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### message.py
|
|
52
|
-
**Purpose:** Defines the Message domain entity with business logic for chat messages
|
|
53
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.entities import Message`
|
|
54
|
-
|
|
55
|
-
**Classes:**
|
|
56
|
-
- `Message(id: MessageId, session_id: SessionId, message: str, sender_type: SenderType, sender_name: str, message_type: MessageType = MessageType.TEXT, created_time: int)` - Message domain entity with business logic
|
|
57
|
-
- `validate_message_content() -> None` - Validates message content is not empty and under 10MB limit
|
|
58
|
-
- `is_from_user() -> bool` - Checks if message is from a user
|
|
59
|
-
- `is_from_agent() -> bool` - Checks if message is from an agent
|
|
60
|
-
- `is_system_message() -> bool` - Checks if message is a system message
|
|
61
|
-
- `id: MessageId` - Unique message identifier
|
|
62
|
-
- `session_id: SessionId` - Associated session identifier
|
|
63
|
-
- `message: str` - Message content
|
|
64
|
-
- `sender_type: SenderType` - Type of sender (USER, AGENT, SYSTEM)
|
|
65
|
-
- `sender_name: str` - Name of the message sender
|
|
66
|
-
- `message_type: MessageType` - Type of message content
|
|
67
|
-
- `created_time: int` - Message creation timestamp
|
|
68
|
-
|
|
69
|
-
**Usage Examples:**
|
|
70
|
-
```python
|
|
71
|
-
from solace_agent_mesh.gateway.http_sse.repository.entities import Message
|
|
72
|
-
from solace_agent_mesh.gateway.http_sse.shared.enums import SenderType, MessageType
|
|
73
|
-
|
|
74
|
-
# Create a user message
|
|
75
|
-
message = Message(
|
|
76
|
-
id="msg_123",
|
|
77
|
-
session_id="session_456",
|
|
78
|
-
message="Hello, how can I help?",
|
|
79
|
-
sender_type=SenderType.USER,
|
|
80
|
-
sender_name="John Doe",
|
|
81
|
-
message_type=MessageType.TEXT,
|
|
82
|
-
created_time=1640995200000
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
# Validate message content
|
|
86
|
-
message.validate_message_content()
|
|
87
|
-
|
|
88
|
-
# Check sender type
|
|
89
|
-
if message.is_from_user():
|
|
90
|
-
print("Message from user")
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### session.py
|
|
94
|
-
**Purpose:** Defines the Session domain entity with business logic for chat sessions
|
|
95
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.entities import Session`
|
|
96
|
-
|
|
97
|
-
**Classes:**
|
|
98
|
-
- `Session(id: SessionId, user_id: UserId, name: str | None = None, agent_id: AgentId | None = None, created_time: int, updated_time: int | None = None)` - Session domain entity with business logic
|
|
99
|
-
- `update_name(new_name: str) -> None` - Updates session name with validation and sets updated_time
|
|
100
|
-
- `mark_activity() -> None` - Marks session as having recent activity by updating timestamp
|
|
101
|
-
- `can_be_deleted_by_user(user_id: UserId) -> bool` - Checks if user can delete this session
|
|
102
|
-
- `can_be_accessed_by_user(user_id: UserId) -> bool` - Checks if user can access this session
|
|
103
|
-
- `id: SessionId` - Unique session identifier
|
|
104
|
-
- `user_id: UserId` - Owner user identifier
|
|
105
|
-
- `name: str | None` - Optional session name
|
|
106
|
-
- `agent_id: AgentId | None` - Optional associated agent identifier
|
|
107
|
-
- `created_time: int` - Session creation timestamp
|
|
108
|
-
- `updated_time: int | None` - Last update timestamp
|
|
109
|
-
|
|
110
|
-
**Usage Examples:**
|
|
111
|
-
```python
|
|
112
|
-
from solace_agent_mesh.gateway.http_sse.repository.entities import Session
|
|
113
|
-
|
|
114
|
-
# Create a new session
|
|
115
|
-
session = Session(
|
|
116
|
-
id="session_123",
|
|
117
|
-
user_id="user_456",
|
|
118
|
-
name="Customer Support Chat",
|
|
119
|
-
agent_id="agent_789",
|
|
120
|
-
created_time=1640995200000
|
|
121
|
-
)
|
|
122
|
-
|
|
123
|
-
# Update session name
|
|
124
|
-
session.update_name("Updated Chat Name")
|
|
125
|
-
|
|
126
|
-
# Mark activity
|
|
127
|
-
session.mark_activity()
|
|
128
|
-
|
|
129
|
-
# Check permissions
|
|
130
|
-
if session.can_be_accessed_by_user("user_456"):
|
|
131
|
-
print("User can access this session")
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### session_history.py
|
|
135
|
-
**Purpose:** Defines a composite entity that combines a session with its message history
|
|
136
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.entities import SessionHistory`
|
|
137
|
-
|
|
138
|
-
**Classes:**
|
|
139
|
-
- `SessionHistory(session: Session, messages: list[Message] = [], total_message_count: int = 0)` - Composite entity representing a session with its messages
|
|
140
|
-
- `session: Session` - The session entity
|
|
141
|
-
- `messages: list[Message]` - List of messages in the session
|
|
142
|
-
- `total_message_count: int` - Total count of messages (may exceed messages list length for pagination)
|
|
143
|
-
|
|
144
|
-
**Usage Examples:**
|
|
145
|
-
```python
|
|
146
|
-
from solace_agent_mesh.gateway.http_sse.repository.entities import SessionHistory, Session, Message
|
|
147
|
-
from solace_agent_mesh.gateway.http_sse.shared.enums import SenderType
|
|
148
|
-
|
|
149
|
-
# Create session history
|
|
150
|
-
session = Session(
|
|
151
|
-
id="session_123",
|
|
152
|
-
user_id="user_456",
|
|
153
|
-
created_time=1640995200000
|
|
154
|
-
)
|
|
155
|
-
|
|
156
|
-
messages = [
|
|
157
|
-
Message(
|
|
158
|
-
id="msg_1",
|
|
159
|
-
session_id="session_123",
|
|
160
|
-
message="Hello",
|
|
161
|
-
sender_type=SenderType.USER,
|
|
162
|
-
sender_name="John",
|
|
163
|
-
created_time=1640995200000
|
|
164
|
-
)
|
|
165
|
-
]
|
|
166
|
-
|
|
167
|
-
history = SessionHistory(
|
|
168
|
-
session=session,
|
|
169
|
-
messages=messages,
|
|
170
|
-
total_message_count=1
|
|
171
|
-
)
|
|
172
|
-
|
|
173
|
-
# Access session and messages
|
|
174
|
-
print(f"Session: {history.session.id}")
|
|
175
|
-
print(f"Message count: {len(history.messages)}")
|
|
176
|
-
print(f"Total messages: {history.total_message_count}")
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
### task.py
|
|
180
|
-
**Purpose:** Defines the Task domain entity for tracking user tasks with token usage metrics
|
|
181
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.entities import Task`
|
|
182
|
-
|
|
183
|
-
**Classes:**
|
|
184
|
-
- `Task(id: str, user_id: str, start_time: int, end_time: int | None = None, status: str | None = None, initial_request_text: str | None = None, total_input_tokens: int | None = None, total_output_tokens: int | None = None, total_cached_input_tokens: int | None = None, token_usage_details: dict | None = None)` - Task domain entity with token usage tracking
|
|
185
|
-
- `id: str` - Unique task identifier
|
|
186
|
-
- `user_id: str` - User who owns the task
|
|
187
|
-
- `start_time: int` - Task start timestamp
|
|
188
|
-
- `end_time: int | None` - Optional task end timestamp
|
|
189
|
-
- `status: str | None` - Optional task status
|
|
190
|
-
- `initial_request_text: str | None` - Optional initial request text
|
|
191
|
-
- `total_input_tokens: int | None` - Total input tokens used
|
|
192
|
-
- `total_output_tokens: int | None` - Total output tokens generated
|
|
193
|
-
- `total_cached_input_tokens: int | None` - Total cached input tokens used
|
|
194
|
-
- `token_usage_details: dict | None` - Detailed token usage information
|
|
195
|
-
|
|
196
|
-
**Usage Examples:**
|
|
197
|
-
```python
|
|
198
|
-
from solace_agent_mesh.gateway.http_sse.repository.entities import Task
|
|
199
|
-
|
|
200
|
-
# Create a task
|
|
201
|
-
task = Task(
|
|
202
|
-
id="task_123",
|
|
203
|
-
user_id="user_456",
|
|
204
|
-
start_time=1640995200000,
|
|
205
|
-
status="in_progress",
|
|
206
|
-
initial_request_text="Help me with my order"
|
|
207
|
-
)
|
|
208
|
-
|
|
209
|
-
# Task with token usage tracking
|
|
210
|
-
task_with_tokens = Task(
|
|
211
|
-
id="task_124",
|
|
212
|
-
user_id="user_456",
|
|
213
|
-
start_time=1640995200000,
|
|
214
|
-
end_time=1640995800000,
|
|
215
|
-
status="completed",
|
|
216
|
-
total_input_tokens=150,
|
|
217
|
-
total_output_tokens=300,
|
|
218
|
-
total_cached_input_tokens=50,
|
|
219
|
-
token_usage_details={"model": "gpt-4", "cost": 0.05}
|
|
220
|
-
)
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
### task_event.py
|
|
224
|
-
**Purpose:** Defines the TaskEvent domain entity for tracking events related to tasks
|
|
225
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.entities import TaskEvent`
|
|
226
|
-
|
|
227
|
-
**Classes:**
|
|
228
|
-
- `TaskEvent(id: str, task_id: str, user_id: str | None = None, created_time: int, topic: str, direction: str, payload: dict[str, Any])` - TaskEvent domain entity
|
|
229
|
-
- `id: str` - Unique event identifier
|
|
230
|
-
- `task_id: str` - Associated task identifier
|
|
231
|
-
- `user_id: str | None` - Optional user identifier
|
|
232
|
-
- `created_time: int` - Event creation timestamp
|
|
233
|
-
- `topic: str` - Event topic
|
|
234
|
-
- `direction: str` - Event direction
|
|
235
|
-
- `payload: dict[str, Any]` - Event payload data
|
|
236
|
-
|
|
237
|
-
**Usage Examples:**
|
|
238
|
-
```python
|
|
239
|
-
from solace_agent_mesh.gateway.http_sse.repository.entities import TaskEvent
|
|
240
|
-
|
|
241
|
-
# Create a task event
|
|
242
|
-
event = TaskEvent(
|
|
243
|
-
id="event_123",
|
|
244
|
-
task_id="task_456",
|
|
245
|
-
user_id="user_789",
|
|
246
|
-
created_time=1640995200000,
|
|
247
|
-
topic="task.status.changed",
|
|
248
|
-
direction="outbound",
|
|
249
|
-
payload={"status": "completed", "result": "success"}
|
|
250
|
-
)
|
|
251
|
-
|
|
252
|
-
# Event without user
|
|
253
|
-
system_event = TaskEvent(
|
|
254
|
-
id="event_124",
|
|
255
|
-
task_id="task_456",
|
|
256
|
-
created_time=1640995200000,
|
|
257
|
-
topic="task.system.notification",
|
|
258
|
-
direction="inbound",
|
|
259
|
-
payload={"message": "Task processing started"}
|
|
260
|
-
)
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
# content_hash: 14f978bcbf2c820db1c7f3185ffa1529a656b3b5fa0f64cff81927eb2f7d12e9
|
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
## Quick Summary
|
|
2
|
-
This directory contains SQLAlchemy ORM models and Pydantic schemas for database persistence in the HTTP SSE gateway. It provides models for managing chat sessions, messages, tasks, task events, and user feedback with proper relationships and database schema definitions.
|
|
3
|
-
|
|
4
|
-
## Files Overview
|
|
5
|
-
- `__init__.py` - Package initialization exposing all SQLAlchemy and Pydantic models
|
|
6
|
-
- `base.py` - SQLAlchemy declarative base configuration
|
|
7
|
-
- `feedback_model.py` - FeedbackModel for storing user feedback on tasks
|
|
8
|
-
- `message_model.py` - MessageModel and Pydantic schemas for chat messages with session relationships
|
|
9
|
-
- `session_model.py` - SessionModel and Pydantic schemas for managing chat sessions
|
|
10
|
-
- `task_event_model.py` - TaskEventModel for storing A2A task events with task relationships
|
|
11
|
-
- `task_model.py` - TaskModel for managing tasks with event relationships and token usage tracking
|
|
12
|
-
|
|
13
|
-
## Developer API Reference
|
|
14
|
-
|
|
15
|
-
### __init__.py
|
|
16
|
-
**Purpose:** Package entry point that exposes all SQLAlchemy models and Pydantic schemas
|
|
17
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.models import Base, MessageModel, SessionModel, CreateMessageModel, UpdateMessageModel, CreateSessionModel, UpdateSessionModel, TaskEventModel, TaskModel, FeedbackModel`
|
|
18
|
-
|
|
19
|
-
**Constants/Variables:**
|
|
20
|
-
- `__all__: List[str]` - Public API exports including all models and schemas
|
|
21
|
-
|
|
22
|
-
### base.py
|
|
23
|
-
**Purpose:** Provides the SQLAlchemy declarative base for all models
|
|
24
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.models.base import Base`
|
|
25
|
-
|
|
26
|
-
**Constants/Variables:**
|
|
27
|
-
- `Base: DeclarativeMeta` - SQLAlchemy declarative base class for all models
|
|
28
|
-
|
|
29
|
-
**Usage Examples:**
|
|
30
|
-
```python
|
|
31
|
-
from solace_agent_mesh.gateway.http_sse.repository.models.base import Base
|
|
32
|
-
from sqlalchemy import create_engine
|
|
33
|
-
|
|
34
|
-
# Create all tables
|
|
35
|
-
engine = create_engine("sqlite:///example.db")
|
|
36
|
-
Base.metadata.create_all(engine)
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### feedback_model.py
|
|
40
|
-
**Purpose:** SQLAlchemy model for storing user feedback on tasks
|
|
41
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.models.feedback_model import FeedbackModel`
|
|
42
|
-
|
|
43
|
-
**Classes:**
|
|
44
|
-
- `FeedbackModel(Base)` - SQLAlchemy model for user feedback
|
|
45
|
-
- `id: Column[String]` - Primary key feedback identifier
|
|
46
|
-
- `session_id: Column[String]` - Session identifier
|
|
47
|
-
- `task_id: Column[String]` - Task identifier (indexed)
|
|
48
|
-
- `user_id: Column[String]` - User identifier (indexed)
|
|
49
|
-
- `rating: Column[String]` - Feedback rating (e.g., 'up', 'down')
|
|
50
|
-
- `comment: Column[Text]` - Optional feedback comment
|
|
51
|
-
- `created_time: Column[BigInteger]` - Creation timestamp in epoch milliseconds
|
|
52
|
-
|
|
53
|
-
**Usage Examples:**
|
|
54
|
-
```python
|
|
55
|
-
from solace_agent_mesh.gateway.http_sse.repository.models.feedback_model import FeedbackModel
|
|
56
|
-
from sqlalchemy.orm import sessionmaker
|
|
57
|
-
|
|
58
|
-
# Create feedback
|
|
59
|
-
feedback = FeedbackModel(
|
|
60
|
-
id="feedback_123",
|
|
61
|
-
session_id="session_456",
|
|
62
|
-
task_id="task_789",
|
|
63
|
-
user_id="user_123",
|
|
64
|
-
rating="up",
|
|
65
|
-
comment="Great response!",
|
|
66
|
-
created_time=1640995200000
|
|
67
|
-
)
|
|
68
|
-
|
|
69
|
-
# Add to database
|
|
70
|
-
Session = sessionmaker(bind=engine)
|
|
71
|
-
db_session = Session()
|
|
72
|
-
db_session.add(feedback)
|
|
73
|
-
db_session.commit()
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### message_model.py
|
|
77
|
-
**Purpose:** SQLAlchemy model and Pydantic schemas for storing chat messages with session relationships
|
|
78
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.models.message_model import MessageModel, CreateMessageModel, UpdateMessageModel`
|
|
79
|
-
|
|
80
|
-
**Classes:**
|
|
81
|
-
- `MessageModel(Base)` - SQLAlchemy model for chat messages
|
|
82
|
-
- `id: Column[String]` - Primary key message identifier
|
|
83
|
-
- `session_id: Column[String]` - Foreign key to sessions table with CASCADE delete
|
|
84
|
-
- `message: Column[Text]` - Message content
|
|
85
|
-
- `created_time: Column[BigInteger]` - Creation timestamp (auto-generated)
|
|
86
|
-
- `sender_type: Column[String]` - Type of message sender (max 50 chars)
|
|
87
|
-
- `sender_name: Column[String]` - Name of message sender (max 255 chars)
|
|
88
|
-
- `session: relationship` - SQLAlchemy relationship to SessionModel
|
|
89
|
-
|
|
90
|
-
- `CreateMessageModel(BaseModel)` - Pydantic model for creating messages
|
|
91
|
-
- `id: str` - Message identifier
|
|
92
|
-
- `session_id: str` - Session identifier
|
|
93
|
-
- `message: str` - Message content
|
|
94
|
-
- `sender_type: str` - Sender type
|
|
95
|
-
- `sender_name: str` - Sender name
|
|
96
|
-
- `created_time: int` - Creation timestamp
|
|
97
|
-
|
|
98
|
-
- `UpdateMessageModel(BaseModel)` - Pydantic model for updating messages
|
|
99
|
-
- `message: str` - Updated message content
|
|
100
|
-
- `sender_type: str` - Updated sender type
|
|
101
|
-
- `sender_name: str` - Updated sender name
|
|
102
|
-
|
|
103
|
-
**Usage Examples:**
|
|
104
|
-
```python
|
|
105
|
-
from solace_agent_mesh.gateway.http_sse.repository.models.message_model import MessageModel, CreateMessageModel
|
|
106
|
-
from sqlalchemy.orm import sessionmaker
|
|
107
|
-
|
|
108
|
-
# Create using SQLAlchemy model
|
|
109
|
-
message = MessageModel(
|
|
110
|
-
id="msg_123",
|
|
111
|
-
session_id="session_456",
|
|
112
|
-
message="Hello, world!",
|
|
113
|
-
sender_type="user",
|
|
114
|
-
sender_name="John Doe"
|
|
115
|
-
)
|
|
116
|
-
|
|
117
|
-
# Create using Pydantic model
|
|
118
|
-
create_data = CreateMessageModel(
|
|
119
|
-
id="msg_124",
|
|
120
|
-
session_id="session_456",
|
|
121
|
-
message="How are you?",
|
|
122
|
-
sender_type="user",
|
|
123
|
-
sender_name="John Doe",
|
|
124
|
-
created_time=1640995200000
|
|
125
|
-
)
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### session_model.py
|
|
129
|
-
**Purpose:** SQLAlchemy model and Pydantic schemas for managing chat sessions with message relationships
|
|
130
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.models.session_model import SessionModel, CreateSessionModel, UpdateSessionModel`
|
|
131
|
-
|
|
132
|
-
**Classes:**
|
|
133
|
-
- `SessionModel(Base)` - SQLAlchemy model for chat sessions
|
|
134
|
-
- `id: Column[String]` - Primary key session identifier
|
|
135
|
-
- `name: Column[String]` - Optional session name
|
|
136
|
-
- `user_id: Column[String]` - Required user identifier
|
|
137
|
-
- `agent_id: Column[String]` - Optional agent identifier
|
|
138
|
-
- `created_time: Column[BigInteger]` - Creation timestamp (auto-generated)
|
|
139
|
-
- `updated_time: Column[BigInteger]` - Last update timestamp (auto-updated)
|
|
140
|
-
- `messages: relationship` - SQLAlchemy relationship to MessageModel with cascade delete
|
|
141
|
-
|
|
142
|
-
- `CreateSessionModel(BaseModel)` - Pydantic model for creating sessions
|
|
143
|
-
- `id: str` - Session identifier
|
|
144
|
-
- `name: str | None` - Optional session name
|
|
145
|
-
- `user_id: str` - User identifier
|
|
146
|
-
- `agent_id: str | None` - Optional agent identifier
|
|
147
|
-
- `created_time: int` - Creation timestamp
|
|
148
|
-
- `updated_time: int` - Update timestamp
|
|
149
|
-
|
|
150
|
-
- `UpdateSessionModel(BaseModel)` - Pydantic model for updating sessions
|
|
151
|
-
- `name: str | None` - Optional updated session name
|
|
152
|
-
- `agent_id: str | None` - Optional updated agent identifier
|
|
153
|
-
- `updated_time: int` - Update timestamp
|
|
154
|
-
|
|
155
|
-
**Usage Examples:**
|
|
156
|
-
```python
|
|
157
|
-
from solace_agent_mesh.gateway.http_sse.repository.models.session_model import SessionModel, CreateSessionModel
|
|
158
|
-
from sqlalchemy.orm import sessionmaker
|
|
159
|
-
|
|
160
|
-
# Create using SQLAlchemy model
|
|
161
|
-
session = SessionModel(
|
|
162
|
-
id="session_123",
|
|
163
|
-
name="My Chat Session",
|
|
164
|
-
user_id="user_456",
|
|
165
|
-
agent_id="agent_789"
|
|
166
|
-
)
|
|
167
|
-
|
|
168
|
-
# Create using Pydantic model
|
|
169
|
-
create_data = CreateSessionModel(
|
|
170
|
-
id="session_124",
|
|
171
|
-
name="Another Session",
|
|
172
|
-
user_id="user_456",
|
|
173
|
-
agent_id="agent_789",
|
|
174
|
-
created_time=1640995200000,
|
|
175
|
-
updated_time=1640995200000
|
|
176
|
-
)
|
|
177
|
-
|
|
178
|
-
# Access related messages
|
|
179
|
-
messages = session.messages # Returns list of MessageModel instances
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### task_event_model.py
|
|
183
|
-
**Purpose:** SQLAlchemy model for storing A2A task events with task relationships
|
|
184
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.models.task_event_model import TaskEventModel`
|
|
185
|
-
|
|
186
|
-
**Classes:**
|
|
187
|
-
- `TaskEventModel(Base)` - SQLAlchemy model for A2A task events
|
|
188
|
-
- `id: Column[String]` - Primary key event identifier
|
|
189
|
-
- `task_id: Column[String]` - Foreign key to tasks table with CASCADE delete (indexed)
|
|
190
|
-
- `user_id: Column[String]` - Optional user identifier (indexed)
|
|
191
|
-
- `created_time: Column[BigInteger]` - Creation timestamp in epoch milliseconds
|
|
192
|
-
- `topic: Column[Text]` - Event topic
|
|
193
|
-
- `direction: Column[String]` - Event direction (max 50 chars)
|
|
194
|
-
- `payload: Column[JSON]` - Event payload as JSON
|
|
195
|
-
- `task: relationship` - SQLAlchemy relationship to TaskModel
|
|
196
|
-
|
|
197
|
-
**Usage Examples:**
|
|
198
|
-
```python
|
|
199
|
-
from solace_agent_mesh.gateway.http_sse.repository.models.task_event_model import TaskEventModel
|
|
200
|
-
from sqlalchemy.orm import sessionmaker
|
|
201
|
-
|
|
202
|
-
# Create a task event
|
|
203
|
-
event = TaskEventModel(
|
|
204
|
-
id="event_123",
|
|
205
|
-
task_id="task_456",
|
|
206
|
-
user_id="user_789",
|
|
207
|
-
created_time=1640995200000,
|
|
208
|
-
topic="agent/response",
|
|
209
|
-
direction="inbound",
|
|
210
|
-
payload={"message": "Task completed", "status": "success"}
|
|
211
|
-
)
|
|
212
|
-
|
|
213
|
-
# Add to database
|
|
214
|
-
Session = sessionmaker(bind=engine)
|
|
215
|
-
db_session = Session()
|
|
216
|
-
db_session.add(event)
|
|
217
|
-
db_session.commit()
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
### task_model.py
|
|
221
|
-
**Purpose:** SQLAlchemy model for managing tasks with event relationships and token usage tracking
|
|
222
|
-
**Import:** `from solace_agent_mesh.gateway.http_sse.repository.models.task_model import TaskModel`
|
|
223
|
-
|
|
224
|
-
**Classes:**
|
|
225
|
-
- `TaskModel(Base)` - SQLAlchemy model for tasks
|
|
226
|
-
- `id: Column[String]` - Primary key task identifier
|
|
227
|
-
- `user_id: Column[String]` - User identifier (indexed)
|
|
228
|
-
- `start_time: Column[BigInteger]` - Task start timestamp in epoch milliseconds
|
|
229
|
-
- `end_time: Column[BigInteger]` - Optional task end timestamp
|
|
230
|
-
- `status: Column[String]` - Optional task status
|
|
231
|
-
- `initial_request_text: Column[Text]` - Optional initial request text (indexed)
|
|
232
|
-
- `total_input_tokens: Column[Integer]` - Optional total input tokens used
|
|
233
|
-
- `total_output_tokens: Column[Integer]` - Optional total output tokens used
|
|
234
|
-
- `total_cached_input_tokens: Column[Integer]` - Optional total cached input tokens
|
|
235
|
-
- `token_usage_details: Column[JSON]` - Optional detailed token usage information
|
|
236
|
-
- `events: relationship` - SQLAlchemy relationship to TaskEventModel with cascade delete
|
|
237
|
-
|
|
238
|
-
**Usage Examples:**
|
|
239
|
-
```python
|
|
240
|
-
from solace_agent_mesh.gateway.http_sse.repository.models.task_model import TaskModel
|
|
241
|
-
from sqlalchemy.orm import sessionmaker
|
|
242
|
-
|
|
243
|
-
# Create a new task with token tracking
|
|
244
|
-
task = TaskModel(
|
|
245
|
-
id="task_123",
|
|
246
|
-
user_id="user_456",
|
|
247
|
-
start_time=1640995200000,
|
|
248
|
-
status="in_progress",
|
|
249
|
-
initial_request_text="Please help me with this task",
|
|
250
|
-
total_input_tokens=150,
|
|
251
|
-
total_output_tokens=300,
|
|
252
|
-
total_cached_input_tokens=50,
|
|
253
|
-
token_usage_details={"model": "gpt-4", "breakdown": {"reasoning": 200, "response": 100}}
|
|
254
|
-
)
|
|
255
|
-
|
|
256
|
-
# Add to database
|
|
257
|
-
Session = sessionmaker(bind=engine)
|
|
258
|
-
db_session = Session()
|
|
259
|
-
db_session.add(task)
|
|
260
|
-
db_session.commit()
|
|
261
|
-
|
|
262
|
-
# Access related events
|
|
263
|
-
events = task.events # Returns list of TaskEventModel instances
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
# content_hash: 0583795702abeb023659a686bf3cfa551016bdd0284b01f2448dd9d4d2050f3b
|