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
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Exception types and handlers for consistent error handling.
|
|
3
|
+
|
|
4
|
+
Provides:
|
|
5
|
+
- Business exception types (ValidationError, EntityNotFoundError, etc.)
|
|
6
|
+
- FastAPI exception handlers
|
|
7
|
+
- Error DTOs for API responses
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from .exceptions import (
|
|
11
|
+
WebUIBackendException,
|
|
12
|
+
ValidationError,
|
|
13
|
+
EntityNotFoundError,
|
|
14
|
+
EntityAlreadyExistsError,
|
|
15
|
+
BusinessRuleViolationError,
|
|
16
|
+
ConfigurationError,
|
|
17
|
+
DataIntegrityError,
|
|
18
|
+
ExternalServiceError,
|
|
19
|
+
EntityOperation,
|
|
20
|
+
)
|
|
21
|
+
from .exception_handlers import register_exception_handlers
|
|
22
|
+
from .error_dto import EventErrorDTO
|
|
23
|
+
|
|
24
|
+
__all__ = [
|
|
25
|
+
"WebUIBackendException",
|
|
26
|
+
"ValidationError",
|
|
27
|
+
"EntityNotFoundError",
|
|
28
|
+
"EntityAlreadyExistsError",
|
|
29
|
+
"BusinessRuleViolationError",
|
|
30
|
+
"ConfigurationError",
|
|
31
|
+
"DataIntegrityError",
|
|
32
|
+
"ExternalServiceError",
|
|
33
|
+
"EntityOperation",
|
|
34
|
+
"register_exception_handlers",
|
|
35
|
+
"EventErrorDTO",
|
|
36
|
+
]
|
|
@@ -6,6 +6,8 @@ into appropriate HTTP responses with consistent formatting. These handlers
|
|
|
6
6
|
can be used by any FastAPI application for uniform error handling.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
import logging
|
|
10
|
+
|
|
9
11
|
from fastapi import HTTPException, Request, status
|
|
10
12
|
from fastapi.responses import JSONResponse
|
|
11
13
|
from fastapi.exceptions import RequestValidationError
|
|
@@ -24,6 +26,8 @@ from .exceptions import (
|
|
|
24
26
|
)
|
|
25
27
|
from .error_dto import EventErrorDTO
|
|
26
28
|
|
|
29
|
+
log = logging.getLogger(__name__)
|
|
30
|
+
|
|
27
31
|
|
|
28
32
|
def create_error_response(
|
|
29
33
|
status_code: int, message: str, validation_details: dict = None
|
|
@@ -105,7 +109,18 @@ async def webui_backend_exception_handler(
|
|
|
105
109
|
request: Request, exc: WebUIBackendException
|
|
106
110
|
) -> JSONResponse:
|
|
107
111
|
"""Handle generic WebUI backend exceptions - 500 Internal Server Error."""
|
|
108
|
-
|
|
112
|
+
log.error(
|
|
113
|
+
f"WebUIBackendException: {exc.message}",
|
|
114
|
+
extra={
|
|
115
|
+
"path": request.url.path,
|
|
116
|
+
"method": request.method,
|
|
117
|
+
"details": exc.details if hasattr(exc, 'details') else None
|
|
118
|
+
},
|
|
119
|
+
exc_info=True
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
message = exc.message if exc.message else "An unexpected server error occurred."
|
|
123
|
+
error_dto = EventErrorDTO.create(message)
|
|
109
124
|
return JSONResponse(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, content=error_dto.model_dump())
|
|
110
125
|
|
|
111
126
|
|
|
@@ -113,9 +128,8 @@ async def http_exception_handler(
|
|
|
113
128
|
request: Request, exc: HTTPException
|
|
114
129
|
) -> JSONResponse:
|
|
115
130
|
"""Handle FastAPI HTTPExceptions with standardized format."""
|
|
116
|
-
# Map common HTTP status codes to standard messages
|
|
131
|
+
# Map common HTTP status codes to standard messages (only used as fallback)
|
|
117
132
|
message_map = {
|
|
118
|
-
400: "bad request",
|
|
119
133
|
401: "An authentication error occurred. Try logging out and in again.",
|
|
120
134
|
403: "You do not have permissions to perform this operation",
|
|
121
135
|
404: f"Resource not found with path {request.url.path}",
|
|
@@ -127,7 +141,7 @@ async def http_exception_handler(
|
|
|
127
141
|
503: "Service is unavailable.",
|
|
128
142
|
}
|
|
129
143
|
|
|
130
|
-
message = message_map.get(exc.status_code,
|
|
144
|
+
message = exc.detail if exc.detail else message_map.get(exc.status_code, "bad request")
|
|
131
145
|
error_dto = EventErrorDTO.create(message)
|
|
132
146
|
return JSONResponse(status_code=exc.status_code, content=error_dto.model_dump())
|
|
133
147
|
|
|
@@ -179,7 +193,7 @@ def register_exception_handlers(app):
|
|
|
179
193
|
|
|
180
194
|
Example:
|
|
181
195
|
from fastapi import FastAPI
|
|
182
|
-
from solace_agent_mesh.
|
|
196
|
+
from solace_agent_mesh.shared.exceptions.exception_handlers import register_exception_handlers
|
|
183
197
|
|
|
184
198
|
app = FastAPI()
|
|
185
199
|
register_exception_handlers(app)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""
|
|
2
|
+
General utilities for common operations.
|
|
3
|
+
|
|
4
|
+
Provides:
|
|
5
|
+
- Timestamp utilities (epoch conversions, ISO8601 formatting)
|
|
6
|
+
- Enums
|
|
7
|
+
- Type definitions
|
|
8
|
+
- Generic helper functions
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from .timestamp_utils import (
|
|
12
|
+
now_epoch_ms,
|
|
13
|
+
epoch_ms_to_iso8601,
|
|
14
|
+
iso8601_to_epoch_ms,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
__all__ = [
|
|
18
|
+
"now_epoch_ms",
|
|
19
|
+
"epoch_ms_to_iso8601",
|
|
20
|
+
"iso8601_to_epoch_ms",
|
|
21
|
+
]
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
disable_existing_loggers: false
|
|
3
|
+
|
|
4
|
+
formatters:
|
|
5
|
+
simpleFormatter:
|
|
6
|
+
format: "%(asctime)s | %(levelname)-5s | %(threadName)s | %(name)s | %(message)s"
|
|
7
|
+
|
|
8
|
+
coloredFormatter:
|
|
9
|
+
class: solace_ai_connector.logging.ColoredFormatter
|
|
10
|
+
format: "%(asctime)s | %(levelname)-5s | %(threadName)s | %(name)s | %(message)s"
|
|
11
|
+
|
|
12
|
+
jsonFormatter:
|
|
13
|
+
"()": pythonjsonlogger.json.JsonFormatter
|
|
14
|
+
format: "%(timestamp)s %(levelname)s %(threadName)s %(name)s %(message)s"
|
|
15
|
+
timestamp: "timestamp"
|
|
16
|
+
|
|
17
|
+
handlers:
|
|
18
|
+
streamHandler:
|
|
19
|
+
class: logging.StreamHandler
|
|
20
|
+
formatter: coloredFormatter
|
|
21
|
+
stream: ext://sys.stdout
|
|
22
|
+
|
|
23
|
+
rotatingFileHandler:
|
|
24
|
+
class: logging.handlers.RotatingFileHandler
|
|
25
|
+
formatter: simpleFormatter
|
|
26
|
+
filename: ${LOGGING_FILE_NAME, sam.log}
|
|
27
|
+
mode: a
|
|
28
|
+
maxBytes: 52428800
|
|
29
|
+
backupCount: 10
|
|
30
|
+
|
|
31
|
+
loggers:
|
|
32
|
+
solace_ai_connector:
|
|
33
|
+
level: ${LOGGING_SAC_LEVEL, INFO}
|
|
34
|
+
handlers: []
|
|
35
|
+
|
|
36
|
+
solace_agent_mesh:
|
|
37
|
+
level: ${LOGGING_SAM_LEVEL, INFO}
|
|
38
|
+
handlers: []
|
|
39
|
+
|
|
40
|
+
sam_trace:
|
|
41
|
+
level: ${LOGGING_SAM_TRACE_LEVEL, INFO}
|
|
42
|
+
handlers: []
|
|
43
|
+
|
|
44
|
+
root:
|
|
45
|
+
level: ${LOGGING_ROOT_LEVEL, WARNING}
|
|
46
|
+
handlers:
|
|
47
|
+
- streamHandler
|
|
48
|
+
- rotatingFileHandler
|
|
@@ -43,7 +43,18 @@ apps:
|
|
|
43
43
|
description: "__AGENT_CARD_DESCRIPTION__"
|
|
44
44
|
defaultInputModes: __DEFAULT_INPUT_MODES__
|
|
45
45
|
defaultOutputModes: __DEFAULT_OUTPUT_MODES__
|
|
46
|
-
skills:
|
|
46
|
+
skills:
|
|
47
|
+
- id: strategic_planning
|
|
48
|
+
name: Strategic Planning
|
|
49
|
+
description: Analyzes complex requests and creates structured execution plans, breaking down multi-step goals into logical sequences with clear checkpoints and progress tracking.
|
|
50
|
+
|
|
51
|
+
- id: agent_coordination
|
|
52
|
+
name: Agent Coordination
|
|
53
|
+
description: Identifies the most suitable specialized agents for specific tasks and coordinates multi-agent workflows, managing data handoffs and execution sequences to achieve complex objectives efficiently.
|
|
54
|
+
|
|
55
|
+
- id: artifact_management
|
|
56
|
+
name: Artifact Management
|
|
57
|
+
description: Creates, transforms, and manages various artifact types including documents, reports, and data files, with capabilities for content generation, formatting, embedding dynamic data, and applying sophisticated data transformations.
|
|
47
58
|
|
|
48
59
|
agent_card_publishing:
|
|
49
60
|
interval_seconds: __AGENT_CARD_PUBLISHING_INTERVAL__
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Platform Service Template for Solace Agent Mesh
|
|
2
|
+
# Provides agent management, deployments, connectors, and toolsets
|
|
3
|
+
|
|
4
|
+
log:
|
|
5
|
+
stdout_log_level: INFO
|
|
6
|
+
log_file_level: DEBUG
|
|
7
|
+
log_file: platform_service.log
|
|
8
|
+
|
|
9
|
+
# Shared SAM config (broker, models, etc.)
|
|
10
|
+
!include ../shared_config.yaml
|
|
11
|
+
|
|
12
|
+
apps:
|
|
13
|
+
- name: platform_service_app
|
|
14
|
+
app_base_path: .
|
|
15
|
+
app_module: solace_agent_mesh.services.platform.app
|
|
16
|
+
|
|
17
|
+
broker:
|
|
18
|
+
<<: *broker_connection
|
|
19
|
+
|
|
20
|
+
app_config:
|
|
21
|
+
# --- Required ---
|
|
22
|
+
namespace: ${NAMESPACE}
|
|
23
|
+
database_url: "${PLATFORM_DATABASE_URL, sqlite:///platform.db}"
|
|
24
|
+
|
|
25
|
+
# --- FastAPI Server Configuration ---
|
|
26
|
+
fastapi_host: ${PLATFORM_API_HOST, localhost}
|
|
27
|
+
fastapi_port: ${PLATFORM_API_PORT, 8001}
|
|
28
|
+
cors_allowed_origins:
|
|
29
|
+
- "http://localhost:3000"
|
|
30
|
+
- "http://127.0.0.1:3000"
|
|
31
|
+
- "http://localhost:8000"
|
|
32
|
+
|
|
33
|
+
# --- Message Size Configuration ---
|
|
34
|
+
max_message_size_bytes: ${MAX_MESSAGE_SIZE_BYTES, 10000000}
|
|
35
|
+
|
|
36
|
+
# --- OAuth2 Authentication ---
|
|
37
|
+
# Community mode: frontend_use_authorization=false (dev user)
|
|
38
|
+
# Enterprise mode: frontend_use_authorization=true (OAuth validation)
|
|
39
|
+
external_auth_service_url: ${EXTERNAL_AUTH_SERVICE_URL}
|
|
40
|
+
external_auth_provider: ${EXTERNAL_AUTH_PROVIDER, generic}
|
|
41
|
+
frontend_use_authorization: ${FRONTEND_USE_AUTHORIZATION, false}
|
|
42
|
+
|
|
43
|
+
# --- Background Task Configuration ---
|
|
44
|
+
# Deployment monitoring (enterprise feature)
|
|
45
|
+
deployment_timeout_minutes: ${DEPLOYMENT_TIMEOUT_MINUTES, 5}
|
|
46
|
+
deployment_check_interval_seconds: ${DEPLOYMENT_CHECK_INTERVAL, 60}
|
|
47
|
+
|
|
48
|
+
# Deployer heartbeat monitoring (enterprise feature)
|
|
49
|
+
heartbeat_timeout_seconds: ${HEARTBEAT_TIMEOUT_SECONDS, 90}
|
|
@@ -1,34 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# __PLUGIN_PASCAL_CASE_NAME__ SAM Plugin
|
|
2
2
|
|
|
3
3
|
__PLUGIN_DESCRIPTION__
|
|
4
4
|
|
|
5
5
|
This is a plugin for Solace Agent Mesh (SAM).
|
|
6
6
|
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
The `config.yaml` in this plugin serves as a template. When you use `sam plugin add <component_name> --plugin __PLUGIN_KEBAB_CASE_NAME__`, the following placeholders in the YAML structure will be replaced with variations of `<component_name>`:
|
|
10
|
-
- `__COMPONENT_UPPER_SNAKE_CASE_NAME__`
|
|
11
|
-
- `__COMPONENT_KEBAB_CASE_NAME__`
|
|
12
|
-
- `__COMPONENT_PASCAL_CASE_NAME__`
|
|
13
|
-
|
|
14
|
-
Customize the `config.yaml` in this plugin directory to define the base configuration for components created from it.
|
|
15
|
-
|
|
16
|
-
## Source Code (`src/`)
|
|
17
|
-
The `src/` directory contains the Python source code for your plugin.
|
|
18
|
-
|
|
19
|
-
## Installation (as a developer of this plugin)
|
|
20
|
-
|
|
21
|
-
To build and install this plugin locally for testing:
|
|
22
|
-
```bash
|
|
23
|
-
sam plugin build
|
|
24
|
-
pip install dist/*.whl
|
|
25
|
-
```
|
|
26
|
-
(Or `pip install .` if preferred, `sam plugin build` is for creating the distributable wheel)
|
|
27
|
-
|
|
28
|
-
## Usage (as a user of this plugin)
|
|
7
|
+
## Installation
|
|
29
8
|
|
|
30
9
|
Once the plugin is installed (e.g., from PyPI or a local wheel file):
|
|
31
10
|
```bash
|
|
32
11
|
sam plugin add <your-new-component-name> --plugin __PLUGIN_KEBAB_CASE_NAME__
|
|
33
|
-
```
|
|
34
|
-
This will create a new component configuration at `configs/plugins/<your-new-component-name-kebab-case>.yaml`.
|
|
12
|
+
```
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Plugin Metadata:
|
|
2
|
+
# Name: __PLUGIN_KEBAB_CASE_NAME__
|
|
3
|
+
# Version: __PLUGIN_VERSION__
|
|
4
|
+
# Description: __PLUGIN_DESCRIPTION__
|
|
5
|
+
# Author: __PLUGIN_AUTHOR_NAME__ <__PLUGIN_AUTHOR_EMAIL__>
|
|
6
|
+
#
|
|
7
|
+
# --- Start of Agent Configuration Template ---
|
|
8
|
+
# Solace Agent Mesh: Plugin Configuration Template
|
|
9
|
+
#
|
|
10
|
+
# This file serves as a template for creating new agent configurations from this plugin.
|
|
11
|
+
# Use placeholders like __COMPONENT_KEBAB_CASE_NAME__, __COMPONENT_PASCAL_CASE_NAME__,
|
|
12
|
+
# and __COMPONENT_UPPER_SNAKE_CASE_NAME__ where the specific component name should be inserted.
|
|
13
|
+
|
|
14
|
+
log:
|
|
15
|
+
stdout_log_level: INFO
|
|
16
|
+
log_file_level: DEBUG
|
|
17
|
+
log_file: __COMPONENT_KEBAB_CASE_NAME__.log
|
|
18
|
+
|
|
19
|
+
# To use the `shared_config.yaml` file, uncomment the following line and remove the `shared_config` section below.
|
|
20
|
+
# !include ../shared_config.yaml
|
|
21
|
+
shared_config:
|
|
22
|
+
- broker_connection: &broker_connection
|
|
23
|
+
dev_mode: ${SOLACE_DEV_MODE, false}
|
|
24
|
+
broker_url: ${SOLACE_BROKER_URL, ws://localhost:8008}
|
|
25
|
+
broker_username: ${SOLACE_BROKER_USERNAME, default}
|
|
26
|
+
broker_password: ${SOLACE_BROKER_PASSWORD, default}
|
|
27
|
+
broker_vpn: ${SOLACE_BROKER_VPN, default}
|
|
28
|
+
temporary_queue: ${USE_TEMPORARY_QUEUES, true}
|
|
29
|
+
|
|
30
|
+
- models:
|
|
31
|
+
general: &general_model
|
|
32
|
+
# This dictionary structure tells ADK to use the LiteLlm wrapper.
|
|
33
|
+
# 'model' uses the specific model identifier your endpoint expects.
|
|
34
|
+
model: ${LLM_SERVICE_GENERAL_MODEL_NAME} # Use env var for model name
|
|
35
|
+
# 'api_base' tells LiteLLM where to send the request.
|
|
36
|
+
api_base: ${LLM_SERVICE_ENDPOINT} # Use env var for endpoint URL
|
|
37
|
+
# 'api_key' provides authentication.
|
|
38
|
+
api_key: ${LLM_SERVICE_API_KEY} # Use env var for API key
|
|
39
|
+
|
|
40
|
+
- services:
|
|
41
|
+
# Default session service configuration
|
|
42
|
+
session_service: &default_session_service
|
|
43
|
+
type: "memory"
|
|
44
|
+
default_behavior: "PERSISTENT"
|
|
45
|
+
|
|
46
|
+
# Default artifact service configuration
|
|
47
|
+
artifact_service: &default_artifact_service
|
|
48
|
+
type: "filesystem"
|
|
49
|
+
base_path: "/tmp/samv2"
|
|
50
|
+
artifact_scope: namespace # Or "namespace", "app", "custom"
|
|
51
|
+
|
|
52
|
+
apps:
|
|
53
|
+
- name: __COMPONENT_KEBAB_CASE_NAME__-app
|
|
54
|
+
app_base_path: .
|
|
55
|
+
app_module: solace_agent_mesh.agent.sac.app
|
|
56
|
+
broker:
|
|
57
|
+
<<: *broker_connection
|
|
58
|
+
|
|
59
|
+
# App Level Config
|
|
60
|
+
app_config:
|
|
61
|
+
namespace: ${NAMESPACE}
|
|
62
|
+
supports_streaming: true
|
|
63
|
+
agent_name: "__COMPONENT_PASCAL_CASE_NAME__"
|
|
64
|
+
display_name: "__COMPONENT_SPACED_CAPITALIZED_NAME__ Agent"
|
|
65
|
+
model: *general_model
|
|
66
|
+
|
|
67
|
+
instruction: |
|
|
68
|
+
You're __COMPONENT_SPACED_CAPITALIZED_NAME__ agent.
|
|
69
|
+
Configure its specific instructions here.
|
|
70
|
+
|
|
71
|
+
tools:
|
|
72
|
+
- group_name: artifact_management
|
|
73
|
+
tool_type: builtin-group
|
|
74
|
+
|
|
75
|
+
# --- Example Python Tools (defined in tools.py) ---
|
|
76
|
+
# - tool_type: python
|
|
77
|
+
# component_module: __PLUGIN_SNAKE_CASE_NAME__.tools
|
|
78
|
+
# component_base_path: . # Relative to where the agent runs
|
|
79
|
+
# function_name: example_text_processor_tool
|
|
80
|
+
# tool_config:
|
|
81
|
+
# prefix: "PluginProcessed: "
|
|
82
|
+
|
|
83
|
+
# - tool_type: python
|
|
84
|
+
# component_module: __PLUGIN_SNAKE_CASE_NAME__.tools
|
|
85
|
+
# component_base_path: .
|
|
86
|
+
# function_name: example_file_creator_tool
|
|
87
|
+
# tool_config: {} # Add specific config if needed by the tool
|
|
88
|
+
|
|
89
|
+
session_service: *default_session_service
|
|
90
|
+
artifact_service: *default_artifact_service
|
|
91
|
+
|
|
92
|
+
artifact_handling_mode: "reference"
|
|
93
|
+
enable_embed_resolution: true
|
|
94
|
+
enable_artifact_content_instruction: true
|
|
95
|
+
|
|
96
|
+
agent_card:
|
|
97
|
+
description: "__PLUGIN_DESCRIPTION__"
|
|
98
|
+
defaultInputModes: ["text"]
|
|
99
|
+
defaultOutputModes: ["text"]
|
|
100
|
+
skills: [] # Remove brackets after adding entries
|
|
101
|
+
# - id: "example_tool"
|
|
102
|
+
# name: "Example Tool"
|
|
103
|
+
# description: "An example tool provided by the __PLUGIN_PASCAL_CASE_NAME__ plugin."
|
|
104
|
+
|
|
105
|
+
agent_card_publishing: { interval_seconds: 10 }
|
|
106
|
+
agent_discovery: { enabled: false }
|
|
107
|
+
inter_agent_communication:
|
|
108
|
+
allow_list: []
|
|
109
|
+
request_timeout_seconds: 30
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# A2A Proxy Configuration File
|
|
2
|
+
|
|
3
|
+
log:
|
|
4
|
+
stdout_log_level: INFO
|
|
5
|
+
log_file_level: DEBUG
|
|
6
|
+
log_file: a2a_proxy.log
|
|
7
|
+
|
|
8
|
+
# Shared SAM config (includes broker connection details)
|
|
9
|
+
!include ../shared_config.yaml
|
|
10
|
+
|
|
11
|
+
apps:
|
|
12
|
+
- name: "__PROXY_NAME____app"
|
|
13
|
+
app_base_path: .
|
|
14
|
+
app_module: solace_agent_mesh.agent.proxies.a2a.app
|
|
15
|
+
broker:
|
|
16
|
+
<<: *broker_connection
|
|
17
|
+
|
|
18
|
+
# --- App Level Config for the Proxy ---
|
|
19
|
+
app_config:
|
|
20
|
+
namespace: ${NAMESPACE}
|
|
21
|
+
|
|
22
|
+
# Configuration for the artifact service used by the proxy itself.
|
|
23
|
+
# When the proxy receives an artifact from a downstream agent, it will
|
|
24
|
+
# store it here before forwarding it on the Solace mesh.
|
|
25
|
+
artifact_service:
|
|
26
|
+
type: "filesystem"
|
|
27
|
+
base_path: "/tmp/samv2"
|
|
28
|
+
artifact_scope: namespace # Default scope, shares artifacts within the NAMESPACE
|
|
29
|
+
|
|
30
|
+
# How the proxy should handle artifacts it sends over Solace.
|
|
31
|
+
# 'reference': Sends an artifact:// URI.
|
|
32
|
+
# 'embed': Sends the full content base64 encoded.
|
|
33
|
+
artifact_handling_mode: "reference"
|
|
34
|
+
|
|
35
|
+
# Interval in seconds for the proxy to re-fetch agent cards from
|
|
36
|
+
# downstream agents. Set to 0 to disable periodic checks.
|
|
37
|
+
discovery_interval_seconds: 5
|
|
38
|
+
tools:
|
|
39
|
+
- group_name: artifact_management
|
|
40
|
+
tool_type: builtin-group
|
|
41
|
+
|
|
42
|
+
# --- List of Downstream Agents to Proxy ---
|
|
43
|
+
# A single proxy can manage multiple external agents.
|
|
44
|
+
# Each agent can have its own URL, authentication, and timeout settings.
|
|
45
|
+
proxied_agents:
|
|
46
|
+
# Example 1: A simple agent without authentication
|
|
47
|
+
- name: "HelloWorld" # The name this agent will have on the Solace mesh
|
|
48
|
+
url: "http://localhost:9999" # The real HTTP endpoint of the agent
|
|
49
|
+
|
|
50
|
+
# Example 2: Another agent without authentication
|
|
51
|
+
- name: "AnalysisAgent"
|
|
52
|
+
url: "http://127.0.0.1:10001"
|
|
53
|
+
|
|
54
|
+
# You can add more agents here with different configurations:
|
|
55
|
+
# - name: "SecureAgent"
|
|
56
|
+
# url: "https://api.example.com/agent"
|
|
57
|
+
# authentication:
|
|
58
|
+
# type: "static_bearer"
|
|
59
|
+
# token: "${SECURE_AGENT_TOKEN}"
|
|
60
|
+
# request_timeout_seconds: 180
|
|
61
|
+
# # use_agent_card_url: false # If true (default), uses URL from agent card for tasks.
|
|
62
|
+
# # If false, uses configured URL directly for all calls.
|
|
@@ -20,15 +20,25 @@ apps:
|
|
|
20
20
|
namespace: ${NAMESPACE}
|
|
21
21
|
session_secret_key: "${SESSION_SECRET_KEY}"
|
|
22
22
|
|
|
23
|
+
model: *general_model
|
|
23
24
|
artifact_service: *default_artifact_service
|
|
24
25
|
session_service: __SESSION_SERVICE__
|
|
25
26
|
gateway_id: ${WEBUI_GATEWAY_ID}
|
|
26
27
|
fastapi_host: ${FASTAPI_HOST}
|
|
27
|
-
fastapi_port: ${FASTAPI_PORT}
|
|
28
|
-
cors_allowed_origins:
|
|
29
|
-
- "http://localhost:3000"
|
|
28
|
+
fastapi_port: ${FASTAPI_PORT, 8000}
|
|
29
|
+
cors_allowed_origins:
|
|
30
|
+
- "http://localhost:3000"
|
|
30
31
|
- "http://127.0.0.1:3000"
|
|
31
32
|
|
|
33
|
+
# Platform Service Configuration (runs as second app in this template)
|
|
34
|
+
platform_service:
|
|
35
|
+
url: "${PLATFORM_SERVICE_URL, http://localhost:8001}"
|
|
36
|
+
|
|
37
|
+
# OAuth2 Authentication (Community: false, Enterprise: true)
|
|
38
|
+
external_auth_service_url: ${EXTERNAL_AUTH_SERVICE_URL}
|
|
39
|
+
external_auth_provider: ${EXTERNAL_AUTH_PROVIDER, generic}
|
|
40
|
+
frontend_use_authorization: ${FRONTEND_USE_AUTHORIZATION, false}
|
|
41
|
+
|
|
32
42
|
enable_embed_resolution: ${ENABLE_EMBED_RESOLUTION} # Enable late-stage resolution
|
|
33
43
|
gateway_artifact_content_limit_bytes: ${GATEWAY_ARTIFACT_LIMIT_BYTES, 10000000} # Max size for late-stage embeds
|
|
34
44
|
sse_max_queue_size: ${SSE_MAX_QUEUE_SIZE, 200} # Max size of SSE connection queues
|
|
@@ -46,6 +56,138 @@ apps:
|
|
|
46
56
|
Format responses to the user in Markdown using appropriate formatting.
|
|
47
57
|
|
|
48
58
|
# --- Frontend Config Passthrough ---
|
|
49
|
-
frontend_welcome_message:
|
|
50
|
-
frontend_bot_name:
|
|
51
|
-
frontend_collect_feedback:
|
|
59
|
+
frontend_welcome_message: __FRONTEND_WELCOME_MESSAGE__
|
|
60
|
+
frontend_bot_name: __FRONTEND_BOT_NAME__
|
|
61
|
+
frontend_collect_feedback: __FRONTEND_COLLECT_FEEDBACK__
|
|
62
|
+
frontend_logo_url: __FRONTEND_LOGO_URL__
|
|
63
|
+
|
|
64
|
+
task_logging:
|
|
65
|
+
enabled: true
|
|
66
|
+
log_status_updates: true
|
|
67
|
+
log_artifact_events: true
|
|
68
|
+
log_file_parts: true
|
|
69
|
+
max_file_part_size_bytes: 10240
|
|
70
|
+
|
|
71
|
+
# --- Frontend Feature Flags ---
|
|
72
|
+
# Uncomment to control speech features in the UI
|
|
73
|
+
frontend_feature_enablement:
|
|
74
|
+
# speechToText: true # Set to false to hide Speech-to-Text settings & microphone
|
|
75
|
+
# textToSpeech: true # Set to false to hide Text-to-Speech settings & speaker button
|
|
76
|
+
# projects: true
|
|
77
|
+
# promptLibrary: true
|
|
78
|
+
background_tasks: true # NOTE: task_logging must also be enabled for background tasks to work
|
|
79
|
+
|
|
80
|
+
# --- Background Tasks Configuration ---
|
|
81
|
+
background_tasks:
|
|
82
|
+
default_timeout_ms: 3600000 # Default: 1 hour (3600000ms)
|
|
83
|
+
|
|
84
|
+
# --- Speech Configuration (STT/TTS) ---
|
|
85
|
+
speech:
|
|
86
|
+
# stt:
|
|
87
|
+
# provider: openai
|
|
88
|
+
# url: "https://api.openai.com/v1/audio/transcriptions"
|
|
89
|
+
# api_key: "${OPENAI_API_KEY}"
|
|
90
|
+
# model: "whisper-1"
|
|
91
|
+
stt:
|
|
92
|
+
provider: azure
|
|
93
|
+
azure:
|
|
94
|
+
api_key: "${AZURE_SPEECH_KEY}"
|
|
95
|
+
region: "${AZURE_SPEECH_REGION}"
|
|
96
|
+
language: en-US
|
|
97
|
+
|
|
98
|
+
# Text-to-Speech Configuration
|
|
99
|
+
tts:
|
|
100
|
+
provider: ${TTS_PROVIDER, gemini} # "gemini", "azure", or "polly" (can be overridden by UI)
|
|
101
|
+
|
|
102
|
+
# Azure Neural Voices Configuration
|
|
103
|
+
azure:
|
|
104
|
+
api_key: "${AZURE_SPEECH_KEY}"
|
|
105
|
+
region: "${AZURE_SPEECH_REGION}"
|
|
106
|
+
default_voice: "en-US-Andrew:DragonHDLatestNeural"
|
|
107
|
+
voices:
|
|
108
|
+
# DragonHD Latest Neural Voices (Highest Quality)
|
|
109
|
+
- "en-US-Ava:DragonHDLatestNeural"
|
|
110
|
+
- "en-US-Ava3:DragonHDLatestNeural"
|
|
111
|
+
- "en-US-Adam:DragonHDLatestNeural"
|
|
112
|
+
- "en-US-Alloy:DragonHDLatestNeural"
|
|
113
|
+
- "en-US-Andrew:DragonHDLatestNeural"
|
|
114
|
+
- "en-US-Andrew2:DragonHDLatestNeural"
|
|
115
|
+
- "en-US-Andrew3:DragonHDLatestNeural"
|
|
116
|
+
- "en-US-Aria:DragonHDLatestNeural"
|
|
117
|
+
- "en-US-Brian:DragonHDLatestNeural"
|
|
118
|
+
- "en-US-Davis:DragonHDLatestNeural"
|
|
119
|
+
- "en-US-Emma:DragonHDLatestNeural"
|
|
120
|
+
- "en-US-Emma2:DragonHDLatestNeural"
|
|
121
|
+
- "en-US-Jenny:DragonHDLatestNeural"
|
|
122
|
+
- "en-US-MultiTalker-Ava-Andrew:DragonHDLatestNeural"
|
|
123
|
+
- "en-US-Nova:DragonHDLatestNeural"
|
|
124
|
+
- "en-US-Phoebe:DragonHDLatestNeural"
|
|
125
|
+
- "en-US-Serena:DragonHDLatestNeural"
|
|
126
|
+
- "en-US-Steffan:DragonHDLatestNeural"
|
|
127
|
+
# Standard Neural Voices
|
|
128
|
+
- "en-US-JennyNeural"
|
|
129
|
+
- "en-US-GuyNeural"
|
|
130
|
+
- "en-US-AriaNeural"
|
|
131
|
+
- "en-US-DavisNeural"
|
|
132
|
+
- "en-US-JaneNeural"
|
|
133
|
+
- "en-US-JasonNeural"
|
|
134
|
+
- "en-US-NancyNeural"
|
|
135
|
+
- "en-US-TonyNeural"
|
|
136
|
+
- "en-GB-LibbyNeural"
|
|
137
|
+
- "en-GB-RyanNeural"
|
|
138
|
+
- "en-GB-SoniaNeural"
|
|
139
|
+
- "en-AU-NatashaNeural"
|
|
140
|
+
- "en-AU-WilliamNeural"
|
|
141
|
+
|
|
142
|
+
# Google Gemini Configuration
|
|
143
|
+
gemini:
|
|
144
|
+
api_key: "${GEMINI_API_KEY}"
|
|
145
|
+
model: "gemini-2.5-flash-preview-tts"
|
|
146
|
+
default_voice: "Kore"
|
|
147
|
+
language: "en-US"
|
|
148
|
+
voices:
|
|
149
|
+
- "Kore"
|
|
150
|
+
- "Puck"
|
|
151
|
+
- "Zephyr"
|
|
152
|
+
- "Charon"
|
|
153
|
+
- "Fenrir"
|
|
154
|
+
- "Leda"
|
|
155
|
+
- "Aoede"
|
|
156
|
+
- "Callirhoe"
|
|
157
|
+
- "Umbriel"
|
|
158
|
+
- "Enceladus"
|
|
159
|
+
- "Iapetus"
|
|
160
|
+
- "Erinome"
|
|
161
|
+
- "Algieba"
|
|
162
|
+
- "Despina"
|
|
163
|
+
- "Algenib"
|
|
164
|
+
- "Achernar"
|
|
165
|
+
- "Schedar"
|
|
166
|
+
- "Gacrux"
|
|
167
|
+
- "Pulcherrima"
|
|
168
|
+
- "Achird"
|
|
169
|
+
- "Zubenelgenubi"
|
|
170
|
+
- "Vindemiatrix"
|
|
171
|
+
- "Sadachbia"
|
|
172
|
+
- "Sadaltager"
|
|
173
|
+
- "Sulafat"
|
|
174
|
+
- "Autonoe"
|
|
175
|
+
- "Laomedeia"
|
|
176
|
+
- "Orus"
|
|
177
|
+
- "Rasalgethi"
|
|
178
|
+
- "Alnilam"
|
|
179
|
+
|
|
180
|
+
# Frontend Speech Tab Default Settings (optional)
|
|
181
|
+
speechTab:
|
|
182
|
+
advancedMode: false
|
|
183
|
+
speechToText:
|
|
184
|
+
speechToText: true
|
|
185
|
+
engineSTT: "external" # Use external for better quality
|
|
186
|
+
languageSTT: "en-US"
|
|
187
|
+
textToSpeech:
|
|
188
|
+
textToSpeech: true
|
|
189
|
+
engineTTS: "external" # Use external for better quality
|
|
190
|
+
voice: "Kore"
|
|
191
|
+
playbackRate: 1.0
|
|
192
|
+
cacheTTS: true
|
|
193
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""Web search tools for Solace Agent Mesh.
|
|
2
|
+
|
|
3
|
+
This module provides Google Search integration. For other search providers
|
|
4
|
+
(Exa, Brave, Tavily), please use the corresponding plugins from
|
|
5
|
+
solace-agent-mesh-plugins repository.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from .models import SearchSource, SearchResult, ImageResult
|
|
9
|
+
from .base import WebSearchTool
|
|
10
|
+
from .google_search import GoogleSearchTool
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"SearchSource",
|
|
14
|
+
"SearchResult",
|
|
15
|
+
"ImageResult",
|
|
16
|
+
"WebSearchTool",
|
|
17
|
+
"GoogleSearchTool",
|
|
18
|
+
]
|