solace-agent-mesh 1.11.2__py3-none-any.whl → 1.12.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- solace_agent_mesh/agent/adk/callbacks.py +177 -10
- solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +3 -0
- solace_agent_mesh/agent/adk/models/lite_llm.py +34 -16
- solace_agent_mesh/agent/adk/runner.py +66 -8
- solace_agent_mesh/agent/adk/setup.py +61 -26
- solace_agent_mesh/agent/protocol/event_handlers.py +48 -0
- solace_agent_mesh/agent/proxies/a2a/component.py +27 -0
- solace_agent_mesh/agent/sac/component.py +84 -2
- solace_agent_mesh/agent/tools/builtin_artifact_tools.py +41 -22
- solace_agent_mesh/agent/tools/peer_agent_tool.py +19 -12
- solace_agent_mesh/agent/tools/tool_config_types.py +21 -1
- solace_agent_mesh/agent/utils/artifact_helpers.py +54 -0
- solace_agent_mesh/assets/docs/404.html +3 -3
- solace_agent_mesh/assets/docs/assets/js/15ba94aa.e186750d.js +1 -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.28b7c67b.js → 3ac1795d.dc006e20.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/3ff0015d.f08618fb.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4667dc50.bf2ad456.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/547e15cc.8e6da617.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/64195356.09dbd087.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/66d4869e.30340bd3.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.95be65d4.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/ab9708a8.3e563275.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/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.08fab659.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/main.b241af3e.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/runtime~main.4ca7d2e2.js +1 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +4 -4
- 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 +14 -12
- solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +30 -9
- solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/index.html +6 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +4 -4
- 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 +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/prompts/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/components/speech/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deploying/{kubernetes-deployment → kubernetes}/index.html +6 -6
- 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 +11 -6
- solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deploying/proxy_configuration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +23 -5
- solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +17 -8
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/teams-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/openapi-tools/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +6 -5
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +4 -4
- 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 +25 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/migrations/platform-service-split/index.html +85 -0
- solace_agent_mesh/assets/docs/lunr-index-1767712284328.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -1
- solace_agent_mesh/assets/docs/search-doc-1767712284328.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/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 +29 -2
- solace_agent_mesh/cli/commands/init_cmd/platform_service_step.py +85 -0
- solace_agent_mesh/cli/commands/tools_cmd.py +315 -0
- solace_agent_mesh/cli/main.py +2 -0
- solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-Dj3JtK42.js → authCallback-8Nihi8rv.js} +1 -1
- solace_agent_mesh/client/webui/frontend/static/assets/{client-ZKk9kEJ5.js → client-DYtZN8p-.js} +1 -1
- solace_agent_mesh/client/webui/frontend/static/assets/main-BYGUHQMk.js +435 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-D2CSH1bp.css +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/{vendor-BNV4kZN0.js → vendor-XBWAmrun.js} +106 -101
- 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/ui-version.json +1 -1
- 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 +28 -0
- solace_agent_mesh/common/error_handlers.py +83 -0
- solace_agent_mesh/common/sam_events/event_service.py +2 -2
- solace_agent_mesh/config_portal/backend/common.py +2 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/_index-ZV-jX48T.js +103 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/{manifest-ba77705e.js → manifest-ce5bc5da.js} +1 -1
- solace_agent_mesh/config_portal/frontend/static/client/index.html +1 -1
- 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/auth_interface.py +103 -0
- solace_agent_mesh/gateway/base/component.py +68 -1
- solace_agent_mesh/gateway/generic/component.py +195 -30
- solace_agent_mesh/gateway/http_sse/app.py +23 -6
- solace_agent_mesh/gateway/http_sse/component.py +9 -61
- solace_agent_mesh/gateway/http_sse/dependencies.py +9 -51
- solace_agent_mesh/gateway/http_sse/main.py +28 -418
- 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 +2 -2
- 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/prompt_model.py +1 -1
- solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +1 -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 +4 -4
- solace_agent_mesh/gateway/http_sse/repository/task_repository.py +2 -2
- solace_agent_mesh/gateway/http_sse/routers/artifacts.py +16 -15
- solace_agent_mesh/gateway/http_sse/routers/auth.py +61 -132
- solace_agent_mesh/gateway/http_sse/routers/config.py +12 -8
- 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/session_responses.py +2 -2
- 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 +2 -1
- solace_agent_mesh/gateway/http_sse/routers/prompts.py +2 -1
- solace_agent_mesh/gateway/http_sse/routers/sessions.py +3 -3
- solace_agent_mesh/gateway/http_sse/routers/speech.py +1 -1
- solace_agent_mesh/gateway/http_sse/routers/tasks.py +3 -2
- solace_agent_mesh/gateway/http_sse/routers/users.py +1 -1
- solace_agent_mesh/gateway/http_sse/routers/visualization.py +2 -1
- solace_agent_mesh/gateway/http_sse/services/background_task_monitor.py +1 -1
- 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/session_service.py +4 -4
- solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +1 -1
- solace_agent_mesh/services/platform/__init__.py +23 -12
- solace_agent_mesh/services/platform/api/dependencies.py +23 -16
- solace_agent_mesh/services/platform/api/main.py +118 -43
- solace_agent_mesh/services/platform/api/routers/__init__.py +12 -3
- solace_agent_mesh/services/platform/api/routers/health_router.py +31 -0
- solace_agent_mesh/services/platform/app.py +101 -7
- solace_agent_mesh/services/platform/component.py +552 -33
- 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 +291 -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/platform.yaml +49 -0
- solace_agent_mesh/templates/webui.yaml +12 -3
- {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/METADATA +2 -1
- {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/RECORD +214 -258
- 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/15ba94aa.92fea363.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/240a0364.9ad94d1b.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/3ff0015d.2ddc75c0.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/5c2bd65f.90a87880.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/66d4869e.b77431fc.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/81a99df0.2484b8d9.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/9bb13469.b2333011.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/ab9708a8.245ae0ef.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e04b235d.52cb25ed.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.b1068f9b.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e6f9706b.4488e34c.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/f284c35a.250993bf.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/main.7acf7ace.js +0 -2
- solace_agent_mesh/assets/docs/assets/js/runtime~main.9e0813a2.js +0 -1
- solace_agent_mesh/assets/docs/lunr-index-1765810064709.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1765810064709.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/main-BcUaNZ-Q.css +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/main-vjch4RYc.js +0 -435
- 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-DiOiAjzL.js +0 -103
- 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/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/templates_llm.txt +0 -147
- /solace_agent_mesh/assets/docs/assets/js/{main.7acf7ace.js.LICENSE.txt → main.b241af3e.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.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/WHEEL +0 -0
- {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/entry_points.txt +0 -0
- {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
FastAPI router for managing session-specific artifacts via REST endpoints.
|
|
3
3
|
"""
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import logging
|
|
6
7
|
from collections.abc import Callable
|
|
@@ -319,20 +320,19 @@ async def upload_artifact_with_session(
|
|
|
319
320
|
except ValueError:
|
|
320
321
|
log.warning("%s Invalid Content-Length header: %s", log_prefix, content_length)
|
|
321
322
|
|
|
322
|
-
#
|
|
323
|
+
# Validate file size by streaming through WITHOUT accumulating chunks in memory
|
|
323
324
|
chunk_size = LOAD_FILE_CHUNK_SIZE
|
|
324
|
-
content_bytes = bytearray()
|
|
325
325
|
total_bytes_read = 0
|
|
326
|
-
|
|
326
|
+
|
|
327
327
|
try:
|
|
328
|
+
# Step 1: Validate size by reading chunks (discard data, just count bytes)
|
|
328
329
|
while True:
|
|
329
330
|
chunk = await upload_file.read(chunk_size)
|
|
330
331
|
if not chunk:
|
|
331
332
|
break # End of file
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
333
|
+
|
|
334
|
+
total_bytes_read += len(chunk)
|
|
335
|
+
|
|
336
336
|
# Validate size during reading (fail fast)
|
|
337
337
|
if total_bytes_read > max_upload_size:
|
|
338
338
|
error_msg = (
|
|
@@ -341,19 +341,20 @@ async def upload_artifact_with_session(
|
|
|
341
341
|
f"{total_bytes_read / (1024*1024):.2f} MB > {max_upload_size / (1024*1024):.2f} MB)"
|
|
342
342
|
)
|
|
343
343
|
log.warning("%s %s", log_prefix, error_msg)
|
|
344
|
-
|
|
344
|
+
|
|
345
345
|
raise HTTPException(
|
|
346
346
|
status_code=status.HTTP_413_REQUEST_ENTITY_TOO_LARGE,
|
|
347
347
|
detail=error_msg
|
|
348
348
|
)
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
349
|
+
|
|
350
|
+
# Step 2: Size is valid - reset to beginning
|
|
351
|
+
await upload_file.seek(0)
|
|
352
|
+
|
|
353
|
+
# Step 3: Read all content at once
|
|
354
|
+
content_bytes = await upload_file.read()
|
|
355
|
+
|
|
355
356
|
log.debug(
|
|
356
|
-
"%s File
|
|
357
|
+
"%s File validated (%d bytes) and loaded into memory",
|
|
357
358
|
log_prefix,
|
|
358
359
|
total_bytes_read
|
|
359
360
|
)
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Router for handling authentication-related endpoints.
|
|
3
3
|
"""
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import logging
|
|
6
7
|
import secrets
|
|
7
|
-
from urllib.parse import urlencode
|
|
8
8
|
|
|
9
|
-
import httpx
|
|
10
9
|
from fastapi import (
|
|
11
10
|
APIRouter,
|
|
12
11
|
Depends,
|
|
@@ -14,7 +13,7 @@ from fastapi import (
|
|
|
14
13
|
Request as FastAPIRequest,
|
|
15
14
|
Response,
|
|
16
15
|
)
|
|
17
|
-
from fastapi.responses import HTMLResponse
|
|
16
|
+
from fastapi.responses import HTMLResponse
|
|
18
17
|
|
|
19
18
|
from ...http_sse.dependencies import get_api_config, get_sac_component
|
|
20
19
|
|
|
@@ -30,20 +29,16 @@ async def initiate_login(
|
|
|
30
29
|
"""
|
|
31
30
|
Initiates the login flow by redirecting to the external authorization service.
|
|
32
31
|
"""
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"external_auth_callback_uri", "http://localhost:8000/api/v1/auth/callback"
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
params = {
|
|
39
|
-
"provider": config.get("external_auth_provider", "azure"),
|
|
40
|
-
"redirect_uri": callback_url,
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
login_url = f"{external_auth_url}/login?{urlencode(params)}"
|
|
44
|
-
log.info(f"Redirecting to external authorization service: {login_url}")
|
|
32
|
+
try:
|
|
33
|
+
from solace_agent_mesh_enterprise.gateway.auth import handle_login_initiation
|
|
45
34
|
|
|
46
|
-
|
|
35
|
+
return await handle_login_initiation(request, config)
|
|
36
|
+
except ImportError:
|
|
37
|
+
raise HTTPException(
|
|
38
|
+
status_code=501,
|
|
39
|
+
detail="OAuth authentication requires enterprise package. "
|
|
40
|
+
"Install: pip install solace-agent-mesh-enterprise",
|
|
41
|
+
)
|
|
47
42
|
|
|
48
43
|
|
|
49
44
|
@router.get("/csrf-token")
|
|
@@ -76,86 +71,56 @@ async def auth_callback(
|
|
|
76
71
|
"""
|
|
77
72
|
Handles the callback from the OIDC provider by calling an external exchange service.
|
|
78
73
|
"""
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if not code:
|
|
82
|
-
raise HTTPException(status_code=400, detail="Missing authorization code")
|
|
83
|
-
|
|
84
|
-
external_auth_url = config.get("external_auth_service_url", "http://localhost:8080")
|
|
85
|
-
exchange_url = f"{external_auth_url}/exchange-code"
|
|
86
|
-
redirect_uri = config.get(
|
|
87
|
-
"external_auth_callback_uri", "http://localhost:8000/api/v1/auth/callback"
|
|
88
|
-
)
|
|
89
|
-
|
|
90
|
-
async with httpx.AsyncClient() as client:
|
|
91
|
-
try:
|
|
92
|
-
response = await client.post(
|
|
93
|
-
exchange_url,
|
|
94
|
-
json={
|
|
95
|
-
"code": code,
|
|
96
|
-
"provider": config.get("external_auth_provider", "azure"),
|
|
97
|
-
"redirect_uri": redirect_uri,
|
|
98
|
-
},
|
|
99
|
-
timeout=20.0,
|
|
100
|
-
)
|
|
101
|
-
response.raise_for_status()
|
|
102
|
-
token_data = response.json()
|
|
103
|
-
except httpx.HTTPStatusError as e:
|
|
104
|
-
log.error(f"Failed to exchange code: {e.response.text}")
|
|
105
|
-
raise HTTPException(
|
|
106
|
-
status_code=e.response.status_code,
|
|
107
|
-
detail=f"Failed to exchange code: {e.response.text}",
|
|
108
|
-
)
|
|
109
|
-
except Exception as e:
|
|
110
|
-
log.error(f"Error during code exchange: {e}")
|
|
111
|
-
raise HTTPException(status_code=500, detail="Error during code exchange")
|
|
112
|
-
|
|
113
|
-
access_token = token_data.get("access_token")
|
|
114
|
-
refresh_token = token_data.get("refresh_token")
|
|
74
|
+
try:
|
|
75
|
+
from solace_agent_mesh_enterprise.gateway.auth import handle_auth_callback
|
|
115
76
|
|
|
116
|
-
|
|
77
|
+
return await handle_auth_callback(
|
|
78
|
+
request, config, component
|
|
79
|
+
)
|
|
80
|
+
except ImportError:
|
|
117
81
|
raise HTTPException(
|
|
118
|
-
status_code=
|
|
82
|
+
status_code=501,
|
|
83
|
+
detail="OAuth authentication requires enterprise package. "
|
|
84
|
+
"Install: pip install solace-agent-mesh-enterprise",
|
|
119
85
|
)
|
|
120
86
|
|
|
121
|
-
request.session["access_token"] = access_token
|
|
122
|
-
if refresh_token:
|
|
123
|
-
request.session["refresh_token"] = refresh_token
|
|
124
|
-
log.debug("Tokens stored directly in session.")
|
|
125
87
|
|
|
88
|
+
@router.post("/auth/logout")
|
|
89
|
+
async def logout(request: FastAPIRequest):
|
|
90
|
+
"""
|
|
91
|
+
Logout endpoint - clears server-side session and access token.
|
|
92
|
+
|
|
93
|
+
This endpoint:
|
|
94
|
+
- Clears the access_token from the session storage
|
|
95
|
+
- Clears all session data
|
|
96
|
+
- Returns success even if already logged out (idempotent)
|
|
97
|
+
|
|
98
|
+
The session cookie will be invalidated, requiring re-authentication
|
|
99
|
+
on the next request.
|
|
100
|
+
"""
|
|
126
101
|
try:
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
102
|
+
# Clear access token from session storage
|
|
103
|
+
if hasattr(request, 'session') and 'access_token' in request.session:
|
|
104
|
+
del request.session['access_token']
|
|
105
|
+
log.debug("Cleared access_token from session")
|
|
106
|
+
|
|
107
|
+
# Clear refresh token if present
|
|
108
|
+
if hasattr(request, 'session') and 'refresh_token' in request.session:
|
|
109
|
+
del request.session['refresh_token']
|
|
110
|
+
log.debug("Cleared refresh_token from session")
|
|
111
|
+
|
|
112
|
+
# Clear all other session data
|
|
113
|
+
if hasattr(request, 'session'):
|
|
114
|
+
request.session.clear()
|
|
115
|
+
log.debug("Cleared all session data")
|
|
116
|
+
|
|
117
|
+
log.info("User logged out successfully")
|
|
118
|
+
return {"success": True, "message": "Logged out successfully"}
|
|
119
|
+
|
|
146
120
|
except Exception as e:
|
|
147
|
-
log.error(f"Error
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
hash_params = {"access_token": access_token}
|
|
152
|
-
if refresh_token:
|
|
153
|
-
hash_params["refresh_token"] = refresh_token
|
|
154
|
-
|
|
155
|
-
hash_fragment = urlencode(hash_params)
|
|
156
|
-
|
|
157
|
-
frontend_redirect_url = f"{frontend_base_url}/auth-callback.html#{hash_fragment}"
|
|
158
|
-
return RedirectResponse(url=frontend_redirect_url)
|
|
121
|
+
log.error(f"Error during logout: {e}")
|
|
122
|
+
# Still return success - logout should be idempotent
|
|
123
|
+
return {"success": True, "message": "Logged out successfully"}
|
|
159
124
|
|
|
160
125
|
|
|
161
126
|
@router.post("/auth/refresh")
|
|
@@ -167,53 +132,17 @@ async def refresh_token(
|
|
|
167
132
|
"""
|
|
168
133
|
Refreshes an access token using the external authorization service.
|
|
169
134
|
"""
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
if not refresh_token:
|
|
173
|
-
raise HTTPException(status_code=400, detail="Missing refresh_token")
|
|
174
|
-
|
|
175
|
-
external_auth_url = config.get("external_auth_service_url", "http://localhost:8080")
|
|
176
|
-
refresh_url = f"{external_auth_url}/refresh_token"
|
|
177
|
-
|
|
178
|
-
async with httpx.AsyncClient() as client:
|
|
179
|
-
try:
|
|
180
|
-
response = await client.post(
|
|
181
|
-
refresh_url,
|
|
182
|
-
json={
|
|
183
|
-
"refresh_token": refresh_token,
|
|
184
|
-
"provider": config.get("external_auth_provider", "azure"),
|
|
185
|
-
},
|
|
186
|
-
timeout=20.0,
|
|
187
|
-
)
|
|
188
|
-
response.raise_for_status()
|
|
189
|
-
token_data = response.json()
|
|
190
|
-
except httpx.HTTPStatusError as e:
|
|
191
|
-
log.error(f"Failed to refresh token: {e.response.text}")
|
|
192
|
-
raise HTTPException(
|
|
193
|
-
status_code=e.response.status_code,
|
|
194
|
-
detail=f"Failed to refresh token: {e.response.text}",
|
|
195
|
-
)
|
|
196
|
-
except Exception as e:
|
|
197
|
-
log.error(f"Error during token refresh: {e}")
|
|
198
|
-
raise HTTPException(status_code=500, detail="Error during token refresh")
|
|
199
|
-
|
|
200
|
-
access_token = token_data.get("access_token")
|
|
201
|
-
new_refresh_token = token_data.get("refresh_token")
|
|
135
|
+
try:
|
|
136
|
+
from solace_agent_mesh_enterprise.gateway.auth import handle_token_refresh
|
|
202
137
|
|
|
203
|
-
|
|
138
|
+
return await handle_token_refresh(request, config, component)
|
|
139
|
+
except ImportError:
|
|
204
140
|
raise HTTPException(
|
|
205
|
-
status_code=
|
|
141
|
+
status_code=501,
|
|
142
|
+
detail="OAuth authentication requires enterprise package. "
|
|
143
|
+
"Install: pip install solace-agent-mesh-enterprise",
|
|
206
144
|
)
|
|
207
145
|
|
|
208
|
-
session_manager = component.get_session_manager()
|
|
209
|
-
session_manager.store_auth_tokens(request, access_token, new_refresh_token)
|
|
210
|
-
log.info("Successfully refreshed and updated tokens in session.")
|
|
211
|
-
|
|
212
|
-
return {
|
|
213
|
-
"access_token": access_token,
|
|
214
|
-
"refresh_token": new_refresh_token,
|
|
215
|
-
}
|
|
216
|
-
|
|
217
146
|
|
|
218
147
|
@router.get("/auth/tool/callback")
|
|
219
148
|
async def auth_tool_callback(
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
"""
|
|
2
2
|
API Router for providing frontend configuration.
|
|
3
3
|
"""
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import logging
|
|
6
|
-
from fastapi import APIRouter, Depends, HTTPException, status
|
|
7
7
|
from typing import Dict, Any
|
|
8
|
+
from typing import TYPE_CHECKING
|
|
9
|
+
|
|
10
|
+
from fastapi import APIRouter, Depends, HTTPException, status
|
|
8
11
|
|
|
12
|
+
from ..routers.dto.requests.project_requests import CreateProjectRequest
|
|
9
13
|
from ....gateway.http_sse.dependencies import get_sac_component, get_api_config
|
|
10
|
-
from ..routers.dto.requests.project_requests import CreateProjectRequest, UpdateProjectRequest
|
|
11
|
-
from typing import TYPE_CHECKING
|
|
12
14
|
|
|
13
15
|
if TYPE_CHECKING:
|
|
14
|
-
from
|
|
16
|
+
from ..component import WebUIBackendComponent
|
|
15
17
|
|
|
16
18
|
log = logging.getLogger(__name__)
|
|
17
19
|
|
|
@@ -337,14 +339,16 @@ async def get_app_config(
|
|
|
337
339
|
"ttsProvider": tts_provider,
|
|
338
340
|
}
|
|
339
341
|
|
|
342
|
+
platform_config = component.get_config("platform_service", {})
|
|
343
|
+
platform_service_url = platform_config.get("url", "")
|
|
344
|
+
|
|
340
345
|
config_data = {
|
|
341
|
-
"frontend_server_url":
|
|
346
|
+
"frontend_server_url": component.frontend_server_url,
|
|
347
|
+
"frontend_platform_server_url": platform_service_url,
|
|
342
348
|
"frontend_auth_login_url": component.get_config(
|
|
343
349
|
"frontend_auth_login_url", ""
|
|
344
350
|
),
|
|
345
|
-
"frontend_use_authorization": component.get_config(
|
|
346
|
-
"frontend_use_authorization", False
|
|
347
|
-
),
|
|
351
|
+
"frontend_use_authorization": component.get_config("frontend_use_authorization", False),
|
|
348
352
|
"frontend_welcome_message": component.get_config(
|
|
349
353
|
"frontend_welcome_message", ""
|
|
350
354
|
),
|
|
@@ -4,8 +4,8 @@ Session-related response DTOs.
|
|
|
4
4
|
|
|
5
5
|
from pydantic import BaseModel, ConfigDict, Field
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from solace_agent_mesh.shared.api.pagination import PaginationMeta
|
|
8
|
+
from solace_agent_mesh.shared.utils.types import SessionId, UserId
|
|
9
9
|
from .base_responses import BaseTimestampResponse
|
|
10
10
|
|
|
11
11
|
|
|
@@ -22,8 +22,8 @@ from ..repository.entities import Feedback
|
|
|
22
22
|
from ..repository.feedback_repository import FeedbackRepository
|
|
23
23
|
from ..repository.interfaces import ITaskRepository
|
|
24
24
|
from ..services.feedback_service import FeedbackService
|
|
25
|
-
from
|
|
26
|
-
from
|
|
25
|
+
from solace_agent_mesh.shared.api.pagination import PaginationParams
|
|
26
|
+
from solace_agent_mesh.shared.utils.types import UserId
|
|
27
27
|
|
|
28
28
|
router = APIRouter()
|
|
29
29
|
log = logging.getLogger(__name__)
|
|
@@ -9,8 +9,8 @@ from fastapi import APIRouter, Depends, Query
|
|
|
9
9
|
|
|
10
10
|
from ..dependencies import get_people_service
|
|
11
11
|
from ..services.people_service import PeopleService
|
|
12
|
-
from
|
|
13
|
-
from
|
|
12
|
+
from solace_agent_mesh.shared.api.pagination import DataResponse
|
|
13
|
+
from solace_agent_mesh.shared.api.response_utils import create_data_response
|
|
14
14
|
|
|
15
15
|
log = logging.getLogger(__name__)
|
|
16
16
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Project API controller using 3-tiered architecture.
|
|
3
3
|
"""
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import json
|
|
6
7
|
from typing import List, Optional, Dict, Any
|
|
@@ -20,7 +21,7 @@ from solace_ai_connector.common.log import log
|
|
|
20
21
|
|
|
21
22
|
from ..dependencies import get_project_service, get_sac_component, get_api_config, get_db
|
|
22
23
|
from ..services.project_service import ProjectService
|
|
23
|
-
from
|
|
24
|
+
from solace_agent_mesh.shared.api.auth_utils import get_current_user
|
|
24
25
|
from ....common.a2a.types import ArtifactInfo
|
|
25
26
|
from typing import TYPE_CHECKING
|
|
26
27
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Prompts API router for prompt library feature.
|
|
3
3
|
"""
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import uuid
|
|
6
7
|
from typing import List, Optional, Dict, Any, Literal
|
|
@@ -27,7 +28,7 @@ from .dto.prompt_dto import (
|
|
|
27
28
|
PromptImportRequest,
|
|
28
29
|
PromptImportResponse,
|
|
29
30
|
)
|
|
30
|
-
from
|
|
31
|
+
from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
|
|
31
32
|
from solace_ai_connector.common.log import log
|
|
32
33
|
|
|
33
34
|
from typing import TYPE_CHECKING
|
|
@@ -6,9 +6,9 @@ from sqlalchemy.orm import Session
|
|
|
6
6
|
|
|
7
7
|
from ..dependencies import get_session_business_service, get_db
|
|
8
8
|
from ..services.session_service import SessionService
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
from
|
|
9
|
+
from solace_agent_mesh.shared.api.auth_utils import get_current_user
|
|
10
|
+
from solace_agent_mesh.shared.api.pagination import DataResponse, PaginatedResponse, PaginationParams
|
|
11
|
+
from solace_agent_mesh.shared.api.response_utils import create_data_response
|
|
12
12
|
from .dto.requests.session_requests import (
|
|
13
13
|
GetSessionRequest,
|
|
14
14
|
UpdateSessionRequest,
|
|
@@ -11,7 +11,7 @@ from solace_ai_connector.common.log import log
|
|
|
11
11
|
|
|
12
12
|
from ..services.audio_service import AudioService
|
|
13
13
|
from ..dependencies import get_audio_service
|
|
14
|
-
from
|
|
14
|
+
from solace_agent_mesh.shared.api.auth_utils import get_current_user
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
router = APIRouter()
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
API Router for submitting and managing tasks to agents.
|
|
3
3
|
Includes background task status endpoints.
|
|
4
4
|
"""
|
|
5
|
+
from __future__ import annotations
|
|
5
6
|
|
|
6
7
|
import logging
|
|
7
8
|
from typing import TYPE_CHECKING
|
|
@@ -43,8 +44,8 @@ from ....gateway.http_sse.repository.task_repository import TaskRepository
|
|
|
43
44
|
from ....gateway.http_sse.services.session_service import SessionService
|
|
44
45
|
from ....gateway.http_sse.services.task_service import TaskService
|
|
45
46
|
from ....gateway.http_sse.session_manager import SessionManager
|
|
46
|
-
from
|
|
47
|
-
from
|
|
47
|
+
from solace_agent_mesh.shared.api.pagination import PaginationParams
|
|
48
|
+
from solace_agent_mesh.shared.utils.types import UserId
|
|
48
49
|
from ..utils.stim_utils import create_stim_from_task_data
|
|
49
50
|
|
|
50
51
|
if TYPE_CHECKING:
|
|
@@ -9,7 +9,7 @@ from typing import Any
|
|
|
9
9
|
from fastapi import APIRouter, Depends, Query
|
|
10
10
|
|
|
11
11
|
from ..dependencies import get_config_resolver, get_user_config
|
|
12
|
-
from
|
|
12
|
+
from solace_agent_mesh.shared.api.auth_utils import get_current_user
|
|
13
13
|
from ....common.middleware.config_resolver import ConfigResolver
|
|
14
14
|
|
|
15
15
|
log = logging.getLogger(__name__)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""
|
|
2
2
|
API Router for managing A2A message visualization streams.
|
|
3
3
|
"""
|
|
4
|
+
from __future__ import annotations
|
|
4
5
|
|
|
5
6
|
import logging
|
|
6
7
|
import asyncio
|
|
@@ -47,7 +48,7 @@ class SubscriptionTarget(BaseModel):
|
|
|
47
48
|
"my_a2a_messages",
|
|
48
49
|
"current_namespace_a2a_messages",
|
|
49
50
|
"namespace_a2a_messages",
|
|
50
|
-
"agent_a2a_messages"
|
|
51
|
+
"agent_a2a_messages"
|
|
51
52
|
],
|
|
52
53
|
)
|
|
53
54
|
identifier: Optional[str] = Field(
|
|
@@ -9,7 +9,7 @@ from sqlalchemy.orm import Session as DBSession
|
|
|
9
9
|
|
|
10
10
|
from ....gateway.http_sse.repository.task_repository import TaskRepository
|
|
11
11
|
from ....gateway.http_sse.services.task_service import TaskService
|
|
12
|
-
from ....
|
|
12
|
+
from ....shared.utils.timestamp_utils import now_epoch_ms
|
|
13
13
|
|
|
14
14
|
log = logging.getLogger(__name__)
|
|
15
15
|
|
|
@@ -10,7 +10,7 @@ from sqlalchemy.orm import Session as DBSession
|
|
|
10
10
|
|
|
11
11
|
from ..repository.feedback_repository import FeedbackRepository
|
|
12
12
|
from ..repository.task_repository import TaskRepository
|
|
13
|
-
from
|
|
13
|
+
from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
|
|
14
14
|
|
|
15
15
|
log = logging.getLogger(__name__)
|
|
16
16
|
|
|
@@ -11,7 +11,7 @@ from sqlalchemy.orm import Session as DBSession
|
|
|
11
11
|
|
|
12
12
|
from ..repository.entities import Feedback
|
|
13
13
|
from ..repository.feedback_repository import FeedbackRepository
|
|
14
|
-
from
|
|
14
|
+
from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
|
|
15
15
|
from ..utils.stim_utils import create_stim_from_task_data
|
|
16
16
|
|
|
17
17
|
# The FeedbackPayload is defined in the router, this creates a forward reference
|
|
@@ -11,10 +11,10 @@ from ..repository import (
|
|
|
11
11
|
from ..repository.chat_task_repository import ChatTaskRepository
|
|
12
12
|
from ..repository.task_repository import TaskRepository
|
|
13
13
|
from ..repository.entities import ChatTask
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
14
|
+
from solace_agent_mesh.shared.utils.enums import SenderType
|
|
15
|
+
from solace_agent_mesh.shared.utils.types import SessionId, UserId
|
|
16
|
+
from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
|
|
17
|
+
from solace_agent_mesh.shared.api.pagination import PaginationParams, PaginatedResponse, get_pagination_or_default
|
|
18
18
|
|
|
19
19
|
log = logging.getLogger(__name__)
|
|
20
20
|
|
|
@@ -21,7 +21,7 @@ from sqlalchemy.orm import Session as DBSession
|
|
|
21
21
|
from ....common import a2a
|
|
22
22
|
from ..repository.entities import Task, TaskEvent
|
|
23
23
|
from ..repository.task_repository import TaskRepository
|
|
24
|
-
from
|
|
24
|
+
from solace_agent_mesh.shared.utils.timestamp_utils import now_epoch_ms
|
|
25
25
|
|
|
26
26
|
log = logging.getLogger(__name__)
|
|
27
27
|
|
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Platform Service for Solace Agent Mesh.
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- Deployments
|
|
9
|
-
- AI Assistant
|
|
4
|
+
ARCHITECTURE: Service vs Gateway
|
|
5
|
+
--------------------------------
|
|
6
|
+
SERVICES provide internal platform functionality (this component).
|
|
7
|
+
GATEWAYS handle external communication channels (http_sse, slack, webhook, etc.).
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
9
|
+
Platform Service Responsibilities:
|
|
10
|
+
- REST API for platform configuration management
|
|
11
|
+
- Agent Builder (CRUD operations on agents)
|
|
12
|
+
- Connector management (CRUD operations on connectors)
|
|
13
|
+
- Toolset discovery and management
|
|
14
|
+
- Deployment orchestration (deploy/update/undeploy agents)
|
|
15
|
+
- AI Assistant (AI-powered configuration help)
|
|
16
|
+
- Deployer heartbeat monitoring (track deployer availability)
|
|
17
|
+
- Background deployment status checking (verify agent deployments succeed)
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
Message Communication (Direct Messaging - Not A2A Protocol):
|
|
20
|
+
- PUBLISHES: Deployment commands (direct publishing) to deployer ({namespace}/deployer/agent/...)
|
|
21
|
+
- RECEIVES: Deployer heartbeats ({namespace}/deployer/heartbeat)
|
|
22
|
+
- RECEIVES: Agent cards for deployment monitoring ({namespace}/a2a/agent-cards)
|
|
23
|
+
|
|
24
|
+
What Platform Service is NOT:
|
|
25
|
+
- NOT a chat interface (no user sessions)
|
|
26
|
+
- NOT for task submission to agents (no orchestration of user tasks)
|
|
27
|
+
- NOT for artifact management (no chat artifacts or embeds)
|
|
28
|
+
- NOT for end-user communication (admin/platform operations only)
|
|
18
29
|
"""
|