solace-agent-mesh 1.11.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.
- solace_agent_mesh/__init__.py +0 -0
- solace_agent_mesh/agent/__init__.py +0 -0
- solace_agent_mesh/agent/adk/__init__.py +0 -0
- solace_agent_mesh/agent/adk/adk_llm.txt +226 -0
- solace_agent_mesh/agent/adk/adk_llm_detail.txt +566 -0
- 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 +52 -0
- solace_agent_mesh/agent/adk/artifacts/__init__.py +1 -0
- solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +171 -0
- solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py +545 -0
- solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py +609 -0
- solace_agent_mesh/agent/adk/callbacks.py +2318 -0
- solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +406 -0
- solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py +415 -0
- solace_agent_mesh/agent/adk/mcp_content_processor.py +666 -0
- solace_agent_mesh/agent/adk/models/lite_llm.py +1026 -0
- solace_agent_mesh/agent/adk/models/models_llm.txt +189 -0
- solace_agent_mesh/agent/adk/models/oauth2_token_manager.py +132 -0
- solace_agent_mesh/agent/adk/runner.py +390 -0
- solace_agent_mesh/agent/adk/schema_migration.py +88 -0
- solace_agent_mesh/agent/adk/services.py +468 -0
- solace_agent_mesh/agent/adk/setup.py +1325 -0
- solace_agent_mesh/agent/adk/stream_parser.py +415 -0
- solace_agent_mesh/agent/adk/tool_wrapper.py +165 -0
- solace_agent_mesh/agent/agent_llm.txt +369 -0
- solace_agent_mesh/agent/agent_llm_detail.txt +1702 -0
- solace_agent_mesh/agent/protocol/__init__.py +0 -0
- solace_agent_mesh/agent/protocol/event_handlers.py +2041 -0
- solace_agent_mesh/agent/protocol/protocol_llm.txt +81 -0
- solace_agent_mesh/agent/protocol/protocol_llm_detail.txt +92 -0
- solace_agent_mesh/agent/proxies/__init__.py +0 -0
- solace_agent_mesh/agent/proxies/a2a/__init__.py +3 -0
- solace_agent_mesh/agent/proxies/a2a/a2a_llm.txt +190 -0
- solace_agent_mesh/agent/proxies/a2a/app.py +56 -0
- solace_agent_mesh/agent/proxies/a2a/component.py +1585 -0
- solace_agent_mesh/agent/proxies/a2a/config.py +216 -0
- solace_agent_mesh/agent/proxies/a2a/oauth_token_cache.py +104 -0
- solace_agent_mesh/agent/proxies/base/__init__.py +3 -0
- solace_agent_mesh/agent/proxies/base/app.py +100 -0
- solace_agent_mesh/agent/proxies/base/base_llm.txt +148 -0
- solace_agent_mesh/agent/proxies/base/component.py +816 -0
- solace_agent_mesh/agent/proxies/base/config.py +85 -0
- solace_agent_mesh/agent/proxies/base/proxy_task_context.py +19 -0
- solace_agent_mesh/agent/proxies/proxies_llm.txt +283 -0
- solace_agent_mesh/agent/sac/__init__.py +0 -0
- solace_agent_mesh/agent/sac/app.py +595 -0
- solace_agent_mesh/agent/sac/component.py +3668 -0
- solace_agent_mesh/agent/sac/patch_adk.py +103 -0
- solace_agent_mesh/agent/sac/sac_llm.txt +189 -0
- solace_agent_mesh/agent/sac/sac_llm_detail.txt +200 -0
- solace_agent_mesh/agent/sac/task_execution_context.py +415 -0
- solace_agent_mesh/agent/testing/__init__.py +3 -0
- solace_agent_mesh/agent/testing/debug_utils.py +135 -0
- solace_agent_mesh/agent/testing/testing_llm.txt +58 -0
- solace_agent_mesh/agent/testing/testing_llm_detail.txt +68 -0
- solace_agent_mesh/agent/tools/__init__.py +16 -0
- solace_agent_mesh/agent/tools/audio_tools.py +1740 -0
- solace_agent_mesh/agent/tools/builtin_artifact_tools.py +2500 -0
- solace_agent_mesh/agent/tools/builtin_data_analysis_tools.py +244 -0
- solace_agent_mesh/agent/tools/dynamic_tool.py +396 -0
- solace_agent_mesh/agent/tools/general_agent_tools.py +572 -0
- solace_agent_mesh/agent/tools/image_tools.py +1185 -0
- solace_agent_mesh/agent/tools/peer_agent_tool.py +363 -0
- solace_agent_mesh/agent/tools/registry.py +38 -0
- solace_agent_mesh/agent/tools/test_tools.py +136 -0
- solace_agent_mesh/agent/tools/time_tools.py +126 -0
- solace_agent_mesh/agent/tools/tool_config_types.py +93 -0
- solace_agent_mesh/agent/tools/tool_definition.py +53 -0
- solace_agent_mesh/agent/tools/tools_llm.txt +276 -0
- solace_agent_mesh/agent/tools/tools_llm_detail.txt +275 -0
- solace_agent_mesh/agent/tools/web_tools.py +392 -0
- solace_agent_mesh/agent/utils/__init__.py +0 -0
- solace_agent_mesh/agent/utils/artifact_helpers.py +1353 -0
- solace_agent_mesh/agent/utils/config_parser.py +49 -0
- solace_agent_mesh/agent/utils/context_helpers.py +77 -0
- solace_agent_mesh/agent/utils/utils_llm.txt +152 -0
- solace_agent_mesh/agent/utils/utils_llm_detail.txt +149 -0
- solace_agent_mesh/assets/docs/404.html +16 -0
- solace_agent_mesh/assets/docs/assets/css/styles.8162edfb.css +1 -0
- solace_agent_mesh/assets/docs/assets/images/Solace_AI_Framework_With_Broker-85f0a306a9bcdd20b390b7a949f6d862.png +0 -0
- solace_agent_mesh/assets/docs/assets/images/sam-enterprise-credentials-b269f095349473118b2b33bdfcc40122.png +0 -0
- solace_agent_mesh/assets/docs/assets/js/032c2d61.f3d37824.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/05749d90.19ac4f35.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/0bcf40b7.c019ad46.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/1001.0182a8bd.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/1039.0bd46aa1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/149.b797a808.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/15ba94aa.92fea363.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/15e40e79.434bb30f.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js.LICENSE.txt +9 -0
- solace_agent_mesh/assets/docs/assets/js/17896441.e612dfb4.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2130.ab9fd314.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2131ec11.5c7a1f6e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2237.5e477fc6.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2279.550aa580.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/2279.550aa580.js.LICENSE.txt +13 -0
- solace_agent_mesh/assets/docs/assets/js/2334.1cf50a20.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/240a0364.9ad94d1b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2987107d.a80604f9.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/2e32b5e0.33f5d75b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3219.adc1d663.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/341393d4.0fac2613.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3624.0eaa1fd0.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/375.708d48db.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3834.b6cd790e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3a6c6137.f5940cfa.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3ac1795d.28b7c67b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/3ff0015d.2ddc75c0.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/41adc471.48b12a4e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4250.95455b28.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4356.d169ab5b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4458.518e66fa.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4488.c7cc3442.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4494.6ee23046.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4855.fc4444b6.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4866.22daefc0.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/4950.ca4caeda.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/509e993c.a1fbf45a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5388.7a136447.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/55b7b518.29d6e75d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5607.081356f8.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5864.b0d0e9de.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5c2bd65f.90a87880.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/5e95c892.558d5167.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6063ff4c.ef84f702.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/60702c0e.a8bdd79b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6143.0a1464c9.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/631738c7.fa471607.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6395.e9c73649.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/66d4869e.b77431fc.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6796.51d2c9b7.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6976.379be23b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/6978.ee0b945c.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/6fdfefc7.99de744e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7040.cb436723.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7195.412f418a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/71da7b71.374b9d54.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/722f809d.965da774.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7280.3fb73bdb.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/742f027b.46c07808.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/77cf947d.48cb18a2.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7845.e33e7c4c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/7900.69516146.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/81a99df0.2484b8d9.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/82fbfb93.161823a5.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8356.8a379c04.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8567.4732c6b7.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8573.cb04eda5.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8577.1d54e766.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8591.5d015485.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/8591.5d015485.js.LICENSE.txt +61 -0
- solace_agent_mesh/assets/docs/assets/js/8709.7ecd4047.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8731.6c1dbf0c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8908.f9d1b506.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/8b032486.91a91afc.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9157.b4093d07.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/924ffdeb.975e428a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9278.a4fd875d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/945fb41e.6f4cdffd.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/94e8668d.16083b3f.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9616.b75c2f6d.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9793.c6d16376.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9bb13469.b2333011.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/9e9d0a82.570c057b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a7bd4aaa.2204d2f7.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a94703ab.3e5fbcb3.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ab9708a8.245ae0ef.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/aba21aa0.c42a534c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ad71b5ed.af3ecfd1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ad87452a.9d73dad6.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/c198a0dc.8f31f867.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/ceb2a7a6.5d92d7d0.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/da0b5bad.b62f7b08.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/db924877.e98d12a1.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/de5f4c65.e8241890.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/de915948.44a432bc.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e04b235d.52cb25ed.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.b1068f9b.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e3d9abda.1476f570.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e6f9706b.4488e34c.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/f284c35a.250993bf.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ff4d71f2.74710fc1.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/main.7acf7ace.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/main.7acf7ace.js.LICENSE.txt +81 -0
- solace_agent_mesh/assets/docs/assets/js/runtime~main.9e0813a2.js +1 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +154 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +99 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +90 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +107 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +166 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +101 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +219 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +92 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/index.html +29 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +55 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +110 -0
- 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 +345 -0
- solace_agent_mesh/assets/docs/docs/documentation/components/speech/index.html +52 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +83 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +84 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +25 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes-deployment/index.html +47 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +85 -0
- solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +60 -0
- 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 +144 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +191 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +128 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +54 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +135 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +34 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +55 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +267 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +142 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +116 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +86 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +164 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +140 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +57 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +72 -0
- solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +102 -0
- 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 +37 -0
- solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +86 -0
- 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 +247 -0
- 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 +184 -0
- 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 +75 -0
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +54 -0
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +85 -0
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +41 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +290 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +78 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +25 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +78 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +160 -0
- solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +142 -0
- 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 +100 -0
- solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +52 -0
- solace_agent_mesh/assets/docs/img/Solace_AI_Framework_With_Broker.png +0 -0
- solace_agent_mesh/assets/docs/img/logo.png +0 -0
- solace_agent_mesh/assets/docs/img/sac-flows.png +0 -0
- solace_agent_mesh/assets/docs/img/sac_parts_of_a_component.png +0 -0
- solace_agent_mesh/assets/docs/img/sam-enterprise-credentials.png +0 -0
- solace_agent_mesh/assets/docs/img/solace-logo-text.svg +18 -0
- solace_agent_mesh/assets/docs/img/solace-logo.png +0 -0
- solace_agent_mesh/assets/docs/lunr-index-1765810064709.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -0
- solace_agent_mesh/assets/docs/search-doc-1765810064709.json +1 -0
- solace_agent_mesh/assets/docs/search-doc.json +1 -0
- solace_agent_mesh/assets/docs/sitemap.xml +1 -0
- solace_agent_mesh/cli/__init__.py +1 -0
- solace_agent_mesh/cli/commands/__init__.py +0 -0
- solace_agent_mesh/cli/commands/add_cmd/__init__.py +15 -0
- solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +250 -0
- solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +729 -0
- solace_agent_mesh/cli/commands/add_cmd/gateway_cmd.py +322 -0
- solace_agent_mesh/cli/commands/add_cmd/web_add_agent_step.py +102 -0
- solace_agent_mesh/cli/commands/add_cmd/web_add_gateway_step.py +114 -0
- solace_agent_mesh/cli/commands/docs_cmd.py +60 -0
- solace_agent_mesh/cli/commands/eval_cmd.py +46 -0
- solace_agent_mesh/cli/commands/init_cmd/__init__.py +439 -0
- solace_agent_mesh/cli/commands/init_cmd/broker_step.py +201 -0
- solace_agent_mesh/cli/commands/init_cmd/database_step.py +91 -0
- solace_agent_mesh/cli/commands/init_cmd/directory_step.py +28 -0
- solace_agent_mesh/cli/commands/init_cmd/env_step.py +238 -0
- solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +365 -0
- solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +464 -0
- solace_agent_mesh/cli/commands/init_cmd/project_files_step.py +38 -0
- solace_agent_mesh/cli/commands/init_cmd/web_init_step.py +119 -0
- solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +215 -0
- solace_agent_mesh/cli/commands/plugin_cmd/__init__.py +20 -0
- solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +137 -0
- solace_agent_mesh/cli/commands/plugin_cmd/build_cmd.py +86 -0
- solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +144 -0
- solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +306 -0
- solace_agent_mesh/cli/commands/plugin_cmd/install_cmd.py +283 -0
- solace_agent_mesh/cli/commands/plugin_cmd/official_registry.py +175 -0
- solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +305 -0
- solace_agent_mesh/cli/commands/run_cmd.py +215 -0
- solace_agent_mesh/cli/main.py +52 -0
- solace_agent_mesh/cli/utils.py +262 -0
- solace_agent_mesh/client/webui/frontend/static/assets/authCallback-Dj3JtK42.js +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/client-ZKk9kEJ5.js +25 -0
- solace_agent_mesh/client/webui/frontend/static/assets/favicon-BLgzUch9.ico +0 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-BcUaNZ-Q.css +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-vjch4RYc.js +435 -0
- solace_agent_mesh/client/webui/frontend/static/assets/vendor-BNV4kZN0.js +535 -0
- solace_agent_mesh/client/webui/frontend/static/auth-callback.html +15 -0
- solace_agent_mesh/client/webui/frontend/static/index.html +16 -0
- 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/__init__.py +1 -0
- solace_agent_mesh/common/a2a/__init__.py +241 -0
- solace_agent_mesh/common/a2a/a2a_llm.txt +175 -0
- solace_agent_mesh/common/a2a/a2a_llm_detail.txt +193 -0
- solace_agent_mesh/common/a2a/artifact.py +368 -0
- solace_agent_mesh/common/a2a/events.py +213 -0
- solace_agent_mesh/common/a2a/message.py +375 -0
- solace_agent_mesh/common/a2a/protocol.py +689 -0
- solace_agent_mesh/common/a2a/task.py +127 -0
- solace_agent_mesh/common/a2a/translation.py +655 -0
- solace_agent_mesh/common/a2a/types.py +55 -0
- solace_agent_mesh/common/a2a_spec/a2a.json +2576 -0
- solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +445 -0
- solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +736 -0
- solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json +18 -0
- solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json +48 -0
- solace_agent_mesh/common/a2a_spec/schemas/feedback_event.json +51 -0
- solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json +41 -0
- solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +330 -0
- solace_agent_mesh/common/a2a_spec/schemas/tool_invocation_start.json +26 -0
- solace_agent_mesh/common/a2a_spec/schemas/tool_result.json +48 -0
- solace_agent_mesh/common/agent_registry.py +122 -0
- solace_agent_mesh/common/common_llm.txt +230 -0
- solace_agent_mesh/common/common_llm_detail.txt +2562 -0
- solace_agent_mesh/common/constants.py +6 -0
- solace_agent_mesh/common/data_parts.py +150 -0
- solace_agent_mesh/common/exceptions.py +49 -0
- solace_agent_mesh/common/middleware/__init__.py +12 -0
- solace_agent_mesh/common/middleware/config_resolver.py +132 -0
- solace_agent_mesh/common/middleware/middleware_llm.txt +174 -0
- solace_agent_mesh/common/middleware/middleware_llm_detail.txt +185 -0
- solace_agent_mesh/common/middleware/registry.py +127 -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/sac/__init__.py +0 -0
- solace_agent_mesh/common/sac/sac_llm.txt +71 -0
- solace_agent_mesh/common/sac/sac_llm_detail.txt +82 -0
- solace_agent_mesh/common/sac/sam_component_base.py +730 -0
- solace_agent_mesh/common/sam_events/__init__.py +9 -0
- solace_agent_mesh/common/sam_events/event_service.py +208 -0
- solace_agent_mesh/common/sam_events/sam_events_llm.txt +104 -0
- solace_agent_mesh/common/sam_events/sam_events_llm_detail.txt +115 -0
- solace_agent_mesh/common/services/__init__.py +4 -0
- solace_agent_mesh/common/services/employee_service.py +164 -0
- solace_agent_mesh/common/services/identity_service.py +134 -0
- solace_agent_mesh/common/services/providers/__init__.py +4 -0
- solace_agent_mesh/common/services/providers/local_file_identity_service.py +151 -0
- solace_agent_mesh/common/services/providers/providers_llm.txt +81 -0
- solace_agent_mesh/common/services/services_llm.txt +368 -0
- solace_agent_mesh/common/services/services_llm_detail.txt +459 -0
- solace_agent_mesh/common/utils/__init__.py +7 -0
- solace_agent_mesh/common/utils/artifact_utils.py +31 -0
- solace_agent_mesh/common/utils/asyncio_macos_fix.py +88 -0
- solace_agent_mesh/common/utils/embeds/__init__.py +33 -0
- solace_agent_mesh/common/utils/embeds/constants.py +56 -0
- solace_agent_mesh/common/utils/embeds/converter.py +447 -0
- solace_agent_mesh/common/utils/embeds/embeds_llm.txt +220 -0
- solace_agent_mesh/common/utils/embeds/evaluators.py +395 -0
- solace_agent_mesh/common/utils/embeds/modifiers.py +793 -0
- solace_agent_mesh/common/utils/embeds/resolver.py +967 -0
- solace_agent_mesh/common/utils/embeds/types.py +23 -0
- solace_agent_mesh/common/utils/in_memory_cache.py +108 -0
- solace_agent_mesh/common/utils/initializer.py +52 -0
- solace_agent_mesh/common/utils/log_formatters.py +64 -0
- solace_agent_mesh/common/utils/message_utils.py +80 -0
- solace_agent_mesh/common/utils/mime_helpers.py +172 -0
- solace_agent_mesh/common/utils/push_notification_auth.py +135 -0
- solace_agent_mesh/common/utils/pydantic_utils.py +159 -0
- 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/common/utils/type_utils.py +28 -0
- solace_agent_mesh/common/utils/utils_llm.txt +335 -0
- solace_agent_mesh/common/utils/utils_llm_detail.txt +572 -0
- solace_agent_mesh/config_portal/__init__.py +0 -0
- solace_agent_mesh/config_portal/backend/__init__.py +0 -0
- solace_agent_mesh/config_portal/backend/common.py +77 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog/__init__.py +0 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog/constants.py +24 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog/models.py +49 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog/registry_manager.py +166 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog/scraper.py +521 -0
- solace_agent_mesh/config_portal/backend/plugin_catalog_server.py +217 -0
- solace_agent_mesh/config_portal/backend/server.py +644 -0
- solace_agent_mesh/config_portal/frontend/static/client/Solace_community_logo.png +0 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/_index-DiOiAjzL.js +103 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/components-Rk0n-9cK.js +140 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/entry.client-mvZjNKiz.js +19 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/index-DzNKzXrc.js +68 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-ba77705e.js +1 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/root-B17tZKK7.css +1 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/root-V2BeTIUc.js +10 -0
- solace_agent_mesh/config_portal/frontend/static/client/favicon.ico +0 -0
- solace_agent_mesh/config_portal/frontend/static/client/index.html +7 -0
- solace_agent_mesh/core_a2a/__init__.py +1 -0
- solace_agent_mesh/core_a2a/core_a2a_llm.txt +90 -0
- solace_agent_mesh/core_a2a/core_a2a_llm_detail.txt +101 -0
- solace_agent_mesh/core_a2a/service.py +307 -0
- solace_agent_mesh/evaluation/__init__.py +0 -0
- solace_agent_mesh/evaluation/evaluator.py +691 -0
- solace_agent_mesh/evaluation/message_organizer.py +553 -0
- solace_agent_mesh/evaluation/report/benchmark_info.html +35 -0
- solace_agent_mesh/evaluation/report/chart_section.html +141 -0
- solace_agent_mesh/evaluation/report/detailed_breakdown.html +28 -0
- solace_agent_mesh/evaluation/report/modal.html +59 -0
- solace_agent_mesh/evaluation/report/modal_chart_functions.js +411 -0
- solace_agent_mesh/evaluation/report/modal_script.js +296 -0
- solace_agent_mesh/evaluation/report/modal_styles.css +340 -0
- solace_agent_mesh/evaluation/report/performance_metrics_styles.css +93 -0
- solace_agent_mesh/evaluation/report/templates/footer.html +2 -0
- solace_agent_mesh/evaluation/report/templates/header.html +340 -0
- solace_agent_mesh/evaluation/report_data_processor.py +970 -0
- solace_agent_mesh/evaluation/report_generator.py +607 -0
- solace_agent_mesh/evaluation/run.py +954 -0
- solace_agent_mesh/evaluation/shared/__init__.py +92 -0
- solace_agent_mesh/evaluation/shared/constants.py +47 -0
- solace_agent_mesh/evaluation/shared/exceptions.py +50 -0
- solace_agent_mesh/evaluation/shared/helpers.py +35 -0
- solace_agent_mesh/evaluation/shared/test_case_loader.py +167 -0
- solace_agent_mesh/evaluation/shared/test_suite_loader.py +280 -0
- solace_agent_mesh/evaluation/subscriber.py +776 -0
- solace_agent_mesh/evaluation/summary_builder.py +880 -0
- solace_agent_mesh/gateway/__init__.py +0 -0
- solace_agent_mesh/gateway/adapter/__init__.py +1 -0
- solace_agent_mesh/gateway/adapter/base.py +143 -0
- solace_agent_mesh/gateway/adapter/types.py +221 -0
- solace_agent_mesh/gateway/base/__init__.py +1 -0
- solace_agent_mesh/gateway/base/app.py +345 -0
- solace_agent_mesh/gateway/base/base_llm.txt +226 -0
- solace_agent_mesh/gateway/base/base_llm_detail.txt +235 -0
- solace_agent_mesh/gateway/base/component.py +2030 -0
- solace_agent_mesh/gateway/base/task_context.py +75 -0
- solace_agent_mesh/gateway/gateway_llm.txt +369 -0
- solace_agent_mesh/gateway/gateway_llm_detail.txt +3885 -0
- 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 +727 -0
- solace_agent_mesh/gateway/http_sse/__init__.py +0 -0
- solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +345 -0
- solace_agent_mesh/gateway/http_sse/alembic/env.py +87 -0
- solace_agent_mesh/gateway/http_sse/alembic/script.py.mako +28 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py +58 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20250911_b1c2d3e4f5g6_add_database_indexes.py +83 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py +412 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py +190 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251015_add_session_performance_indexes.py +70 -0
- 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/versions/versions_llm.txt +161 -0
- solace_agent_mesh/gateway/http_sse/alembic.ini +109 -0
- solace_agent_mesh/gateway/http_sse/app.py +351 -0
- solace_agent_mesh/gateway/http_sse/component.py +2360 -0
- solace_agent_mesh/gateway/http_sse/components/__init__.py +7 -0
- solace_agent_mesh/gateway/http_sse/components/components_llm.txt +105 -0
- solace_agent_mesh/gateway/http_sse/components/task_logger_forwarder.py +109 -0
- solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py +110 -0
- solace_agent_mesh/gateway/http_sse/dependencies.py +653 -0
- solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +299 -0
- solace_agent_mesh/gateway/http_sse/http_sse_llm_detail.txt +3278 -0
- solace_agent_mesh/gateway/http_sse/main.py +789 -0
- solace_agent_mesh/gateway/http_sse/repository/__init__.py +46 -0
- solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +102 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/__init__.py +11 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/chat_task.py +75 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +221 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/feedback.py +20 -0
- 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 +66 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/session_history.py +0 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/task.py +32 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/task_event.py +21 -0
- solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +125 -0
- solace_agent_mesh/gateway/http_sse/repository/interfaces.py +239 -0
- solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +34 -0
- solace_agent_mesh/gateway/http_sse/repository/models/base.py +7 -0
- solace_agent_mesh/gateway/http_sse/repository/models/chat_task_model.py +31 -0
- solace_agent_mesh/gateway/http_sse/repository/models/feedback_model.py +21 -0
- solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +257 -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 +53 -0
- solace_agent_mesh/gateway/http_sse/repository/models/task_event_model.py +25 -0
- solace_agent_mesh/gateway/http_sse/repository/models/task_model.py +39 -0
- 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/repository_llm.txt +308 -0
- solace_agent_mesh/gateway/http_sse/repository/session_repository.py +268 -0
- solace_agent_mesh/gateway/http_sse/repository/task_repository.py +248 -0
- solace_agent_mesh/gateway/http_sse/routers/__init__.py +4 -0
- solace_agent_mesh/gateway/http_sse/routers/agent_cards.py +74 -0
- solace_agent_mesh/gateway/http_sse/routers/artifacts.py +1137 -0
- solace_agent_mesh/gateway/http_sse/routers/auth.py +311 -0
- solace_agent_mesh/gateway/http_sse/routers/config.py +371 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/__init__.py +10 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +450 -0
- 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/__init__.py +15 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/project_requests.py +48 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +133 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +33 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/task_requests.py +58 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/__init__.py +18 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/base_responses.py +42 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/project_responses.py +31 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +123 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +33 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/task_responses.py +30 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/version_responses.py +31 -0
- solace_agent_mesh/gateway/http_sse/routers/feedback.py +168 -0
- solace_agent_mesh/gateway/http_sse/routers/people.py +38 -0
- solace_agent_mesh/gateway/http_sse/routers/projects.py +767 -0
- solace_agent_mesh/gateway/http_sse/routers/prompts.py +1415 -0
- solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +312 -0
- solace_agent_mesh/gateway/http_sse/routers/sessions.py +634 -0
- solace_agent_mesh/gateway/http_sse/routers/speech.py +355 -0
- solace_agent_mesh/gateway/http_sse/routers/sse.py +230 -0
- solace_agent_mesh/gateway/http_sse/routers/tasks.py +1089 -0
- solace_agent_mesh/gateway/http_sse/routers/users.py +83 -0
- solace_agent_mesh/gateway/http_sse/routers/version.py +343 -0
- solace_agent_mesh/gateway/http_sse/routers/visualization.py +1220 -0
- solace_agent_mesh/gateway/http_sse/services/__init__.py +4 -0
- solace_agent_mesh/gateway/http_sse/services/agent_card_service.py +71 -0
- 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 +273 -0
- solace_agent_mesh/gateway/http_sse/services/feedback_service.py +250 -0
- solace_agent_mesh/gateway/http_sse/services/people_service.py +78 -0
- 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/services_llm.txt +303 -0
- solace_agent_mesh/gateway/http_sse/services/session_service.py +702 -0
- solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +593 -0
- solace_agent_mesh/gateway/http_sse/services/task_service.py +119 -0
- solace_agent_mesh/gateway/http_sse/session_manager.py +219 -0
- solace_agent_mesh/gateway/http_sse/shared/__init__.py +146 -0
- solace_agent_mesh/gateway/http_sse/shared/auth_utils.py +29 -0
- solace_agent_mesh/gateway/http_sse/shared/base_repository.py +252 -0
- solace_agent_mesh/gateway/http_sse/shared/database_exceptions.py +274 -0
- solace_agent_mesh/gateway/http_sse/shared/database_helpers.py +43 -0
- solace_agent_mesh/gateway/http_sse/shared/enums.py +40 -0
- solace_agent_mesh/gateway/http_sse/shared/error_dto.py +107 -0
- solace_agent_mesh/gateway/http_sse/shared/exception_handlers.py +217 -0
- solace_agent_mesh/gateway/http_sse/shared/exceptions.py +192 -0
- solace_agent_mesh/gateway/http_sse/shared/pagination.py +138 -0
- solace_agent_mesh/gateway/http_sse/shared/response_utils.py +134 -0
- solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +319 -0
- solace_agent_mesh/gateway/http_sse/shared/timestamp_utils.py +97 -0
- solace_agent_mesh/gateway/http_sse/shared/types.py +50 -0
- solace_agent_mesh/gateway/http_sse/shared/utils.py +22 -0
- solace_agent_mesh/gateway/http_sse/sse_event_buffer.py +88 -0
- solace_agent_mesh/gateway/http_sse/sse_manager.py +491 -0
- solace_agent_mesh/gateway/http_sse/utils/__init__.py +1 -0
- solace_agent_mesh/gateway/http_sse/utils/artifact_copy_utils.py +370 -0
- solace_agent_mesh/gateway/http_sse/utils/stim_utils.py +72 -0
- solace_agent_mesh/gateway/http_sse/utils/utils_llm.txt +47 -0
- solace_agent_mesh/llm.txt +228 -0
- solace_agent_mesh/llm_detail.txt +2835 -0
- solace_agent_mesh/services/__init__.py +0 -0
- solace_agent_mesh/services/platform/__init__.py +18 -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 +147 -0
- solace_agent_mesh/services/platform/api/main.py +280 -0
- solace_agent_mesh/services/platform/api/middleware.py +51 -0
- solace_agent_mesh/services/platform/api/routers/__init__.py +24 -0
- solace_agent_mesh/services/platform/app.py +114 -0
- solace_agent_mesh/services/platform/component.py +235 -0
- solace_agent_mesh/solace_agent_mesh_llm.txt +362 -0
- solace_agent_mesh/solace_agent_mesh_llm_detail.txt +8599 -0
- solace_agent_mesh/templates/agent_template.yaml +53 -0
- solace_agent_mesh/templates/eval_backend_template.yaml +54 -0
- solace_agent_mesh/templates/gateway_app_template.py +75 -0
- solace_agent_mesh/templates/gateway_component_template.py +484 -0
- solace_agent_mesh/templates/gateway_config_template.yaml +38 -0
- solace_agent_mesh/templates/logging_config_template.yaml +48 -0
- solace_agent_mesh/templates/main_orchestrator.yaml +66 -0
- solace_agent_mesh/templates/plugin_agent_config_template.yaml +122 -0
- solace_agent_mesh/templates/plugin_custom_config_template.yaml +27 -0
- solace_agent_mesh/templates/plugin_custom_template.py +10 -0
- solace_agent_mesh/templates/plugin_gateway_config_template.yaml +60 -0
- solace_agent_mesh/templates/plugin_pyproject_template.toml +32 -0
- solace_agent_mesh/templates/plugin_readme_template.md +12 -0
- solace_agent_mesh/templates/plugin_tool_config_template.yaml +109 -0
- solace_agent_mesh/templates/plugin_tools_template.py +224 -0
- solace_agent_mesh/templates/shared_config.yaml +112 -0
- solace_agent_mesh/templates/templates_llm.txt +147 -0
- solace_agent_mesh/templates/webui.yaml +177 -0
- solace_agent_mesh-1.11.2.dist-info/METADATA +504 -0
- solace_agent_mesh-1.11.2.dist-info/RECORD +624 -0
- solace_agent_mesh-1.11.2.dist-info/WHEEL +4 -0
- solace_agent_mesh-1.11.2.dist-info/entry_points.txt +3 -0
- solace_agent_mesh-1.11.2.dist-info/licenses/LICENSE +201 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "AgentProgressUpdateData",
|
|
4
|
+
"description": "Schema for the data part of an agent progress update signal.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"type": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"const": "agent_progress_update",
|
|
10
|
+
"description": "The constant type for this data part."
|
|
11
|
+
},
|
|
12
|
+
"status_text": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "A human-readable progress message (e.g., 'Analyzing the report...')."
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"required": ["type", "status_text"]
|
|
18
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "ArtifactCreationProgressData",
|
|
4
|
+
"description": "Schema for the data part of an artifact creation progress signal.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"type": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"const": "artifact_creation_progress",
|
|
10
|
+
"description": "The constant type for this data part."
|
|
11
|
+
},
|
|
12
|
+
"filename": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "The name of the artifact being created."
|
|
15
|
+
},
|
|
16
|
+
"description": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "An optional description of the artifact being created."
|
|
19
|
+
},
|
|
20
|
+
"status": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"enum": ["in-progress", "completed", "failed"],
|
|
23
|
+
"description": "The status of the artifact creation."
|
|
24
|
+
},
|
|
25
|
+
"bytes_transferred": {
|
|
26
|
+
"type": "integer",
|
|
27
|
+
"description": "The number of bytes transferred so far."
|
|
28
|
+
},
|
|
29
|
+
"artifact_chunk": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "The chunk of artifact data that was transferred in this progress update. Only present for 'in-progress' status."
|
|
32
|
+
},
|
|
33
|
+
"mime_type": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "The MIME type of the artifact. Only present for 'completed' status."
|
|
36
|
+
},
|
|
37
|
+
"version": {
|
|
38
|
+
"type": "integer",
|
|
39
|
+
"description": "The version number of the artifact being created or updated."
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"required": [
|
|
43
|
+
"type",
|
|
44
|
+
"filename",
|
|
45
|
+
"status",
|
|
46
|
+
"bytes_transferred"
|
|
47
|
+
]
|
|
48
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "FeedbackEvent",
|
|
4
|
+
"description": "Schema for a user feedback event published by a gateway.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"id": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "A unique identifier for this feedback submission."
|
|
10
|
+
},
|
|
11
|
+
"session_id": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The A2A session ID associated with the task."
|
|
14
|
+
},
|
|
15
|
+
"task_id": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "The ID of the task this feedback is for."
|
|
18
|
+
},
|
|
19
|
+
"user_id": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The identifier of the user who provided the feedback."
|
|
22
|
+
},
|
|
23
|
+
"rating": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": ["up", "down"],
|
|
26
|
+
"description": "The rating provided by the user."
|
|
27
|
+
},
|
|
28
|
+
"comment": {
|
|
29
|
+
"type": ["string", "null"],
|
|
30
|
+
"description": "Optional text comment provided by the user."
|
|
31
|
+
},
|
|
32
|
+
"created_time": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"format": "date-time",
|
|
35
|
+
"description": "The ISO 8601 timestamp (UTC) when the feedback was submitted."
|
|
36
|
+
},
|
|
37
|
+
"gateway_id": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "The ID of the gateway that collected the feedback."
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"required": [
|
|
43
|
+
"id",
|
|
44
|
+
"session_id",
|
|
45
|
+
"task_id",
|
|
46
|
+
"user_id",
|
|
47
|
+
"rating",
|
|
48
|
+
"created_time",
|
|
49
|
+
"gateway_id"
|
|
50
|
+
]
|
|
51
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "LlmInvocationData",
|
|
4
|
+
"description": "Schema for the data part of an LLM invocation signal.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"type": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"const": "llm_invocation",
|
|
10
|
+
"description": "The constant type for this data part."
|
|
11
|
+
},
|
|
12
|
+
"request": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"description": "A sanitized representation of the LlmRequest object sent to the model."
|
|
15
|
+
},
|
|
16
|
+
"usage": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"description": "Token usage information for this LLM call.",
|
|
19
|
+
"properties": {
|
|
20
|
+
"input_tokens": {
|
|
21
|
+
"type": "integer",
|
|
22
|
+
"description": "Number of input/prompt tokens."
|
|
23
|
+
},
|
|
24
|
+
"output_tokens": {
|
|
25
|
+
"type": "integer",
|
|
26
|
+
"description": "Number of output/completion tokens."
|
|
27
|
+
},
|
|
28
|
+
"cached_input_tokens": {
|
|
29
|
+
"type": "integer",
|
|
30
|
+
"description": "Number of cached input tokens (optional)."
|
|
31
|
+
},
|
|
32
|
+
"model": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Model identifier used for this call."
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"required": ["input_tokens", "output_tokens", "model"]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"required": ["type", "request"]
|
|
41
|
+
}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
# DEVELOPER GUIDE: schemas
|
|
2
|
+
|
|
3
|
+
## Quick Summary
|
|
4
|
+
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.
|
|
5
|
+
|
|
6
|
+
## Files Overview
|
|
7
|
+
- `agent_progress_update.json` - Schema for general agent progress status messages
|
|
8
|
+
- `artifact_creation_progress.json` - Schema for tracking file/artifact creation progress with chunked data
|
|
9
|
+
- `llm_invocation.json` - Schema for LLM model invocation signals with usage tracking
|
|
10
|
+
- `tool_invocation_start.json` - Schema for tool execution start notifications
|
|
11
|
+
- `tool_result.json` - Schema for tool execution completion results with optional LLM usage
|
|
12
|
+
|
|
13
|
+
## Developer API Reference
|
|
14
|
+
|
|
15
|
+
### agent_progress_update.json
|
|
16
|
+
**Purpose:** Defines the schema for agent progress update signals that communicate human-readable status messages between agents.
|
|
17
|
+
|
|
18
|
+
**Import:** Load as JSON schema for validation
|
|
19
|
+
```python
|
|
20
|
+
import json
|
|
21
|
+
from jsonschema import validate
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Schema Structure:**
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"type": "agent_progress_update",
|
|
28
|
+
"status_text": "string"
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Properties:**
|
|
33
|
+
- `type: "agent_progress_update"` - Constant identifier for this signal type (required)
|
|
34
|
+
- `status_text: string` - Human-readable progress message (required)
|
|
35
|
+
|
|
36
|
+
**Usage Examples:**
|
|
37
|
+
```python
|
|
38
|
+
import json
|
|
39
|
+
from jsonschema import validate
|
|
40
|
+
|
|
41
|
+
# Load and use schema
|
|
42
|
+
with open('solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json') as f:
|
|
43
|
+
schema = json.load(f)
|
|
44
|
+
|
|
45
|
+
# Valid data example
|
|
46
|
+
data = {
|
|
47
|
+
"type": "agent_progress_update",
|
|
48
|
+
"status_text": "Analyzing the report..."
|
|
49
|
+
}
|
|
50
|
+
validate(instance=data, schema=schema)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### artifact_creation_progress.json
|
|
54
|
+
**Purpose:** Defines the schema for tracking progress during file or artifact creation operations with status tracking and chunked data transfer.
|
|
55
|
+
|
|
56
|
+
**Import:** Load as JSON schema for validation
|
|
57
|
+
```python
|
|
58
|
+
import json
|
|
59
|
+
from jsonschema import validate
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Schema Structure:**
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"type": "artifact_creation_progress",
|
|
66
|
+
"filename": "string",
|
|
67
|
+
"description": "string",
|
|
68
|
+
"status": "in-progress|completed|failed",
|
|
69
|
+
"bytes_transferred": "integer",
|
|
70
|
+
"artifact_chunk": "string",
|
|
71
|
+
"mime_type": "string"
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Properties:**
|
|
76
|
+
- `type: "artifact_creation_progress"` - Constant identifier for this signal type (required)
|
|
77
|
+
- `filename: string` - Name of the artifact being created (required)
|
|
78
|
+
- `description: string` - Optional description of the artifact being created (optional)
|
|
79
|
+
- `status: string` - Status of artifact creation: "in-progress", "completed", or "failed" (required)
|
|
80
|
+
- `bytes_transferred: integer` - Number of bytes transferred so far (required)
|
|
81
|
+
- `artifact_chunk: string` - Chunk of artifact data transferred in this update (optional, only for 'in-progress')
|
|
82
|
+
- `mime_type: string` - MIME type of the artifact (optional, only for 'completed')
|
|
83
|
+
|
|
84
|
+
**Usage Examples:**
|
|
85
|
+
```python
|
|
86
|
+
import json
|
|
87
|
+
from jsonschema import validate
|
|
88
|
+
|
|
89
|
+
# Load and use schema
|
|
90
|
+
with open('solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json') as f:
|
|
91
|
+
schema = json.load(f)
|
|
92
|
+
|
|
93
|
+
# In-progress example
|
|
94
|
+
data = {
|
|
95
|
+
"type": "artifact_creation_progress",
|
|
96
|
+
"filename": "report.pdf",
|
|
97
|
+
"description": "Monthly sales report",
|
|
98
|
+
"status": "in-progress",
|
|
99
|
+
"bytes_transferred": 1024,
|
|
100
|
+
"artifact_chunk": "JVBERi0xLjQKJcOkw7zDtsO..."
|
|
101
|
+
}
|
|
102
|
+
validate(instance=data, schema=schema)
|
|
103
|
+
|
|
104
|
+
# Completed example
|
|
105
|
+
completed_data = {
|
|
106
|
+
"type": "artifact_creation_progress",
|
|
107
|
+
"filename": "report.pdf",
|
|
108
|
+
"status": "completed",
|
|
109
|
+
"bytes_transferred": 5120,
|
|
110
|
+
"mime_type": "application/pdf"
|
|
111
|
+
}
|
|
112
|
+
validate(instance=completed_data, schema=schema)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### llm_invocation.json
|
|
116
|
+
**Purpose:** Defines the schema for LLM invocation signals that communicate when an agent is calling a language model, including token usage tracking.
|
|
117
|
+
|
|
118
|
+
**Import:** Load as JSON schema for validation
|
|
119
|
+
```python
|
|
120
|
+
import json
|
|
121
|
+
from jsonschema import validate
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Schema Structure:**
|
|
125
|
+
```json
|
|
126
|
+
{
|
|
127
|
+
"type": "llm_invocation",
|
|
128
|
+
"request": "object",
|
|
129
|
+
"usage": {
|
|
130
|
+
"input_tokens": "integer",
|
|
131
|
+
"output_tokens": "integer",
|
|
132
|
+
"cached_input_tokens": "integer",
|
|
133
|
+
"model": "string"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Properties:**
|
|
139
|
+
- `type: "llm_invocation"` - Constant identifier for this signal type (required)
|
|
140
|
+
- `request: object` - Sanitized representation of the LlmRequest object sent to the model (required)
|
|
141
|
+
- `usage: object` - Token usage information for this LLM call (optional)
|
|
142
|
+
- `input_tokens: integer` - Number of input/prompt tokens (required in usage)
|
|
143
|
+
- `output_tokens: integer` - Number of output/completion tokens (required in usage)
|
|
144
|
+
- `cached_input_tokens: integer` - Number of cached input tokens (optional)
|
|
145
|
+
- `model: string` - Model identifier used for this call (required in usage)
|
|
146
|
+
|
|
147
|
+
**Usage Examples:**
|
|
148
|
+
```python
|
|
149
|
+
import json
|
|
150
|
+
from jsonschema import validate
|
|
151
|
+
|
|
152
|
+
# Load and use schema
|
|
153
|
+
with open('solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json') as f:
|
|
154
|
+
schema = json.load(f)
|
|
155
|
+
|
|
156
|
+
# Valid data example with usage tracking
|
|
157
|
+
data = {
|
|
158
|
+
"type": "llm_invocation",
|
|
159
|
+
"request": {
|
|
160
|
+
"model": "gpt-4",
|
|
161
|
+
"messages": [{"role": "user", "content": "Analyze this data"}],
|
|
162
|
+
"temperature": 0.7
|
|
163
|
+
},
|
|
164
|
+
"usage": {
|
|
165
|
+
"input_tokens": 150,
|
|
166
|
+
"output_tokens": 75,
|
|
167
|
+
"cached_input_tokens": 50,
|
|
168
|
+
"model": "gpt-4"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
validate(instance=data, schema=schema)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### tool_invocation_start.json
|
|
175
|
+
**Purpose:** Defines the schema for tool invocation start signals that notify when an agent begins executing a tool.
|
|
176
|
+
|
|
177
|
+
**Import:** Load as JSON schema for validation
|
|
178
|
+
```python
|
|
179
|
+
import json
|
|
180
|
+
from jsonschema import validate
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Schema Structure:**
|
|
184
|
+
```json
|
|
185
|
+
{
|
|
186
|
+
"type": "tool_invocation_start",
|
|
187
|
+
"tool_name": "string",
|
|
188
|
+
"tool_args": "object",
|
|
189
|
+
"function_call_id": "string"
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Properties:**
|
|
194
|
+
- `type: "tool_invocation_start"` - Constant identifier for this signal type (required)
|
|
195
|
+
- `tool_name: string` - Name of the tool being called (required)
|
|
196
|
+
- `tool_args: object` - Arguments passed to the tool (required)
|
|
197
|
+
- `function_call_id: string` - ID from the LLM's function call (required)
|
|
198
|
+
|
|
199
|
+
**Usage Examples:**
|
|
200
|
+
```python
|
|
201
|
+
import json
|
|
202
|
+
from jsonschema import validate
|
|
203
|
+
|
|
204
|
+
# Load and use schema
|
|
205
|
+
with open('solace_agent_mesh/common/a2a_spec/schemas/tool_invocation_start.json') as f:
|
|
206
|
+
schema = json.load(f)
|
|
207
|
+
|
|
208
|
+
# Valid data example
|
|
209
|
+
data = {
|
|
210
|
+
"type": "tool_invocation_start",
|
|
211
|
+
"tool_name": "file_reader",
|
|
212
|
+
"tool_args": {
|
|
213
|
+
"filepath": "/path/to/file.txt",
|
|
214
|
+
"encoding": "utf-8"
|
|
215
|
+
},
|
|
216
|
+
"function_call_id": "call_abc123"
|
|
217
|
+
}
|
|
218
|
+
validate(instance=data, schema=schema)
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### tool_result.json
|
|
222
|
+
**Purpose:** Defines the schema for tool execution result signals that communicate the completion and results of tool invocations, with optional LLM usage tracking.
|
|
223
|
+
|
|
224
|
+
**Import:** Load as JSON schema for validation
|
|
225
|
+
```python
|
|
226
|
+
import json
|
|
227
|
+
from jsonschema import validate
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Schema Structure:**
|
|
231
|
+
```json
|
|
232
|
+
{
|
|
233
|
+
"type": "tool_result",
|
|
234
|
+
"tool_name": "string",
|
|
235
|
+
"result_data": "any",
|
|
236
|
+
"function_call_id": "string",
|
|
237
|
+
"llm_usage": {
|
|
238
|
+
"input_tokens": "integer",
|
|
239
|
+
"output_tokens": "integer",
|
|
240
|
+
"cached_input_tokens": "integer",
|
|
241
|
+
"model": "string"
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Properties:**
|
|
247
|
+
- `type: "tool_result"` - Constant identifier for this signal type (required)
|
|
248
|
+
- `tool_name: string` - Name of the tool that was called (required)
|
|
249
|
+
- `result_data: any` - The data returned by the tool (required, can be any type)
|
|
250
|
+
- `function_call_id: string` - ID from the LLM's function call that this result corresponds to (required)
|
|
251
|
+
- `llm_usage: object` - Token usage if this tool made LLM calls (optional)
|
|
252
|
+
- `input_tokens: integer` - Total input tokens used by tool's LLM calls (required in llm_usage)
|
|
253
|
+
- `output_tokens: integer` - Total output tokens used by tool's LLM calls (required in llm_usage)
|
|
254
|
+
- `cached_input_tokens: integer` - Number of cached input tokens (optional)
|
|
255
|
+
- `model: string` - Model identifier(s) used by the tool (required in llm_usage)
|
|
256
|
+
|
|
257
|
+
**Usage Examples:**
|
|
258
|
+
```python
|
|
259
|
+
import json
|
|
260
|
+
from jsonschema import validate
|
|
261
|
+
|
|
262
|
+
# Load and use schema
|
|
263
|
+
with open('solace_agent_mesh/common/a2a_spec/schemas/tool_result.json') as f:
|
|
264
|
+
schema = json.load(f)
|
|
265
|
+
|
|
266
|
+
# Valid data example with LLM usage
|
|
267
|
+
data = {
|
|
268
|
+
"type": "tool_result",
|
|
269
|
+
"tool_name": "web_search",
|
|
270
|
+
"result_data": {
|
|
271
|
+
"results": ["Result 1", "Result 2"],
|
|
272
|
+
"count": 2
|
|
273
|
+
},
|
|
274
|
+
"function_call_id": "call_abc123",
|
|
275
|
+
"llm_usage": {
|
|
276
|
+
"input_tokens": 200,
|
|
277
|
+
"output_tokens": 100,
|
|
278
|
+
"model": "gpt-4"
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
validate(instance=data, schema=schema)
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
**Common Usage Pattern:**
|
|
285
|
+
```python
|
|
286
|
+
import json
|
|
287
|
+
from jsonschema import validate
|
|
288
|
+
from pathlib import Path
|
|
289
|
+
from typing import Dict, Any
|
|
290
|
+
|
|
291
|
+
def validate_a2a_signal(signal_data: Dict[str, Any], schema_name: str) -> bool:
|
|
292
|
+
"""Validate A2A signal data against its schema."""
|
|
293
|
+
schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
|
|
294
|
+
|
|
295
|
+
with open(schema_path) as f:
|
|
296
|
+
schema = json.load(f)
|
|
297
|
+
|
|
298
|
+
try:
|
|
299
|
+
validate(instance=signal_data, schema=schema)
|
|
300
|
+
return True
|
|
301
|
+
except Exception as e:
|
|
302
|
+
print(f"Validation failed: {e}")
|
|
303
|
+
return False
|
|
304
|
+
|
|
305
|
+
def load_schema(schema_name: str) -> Dict[str, Any]:
|
|
306
|
+
"""Load a specific A2A signal schema."""
|
|
307
|
+
schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
|
|
308
|
+
with open(schema_path) as f:
|
|
309
|
+
return json.load(f)
|
|
310
|
+
|
|
311
|
+
# Example usage
|
|
312
|
+
progress_data = {
|
|
313
|
+
"type": "agent_progress_update",
|
|
314
|
+
"status_text": "Processing request..."
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
if validate_a2a_signal(progress_data, "agent_progress_update"):
|
|
318
|
+
print("Signal is valid!")
|
|
319
|
+
|
|
320
|
+
# Load all schemas for batch validation
|
|
321
|
+
schemas = {
|
|
322
|
+
"agent_progress": load_schema("agent_progress_update"),
|
|
323
|
+
"artifact_progress": load_schema("artifact_creation_progress"),
|
|
324
|
+
"llm_invocation": load_schema("llm_invocation"),
|
|
325
|
+
"tool_start": load_schema("tool_invocation_start"),
|
|
326
|
+
"tool_result": load_schema("tool_result")
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
# content_hash: 9b18c2ba0e0aa3d52a27ecd90f45376713fe2738cee386219f988fd84da93a51
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "ToolInvocationStartData",
|
|
4
|
+
"description": "Schema for the data part of a tool invocation start signal.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"type": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"const": "tool_invocation_start",
|
|
10
|
+
"description": "The constant type for this data part."
|
|
11
|
+
},
|
|
12
|
+
"tool_name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "The name of the tool being called."
|
|
15
|
+
},
|
|
16
|
+
"tool_args": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"description": "The arguments passed to the tool."
|
|
19
|
+
},
|
|
20
|
+
"function_call_id": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "The ID from the LLM's function call."
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"required": ["type", "tool_name", "tool_args", "function_call_id"]
|
|
26
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "ToolResultData",
|
|
4
|
+
"description": "Schema for the data part of a tool execution result signal.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"type": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"const": "tool_result",
|
|
10
|
+
"description": "The constant type for this data part."
|
|
11
|
+
},
|
|
12
|
+
"tool_name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "The name of the tool that was called."
|
|
15
|
+
},
|
|
16
|
+
"result_data": {
|
|
17
|
+
"description": "The data returned by the tool."
|
|
18
|
+
},
|
|
19
|
+
"function_call_id": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The ID from the LLM's function call that this result corresponds to."
|
|
22
|
+
},
|
|
23
|
+
"llm_usage": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"description": "Token usage if this tool made LLM calls.",
|
|
26
|
+
"properties": {
|
|
27
|
+
"input_tokens": {
|
|
28
|
+
"type": "integer",
|
|
29
|
+
"description": "Total input tokens used by tool's LLM calls."
|
|
30
|
+
},
|
|
31
|
+
"output_tokens": {
|
|
32
|
+
"type": "integer",
|
|
33
|
+
"description": "Total output tokens used by tool's LLM calls."
|
|
34
|
+
},
|
|
35
|
+
"cached_input_tokens": {
|
|
36
|
+
"type": "integer",
|
|
37
|
+
"description": "Number of cached input tokens (optional)."
|
|
38
|
+
},
|
|
39
|
+
"model": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Model identifier(s) used by the tool."
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"required": ["input_tokens", "output_tokens", "model"]
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"required": ["type", "tool_name", "result_data", "function_call_id"]
|
|
48
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Manages discovered A2A agents.
|
|
3
|
+
Consolidated from src/tools/common/agent_registry.py and src/tools/a2a_cli_client/agent_registry.py.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import threading
|
|
7
|
+
import time
|
|
8
|
+
from typing import Dict, List, Optional, Tuple
|
|
9
|
+
import logging
|
|
10
|
+
|
|
11
|
+
from a2a.types import AgentCard
|
|
12
|
+
|
|
13
|
+
log = logging.getLogger(__name__)
|
|
14
|
+
|
|
15
|
+
class AgentRegistry:
|
|
16
|
+
"""Stores and manages discovered AgentCards with health tracking."""
|
|
17
|
+
|
|
18
|
+
def __init__(self):
|
|
19
|
+
self._agents: Dict[str, AgentCard] = {}
|
|
20
|
+
self._last_seen: Dict[str, float] = {} # Timestamp of last agent card received
|
|
21
|
+
self._lock = threading.Lock()
|
|
22
|
+
|
|
23
|
+
def add_or_update_agent(self, agent_card: AgentCard):
|
|
24
|
+
"""Adds a new agent or updates an existing one."""
|
|
25
|
+
|
|
26
|
+
if not agent_card or not agent_card.name:
|
|
27
|
+
log.warning("Attempted to register agent with invalid agent card or missing name")
|
|
28
|
+
return False
|
|
29
|
+
|
|
30
|
+
with self._lock:
|
|
31
|
+
is_new = agent_card.name not in self._agents
|
|
32
|
+
current_time = time.time()
|
|
33
|
+
|
|
34
|
+
# Store the agent information
|
|
35
|
+
self._agents[agent_card.name] = agent_card
|
|
36
|
+
self._last_seen[agent_card.name] = current_time
|
|
37
|
+
|
|
38
|
+
return is_new
|
|
39
|
+
|
|
40
|
+
def get_agent(self, agent_name: str) -> Optional[AgentCard]:
|
|
41
|
+
"""Retrieves an agent card by name."""
|
|
42
|
+
with self._lock:
|
|
43
|
+
return self._agents.get(agent_name)
|
|
44
|
+
|
|
45
|
+
def get_agent_names(self) -> List[str]:
|
|
46
|
+
"""Returns a sorted list of discovered agent names."""
|
|
47
|
+
with self._lock:
|
|
48
|
+
return sorted(list(self._agents.keys()))
|
|
49
|
+
|
|
50
|
+
def get_last_seen(self, agent_name: str) -> Optional[float]:
|
|
51
|
+
"""Returns the timestamp when the agent was last seen."""
|
|
52
|
+
with self._lock:
|
|
53
|
+
return self._last_seen.get(agent_name)
|
|
54
|
+
|
|
55
|
+
def check_ttl_expired(self, agent_name: str, ttl_seconds: int) -> Tuple[bool, int]:
|
|
56
|
+
"""
|
|
57
|
+
Checks if an agent's TTL has expired.
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
agent_name: The name of the agent to check
|
|
61
|
+
ttl_seconds: The TTL in seconds
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
A tuple of (is_expired, seconds_since_last_seen)
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
with self._lock:
|
|
68
|
+
if agent_name not in self._last_seen:
|
|
69
|
+
log.debug("Attempted to check TTL for non-existent agent '%s'", agent_name)
|
|
70
|
+
return False, 0
|
|
71
|
+
|
|
72
|
+
last_seen_time = self._last_seen.get(agent_name)
|
|
73
|
+
current_time = time.time()
|
|
74
|
+
time_since_last_seen = int(current_time - last_seen_time) if last_seen_time else 0
|
|
75
|
+
|
|
76
|
+
is_expired = time_since_last_seen > ttl_seconds
|
|
77
|
+
|
|
78
|
+
if is_expired:
|
|
79
|
+
log.warning(
|
|
80
|
+
"AGENT HEALTH CRITICAL: Agent '%s' TTL expired. "
|
|
81
|
+
"Last seen: %s seconds ago, TTL: %d seconds",
|
|
82
|
+
agent_name,
|
|
83
|
+
time_since_last_seen,
|
|
84
|
+
ttl_seconds
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
return is_expired, time_since_last_seen
|
|
88
|
+
|
|
89
|
+
def remove_agent(self, agent_name: str) -> bool:
|
|
90
|
+
"""Removes an agent from the registry."""
|
|
91
|
+
|
|
92
|
+
with self._lock:
|
|
93
|
+
if agent_name in self._agents:
|
|
94
|
+
# Get agent details before removal for logging
|
|
95
|
+
last_seen_time = self._last_seen.get(agent_name)
|
|
96
|
+
current_time = time.time()
|
|
97
|
+
time_since_last_seen = int(current_time - last_seen_time) if last_seen_time else "unknown"
|
|
98
|
+
|
|
99
|
+
# Log detailed information about the agent being removed
|
|
100
|
+
log.warning(
|
|
101
|
+
"AGENT DE-REGISTRATION: Removing agent '%s' from registry. "
|
|
102
|
+
"Last seen: %s seconds ago",
|
|
103
|
+
agent_name,
|
|
104
|
+
time_since_last_seen
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
# Remove the agent from all tracking dictionaries
|
|
108
|
+
del self._agents[agent_name]
|
|
109
|
+
if agent_name in self._last_seen:
|
|
110
|
+
del self._last_seen[agent_name]
|
|
111
|
+
|
|
112
|
+
log.info("Agent '%s' successfully removed from registry", agent_name)
|
|
113
|
+
return True
|
|
114
|
+
else:
|
|
115
|
+
log.debug("Attempted to remove non-existent agent '%s' from registry", agent_name)
|
|
116
|
+
return False
|
|
117
|
+
|
|
118
|
+
def clear(self):
|
|
119
|
+
"""Clears all registered agents."""
|
|
120
|
+
with self._lock:
|
|
121
|
+
self._agents.clear()
|
|
122
|
+
self._last_seen.clear()
|