solace-agent-mesh 1.6.1__py3-none-any.whl → 1.13.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of solace-agent-mesh might be problematic. Click here for more details.
- solace_agent_mesh/agent/adk/alembic/README +74 -0
- solace_agent_mesh/agent/adk/alembic/env.py +77 -0
- solace_agent_mesh/agent/adk/alembic/script.py.mako +28 -0
- solace_agent_mesh/agent/adk/alembic/versions/e2902798564d_adk_session_db_upgrade.py +52 -0
- solace_agent_mesh/agent/adk/alembic.ini +112 -0
- solace_agent_mesh/agent/adk/app_llm_agent.py +26 -0
- solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py +165 -1
- solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py +163 -0
- solace_agent_mesh/agent/adk/callbacks.py +852 -109
- solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +234 -36
- solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py +52 -5
- solace_agent_mesh/agent/adk/mcp_content_processor.py +1 -1
- solace_agent_mesh/agent/adk/models/lite_llm.py +77 -21
- solace_agent_mesh/agent/adk/models/oauth2_token_manager.py +24 -137
- solace_agent_mesh/agent/adk/runner.py +85 -20
- solace_agent_mesh/agent/adk/schema_migration.py +88 -0
- solace_agent_mesh/agent/adk/services.py +94 -18
- solace_agent_mesh/agent/adk/setup.py +281 -65
- solace_agent_mesh/agent/adk/stream_parser.py +231 -37
- solace_agent_mesh/agent/adk/tool_wrapper.py +3 -0
- solace_agent_mesh/agent/protocol/event_handlers.py +472 -137
- solace_agent_mesh/agent/proxies/a2a/app.py +3 -2
- solace_agent_mesh/agent/proxies/a2a/component.py +572 -75
- solace_agent_mesh/agent/proxies/a2a/config.py +80 -4
- solace_agent_mesh/agent/proxies/base/app.py +3 -2
- solace_agent_mesh/agent/proxies/base/component.py +188 -22
- solace_agent_mesh/agent/proxies/base/proxy_task_context.py +3 -1
- solace_agent_mesh/agent/sac/app.py +91 -3
- solace_agent_mesh/agent/sac/component.py +591 -157
- solace_agent_mesh/agent/sac/patch_adk.py +8 -16
- solace_agent_mesh/agent/sac/task_execution_context.py +146 -4
- solace_agent_mesh/agent/tools/__init__.py +3 -0
- solace_agent_mesh/agent/tools/audio_tools.py +3 -3
- solace_agent_mesh/agent/tools/builtin_artifact_tools.py +710 -171
- solace_agent_mesh/agent/tools/deep_research_tools.py +2161 -0
- solace_agent_mesh/agent/tools/dynamic_tool.py +2 -0
- solace_agent_mesh/agent/tools/peer_agent_tool.py +82 -15
- solace_agent_mesh/agent/tools/time_tools.py +126 -0
- solace_agent_mesh/agent/tools/tool_config_types.py +57 -2
- solace_agent_mesh/agent/tools/web_search_tools.py +279 -0
- solace_agent_mesh/agent/tools/web_tools.py +125 -17
- solace_agent_mesh/agent/utils/artifact_helpers.py +248 -6
- solace_agent_mesh/agent/utils/context_helpers.py +17 -0
- solace_agent_mesh/assets/docs/404.html +6 -6
- solace_agent_mesh/assets/docs/assets/css/{styles.906a1503.css → styles.8162edfb.css} +1 -1
- solace_agent_mesh/assets/docs/assets/js/05749d90.19ac4f35.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/15ba94aa.e186750d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/15e40e79.434bb30f.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/17896441.e612dfb4.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2279.550aa580.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/{17896441.a5e82f9b.js.LICENSE.txt → 2279.550aa580.js.LICENSE.txt} +6 -0
- solace_agent_mesh/assets/docs/assets/js/240a0364.83e37aa8.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2987107d.a80604f9.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2e32b5e0.2f0db237.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3a6c6137.7e61915d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3ac1795d.7f7ab1c1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3ff0015d.e53c9b78.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/41adc471.0e95b87c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4667dc50.bf2ad456.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/49eed117.493d6f99.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{509e993c.4c7a1a6d.js → 509e993c.a1fbf45a.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/547e15cc.8e6da617.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/55b7b518.29d6e75d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5b8d9c11.d4eb37b8.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5c2bd65f.1ee87753.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/60702c0e.a8bdd79b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/631738c7.fa471607.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/64195356.09dbd087.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/66d4869e.30340bd3.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6a520c9d.b6e3f2ce.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6aaedf65.7253541d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6ad8f0bd.a5b36a60.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6d84eae0.fd23ba4a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/71da7b71.374b9d54.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/729898df.7249e9fd.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7e294c01.7c5f6906.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8024126c.e3467286.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/81a99df0.7ed65d45.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/82fbfb93.161823a5.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8b032486.91a91afc.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/924ffdeb.975e428a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/94e8668d.16083b3f.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9bb13469.4523ae20.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a7d42657.a956689d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a94703ab.3e5fbcb3.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ab9708a8.3e563275.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ad87452a.9d73dad6.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/c93cbaa0.0e0d8baf.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/cab03b5b.6a073091.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.07e170dd.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/da0b5bad.b62f7b08.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/dd817ffc.c37a755e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/dd81e2b8.b682e9c2.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/de915948.44a432bc.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e04b235d.06d23db6.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.deb2b62e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e3d9abda.1476f570.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e6f9706b.acc800d3.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e92d0134.c147a429.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ee0c2fe7.94d0a351.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/f284c35a.cc97854c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ff4d71f2.74710fc1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/main.d634009f.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/runtime~main.27bb82a7.js +1 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +68 -68
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +50 -50
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +42 -42
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +55 -55
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +82 -68
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/image-tools/index.html +81 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +67 -50
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/research-tools/index.html +136 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +178 -144
- solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +43 -42
- solace_agent_mesh/assets/docs/docs/documentation/components/index.html +20 -18
- solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +23 -23
- solace_agent_mesh/assets/docs/docs/documentation/components/platform-service/index.html +33 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +45 -45
- solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +182 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/prompts/index.html +147 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +208 -125
- solace_agent_mesh/assets/docs/docs/documentation/components/speech/index.html +52 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +28 -49
- solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +29 -30
- solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +14 -14
- solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/index.html +47 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/kubernetes-deployment-guide/index.html +197 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +90 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +17 -16
- solace_agent_mesh/assets/docs/docs/documentation/deploying/proxy_configuration/index.html +49 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +38 -38
- solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +162 -171
- solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +67 -49
- solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +17 -17
- solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +51 -51
- solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +22 -22
- solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +27 -27
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +135 -135
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +66 -66
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +51 -51
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +50 -38
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +86 -86
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +51 -51
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +24 -24
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +30 -30
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +44 -44
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/teams-integration/index.html +115 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +86 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +67 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +23 -19
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +40 -37
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/openapi-tools/index.html +324 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +112 -87
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +440 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +87 -64
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +62 -0
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +44 -44
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +39 -37
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +30 -30
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +18 -18
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/vibe_coding/index.html +62 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +311 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +39 -42
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +14 -14
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +27 -25
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +69 -69
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +72 -72
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +251 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +88 -0
- solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +42 -42
- solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +20 -20
- solace_agent_mesh/assets/docs/docs/documentation/migrations/platform-service-split/index.html +85 -0
- solace_agent_mesh/assets/docs/lunr-index-1768329217460.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -1
- solace_agent_mesh/assets/docs/search-doc-1768329217460.json +1 -0
- solace_agent_mesh/assets/docs/search-doc.json +1 -1
- solace_agent_mesh/assets/docs/sitemap.xml +1 -1
- solace_agent_mesh/cli/__init__.py +1 -1
- solace_agent_mesh/cli/commands/add_cmd/__init__.py +3 -1
- solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +6 -1
- solace_agent_mesh/cli/commands/add_cmd/proxy_cmd.py +100 -0
- solace_agent_mesh/cli/commands/docs_cmd.py +4 -1
- solace_agent_mesh/cli/commands/eval_cmd.py +1 -1
- solace_agent_mesh/cli/commands/init_cmd/__init__.py +15 -0
- solace_agent_mesh/cli/commands/init_cmd/directory_step.py +1 -1
- solace_agent_mesh/cli/commands/init_cmd/env_step.py +30 -3
- solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +3 -4
- solace_agent_mesh/cli/commands/init_cmd/platform_service_step.py +85 -0
- solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +16 -3
- solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +2 -1
- solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +1 -0
- solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +3 -3
- solace_agent_mesh/cli/commands/run_cmd.py +64 -49
- solace_agent_mesh/cli/commands/tools_cmd.py +315 -0
- solace_agent_mesh/cli/main.py +15 -0
- solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-BTf6dqwp.js → authCallback-KnKMP_vb.js} +1 -1
- solace_agent_mesh/client/webui/frontend/static/assets/client-DpBL2stg.js +25 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-Cd498TV2.js +435 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-rSf8Vu29.css +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/vendor-CGk8Suyh.js +565 -0
- solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -3
- solace_agent_mesh/client/webui/frontend/static/index.html +4 -4
- solace_agent_mesh/client/webui/frontend/static/mockServiceWorker.js +336 -0
- solace_agent_mesh/client/webui/frontend/static/ui-version.json +6 -0
- solace_agent_mesh/common/a2a/events.py +2 -1
- solace_agent_mesh/common/a2a/protocol.py +5 -0
- solace_agent_mesh/common/a2a/types.py +2 -1
- solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json +23 -6
- solace_agent_mesh/common/a2a_spec/schemas/feedback_event.json +51 -0
- solace_agent_mesh/common/agent_registry.py +38 -11
- solace_agent_mesh/common/data_parts.py +144 -4
- solace_agent_mesh/common/error_handlers.py +83 -0
- solace_agent_mesh/common/exceptions.py +24 -0
- solace_agent_mesh/common/oauth/__init__.py +17 -0
- solace_agent_mesh/common/oauth/oauth_client.py +408 -0
- solace_agent_mesh/common/oauth/utils.py +50 -0
- solace_agent_mesh/common/rag_dto.py +156 -0
- solace_agent_mesh/common/sac/sam_component_base.py +97 -19
- solace_agent_mesh/common/sam_events/event_service.py +2 -2
- solace_agent_mesh/common/services/employee_service.py +1 -1
- solace_agent_mesh/common/utils/embeds/constants.py +1 -0
- solace_agent_mesh/common/utils/embeds/converter.py +1 -8
- solace_agent_mesh/common/utils/embeds/modifiers.py +4 -28
- solace_agent_mesh/common/utils/embeds/resolver.py +152 -31
- solace_agent_mesh/common/utils/embeds/types.py +9 -0
- solace_agent_mesh/common/utils/log_formatters.py +20 -0
- solace_agent_mesh/common/utils/mime_helpers.py +12 -5
- solace_agent_mesh/common/utils/pydantic_utils.py +90 -3
- solace_agent_mesh/common/utils/rbac_utils.py +69 -0
- solace_agent_mesh/common/utils/templates/__init__.py +8 -0
- solace_agent_mesh/common/utils/templates/liquid_renderer.py +210 -0
- solace_agent_mesh/common/utils/templates/template_resolver.py +161 -0
- solace_agent_mesh/config_portal/backend/common.py +12 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/_index-CljP4_mv.js +103 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/{components-Rk0n-9cK.js → components-CaC6hG8d.js} +22 -22
- solace_agent_mesh/config_portal/frontend/static/client/assets/{entry.client-mvZjNKiz.js → entry.client-H_TM0YBt.js} +3 -3
- solace_agent_mesh/config_portal/frontend/static/client/assets/{index-DzNKzXrc.js → index-CnFykb2v.js} +16 -16
- solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-f8439d40.js +1 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/root-BIMqslJB.css +1 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/root-mJmTIdIk.js +10 -0
- solace_agent_mesh/config_portal/frontend/static/client/index.html +3 -3
- solace_agent_mesh/core_a2a/service.py +3 -2
- solace_agent_mesh/gateway/adapter/__init__.py +1 -0
- solace_agent_mesh/gateway/adapter/base.py +170 -0
- solace_agent_mesh/gateway/adapter/types.py +230 -0
- solace_agent_mesh/gateway/base/app.py +39 -2
- solace_agent_mesh/gateway/base/auth_interface.py +103 -0
- solace_agent_mesh/gateway/base/component.py +1027 -151
- solace_agent_mesh/gateway/generic/__init__.py +1 -0
- solace_agent_mesh/gateway/generic/app.py +50 -0
- solace_agent_mesh/gateway/generic/component.py +894 -0
- solace_agent_mesh/gateway/http_sse/alembic/env.py +0 -7
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py +72 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py +109 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_default_agent_to_projects.py +26 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py +135 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py +154 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251115_add_parent_task_id.py +32 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251126_add_background_task_fields.py +47 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251202_add_versioned_fields_to_prompts.py +52 -0
- solace_agent_mesh/gateway/http_sse/alembic.ini +0 -36
- solace_agent_mesh/gateway/http_sse/app.py +40 -11
- solace_agent_mesh/gateway/http_sse/component.py +285 -160
- solace_agent_mesh/gateway/http_sse/dependencies.py +149 -114
- solace_agent_mesh/gateway/http_sse/main.py +68 -450
- solace_agent_mesh/gateway/http_sse/repository/__init__.py +19 -1
- solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +2 -2
- solace_agent_mesh/gateway/http_sse/repository/entities/project.py +81 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/project_user.py +47 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/session.py +26 -3
- solace_agent_mesh/gateway/http_sse/repository/entities/task.py +7 -0
- solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +47 -0
- solace_agent_mesh/gateway/http_sse/repository/interfaces.py +114 -6
- solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +13 -0
- solace_agent_mesh/gateway/http_sse/repository/models/project_model.py +51 -0
- solace_agent_mesh/gateway/http_sse/repository/models/project_user_model.py +75 -0
- solace_agent_mesh/gateway/http_sse/repository/models/prompt_model.py +159 -0
- solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +8 -2
- solace_agent_mesh/gateway/http_sse/repository/models/task_model.py +8 -1
- solace_agent_mesh/gateway/http_sse/repository/project_repository.py +172 -0
- solace_agent_mesh/gateway/http_sse/repository/project_user_repository.py +186 -0
- solace_agent_mesh/gateway/http_sse/repository/session_repository.py +177 -11
- solace_agent_mesh/gateway/http_sse/repository/task_repository.py +86 -2
- solace_agent_mesh/gateway/http_sse/routers/agent_cards.py +38 -7
- solace_agent_mesh/gateway/http_sse/routers/artifacts.py +256 -58
- solace_agent_mesh/gateway/http_sse/routers/auth.py +168 -134
- solace_agent_mesh/gateway/http_sse/routers/config.py +302 -8
- solace_agent_mesh/gateway/http_sse/routers/dto/project_dto.py +69 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/prompt_dto.py +255 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/project_requests.py +48 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +14 -1
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/base_responses.py +1 -1
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/project_responses.py +31 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +5 -2
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/version_responses.py +31 -0
- solace_agent_mesh/gateway/http_sse/routers/feedback.py +133 -2
- solace_agent_mesh/gateway/http_sse/routers/people.py +2 -2
- solace_agent_mesh/gateway/http_sse/routers/projects.py +768 -0
- solace_agent_mesh/gateway/http_sse/routers/prompts.py +1416 -0
- solace_agent_mesh/gateway/http_sse/routers/sessions.py +167 -7
- solace_agent_mesh/gateway/http_sse/routers/speech.py +355 -0
- solace_agent_mesh/gateway/http_sse/routers/sse.py +131 -8
- solace_agent_mesh/gateway/http_sse/routers/tasks.py +670 -18
- solace_agent_mesh/gateway/http_sse/routers/users.py +1 -1
- solace_agent_mesh/gateway/http_sse/routers/version.py +343 -0
- solace_agent_mesh/gateway/http_sse/routers/visualization.py +92 -9
- solace_agent_mesh/gateway/http_sse/services/audio_service.py +1227 -0
- solace_agent_mesh/gateway/http_sse/services/background_task_monitor.py +186 -0
- solace_agent_mesh/gateway/http_sse/services/data_retention_service.py +1 -1
- solace_agent_mesh/gateway/http_sse/services/feedback_service.py +1 -1
- solace_agent_mesh/gateway/http_sse/services/project_service.py +930 -0
- solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py +303 -0
- solace_agent_mesh/gateway/http_sse/services/session_service.py +361 -12
- solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +354 -4
- solace_agent_mesh/gateway/http_sse/session_manager.py +15 -15
- solace_agent_mesh/gateway/http_sse/sse_manager.py +286 -166
- solace_agent_mesh/gateway/http_sse/utils/artifact_copy_utils.py +370 -0
- solace_agent_mesh/gateway/http_sse/utils/stim_utils.py +41 -1
- solace_agent_mesh/services/__init__.py +0 -0
- solace_agent_mesh/services/platform/__init__.py +29 -0
- solace_agent_mesh/services/platform/alembic/env.py +85 -0
- solace_agent_mesh/services/platform/alembic/script.py.mako +28 -0
- solace_agent_mesh/services/platform/alembic.ini +109 -0
- solace_agent_mesh/services/platform/api/__init__.py +3 -0
- solace_agent_mesh/services/platform/api/dependencies.py +154 -0
- solace_agent_mesh/services/platform/api/main.py +314 -0
- solace_agent_mesh/services/platform/api/middleware.py +51 -0
- solace_agent_mesh/services/platform/api/routers/__init__.py +33 -0
- solace_agent_mesh/services/platform/api/routers/health_router.py +31 -0
- solace_agent_mesh/services/platform/app.py +215 -0
- solace_agent_mesh/services/platform/component.py +777 -0
- solace_agent_mesh/shared/__init__.py +14 -0
- solace_agent_mesh/shared/api/__init__.py +42 -0
- solace_agent_mesh/shared/auth/__init__.py +26 -0
- solace_agent_mesh/shared/auth/dependencies.py +204 -0
- solace_agent_mesh/shared/auth/middleware.py +347 -0
- solace_agent_mesh/shared/database/__init__.py +20 -0
- solace_agent_mesh/{gateway/http_sse/shared → shared/database}/base_repository.py +1 -1
- solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_exceptions.py +1 -1
- solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_helpers.py +1 -1
- solace_agent_mesh/shared/exceptions/__init__.py +36 -0
- solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exception_handlers.py +19 -5
- solace_agent_mesh/shared/utils/__init__.py +21 -0
- solace_agent_mesh/templates/logging_config_template.yaml +48 -0
- solace_agent_mesh/templates/main_orchestrator.yaml +12 -1
- solace_agent_mesh/templates/platform.yaml +49 -0
- solace_agent_mesh/templates/plugin_readme_template.md +3 -25
- solace_agent_mesh/templates/plugin_tool_config_template.yaml +109 -0
- solace_agent_mesh/templates/proxy_template.yaml +62 -0
- solace_agent_mesh/templates/webui.yaml +148 -6
- solace_agent_mesh/tools/web_search/__init__.py +18 -0
- solace_agent_mesh/tools/web_search/base.py +84 -0
- solace_agent_mesh/tools/web_search/google_search.py +247 -0
- solace_agent_mesh/tools/web_search/models.py +99 -0
- {solace_agent_mesh-1.6.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/METADATA +31 -12
- solace_agent_mesh-1.13.2.dist-info/RECORD +591 -0
- {solace_agent_mesh-1.6.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/WHEEL +1 -1
- solace_agent_mesh/agent/adk/adk_llm.txt +0 -232
- solace_agent_mesh/agent/adk/adk_llm_detail.txt +0 -566
- solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +0 -171
- solace_agent_mesh/agent/adk/models/models_llm.txt +0 -142
- solace_agent_mesh/agent/agent_llm.txt +0 -378
- solace_agent_mesh/agent/agent_llm_detail.txt +0 -1702
- solace_agent_mesh/agent/protocol/protocol_llm.txt +0 -81
- solace_agent_mesh/agent/protocol/protocol_llm_detail.txt +0 -92
- solace_agent_mesh/agent/sac/sac_llm.txt +0 -189
- solace_agent_mesh/agent/sac/sac_llm_detail.txt +0 -200
- solace_agent_mesh/agent/testing/testing_llm.txt +0 -57
- solace_agent_mesh/agent/testing/testing_llm_detail.txt +0 -68
- solace_agent_mesh/agent/tools/tools_llm.txt +0 -263
- solace_agent_mesh/agent/tools/tools_llm_detail.txt +0 -274
- solace_agent_mesh/agent/utils/utils_llm.txt +0 -138
- solace_agent_mesh/agent/utils/utils_llm_detail.txt +0 -149
- solace_agent_mesh/assets/docs/assets/js/15ba94aa.932dd2db.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js +0 -2
- solace_agent_mesh/assets/docs/assets/js/240a0364.7eac6021.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/2e32b5e0.33f5d75b.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/3a6c6137.f5940cfa.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/3ac1795d.76654dd9.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/3ff0015d.2be20244.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/547e15cc.2cbb060a.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/55b7b518.f2b1d1ba.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/5c2bd65f.eda4bcb2.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/631738c7.a8b1ef8b.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/6a520c9d.ba015d81.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/6ad8f0bd.f4b15f3b.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/6d84eae0.4a5fbf39.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/71da7b71.38583438.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/8024126c.56e59919.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/81a99df0.07034dd9.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/82fbfb93.139a1a1f.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/924ffdeb.8095e148.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/94e8668d.b5ddb7a1.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/9bb13469.dd1c9b54.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/ab9708a8.3e6dd091.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/c93cbaa0.eaff365e.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/da0b5bad.d08a9466.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/dd817ffc.0aa9630a.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/dd81e2b8.d590bc9e.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/de915948.27d6b065.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e3d9abda.6b9493d0.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e6f9706b.e74a984d.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/e92d0134.cf6d6522.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/f284c35a.42f59cdd.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/ff4d71f2.15b02f97.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/main.b12eac43.js +0 -2
- solace_agent_mesh/assets/docs/assets/js/runtime~main.e268214e.js +0 -1
- solace_agent_mesh/assets/docs/lunr-index-1761248203150.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1761248203150.json +0 -1
- solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +0 -250
- solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +0 -365
- solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +0 -305
- solace_agent_mesh/client/webui/frontend/static/assets/client-CaY59VuC.js +0 -25
- solace_agent_mesh/client/webui/frontend/static/assets/main-B32noGmR.js +0 -342
- solace_agent_mesh/client/webui/frontend/static/assets/main-DHJKSW1S.css +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/vendor-BEmvJSYz.js +0 -405
- solace_agent_mesh/common/a2a/a2a_llm.txt +0 -182
- solace_agent_mesh/common/a2a/a2a_llm_detail.txt +0 -193
- solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +0 -407
- solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +0 -736
- solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +0 -313
- solace_agent_mesh/common/common_llm.txt +0 -251
- solace_agent_mesh/common/common_llm_detail.txt +0 -2562
- solace_agent_mesh/common/middleware/middleware_llm.txt +0 -174
- solace_agent_mesh/common/middleware/middleware_llm_detail.txt +0 -185
- solace_agent_mesh/common/sac/sac_llm.txt +0 -71
- solace_agent_mesh/common/sac/sac_llm_detail.txt +0 -82
- solace_agent_mesh/common/sam_events/sam_events_llm.txt +0 -104
- solace_agent_mesh/common/sam_events/sam_events_llm_detail.txt +0 -115
- solace_agent_mesh/common/services/providers/providers_llm.txt +0 -80
- solace_agent_mesh/common/services/services_llm.txt +0 -363
- solace_agent_mesh/common/services/services_llm_detail.txt +0 -459
- solace_agent_mesh/common/utils/embeds/embeds_llm.txt +0 -220
- solace_agent_mesh/common/utils/utils_llm.txt +0 -336
- solace_agent_mesh/common/utils/utils_llm_detail.txt +0 -572
- solace_agent_mesh/config_portal/frontend/static/client/assets/_index-ByU1X1HD.js +0 -98
- solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-61038fc6.js +0 -1
- solace_agent_mesh/config_portal/frontend/static/client/assets/root-BWvk5-gF.js +0 -10
- solace_agent_mesh/config_portal/frontend/static/client/assets/root-DxRwaWiE.css +0 -1
- solace_agent_mesh/core_a2a/core_a2a_llm.txt +0 -90
- solace_agent_mesh/core_a2a/core_a2a_llm_detail.txt +0 -101
- solace_agent_mesh/gateway/base/base_llm.txt +0 -224
- solace_agent_mesh/gateway/base/base_llm_detail.txt +0 -235
- solace_agent_mesh/gateway/gateway_llm.txt +0 -373
- solace_agent_mesh/gateway/gateway_llm_detail.txt +0 -3885
- solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +0 -295
- solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +0 -155
- solace_agent_mesh/gateway/http_sse/components/components_llm.txt +0 -105
- solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +0 -299
- solace_agent_mesh/gateway/http_sse/http_sse_llm_detail.txt +0 -3278
- solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +0 -263
- solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +0 -266
- solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +0 -340
- solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +0 -346
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +0 -83
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +0 -107
- solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +0 -314
- solace_agent_mesh/gateway/http_sse/services/services_llm.txt +0 -297
- solace_agent_mesh/gateway/http_sse/shared/__init__.py +0 -146
- solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +0 -285
- solace_agent_mesh/gateway/http_sse/utils/utils_llm.txt +0 -47
- solace_agent_mesh/llm.txt +0 -228
- solace_agent_mesh/llm_detail.txt +0 -2835
- solace_agent_mesh/solace_agent_mesh_llm.txt +0 -362
- solace_agent_mesh/solace_agent_mesh_llm_detail.txt +0 -8599
- solace_agent_mesh/templates/logging_config_template.ini +0 -45
- solace_agent_mesh/templates/templates_llm.txt +0 -147
- solace_agent_mesh-1.6.1.dist-info/RECORD +0 -525
- /solace_agent_mesh/assets/docs/assets/js/{main.b12eac43.js.LICENSE.txt → main.d634009f.js.LICENSE.txt} +0 -0
- /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/auth_utils.py +0 -0
- /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/pagination.py +0 -0
- /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/response_utils.py +0 -0
- /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/error_dto.py +0 -0
- /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exceptions.py +0 -0
- /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/enums.py +0 -0
- /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/timestamp_utils.py +0 -0
- /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/types.py +0 -0
- /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/utils.py +0 -0
- {solace_agent_mesh-1.6.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/entry_points.txt +0 -0
- {solace_agent_mesh-1.6.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
# LLM Summary Detail File
|
|
2
|
-
|
|
3
|
-
This file is a concatenation of all individual *llm.txt files found in the 'testing' directory tree. Each section below corresponds to a specific directory's summary file.
|
|
4
|
-
|
|
5
|
-
================================================================================
|
|
6
|
-
|
|
7
|
-
## Section 1: solace_agent_mesh/agent/testing/testing_llm.txt
|
|
8
|
-
|
|
9
|
-
**Source file:** `solace_agent_mesh/agent/testing/testing_llm.txt`
|
|
10
|
-
|
|
11
|
-
## Quick Summary
|
|
12
|
-
The `testing` directory provides utilities for testing the A2A (Agent-to-Agent) framework, with a focus on debugging tools that help developers understand test failures by providing readable representations of agent event histories.
|
|
13
|
-
|
|
14
|
-
## Files Overview
|
|
15
|
-
- `__init__.py` - Package initialization file marking the directory as a Python module
|
|
16
|
-
- `debug_utils.py` - Debugging utilities including pretty-printing for A2A event history
|
|
17
|
-
- `testing_llm.txt` - Documentation file (not a code module)
|
|
18
|
-
|
|
19
|
-
## Developer API Reference
|
|
20
|
-
|
|
21
|
-
### debug_utils.py
|
|
22
|
-
**Purpose:** Provides debugging utilities for the declarative test framework, including a pretty-printer for A2A event history
|
|
23
|
-
**Import:** `from solace_agent_mesh.agent.testing.debug_utils import pretty_print_event_history`
|
|
24
|
-
|
|
25
|
-
**Functions:**
|
|
26
|
-
- `pretty_print_event_history(event_history: List[Dict[str, Any]], max_string_length: int = 200) -> None` - Formats and prints a list of A2A event payloads for debugging, intelligently parsing different event types and truncating long strings for readability
|
|
27
|
-
|
|
28
|
-
**Usage Examples:**
|
|
29
|
-
```python
|
|
30
|
-
# Import the debugging utility
|
|
31
|
-
from solace_agent_mesh.agent.testing.debug_utils import pretty_print_event_history
|
|
32
|
-
from typing import List, Dict, Any
|
|
33
|
-
|
|
34
|
-
# Example: Debug a failed test by printing event history
|
|
35
|
-
event_history: List[Dict[str, Any]] = [
|
|
36
|
-
{
|
|
37
|
-
"result": {
|
|
38
|
-
"status": {
|
|
39
|
-
"state": "EXECUTING",
|
|
40
|
-
"message": {
|
|
41
|
-
"parts": [
|
|
42
|
-
{"type": "text", "text": "Processing your request..."}
|
|
43
|
-
]
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"final": False
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"error": {
|
|
51
|
-
"code": "TIMEOUT_ERROR",
|
|
52
|
-
"message": "Request timed out after 30 seconds"
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
]
|
|
56
|
-
|
|
57
|
-
# Print formatted event history for debugging
|
|
58
|
-
pretty_print_event_history(event_history)
|
|
59
|
-
|
|
60
|
-
# Print with custom string truncation length
|
|
61
|
-
pretty_print_event_history(event_history, max_string_length=100)
|
|
62
|
-
|
|
63
|
-
# Handle empty event history (when test fails before any events)
|
|
64
|
-
pretty_print_event_history([])
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
================================================================================
|
|
68
|
-
|
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
# DEVELOPER GUIDE: tools
|
|
2
|
-
|
|
3
|
-
## Quick Summary
|
|
4
|
-
The `tools` directory contains the complete tool system for the Solace Agent Mesh, providing built-in tools for artifact management, data analysis, audio/image processing, web interactions, and dynamic tool creation. It includes a registry system for tool discovery and management, with support for declarative YAML-based configurations and multiple tool types including built-in, custom Python, and MCP tools.
|
|
5
|
-
|
|
6
|
-
## Files Overview
|
|
7
|
-
- `__init__.py` - Ensures all built-in tool modules are imported for declarative registration
|
|
8
|
-
- `audio_tools.py` - Audio processing tools including TTS, transcription, and audio manipulation
|
|
9
|
-
- `builtin_artifact_tools.py` - Core artifact management tools for CRUD operations and content processing
|
|
10
|
-
- `builtin_data_analysis_tools.py` - Data analysis tools for creating charts from Plotly configurations
|
|
11
|
-
- `dynamic_tool.py` - Base classes for creating dynamic, programmatically-defined tools
|
|
12
|
-
- `general_agent_tools.py` - General-purpose tools for file conversion and diagram generation
|
|
13
|
-
- `image_tools.py` - Image generation, editing, and multimodal content analysis tools
|
|
14
|
-
- `peer_agent_tool.py` - Tool for delegating tasks to peer agents over Solace messaging
|
|
15
|
-
- `registry.py` - Singleton registry for tool discovery and management
|
|
16
|
-
- `test_tools.py` - Testing utilities for timeouts and error handling
|
|
17
|
-
- `tool_config_types.py` - Pydantic models for YAML-based tool configurations
|
|
18
|
-
- `tool_definition.py` - Base tool definition classes and structures
|
|
19
|
-
- `web_tools.py` - Web scraping and content extraction tools
|
|
20
|
-
|
|
21
|
-
## Developer API Reference
|
|
22
|
-
|
|
23
|
-
### __init__.py
|
|
24
|
-
**Purpose:** Triggers tool registration by importing all tool modules
|
|
25
|
-
**Import:** `from solace_agent_mesh.agent.tools import *`
|
|
26
|
-
|
|
27
|
-
No public classes or functions - this is an initialization module.
|
|
28
|
-
|
|
29
|
-
### audio_tools.py
|
|
30
|
-
**Purpose:** Provides comprehensive audio processing capabilities
|
|
31
|
-
**Import:** `from solace_agent_mesh.agent.tools.audio_tools import select_voice, text_to_speech, multi_speaker_text_to_speech, concatenate_audio, transcribe_audio`
|
|
32
|
-
|
|
33
|
-
**Functions:**
|
|
34
|
-
- `select_voice(gender: Optional[str] = None, tone: Optional[str] = None, exclude_voices: Optional[List[str]] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Selects a suitable voice based on gender and tone criteria
|
|
35
|
-
- `text_to_speech(text: str, output_filename: Optional[str] = None, voice_name: Optional[str] = None, gender: Optional[str] = None, tone: Optional[str] = None, language: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Converts text to speech using Gemini TTS API
|
|
36
|
-
- `multi_speaker_text_to_speech(conversation_text: str, output_filename: Optional[str] = None, speaker_configs: Optional[List[Dict[str, str]]] = None, language: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Creates multi-speaker audio from conversation text
|
|
37
|
-
- `concatenate_audio(clips_to_join: List[Dict[str, Any]], output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Combines multiple audio clips with custom pause durations
|
|
38
|
-
- `transcribe_audio(audio_filename: str, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Transcribes audio using OpenAI-compatible API
|
|
39
|
-
|
|
40
|
-
**Constants/Variables:**
|
|
41
|
-
- `VOICE_TONE_MAPPING: Dict[str, List[str]]` - Maps tone preferences to available voices
|
|
42
|
-
- `GENDER_TO_VOICE_MAPPING: Dict[str, List[str]]` - Maps gender preferences to available voices
|
|
43
|
-
- `ALL_AVAILABLE_VOICES: List[str]` - Complete list of available voice names
|
|
44
|
-
- `SUPPORTED_LANGUAGES: Dict[str, str]` - Maps language names to BCP-47 codes
|
|
45
|
-
|
|
46
|
-
**Usage Examples:**
|
|
47
|
-
```python
|
|
48
|
-
# Basic text-to-speech
|
|
49
|
-
result = await text_to_speech(
|
|
50
|
-
text="Hello, world!",
|
|
51
|
-
voice_name="Kore",
|
|
52
|
-
tool_context=context
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
# Multi-speaker conversation
|
|
56
|
-
conversation = "Speaker1: Hello there!\nSpeaker2: Hi, how are you?"
|
|
57
|
-
result = await multi_speaker_text_to_speech(
|
|
58
|
-
conversation_text=conversation,
|
|
59
|
-
speaker_configs=[
|
|
60
|
-
{"name": "Speaker1", "gender": "female", "tone": "friendly"},
|
|
61
|
-
{"name": "Speaker2", "gender": "male", "tone": "casual"}
|
|
62
|
-
],
|
|
63
|
-
tool_context=context
|
|
64
|
-
)
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### builtin_artifact_tools.py
|
|
68
|
-
**Purpose:** Core artifact management and content processing tools
|
|
69
|
-
**Import:** `from solace_agent_mesh.agent.tools.builtin_artifact_tools import list_artifacts, load_artifact, signal_artifact_for_return, apply_embed_and_create_artifact, extract_content_from_artifact, append_to_artifact, delete_artifact`
|
|
70
|
-
|
|
71
|
-
**Functions:**
|
|
72
|
-
- `list_artifacts(tool_context: ToolContext = None) -> Dict[str, Any]` - Lists all available artifacts with metadata summaries
|
|
73
|
-
- `load_artifact(filename: str, version: int, load_metadata_only: bool = False, max_content_length: Optional[int] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Loads artifact content or metadata
|
|
74
|
-
- `signal_artifact_for_return(filename: str, version: int, tool_context: ToolContext = None) -> Dict[str, Any]` - Signals artifact to be returned to caller
|
|
75
|
-
- `apply_embed_and_create_artifact(output_filename: str, embed_directive: str, output_metadata: Optional[Dict[str, Any]] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Resolves embed directives and creates new artifacts
|
|
76
|
-
- `extract_content_from_artifact(filename: str, extraction_goal: str, version: Optional[str] = "latest", output_filename_base: Optional[str] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Uses LLM to extract/transform artifact content
|
|
77
|
-
- `append_to_artifact(filename: str, content_chunk: str, mime_type: str, tool_context: ToolContext = None) -> Dict[str, Any]` - Appends content to existing artifacts
|
|
78
|
-
- `delete_artifact(filename: str, version: Optional[int] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Deletes artifact versions
|
|
79
|
-
|
|
80
|
-
**Usage Examples:**
|
|
81
|
-
```python
|
|
82
|
-
# List all artifacts
|
|
83
|
-
artifacts = await list_artifacts(tool_context=context)
|
|
84
|
-
|
|
85
|
-
# Load specific artifact version
|
|
86
|
-
content = await load_artifact(
|
|
87
|
-
filename="data.csv",
|
|
88
|
-
version=1,
|
|
89
|
-
tool_context=context
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
# Extract content using LLM
|
|
93
|
-
result = await extract_content_from_artifact(
|
|
94
|
-
filename="report.pdf",
|
|
95
|
-
extraction_goal="Extract all financial figures and create a summary table",
|
|
96
|
-
tool_context=context
|
|
97
|
-
)
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### builtin_data_analysis_tools.py
|
|
101
|
-
**Purpose:** Data analysis and visualization tools
|
|
102
|
-
**Import:** `from solace_agent_mesh.agent.tools.builtin_data_analysis_tools import create_chart_from_plotly_config`
|
|
103
|
-
|
|
104
|
-
**Functions:**
|
|
105
|
-
- `create_chart_from_plotly_config(config_content: str, config_format: Literal["json", "yaml"], output_filename: str, output_format: Optional[str] = "png", tool_context: ToolContext = None) -> Dict[str, Any]` - Generates static chart images from Plotly configurations
|
|
106
|
-
|
|
107
|
-
**Usage Examples:**
|
|
108
|
-
```python
|
|
109
|
-
# Create chart from JSON config
|
|
110
|
-
plotly_config = '{"data": [{"x": [1,2,3], "y": [4,5,6], "type": "scatter"}]}'
|
|
111
|
-
result = await create_chart_from_plotly_config(
|
|
112
|
-
config_content=plotly_config,
|
|
113
|
-
config_format="json",
|
|
114
|
-
output_filename="my_chart.png",
|
|
115
|
-
tool_context=context
|
|
116
|
-
)
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### dynamic_tool.py
|
|
120
|
-
**Purpose:** Base classes for creating dynamic, programmatically-defined tools
|
|
121
|
-
**Import:** `from solace_agent_mesh.agent.tools.dynamic_tool import DynamicTool, DynamicToolProvider`
|
|
122
|
-
|
|
123
|
-
**Classes:**
|
|
124
|
-
- `DynamicTool(tool_config: Optional[Union[dict, BaseModel]] = None)` - Base class for dynamic tools with programmatic definitions
|
|
125
|
-
- `tool_name: str` - Property returning the function name for LLM calls
|
|
126
|
-
- `tool_description: str` - Property returning tool description
|
|
127
|
-
- `parameters_schema: adk_types.Schema` - Property returning parameter schema
|
|
128
|
-
- `raw_string_args: List[str]` - Property listing args that skip embed resolution
|
|
129
|
-
- `resolution_type: Literal["early", "all"]` - Property determining embed resolution scope
|
|
130
|
-
- `run_async(*, args: Dict[str, Any], tool_context: ToolContext) -> Dict[str, Any]` - Executes the tool with embed resolution
|
|
131
|
-
- `_run_async_impl(args: dict, tool_context: ToolContext, credential: Optional[str] = None) -> dict` - Abstract method for tool implementation
|
|
132
|
-
|
|
133
|
-
- `DynamicToolProvider()` - Base class for tool providers that generate multiple tools
|
|
134
|
-
- `register_tool(func: Callable) -> Callable` - Class method decorator for registering functions as tools
|
|
135
|
-
- `create_tools(tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]` - Abstract method for creating custom tools
|
|
136
|
-
- `get_all_tools_for_framework(tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]` - Framework method combining decorated and custom tools
|
|
137
|
-
|
|
138
|
-
**Usage Examples:**
|
|
139
|
-
```python
|
|
140
|
-
# Create a custom dynamic tool
|
|
141
|
-
class MyCustomTool(DynamicTool):
|
|
142
|
-
@property
|
|
143
|
-
def tool_name(self) -> str:
|
|
144
|
-
return "my_custom_tool"
|
|
145
|
-
|
|
146
|
-
@property
|
|
147
|
-
def tool_description(self) -> str:
|
|
148
|
-
return "Does something custom"
|
|
149
|
-
|
|
150
|
-
@property
|
|
151
|
-
def parameters_schema(self) -> adk_types.Schema:
|
|
152
|
-
return adk_types.Schema(
|
|
153
|
-
type=adk_types.Type.OBJECT,
|
|
154
|
-
properties={
|
|
155
|
-
"input": adk_types.Schema(type=adk_types.Type.STRING)
|
|
156
|
-
},
|
|
157
|
-
required=["input"]
|
|
158
|
-
)
|
|
159
|
-
|
|
160
|
-
async def _run_async_impl(self, args: dict, tool_context: ToolContext, credential: Optional[str] = None) -> dict:
|
|
161
|
-
return {"result": f"Processed: {args['input']}"}
|
|
162
|
-
|
|
163
|
-
# Create a tool provider with decorated methods
|
|
164
|
-
class MyToolProvider(DynamicToolProvider):
|
|
165
|
-
@DynamicToolProvider.register_tool
|
|
166
|
-
async def my_decorated_tool(self, param1: str, tool_context: ToolContext) -> dict:
|
|
167
|
-
"""This tool does something useful."""
|
|
168
|
-
return {"status": "success", "input": param1}
|
|
169
|
-
|
|
170
|
-
def create_tools(self, tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]:
|
|
171
|
-
return [MyCustomTool(tool_config)]
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### general_agent_tools.py
|
|
175
|
-
**Purpose:** General-purpose utility tools for file conversion and diagram generation
|
|
176
|
-
**Import:** `from solace_agent_mesh.agent.tools.general_agent_tools import convert_file_to_markdown, mermaid_diagram_generator`
|
|
177
|
-
|
|
178
|
-
**Functions:**
|
|
179
|
-
- `convert_file_to_markdown(input_filename: str, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Converts files to Markdown using MarkItDown library
|
|
180
|
-
- `mermaid_diagram_generator(mermaid_syntax: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Generates PNG images from Mermaid diagram syntax
|
|
181
|
-
|
|
182
|
-
**Usage Examples:**
|
|
183
|
-
```python
|
|
184
|
-
# Convert PDF to Markdown
|
|
185
|
-
result = await convert_file_to_markdown(
|
|
186
|
-
input_filename="document.pdf",
|
|
187
|
-
tool_context=context
|
|
188
|
-
)
|
|
189
|
-
|
|
190
|
-
# Generate Mermaid diagram
|
|
191
|
-
mermaid_code = """
|
|
192
|
-
graph TD
|
|
193
|
-
A[Start] --> B[Process]
|
|
194
|
-
B --> C[End]
|
|
195
|
-
"""
|
|
196
|
-
result = await mermaid_diagram_generator(
|
|
197
|
-
mermaid_syntax=mermaid_code,
|
|
198
|
-
output_filename="flowchart.png",
|
|
199
|
-
tool_context=context
|
|
200
|
-
)
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
### image_tools.py
|
|
204
|
-
**Purpose:** Image generation, editing, and multimodal content analysis
|
|
205
|
-
**Import:** `from solace_agent_mesh.agent.tools.image_tools import create_image_from_description, describe_image, describe_audio, edit_image_with_gemini`
|
|
206
|
-
|
|
207
|
-
**Functions:**
|
|
208
|
-
- `create_image_from_description(image_description: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Generates images from text descriptions
|
|
209
|
-
- `describe_image(image_filename: str, prompt: str = "What is in this image?", tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Describes images using vision APIs
|
|
210
|
-
- `describe_audio(audio_filename: str, prompt: str = "What is in this recording?", tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Describes audio using multimodal APIs
|
|
211
|
-
- `edit_image_with_gemini(image_filename: str, edit_prompt: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Edits images using Gemini 2.0 Flash
|
|
212
|
-
|
|
213
|
-
**Usage Examples:**
|
|
214
|
-
```python
|
|
215
|
-
# Generate image from description
|
|
216
|
-
result = await create_image_from_description(
|
|
217
|
-
image_description="A sunset over mountains with a lake in the foreground",
|
|
218
|
-
output_filename="sunset.png",
|
|
219
|
-
tool_context=context
|
|
220
|
-
)
|
|
221
|
-
|
|
222
|
-
# Describe an existing image
|
|
223
|
-
result = await describe_image(
|
|
224
|
-
image_filename="photo.jpg",
|
|
225
|
-
prompt="What objects are visible in this image?",
|
|
226
|
-
tool_context=context
|
|
227
|
-
)
|
|
228
|
-
|
|
229
|
-
# Edit an image
|
|
230
|
-
result = await edit_image_with_gemini(
|
|
231
|
-
image_filename="original.jpg",
|
|
232
|
-
edit_prompt="Add a rainbow in the sky",
|
|
233
|
-
tool_context=context
|
|
234
|
-
)
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
### peer_agent_tool.py
|
|
238
|
-
**Purpose:** Enables task delegation to peer agents over Solace messaging
|
|
239
|
-
**Import:** `from solace_agent_mesh.agent.tools.peer_agent_tool import PeerAgentTool`
|
|
240
|
-
|
|
241
|
-
**Classes:**
|
|
242
|
-
- `PeerAgentTool(target_agent_name: str, host_component)` - Tool for delegating tasks to peer agents
|
|
243
|
-
- `target_agent_name: str` - Name of the peer agent
|
|
244
|
-
- `host_component` - Reference to the SamAgentComponent
|
|
245
|
-
- `is_long_running: bool` - Always True for async delegation
|
|
246
|
-
- `run_async(*, args: Dict[str, Any], tool_context: ToolContext) -> Any` - Delegates task to peer agent
|
|
247
|
-
|
|
248
|
-
**Usage Examples:**
|
|
249
|
-
```python
|
|
250
|
-
# Create peer agent tool (typically done by framework)
|
|
251
|
-
peer_tool = PeerAgentTool("data_analyst_agent", host_component)
|
|
252
|
-
|
|
253
|
-
# Tool is called by LLM with these parameters:
|
|
254
|
-
# {
|
|
255
|
-
# "task_description": "Analyze the sales data and create a summary report",
|
|
256
|
-
# "user_query": "What were our top performing products last quarter?",
|
|
257
|
-
# "artifacts": [{"filename": "sales_data.csv", "version": "latest"}]
|
|
258
|
-
# }
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
### registry.py
|
|
262
|
-
|
|
263
|
-
# content_hash: 20fa34bab0871d388e46728669b40fe53f763aeff295c72c42aba81729cabab4
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
# LLM Summary Detail File
|
|
2
|
-
|
|
3
|
-
This file is a concatenation of all individual *llm.txt files found in the 'tools' directory tree. Each section below corresponds to a specific directory's summary file.
|
|
4
|
-
|
|
5
|
-
================================================================================
|
|
6
|
-
|
|
7
|
-
## Section 1: solace_agent_mesh/agent/tools/tools_llm.txt
|
|
8
|
-
|
|
9
|
-
**Source file:** `solace_agent_mesh/agent/tools/tools_llm.txt`
|
|
10
|
-
|
|
11
|
-
# DEVELOPER GUIDE: tools
|
|
12
|
-
|
|
13
|
-
## Quick Summary
|
|
14
|
-
The `tools` directory contains the complete tool system for the Solace Agent Mesh, providing built-in tools for artifact management, data analysis, audio/image processing, web interactions, and dynamic tool creation. It includes a registry system for tool discovery and management, with support for declarative YAML-based configurations and multiple tool types including built-in, custom Python, and MCP tools.
|
|
15
|
-
|
|
16
|
-
## Files Overview
|
|
17
|
-
- `__init__.py` - Ensures all built-in tool modules are imported for declarative registration
|
|
18
|
-
- `audio_tools.py` - Audio processing tools including TTS, transcription, and audio manipulation
|
|
19
|
-
- `builtin_artifact_tools.py` - Core artifact management tools for CRUD operations and content processing
|
|
20
|
-
- `builtin_data_analysis_tools.py` - Data analysis tools for creating charts from Plotly configurations
|
|
21
|
-
- `dynamic_tool.py` - Base classes for creating dynamic, programmatically-defined tools
|
|
22
|
-
- `general_agent_tools.py` - General-purpose tools for file conversion and diagram generation
|
|
23
|
-
- `image_tools.py` - Image generation, editing, and multimodal content analysis tools
|
|
24
|
-
- `peer_agent_tool.py` - Tool for delegating tasks to peer agents over Solace messaging
|
|
25
|
-
- `registry.py` - Singleton registry for tool discovery and management
|
|
26
|
-
- `test_tools.py` - Testing utilities for timeouts and error handling
|
|
27
|
-
- `tool_config_types.py` - Pydantic models for YAML-based tool configurations
|
|
28
|
-
- `tool_definition.py` - Base tool definition classes and structures
|
|
29
|
-
- `web_tools.py` - Web scraping and content extraction tools
|
|
30
|
-
|
|
31
|
-
## Developer API Reference
|
|
32
|
-
|
|
33
|
-
### __init__.py
|
|
34
|
-
**Purpose:** Triggers tool registration by importing all tool modules
|
|
35
|
-
**Import:** `from solace_agent_mesh.agent.tools import *`
|
|
36
|
-
|
|
37
|
-
No public classes or functions - this is an initialization module.
|
|
38
|
-
|
|
39
|
-
### audio_tools.py
|
|
40
|
-
**Purpose:** Provides comprehensive audio processing capabilities
|
|
41
|
-
**Import:** `from solace_agent_mesh.agent.tools.audio_tools import select_voice, text_to_speech, multi_speaker_text_to_speech, concatenate_audio, transcribe_audio`
|
|
42
|
-
|
|
43
|
-
**Functions:**
|
|
44
|
-
- `select_voice(gender: Optional[str] = None, tone: Optional[str] = None, exclude_voices: Optional[List[str]] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Selects a suitable voice based on gender and tone criteria
|
|
45
|
-
- `text_to_speech(text: str, output_filename: Optional[str] = None, voice_name: Optional[str] = None, gender: Optional[str] = None, tone: Optional[str] = None, language: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Converts text to speech using Gemini TTS API
|
|
46
|
-
- `multi_speaker_text_to_speech(conversation_text: str, output_filename: Optional[str] = None, speaker_configs: Optional[List[Dict[str, str]]] = None, language: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Creates multi-speaker audio from conversation text
|
|
47
|
-
- `concatenate_audio(clips_to_join: List[Dict[str, Any]], output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Combines multiple audio clips with custom pause durations
|
|
48
|
-
- `transcribe_audio(audio_filename: str, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Transcribes audio using OpenAI-compatible API
|
|
49
|
-
|
|
50
|
-
**Constants/Variables:**
|
|
51
|
-
- `VOICE_TONE_MAPPING: Dict[str, List[str]]` - Maps tone preferences to available voices
|
|
52
|
-
- `GENDER_TO_VOICE_MAPPING: Dict[str, List[str]]` - Maps gender preferences to available voices
|
|
53
|
-
- `ALL_AVAILABLE_VOICES: List[str]` - Complete list of available voice names
|
|
54
|
-
- `SUPPORTED_LANGUAGES: Dict[str, str]` - Maps language names to BCP-47 codes
|
|
55
|
-
|
|
56
|
-
**Usage Examples:**
|
|
57
|
-
```python
|
|
58
|
-
# Basic text-to-speech
|
|
59
|
-
result = await text_to_speech(
|
|
60
|
-
text="Hello, world!",
|
|
61
|
-
voice_name="Kore",
|
|
62
|
-
tool_context=context
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
# Multi-speaker conversation
|
|
66
|
-
conversation = "Speaker1: Hello there!\nSpeaker2: Hi, how are you?"
|
|
67
|
-
result = await multi_speaker_text_to_speech(
|
|
68
|
-
conversation_text=conversation,
|
|
69
|
-
speaker_configs=[
|
|
70
|
-
{"name": "Speaker1", "gender": "female", "tone": "friendly"},
|
|
71
|
-
{"name": "Speaker2", "gender": "male", "tone": "casual"}
|
|
72
|
-
],
|
|
73
|
-
tool_context=context
|
|
74
|
-
)
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### builtin_artifact_tools.py
|
|
78
|
-
**Purpose:** Core artifact management and content processing tools
|
|
79
|
-
**Import:** `from solace_agent_mesh.agent.tools.builtin_artifact_tools import list_artifacts, load_artifact, signal_artifact_for_return, apply_embed_and_create_artifact, extract_content_from_artifact, append_to_artifact, delete_artifact`
|
|
80
|
-
|
|
81
|
-
**Functions:**
|
|
82
|
-
- `list_artifacts(tool_context: ToolContext = None) -> Dict[str, Any]` - Lists all available artifacts with metadata summaries
|
|
83
|
-
- `load_artifact(filename: str, version: int, load_metadata_only: bool = False, max_content_length: Optional[int] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Loads artifact content or metadata
|
|
84
|
-
- `signal_artifact_for_return(filename: str, version: int, tool_context: ToolContext = None) -> Dict[str, Any]` - Signals artifact to be returned to caller
|
|
85
|
-
- `apply_embed_and_create_artifact(output_filename: str, embed_directive: str, output_metadata: Optional[Dict[str, Any]] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Resolves embed directives and creates new artifacts
|
|
86
|
-
- `extract_content_from_artifact(filename: str, extraction_goal: str, version: Optional[str] = "latest", output_filename_base: Optional[str] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Uses LLM to extract/transform artifact content
|
|
87
|
-
- `append_to_artifact(filename: str, content_chunk: str, mime_type: str, tool_context: ToolContext = None) -> Dict[str, Any]` - Appends content to existing artifacts
|
|
88
|
-
- `delete_artifact(filename: str, version: Optional[int] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Deletes artifact versions
|
|
89
|
-
|
|
90
|
-
**Usage Examples:**
|
|
91
|
-
```python
|
|
92
|
-
# List all artifacts
|
|
93
|
-
artifacts = await list_artifacts(tool_context=context)
|
|
94
|
-
|
|
95
|
-
# Load specific artifact version
|
|
96
|
-
content = await load_artifact(
|
|
97
|
-
filename="data.csv",
|
|
98
|
-
version=1,
|
|
99
|
-
tool_context=context
|
|
100
|
-
)
|
|
101
|
-
|
|
102
|
-
# Extract content using LLM
|
|
103
|
-
result = await extract_content_from_artifact(
|
|
104
|
-
filename="report.pdf",
|
|
105
|
-
extraction_goal="Extract all financial figures and create a summary table",
|
|
106
|
-
tool_context=context
|
|
107
|
-
)
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### builtin_data_analysis_tools.py
|
|
111
|
-
**Purpose:** Data analysis and visualization tools
|
|
112
|
-
**Import:** `from solace_agent_mesh.agent.tools.builtin_data_analysis_tools import create_chart_from_plotly_config`
|
|
113
|
-
|
|
114
|
-
**Functions:**
|
|
115
|
-
- `create_chart_from_plotly_config(config_content: str, config_format: Literal["json", "yaml"], output_filename: str, output_format: Optional[str] = "png", tool_context: ToolContext = None) -> Dict[str, Any]` - Generates static chart images from Plotly configurations
|
|
116
|
-
|
|
117
|
-
**Usage Examples:**
|
|
118
|
-
```python
|
|
119
|
-
# Create chart from JSON config
|
|
120
|
-
plotly_config = '{"data": [{"x": [1,2,3], "y": [4,5,6], "type": "scatter"}]}'
|
|
121
|
-
result = await create_chart_from_plotly_config(
|
|
122
|
-
config_content=plotly_config,
|
|
123
|
-
config_format="json",
|
|
124
|
-
output_filename="my_chart.png",
|
|
125
|
-
tool_context=context
|
|
126
|
-
)
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### dynamic_tool.py
|
|
130
|
-
**Purpose:** Base classes for creating dynamic, programmatically-defined tools
|
|
131
|
-
**Import:** `from solace_agent_mesh.agent.tools.dynamic_tool import DynamicTool, DynamicToolProvider`
|
|
132
|
-
|
|
133
|
-
**Classes:**
|
|
134
|
-
- `DynamicTool(tool_config: Optional[Union[dict, BaseModel]] = None)` - Base class for dynamic tools with programmatic definitions
|
|
135
|
-
- `tool_name: str` - Property returning the function name for LLM calls
|
|
136
|
-
- `tool_description: str` - Property returning tool description
|
|
137
|
-
- `parameters_schema: adk_types.Schema` - Property returning parameter schema
|
|
138
|
-
- `raw_string_args: List[str]` - Property listing args that skip embed resolution
|
|
139
|
-
- `resolution_type: Literal["early", "all"]` - Property determining embed resolution scope
|
|
140
|
-
- `run_async(*, args: Dict[str, Any], tool_context: ToolContext) -> Dict[str, Any]` - Executes the tool with embed resolution
|
|
141
|
-
- `_run_async_impl(args: dict, tool_context: ToolContext, credential: Optional[str] = None) -> dict` - Abstract method for tool implementation
|
|
142
|
-
|
|
143
|
-
- `DynamicToolProvider()` - Base class for tool providers that generate multiple tools
|
|
144
|
-
- `register_tool(func: Callable) -> Callable` - Class method decorator for registering functions as tools
|
|
145
|
-
- `create_tools(tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]` - Abstract method for creating custom tools
|
|
146
|
-
- `get_all_tools_for_framework(tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]` - Framework method combining decorated and custom tools
|
|
147
|
-
|
|
148
|
-
**Usage Examples:**
|
|
149
|
-
```python
|
|
150
|
-
# Create a custom dynamic tool
|
|
151
|
-
class MyCustomTool(DynamicTool):
|
|
152
|
-
@property
|
|
153
|
-
def tool_name(self) -> str:
|
|
154
|
-
return "my_custom_tool"
|
|
155
|
-
|
|
156
|
-
@property
|
|
157
|
-
def tool_description(self) -> str:
|
|
158
|
-
return "Does something custom"
|
|
159
|
-
|
|
160
|
-
@property
|
|
161
|
-
def parameters_schema(self) -> adk_types.Schema:
|
|
162
|
-
return adk_types.Schema(
|
|
163
|
-
type=adk_types.Type.OBJECT,
|
|
164
|
-
properties={
|
|
165
|
-
"input": adk_types.Schema(type=adk_types.Type.STRING)
|
|
166
|
-
},
|
|
167
|
-
required=["input"]
|
|
168
|
-
)
|
|
169
|
-
|
|
170
|
-
async def _run_async_impl(self, args: dict, tool_context: ToolContext, credential: Optional[str] = None) -> dict:
|
|
171
|
-
return {"result": f"Processed: {args['input']}"}
|
|
172
|
-
|
|
173
|
-
# Create a tool provider with decorated methods
|
|
174
|
-
class MyToolProvider(DynamicToolProvider):
|
|
175
|
-
@DynamicToolProvider.register_tool
|
|
176
|
-
async def my_decorated_tool(self, param1: str, tool_context: ToolContext) -> dict:
|
|
177
|
-
"""This tool does something useful."""
|
|
178
|
-
return {"status": "success", "input": param1}
|
|
179
|
-
|
|
180
|
-
def create_tools(self, tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]:
|
|
181
|
-
return [MyCustomTool(tool_config)]
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### general_agent_tools.py
|
|
185
|
-
**Purpose:** General-purpose utility tools for file conversion and diagram generation
|
|
186
|
-
**Import:** `from solace_agent_mesh.agent.tools.general_agent_tools import convert_file_to_markdown, mermaid_diagram_generator`
|
|
187
|
-
|
|
188
|
-
**Functions:**
|
|
189
|
-
- `convert_file_to_markdown(input_filename: str, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Converts files to Markdown using MarkItDown library
|
|
190
|
-
- `mermaid_diagram_generator(mermaid_syntax: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Generates PNG images from Mermaid diagram syntax
|
|
191
|
-
|
|
192
|
-
**Usage Examples:**
|
|
193
|
-
```python
|
|
194
|
-
# Convert PDF to Markdown
|
|
195
|
-
result = await convert_file_to_markdown(
|
|
196
|
-
input_filename="document.pdf",
|
|
197
|
-
tool_context=context
|
|
198
|
-
)
|
|
199
|
-
|
|
200
|
-
# Generate Mermaid diagram
|
|
201
|
-
mermaid_code = """
|
|
202
|
-
graph TD
|
|
203
|
-
A[Start] --> B[Process]
|
|
204
|
-
B --> C[End]
|
|
205
|
-
"""
|
|
206
|
-
result = await mermaid_diagram_generator(
|
|
207
|
-
mermaid_syntax=mermaid_code,
|
|
208
|
-
output_filename="flowchart.png",
|
|
209
|
-
tool_context=context
|
|
210
|
-
)
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
### image_tools.py
|
|
214
|
-
**Purpose:** Image generation, editing, and multimodal content analysis
|
|
215
|
-
**Import:** `from solace_agent_mesh.agent.tools.image_tools import create_image_from_description, describe_image, describe_audio, edit_image_with_gemini`
|
|
216
|
-
|
|
217
|
-
**Functions:**
|
|
218
|
-
- `create_image_from_description(image_description: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Generates images from text descriptions
|
|
219
|
-
- `describe_image(image_filename: str, prompt: str = "What is in this image?", tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Describes images using vision APIs
|
|
220
|
-
- `describe_audio(audio_filename: str, prompt: str = "What is in this recording?", tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Describes audio using multimodal APIs
|
|
221
|
-
- `edit_image_with_gemini(image_filename: str, edit_prompt: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Edits images using Gemini 2.0 Flash
|
|
222
|
-
|
|
223
|
-
**Usage Examples:**
|
|
224
|
-
```python
|
|
225
|
-
# Generate image from description
|
|
226
|
-
result = await create_image_from_description(
|
|
227
|
-
image_description="A sunset over mountains with a lake in the foreground",
|
|
228
|
-
output_filename="sunset.png",
|
|
229
|
-
tool_context=context
|
|
230
|
-
)
|
|
231
|
-
|
|
232
|
-
# Describe an existing image
|
|
233
|
-
result = await describe_image(
|
|
234
|
-
image_filename="photo.jpg",
|
|
235
|
-
prompt="What objects are visible in this image?",
|
|
236
|
-
tool_context=context
|
|
237
|
-
)
|
|
238
|
-
|
|
239
|
-
# Edit an image
|
|
240
|
-
result = await edit_image_with_gemini(
|
|
241
|
-
image_filename="original.jpg",
|
|
242
|
-
edit_prompt="Add a rainbow in the sky",
|
|
243
|
-
tool_context=context
|
|
244
|
-
)
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
### peer_agent_tool.py
|
|
248
|
-
**Purpose:** Enables task delegation to peer agents over Solace messaging
|
|
249
|
-
**Import:** `from solace_agent_mesh.agent.tools.peer_agent_tool import PeerAgentTool`
|
|
250
|
-
|
|
251
|
-
**Classes:**
|
|
252
|
-
- `PeerAgentTool(target_agent_name: str, host_component)` - Tool for delegating tasks to peer agents
|
|
253
|
-
- `target_agent_name: str` - Name of the peer agent
|
|
254
|
-
- `host_component` - Reference to the SamAgentComponent
|
|
255
|
-
- `is_long_running: bool` - Always True for async delegation
|
|
256
|
-
- `run_async(*, args: Dict[str, Any], tool_context: ToolContext) -> Any` - Delegates task to peer agent
|
|
257
|
-
|
|
258
|
-
**Usage Examples:**
|
|
259
|
-
```python
|
|
260
|
-
# Create peer agent tool (typically done by framework)
|
|
261
|
-
peer_tool = PeerAgentTool("data_analyst_agent", host_component)
|
|
262
|
-
|
|
263
|
-
# Tool is called by LLM with these parameters:
|
|
264
|
-
# {
|
|
265
|
-
# "task_description": "Analyze the sales data and create a summary report",
|
|
266
|
-
# "user_query": "What were our top performing products last quarter?",
|
|
267
|
-
# "artifacts": [{"filename": "sales_data.csv", "version": "latest"}]
|
|
268
|
-
# }
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
### registry.py
|
|
272
|
-
|
|
273
|
-
================================================================================
|
|
274
|
-
|