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,736 +0,0 @@
|
|
|
1
|
-
# LLM Summary Detail File
|
|
2
|
-
|
|
3
|
-
This file is a concatenation of all individual *llm.txt files found in the 'a2a_spec' directory tree. Each section below corresponds to a specific directory's summary file.
|
|
4
|
-
|
|
5
|
-
================================================================================
|
|
6
|
-
|
|
7
|
-
## Section 1: solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt
|
|
8
|
-
|
|
9
|
-
**Source file:** `solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt`
|
|
10
|
-
|
|
11
|
-
# DEVELOPER GUIDE: a2a_spec
|
|
12
|
-
|
|
13
|
-
## Quick Summary
|
|
14
|
-
The `a2a_spec` directory contains the complete Agent-to-Agent (A2A) communication specification for the Solace Agent Mesh. It includes the main JSON schema definition (`a2a.json`) that defines all data structures, request/response types, and error codes for agent communication, plus a `schemas/` subdirectory containing specialized validation schemas for various agent signals and progress updates. Together, these provide a comprehensive framework for validating and implementing compliant agent-to-agent communication.
|
|
15
|
-
|
|
16
|
-
## Files and Subdirectories Overview
|
|
17
|
-
- **Direct files:**
|
|
18
|
-
- `a2a.json` - Complete JSON Schema specification for A2A protocol including all data types, requests, responses, and error definitions
|
|
19
|
-
- `a2a_spec_llm.txt` - Developer guide documentation for the A2A specification
|
|
20
|
-
- **Subdirectories:**
|
|
21
|
-
- `schemas/` - JSON Schema definitions for agent communication signals (progress updates, tool invocations, LLM calls, artifact creation)
|
|
22
|
-
|
|
23
|
-
## Developer API Reference
|
|
24
|
-
|
|
25
|
-
### Direct Files
|
|
26
|
-
|
|
27
|
-
#### a2a.json
|
|
28
|
-
**Purpose:** Complete JSON Schema specification defining the Agent-to-Agent communication protocol
|
|
29
|
-
**Import:** This is a JSON Schema file, typically loaded for validation purposes
|
|
30
|
-
|
|
31
|
-
**Key Schema Definitions:**
|
|
32
|
-
- **AgentCard** - Self-describing manifest for agents with capabilities, skills, and endpoints
|
|
33
|
-
- **Message** - Individual messages in agent conversations with parts (text, files, data)
|
|
34
|
-
- **Task** - Stateful operations/conversations between clients and agents
|
|
35
|
-
- **A2ARequest/A2AResponse** - All supported JSON-RPC request and response types
|
|
36
|
-
- **Security Schemes** - OAuth2, API Key, mTLS, and other authentication methods
|
|
37
|
-
- **Error Types** - Standard JSON-RPC and A2A-specific error definitions
|
|
38
|
-
|
|
39
|
-
**Core Data Structures:**
|
|
40
|
-
```typescript
|
|
41
|
-
// Agent Card - describes agent capabilities
|
|
42
|
-
AgentCard {
|
|
43
|
-
name: string
|
|
44
|
-
description: string
|
|
45
|
-
url: string
|
|
46
|
-
skills: AgentSkill[]
|
|
47
|
-
capabilities: AgentCapabilities
|
|
48
|
-
security: SecurityRequirement[]
|
|
49
|
-
// ... additional fields
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Message - conversation content
|
|
53
|
-
Message {
|
|
54
|
-
messageId: string
|
|
55
|
-
role: "user" | "agent"
|
|
56
|
-
parts: Part[] // TextPart | FilePart | DataPart
|
|
57
|
-
taskId?: string
|
|
58
|
-
contextId?: string
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Task - stateful operation
|
|
62
|
-
Task {
|
|
63
|
-
id: string
|
|
64
|
-
contextId: string
|
|
65
|
-
status: TaskStatus
|
|
66
|
-
history?: Message[]
|
|
67
|
-
artifacts?: Artifact[]
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
#### a2a_spec_llm.txt
|
|
72
|
-
**Purpose:** Developer documentation and usage guide for the A2A specification
|
|
73
|
-
**Import:** Documentation file for reference
|
|
74
|
-
|
|
75
|
-
### Subdirectory APIs
|
|
76
|
-
|
|
77
|
-
#### schemas/
|
|
78
|
-
**Purpose:** Provides JSON Schema definitions for agent communication signals and progress updates
|
|
79
|
-
**Key Exports:** Schema definitions for progress tracking, tool invocations, LLM calls, and artifact creation
|
|
80
|
-
**Import Examples:**
|
|
81
|
-
```python
|
|
82
|
-
import json
|
|
83
|
-
from jsonschema import validate
|
|
84
|
-
|
|
85
|
-
# Load and use schemas for validation
|
|
86
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json') as f:
|
|
87
|
-
progress_schema = json.load(f)
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
**Available Schemas:**
|
|
91
|
-
- `agent_progress_update.json` - General progress status messages
|
|
92
|
-
- `artifact_creation_progress.json` - File/artifact creation tracking with chunked data
|
|
93
|
-
- `llm_invocation.json` - LLM model invocation signals
|
|
94
|
-
- `tool_invocation_start.json` - Tool execution start notifications
|
|
95
|
-
- `tool_result.json` - Tool execution completion results
|
|
96
|
-
|
|
97
|
-
## Complete Usage Guide
|
|
98
|
-
|
|
99
|
-
### 1. Loading and Using the A2A Schema
|
|
100
|
-
|
|
101
|
-
```python
|
|
102
|
-
import json
|
|
103
|
-
from jsonschema import validate, Draft7Validator
|
|
104
|
-
|
|
105
|
-
# Load the main A2A schema
|
|
106
|
-
with open('solace_agent_mesh/common/a2a_spec/a2a.json') as f:
|
|
107
|
-
a2a_schema = json.load(f)
|
|
108
|
-
|
|
109
|
-
# Create validator for specific types
|
|
110
|
-
def validate_agent_card(card_data):
|
|
111
|
-
"""Validate an AgentCard against the schema"""
|
|
112
|
-
card_schema = a2a_schema['definitions']['AgentCard']
|
|
113
|
-
validate(instance=card_data, schema=card_schema)
|
|
114
|
-
|
|
115
|
-
def validate_message(message_data):
|
|
116
|
-
"""Validate a Message against the schema"""
|
|
117
|
-
message_schema = a2a_schema['definitions']['Message']
|
|
118
|
-
validate(instance=message_data, schema=message_schema)
|
|
119
|
-
|
|
120
|
-
def validate_request(request_data):
|
|
121
|
-
"""Validate an A2A request"""
|
|
122
|
-
request_schema = a2a_schema['definitions']['A2ARequest']
|
|
123
|
-
validate(instance=request_data, schema=request_schema)
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### 2. Creating Valid A2A Data Structures
|
|
127
|
-
|
|
128
|
-
```python
|
|
129
|
-
# Create a valid Message
|
|
130
|
-
message = {
|
|
131
|
-
"kind": "message",
|
|
132
|
-
"messageId": "msg-123",
|
|
133
|
-
"role": "user",
|
|
134
|
-
"parts": [
|
|
135
|
-
{
|
|
136
|
-
"kind": "text",
|
|
137
|
-
"text": "Hello, can you help me with a task?"
|
|
138
|
-
}
|
|
139
|
-
]
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
# Create a SendMessage request
|
|
143
|
-
send_request = {
|
|
144
|
-
"jsonrpc": "2.0",
|
|
145
|
-
"id": "req-456",
|
|
146
|
-
"method": "message/send",
|
|
147
|
-
"params": {
|
|
148
|
-
"message": message
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
# Validate the request
|
|
153
|
-
validate_request(send_request)
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### 3. Using Agent Communication Schemas
|
|
157
|
-
|
|
158
|
-
```python
|
|
159
|
-
import json
|
|
160
|
-
from jsonschema import validate
|
|
161
|
-
|
|
162
|
-
# Load and validate progress update
|
|
163
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json') as f:
|
|
164
|
-
progress_schema = json.load(f)
|
|
165
|
-
|
|
166
|
-
progress_update = {
|
|
167
|
-
"type": "agent_progress_update",
|
|
168
|
-
"status_text": "Processing your request..."
|
|
169
|
-
}
|
|
170
|
-
validate(instance=progress_update, schema=progress_schema)
|
|
171
|
-
|
|
172
|
-
# Load and validate tool invocation
|
|
173
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/tool_invocation_start.json') as f:
|
|
174
|
-
tool_schema = json.load(f)
|
|
175
|
-
|
|
176
|
-
tool_invocation = {
|
|
177
|
-
"type": "tool_invocation_start",
|
|
178
|
-
"tool_name": "file_reader",
|
|
179
|
-
"tool_args": {"filepath": "/data/file.txt"},
|
|
180
|
-
"function_call_id": "call_123"
|
|
181
|
-
}
|
|
182
|
-
validate(instance=tool_invocation, schema=tool_schema)
|
|
183
|
-
|
|
184
|
-
# Load and validate tool result
|
|
185
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/tool_result.json') as f:
|
|
186
|
-
result_schema = json.load(f)
|
|
187
|
-
|
|
188
|
-
tool_result = {
|
|
189
|
-
"type": "tool_result",
|
|
190
|
-
"tool_name": "file_reader",
|
|
191
|
-
"result_data": {"content": "File contents...", "size": 1024},
|
|
192
|
-
"function_call_id": "call_123"
|
|
193
|
-
}
|
|
194
|
-
validate(instance=tool_result, schema=result_schema)
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
### 4. Working with Agent Cards
|
|
198
|
-
|
|
199
|
-
```python
|
|
200
|
-
# Create a complete AgentCard
|
|
201
|
-
agent_card = {
|
|
202
|
-
"name": "Document Processor",
|
|
203
|
-
"description": "Agent that processes and analyzes documents",
|
|
204
|
-
"url": "https://api.example.com/agent",
|
|
205
|
-
"version": "1.0.0",
|
|
206
|
-
"protocolVersion": "0.3.0",
|
|
207
|
-
"capabilities": {
|
|
208
|
-
"streaming": True,
|
|
209
|
-
"pushNotifications": False,
|
|
210
|
-
"stateTransitionHistory": True
|
|
211
|
-
},
|
|
212
|
-
"defaultInputModes": ["text/plain", "application/pdf"],
|
|
213
|
-
"defaultOutputModes": ["text/plain", "application/json"],
|
|
214
|
-
"skills": [
|
|
215
|
-
{
|
|
216
|
-
"id": "document-analysis",
|
|
217
|
-
"name": "Document Analysis",
|
|
218
|
-
"description": "Analyze and extract information from documents",
|
|
219
|
-
"tags": ["document", "analysis", "extraction"]
|
|
220
|
-
}
|
|
221
|
-
]
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
# Validate the agent card
|
|
225
|
-
validate_agent_card(agent_card)
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
### 5. Artifact Creation Progress Tracking
|
|
229
|
-
|
|
230
|
-
```python
|
|
231
|
-
# Load artifact creation schema
|
|
232
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json') as f:
|
|
233
|
-
artifact_schema = json.load(f)
|
|
234
|
-
|
|
235
|
-
# Track artifact creation with chunked data
|
|
236
|
-
artifact_progress = {
|
|
237
|
-
"type": "artifact_creation_progress",
|
|
238
|
-
"filename": "report.pdf",
|
|
239
|
-
"bytes_saved": 1024,
|
|
240
|
-
"artifact_chunk": "JVBERi0xLjQKJcOkw7zDtsO..." # Base64 encoded chunk
|
|
241
|
-
}
|
|
242
|
-
validate(instance=artifact_progress, schema=artifact_schema)
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
### 6. LLM Invocation Tracking
|
|
246
|
-
|
|
247
|
-
```python
|
|
248
|
-
# Load LLM invocation schema
|
|
249
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json') as f:
|
|
250
|
-
llm_schema = json.load(f)
|
|
251
|
-
|
|
252
|
-
# Track LLM calls
|
|
253
|
-
llm_invocation = {
|
|
254
|
-
"type": "llm_invocation",
|
|
255
|
-
"request": {
|
|
256
|
-
"model": "gpt-4",
|
|
257
|
-
"messages": [{"role": "user", "content": "Analyze this data"}],
|
|
258
|
-
"temperature": 0.7
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
validate(instance=llm_invocation, schema=llm_schema)
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
### 7. Complete Request/Response Flow with Progress Tracking
|
|
265
|
-
|
|
266
|
-
```python
|
|
267
|
-
# 1. Create and send a message
|
|
268
|
-
message = {
|
|
269
|
-
"kind": "message",
|
|
270
|
-
"messageId": "msg-001",
|
|
271
|
-
"role": "user",
|
|
272
|
-
"parts": [{"kind": "text", "text": "Analyze this document"}]
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
request = {
|
|
276
|
-
"jsonrpc": "2.0",
|
|
277
|
-
"id": "req-001",
|
|
278
|
-
"method": "message/send",
|
|
279
|
-
"params": {
|
|
280
|
-
"message": message,
|
|
281
|
-
"configuration": {
|
|
282
|
-
"blocking": False,
|
|
283
|
-
"acceptedOutputModes": ["text/plain", "application/json"]
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
# 2. Send progress updates during processing
|
|
289
|
-
def send_progress_update(status_text):
|
|
290
|
-
progress = {
|
|
291
|
-
"type": "agent_progress_update",
|
|
292
|
-
"status_text": status_text
|
|
293
|
-
}
|
|
294
|
-
# Validate and send progress update
|
|
295
|
-
validate(instance=progress, schema=progress_schema)
|
|
296
|
-
return progress
|
|
297
|
-
|
|
298
|
-
# 3. Track tool invocations
|
|
299
|
-
def track_tool_invocation(tool_name, args, call_id):
|
|
300
|
-
invocation = {
|
|
301
|
-
"type": "tool_invocation_start",
|
|
302
|
-
"tool_name": tool_name,
|
|
303
|
-
"tool_args": args,
|
|
304
|
-
"function_call_id": call_id
|
|
305
|
-
}
|
|
306
|
-
validate(instance=invocation, schema=tool_schema)
|
|
307
|
-
return invocation
|
|
308
|
-
|
|
309
|
-
# 4. Track tool results
|
|
310
|
-
def track_tool_result(tool_name, result_data, call_id):
|
|
311
|
-
result = {
|
|
312
|
-
"type": "tool_result",
|
|
313
|
-
"tool_name": tool_name,
|
|
314
|
-
"result_data": result_data,
|
|
315
|
-
"function_call_id": call_id
|
|
316
|
-
}
|
|
317
|
-
validate(instance=result, schema=result_schema)
|
|
318
|
-
return result
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
### 8. Comprehensive Schema Validation Utilities
|
|
322
|
-
|
|
323
|
-
```python
|
|
324
|
-
class A2AValidator:
|
|
325
|
-
"""Utility class for A2A schema validation"""
|
|
326
|
-
|
|
327
|
-
def __init__(self, schema_dir='solace_agent_mesh/common/a2a_spec'):
|
|
328
|
-
self.schema_dir = schema_dir
|
|
329
|
-
self.main_schema = self._load_main_schema()
|
|
330
|
-
self.signal_schemas = self._load_signal_schemas()
|
|
331
|
-
|
|
332
|
-
def _load_main_schema(self):
|
|
333
|
-
with open(f'{self.schema_dir}/a2a.json') as f:
|
|
334
|
-
return json.load(f)
|
|
335
|
-
|
|
336
|
-
def _load_signal_schemas(self):
|
|
337
|
-
schemas = {}
|
|
338
|
-
schema_files = [
|
|
339
|
-
'agent_progress_update.json',
|
|
340
|
-
'artifact_creation_progress.json',
|
|
341
|
-
'llm_invocation.json',
|
|
342
|
-
'tool_invocation_start.json',
|
|
343
|
-
'tool_result.json'
|
|
344
|
-
]
|
|
345
|
-
for filename in schema_files:
|
|
346
|
-
with open(f'{self.schema_dir}/schemas/{filename}') as f:
|
|
347
|
-
schema_name = filename.replace('.json', '')
|
|
348
|
-
schemas[schema_name] = json.load(f)
|
|
349
|
-
return schemas
|
|
350
|
-
|
|
351
|
-
def validate_definition(self, data, definition_name):
|
|
352
|
-
"""Validate data against a specific A2A definition"""
|
|
353
|
-
schema = self.main_schema['definitions'][definition_name]
|
|
354
|
-
validate(instance=data, schema=schema)
|
|
355
|
-
|
|
356
|
-
def validate_signal(self, data, signal_type):
|
|
357
|
-
"""Validate agent communication signal"""
|
|
358
|
-
schema = self.signal_schemas[signal_type]
|
|
359
|
-
validate(instance=data, schema=schema)
|
|
360
|
-
|
|
361
|
-
def validate_a2a_message(self, message_data):
|
|
362
|
-
"""Validate a complete A2A message"""
|
|
363
|
-
self.validate_definition(message_data, 'Message')
|
|
364
|
-
|
|
365
|
-
def validate_agent_card(self, card_data):
|
|
366
|
-
"""Validate an agent card"""
|
|
367
|
-
self.validate_definition(card_data, 'AgentCard')
|
|
368
|
-
|
|
369
|
-
def validate_task(self, task_data):
|
|
370
|
-
"""Validate a task object"""
|
|
371
|
-
self.validate_definition(task_data, 'Task')
|
|
372
|
-
|
|
373
|
-
# Usage example
|
|
374
|
-
validator = A2AValidator()
|
|
375
|
-
|
|
376
|
-
# Validate main A2A objects
|
|
377
|
-
validator.validate_agent_card(agent_card)
|
|
378
|
-
validator.validate_a2a_message(message)
|
|
379
|
-
|
|
380
|
-
# Validate communication signals
|
|
381
|
-
validator.validate_signal(progress_update, 'agent_progress_update')
|
|
382
|
-
validator.validate_signal(tool_invocation, 'tool_invocation_start')
|
|
383
|
-
validator.validate_signal(tool_result, 'tool_result')
|
|
384
|
-
validator.validate_signal(artifact_progress, 'artifact_creation_progress')
|
|
385
|
-
validator.validate_signal(llm_invocation, 'llm_invocation')
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
### 9. Error Handling with A2A Error Types
|
|
389
|
-
|
|
390
|
-
```python
|
|
391
|
-
# Create A2A-specific errors using the schema definitions
|
|
392
|
-
task_not_found_error = {
|
|
393
|
-
"code": -32001,
|
|
394
|
-
"message": "Task not found",
|
|
395
|
-
"data": {"taskId": "task-123"}
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
content_type_error = {
|
|
399
|
-
"code": -32005,
|
|
400
|
-
"message": "Incompatible content types",
|
|
401
|
-
"data": {"requested": "image/png", "supported": ["text/plain", "application/json"]}
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
# Create error response
|
|
405
|
-
error_response = {
|
|
406
|
-
"jsonrpc": "2.0",
|
|
407
|
-
"id": "req-456",
|
|
408
|
-
"error": task_not_found_error
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
# Validate error response
|
|
412
|
-
validator.validate_definition(error_response, 'JSONRPCErrorResponse')
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
This comprehensive guide shows how to use both the main A2A specification and the specialized signal schemas together to build compliant agent-to-agent communication systems in the Solace Agent Mesh, including progress tracking, tool invocation monitoring, LLM call tracking, and artifact creation progress.
|
|
416
|
-
|
|
417
|
-
================================================================================
|
|
418
|
-
|
|
419
|
-
## Section 2: solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt
|
|
420
|
-
|
|
421
|
-
**Source file:** `solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt`
|
|
422
|
-
|
|
423
|
-
# DEVELOPER GUIDE: schemas
|
|
424
|
-
|
|
425
|
-
## Quick Summary
|
|
426
|
-
This directory contains JSON Schema definitions for various agent-to-agent (A2A) communication signals in the Solace Agent Mesh. These schemas define the structure and validation rules for different types of progress updates, tool invocations, and LLM interactions that agents can send to each other.
|
|
427
|
-
|
|
428
|
-
## Files Overview
|
|
429
|
-
- `agent_progress_update.json` - Schema for general agent progress status messages
|
|
430
|
-
- `artifact_creation_progress.json` - Schema for tracking file/artifact creation progress with chunked data
|
|
431
|
-
- `llm_invocation.json` - Schema for LLM model invocation signals with usage tracking
|
|
432
|
-
- `tool_invocation_start.json` - Schema for tool execution start notifications
|
|
433
|
-
- `tool_result.json` - Schema for tool execution completion results with optional LLM usage
|
|
434
|
-
- `schemas_llm.txt` - Previous developer guide (legacy documentation)
|
|
435
|
-
|
|
436
|
-
## Developer API Reference
|
|
437
|
-
|
|
438
|
-
### agent_progress_update.json
|
|
439
|
-
**Purpose:** Defines the schema for agent progress update signals that communicate human-readable status messages between agents.
|
|
440
|
-
|
|
441
|
-
**Import:** Load as JSON schema for validation
|
|
442
|
-
```python
|
|
443
|
-
import json
|
|
444
|
-
from jsonschema import validate
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
**Schema Structure:**
|
|
448
|
-
```json
|
|
449
|
-
{
|
|
450
|
-
"type": "agent_progress_update",
|
|
451
|
-
"status_text": "string"
|
|
452
|
-
}
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
**Properties:**
|
|
456
|
-
- `type: "agent_progress_update"` - Constant identifier for this signal type (required)
|
|
457
|
-
- `status_text: string` - Human-readable progress message (required)
|
|
458
|
-
|
|
459
|
-
**Usage Examples:**
|
|
460
|
-
```python
|
|
461
|
-
import json
|
|
462
|
-
from jsonschema import validate
|
|
463
|
-
|
|
464
|
-
# Load and use schema
|
|
465
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json') as f:
|
|
466
|
-
schema = json.load(f)
|
|
467
|
-
|
|
468
|
-
# Valid data example
|
|
469
|
-
data = {
|
|
470
|
-
"type": "agent_progress_update",
|
|
471
|
-
"status_text": "Analyzing the report..."
|
|
472
|
-
}
|
|
473
|
-
validate(instance=data, schema=schema)
|
|
474
|
-
```
|
|
475
|
-
|
|
476
|
-
### artifact_creation_progress.json
|
|
477
|
-
**Purpose:** Defines the schema for tracking progress during file or artifact creation operations with chunked data transfer.
|
|
478
|
-
|
|
479
|
-
**Import:** Load as JSON schema for validation
|
|
480
|
-
```python
|
|
481
|
-
import json
|
|
482
|
-
from jsonschema import validate
|
|
483
|
-
```
|
|
484
|
-
|
|
485
|
-
**Schema Structure:**
|
|
486
|
-
```json
|
|
487
|
-
{
|
|
488
|
-
"type": "artifact_creation_progress",
|
|
489
|
-
"filename": "string",
|
|
490
|
-
"bytes_saved": "integer",
|
|
491
|
-
"artifact_chunk": "string"
|
|
492
|
-
}
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
**Properties:**
|
|
496
|
-
- `type: "artifact_creation_progress"` - Constant identifier for this signal type (required)
|
|
497
|
-
- `filename: string` - Name of the artifact being created (required)
|
|
498
|
-
- `bytes_saved: integer` - Number of bytes saved so far (required)
|
|
499
|
-
- `artifact_chunk: string` - The chunk of artifact data that was saved in this update (required)
|
|
500
|
-
|
|
501
|
-
**Usage Examples:**
|
|
502
|
-
```python
|
|
503
|
-
import json
|
|
504
|
-
from jsonschema import validate
|
|
505
|
-
|
|
506
|
-
# Load and use schema
|
|
507
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json') as f:
|
|
508
|
-
schema = json.load(f)
|
|
509
|
-
|
|
510
|
-
# Valid data example
|
|
511
|
-
data = {
|
|
512
|
-
"type": "artifact_creation_progress",
|
|
513
|
-
"filename": "report.pdf",
|
|
514
|
-
"bytes_saved": 1024,
|
|
515
|
-
"artifact_chunk": "JVBERi0xLjQKJcOkw7zDtsO..."
|
|
516
|
-
}
|
|
517
|
-
validate(instance=data, schema=schema)
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
### llm_invocation.json
|
|
521
|
-
**Purpose:** Defines the schema for LLM invocation signals that communicate when an agent is calling a language model, including token usage tracking.
|
|
522
|
-
|
|
523
|
-
**Import:** Load as JSON schema for validation
|
|
524
|
-
```python
|
|
525
|
-
import json
|
|
526
|
-
from jsonschema import validate
|
|
527
|
-
```
|
|
528
|
-
|
|
529
|
-
**Schema Structure:**
|
|
530
|
-
```json
|
|
531
|
-
{
|
|
532
|
-
"type": "llm_invocation",
|
|
533
|
-
"request": "object",
|
|
534
|
-
"usage": {
|
|
535
|
-
"input_tokens": "integer",
|
|
536
|
-
"output_tokens": "integer",
|
|
537
|
-
"cached_input_tokens": "integer",
|
|
538
|
-
"model": "string"
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
```
|
|
542
|
-
|
|
543
|
-
**Properties:**
|
|
544
|
-
- `type: "llm_invocation"` - Constant identifier for this signal type (required)
|
|
545
|
-
- `request: object` - Sanitized representation of the LlmRequest object sent to the model (required)
|
|
546
|
-
- `usage: object` - Token usage information for this LLM call (optional)
|
|
547
|
-
- `input_tokens: integer` - Number of input/prompt tokens (required in usage)
|
|
548
|
-
- `output_tokens: integer` - Number of output/completion tokens (required in usage)
|
|
549
|
-
- `cached_input_tokens: integer` - Number of cached input tokens (optional)
|
|
550
|
-
- `model: string` - Model identifier used for this call (required in usage)
|
|
551
|
-
|
|
552
|
-
**Usage Examples:**
|
|
553
|
-
```python
|
|
554
|
-
import json
|
|
555
|
-
from jsonschema import validate
|
|
556
|
-
|
|
557
|
-
# Load and use schema
|
|
558
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json') as f:
|
|
559
|
-
schema = json.load(f)
|
|
560
|
-
|
|
561
|
-
# Valid data example with usage tracking
|
|
562
|
-
data = {
|
|
563
|
-
"type": "llm_invocation",
|
|
564
|
-
"request": {
|
|
565
|
-
"model": "gpt-4",
|
|
566
|
-
"messages": [{"role": "user", "content": "Analyze this data"}],
|
|
567
|
-
"temperature": 0.7
|
|
568
|
-
},
|
|
569
|
-
"usage": {
|
|
570
|
-
"input_tokens": 150,
|
|
571
|
-
"output_tokens": 75,
|
|
572
|
-
"cached_input_tokens": 50,
|
|
573
|
-
"model": "gpt-4"
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
validate(instance=data, schema=schema)
|
|
577
|
-
```
|
|
578
|
-
|
|
579
|
-
### tool_invocation_start.json
|
|
580
|
-
**Purpose:** Defines the schema for tool invocation start signals that notify when an agent begins executing a tool.
|
|
581
|
-
|
|
582
|
-
**Import:** Load as JSON schema for validation
|
|
583
|
-
```python
|
|
584
|
-
import json
|
|
585
|
-
from jsonschema import validate
|
|
586
|
-
```
|
|
587
|
-
|
|
588
|
-
**Schema Structure:**
|
|
589
|
-
```json
|
|
590
|
-
{
|
|
591
|
-
"type": "tool_invocation_start",
|
|
592
|
-
"tool_name": "string",
|
|
593
|
-
"tool_args": "object",
|
|
594
|
-
"function_call_id": "string"
|
|
595
|
-
}
|
|
596
|
-
```
|
|
597
|
-
|
|
598
|
-
**Properties:**
|
|
599
|
-
- `type: "tool_invocation_start"` - Constant identifier for this signal type (required)
|
|
600
|
-
- `tool_name: string` - Name of the tool being called (required)
|
|
601
|
-
- `tool_args: object` - Arguments passed to the tool (required)
|
|
602
|
-
- `function_call_id: string` - ID from the LLM's function call (required)
|
|
603
|
-
|
|
604
|
-
**Usage Examples:**
|
|
605
|
-
```python
|
|
606
|
-
import json
|
|
607
|
-
from jsonschema import validate
|
|
608
|
-
|
|
609
|
-
# Load and use schema
|
|
610
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/tool_invocation_start.json') as f:
|
|
611
|
-
schema = json.load(f)
|
|
612
|
-
|
|
613
|
-
# Valid data example
|
|
614
|
-
data = {
|
|
615
|
-
"type": "tool_invocation_start",
|
|
616
|
-
"tool_name": "file_reader",
|
|
617
|
-
"tool_args": {
|
|
618
|
-
"filepath": "/path/to/file.txt",
|
|
619
|
-
"encoding": "utf-8"
|
|
620
|
-
},
|
|
621
|
-
"function_call_id": "call_abc123"
|
|
622
|
-
}
|
|
623
|
-
validate(instance=data, schema=schema)
|
|
624
|
-
```
|
|
625
|
-
|
|
626
|
-
### tool_result.json
|
|
627
|
-
**Purpose:** Defines the schema for tool execution result signals that communicate the completion and results of tool invocations, with optional LLM usage tracking.
|
|
628
|
-
|
|
629
|
-
**Import:** Load as JSON schema for validation
|
|
630
|
-
```python
|
|
631
|
-
import json
|
|
632
|
-
from jsonschema import validate
|
|
633
|
-
```
|
|
634
|
-
|
|
635
|
-
**Schema Structure:**
|
|
636
|
-
```json
|
|
637
|
-
{
|
|
638
|
-
"type": "tool_result",
|
|
639
|
-
"tool_name": "string",
|
|
640
|
-
"result_data": "any",
|
|
641
|
-
"function_call_id": "string",
|
|
642
|
-
"llm_usage": {
|
|
643
|
-
"input_tokens": "integer",
|
|
644
|
-
"output_tokens": "integer",
|
|
645
|
-
"cached_input_tokens": "integer",
|
|
646
|
-
"model": "string"
|
|
647
|
-
}
|
|
648
|
-
}
|
|
649
|
-
```
|
|
650
|
-
|
|
651
|
-
**Properties:**
|
|
652
|
-
- `type: "tool_result"` - Constant identifier for this signal type (required)
|
|
653
|
-
- `tool_name: string` - Name of the tool that was called (required)
|
|
654
|
-
- `result_data: any` - The data returned by the tool (required, can be any type)
|
|
655
|
-
- `function_call_id: string` - ID from the LLM's function call that this result corresponds to (required)
|
|
656
|
-
- `llm_usage: object` - Token usage if this tool made LLM calls (optional)
|
|
657
|
-
- `input_tokens: integer` - Total input tokens used by tool's LLM calls (required in llm_usage)
|
|
658
|
-
- `output_tokens: integer` - Total output tokens used by tool's LLM calls (required in llm_usage)
|
|
659
|
-
- `cached_input_tokens: integer` - Number of cached input tokens (optional)
|
|
660
|
-
- `model: string` - Model identifier(s) used by the tool (required in llm_usage)
|
|
661
|
-
|
|
662
|
-
**Usage Examples:**
|
|
663
|
-
```python
|
|
664
|
-
import json
|
|
665
|
-
from jsonschema import validate
|
|
666
|
-
|
|
667
|
-
# Load and use schema
|
|
668
|
-
with open('solace_agent_mesh/common/a2a_spec/schemas/tool_result.json') as f:
|
|
669
|
-
schema = json.load(f)
|
|
670
|
-
|
|
671
|
-
# Valid data example with LLM usage
|
|
672
|
-
data = {
|
|
673
|
-
"type": "tool_result",
|
|
674
|
-
"tool_name": "web_search",
|
|
675
|
-
"result_data": {
|
|
676
|
-
"results": ["Result 1", "Result 2"],
|
|
677
|
-
"count": 2
|
|
678
|
-
},
|
|
679
|
-
"function_call_id": "call_abc123",
|
|
680
|
-
"llm_usage": {
|
|
681
|
-
"input_tokens": 200,
|
|
682
|
-
"output_tokens": 100,
|
|
683
|
-
"model": "gpt-4"
|
|
684
|
-
}
|
|
685
|
-
}
|
|
686
|
-
validate(instance=data, schema=schema)
|
|
687
|
-
```
|
|
688
|
-
|
|
689
|
-
**Common Usage Pattern:**
|
|
690
|
-
```python
|
|
691
|
-
import json
|
|
692
|
-
from jsonschema import validate
|
|
693
|
-
from pathlib import Path
|
|
694
|
-
from typing import Dict, Any
|
|
695
|
-
|
|
696
|
-
def validate_a2a_signal(signal_data: Dict[str, Any], schema_name: str) -> bool:
|
|
697
|
-
"""Validate A2A signal data against its schema."""
|
|
698
|
-
schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
|
|
699
|
-
|
|
700
|
-
with open(schema_path) as f:
|
|
701
|
-
schema = json.load(f)
|
|
702
|
-
|
|
703
|
-
try:
|
|
704
|
-
validate(instance=signal_data, schema=schema)
|
|
705
|
-
return True
|
|
706
|
-
except Exception as e:
|
|
707
|
-
print(f"Validation failed: {e}")
|
|
708
|
-
return False
|
|
709
|
-
|
|
710
|
-
def load_schema(schema_name: str) -> Dict[str, Any]:
|
|
711
|
-
"""Load a specific A2A signal schema."""
|
|
712
|
-
schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
|
|
713
|
-
with open(schema_path) as f:
|
|
714
|
-
return json.load(f)
|
|
715
|
-
|
|
716
|
-
# Example usage
|
|
717
|
-
progress_data = {
|
|
718
|
-
"type": "agent_progress_update",
|
|
719
|
-
"status_text": "Processing request..."
|
|
720
|
-
}
|
|
721
|
-
|
|
722
|
-
if validate_a2a_signal(progress_data, "agent_progress_update"):
|
|
723
|
-
print("Signal is valid!")
|
|
724
|
-
|
|
725
|
-
# Load all schemas for batch validation
|
|
726
|
-
schemas = {
|
|
727
|
-
"agent_progress": load_schema("agent_progress_update"),
|
|
728
|
-
"artifact_progress": load_schema("artifact_creation_progress"),
|
|
729
|
-
"llm_invocation": load_schema("llm_invocation"),
|
|
730
|
-
"tool_start": load_schema("tool_invocation_start"),
|
|
731
|
-
"tool_result": load_schema("tool_result")
|
|
732
|
-
}
|
|
733
|
-
```
|
|
734
|
-
|
|
735
|
-
================================================================================
|
|
736
|
-
|