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,103 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# ADK PATCHES - Two separate patches to modify ADK behavior
|
|
3
|
+
# =============================================================================
|
|
4
|
+
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# PATCH 1: Event Content Processing
|
|
7
|
+
# Purpose: Fix event filtering and function response handling in LLM flows
|
|
8
|
+
# =============================================================================
|
|
9
|
+
import google.adk.flows.llm_flows.contents
|
|
10
|
+
from google.adk.flows.llm_flows.contents import _contains_empty_content
|
|
11
|
+
from google.adk.flows.llm_flows.contents import _is_event_belongs_to_branch
|
|
12
|
+
from google.adk.flows.llm_flows.contents import _is_auth_event
|
|
13
|
+
from google.adk.flows.llm_flows.contents import _present_other_agent_message
|
|
14
|
+
from google.adk.flows.llm_flows.contents import _is_other_agent_reply
|
|
15
|
+
from google.adk.flows.llm_flows.contents import _rearrange_events_for_async_function_responses_in_history
|
|
16
|
+
from google.adk.flows.llm_flows.contents import remove_client_function_call_id
|
|
17
|
+
from google.adk.events.event import Event
|
|
18
|
+
|
|
19
|
+
import copy
|
|
20
|
+
from typing import Optional
|
|
21
|
+
|
|
22
|
+
from google.genai import types
|
|
23
|
+
|
|
24
|
+
def _patch_get_contents(
|
|
25
|
+
current_branch: Optional[str], events: list[Event], agent_name: str = ''
|
|
26
|
+
) -> list[types.Content]:
|
|
27
|
+
"""Get the contents for the LLM request.
|
|
28
|
+
|
|
29
|
+
Applies filtering, rearrangement, and content processing to events.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
current_branch: The current branch of the agent.
|
|
33
|
+
events: Events to process.
|
|
34
|
+
agent_name: The name of the agent.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
A list of processed contents.
|
|
38
|
+
"""
|
|
39
|
+
filtered_events = []
|
|
40
|
+
# Parse the events, leaving the contents and the function calls and
|
|
41
|
+
# responses from the current agent.
|
|
42
|
+
for event in events:
|
|
43
|
+
if _contains_empty_content(event):
|
|
44
|
+
continue
|
|
45
|
+
if not _is_event_belongs_to_branch(current_branch, event):
|
|
46
|
+
# Skip events not belong to current branch.
|
|
47
|
+
continue
|
|
48
|
+
if _is_auth_event(event):
|
|
49
|
+
# Skip auth events.
|
|
50
|
+
continue
|
|
51
|
+
if _is_other_agent_reply(agent_name, event):
|
|
52
|
+
if converted_event := _present_other_agent_message(event):
|
|
53
|
+
filtered_events.append(converted_event)
|
|
54
|
+
else:
|
|
55
|
+
filtered_events.append(event)
|
|
56
|
+
|
|
57
|
+
# Rearrange events for proper function call/response pairing
|
|
58
|
+
result_events = filtered_events
|
|
59
|
+
result_events = _rearrange_events_for_async_function_responses_in_history(
|
|
60
|
+
result_events
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
# Convert events to contents
|
|
64
|
+
contents = []
|
|
65
|
+
for event in result_events:
|
|
66
|
+
content = copy.deepcopy(event.content)
|
|
67
|
+
remove_client_function_call_id(content)
|
|
68
|
+
contents.append(content)
|
|
69
|
+
return contents
|
|
70
|
+
|
|
71
|
+
# =============================================================================
|
|
72
|
+
# PATCH 2: Long-Running Tool Support
|
|
73
|
+
# Purpose: Modify BaseLlmFlow.run_async to properly handle long-running tools
|
|
74
|
+
# =============================================================================
|
|
75
|
+
from google.adk.flows.llm_flows.base_llm_flow import BaseLlmFlow
|
|
76
|
+
from google.adk.agents.invocation_context import InvocationContext
|
|
77
|
+
from typing import AsyncGenerator
|
|
78
|
+
|
|
79
|
+
async def patch_run_async(
|
|
80
|
+
self, invocation_context: InvocationContext
|
|
81
|
+
) -> AsyncGenerator[Event, None]:
|
|
82
|
+
"""Runs the flow."""
|
|
83
|
+
while True:
|
|
84
|
+
last_event = None
|
|
85
|
+
has_long_running_call = False
|
|
86
|
+
async for event in self._run_one_step_async(invocation_context):
|
|
87
|
+
last_event = event
|
|
88
|
+
if event.long_running_tool_ids:
|
|
89
|
+
has_long_running_call = True
|
|
90
|
+
yield event
|
|
91
|
+
if not last_event or last_event.is_final_response() or has_long_running_call:
|
|
92
|
+
break
|
|
93
|
+
if last_event.partial:
|
|
94
|
+
# TODO: handle this in BaseLlm level.
|
|
95
|
+
raise ValueError(
|
|
96
|
+
f"Last event shouldn't be partial. LLM max output limit may be"
|
|
97
|
+
f' reached.'
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
def patch_adk():
|
|
101
|
+
"""Patch the ADK to use the custom get_contents and run_async methods."""
|
|
102
|
+
google.adk.flows.llm_flows.contents._get_contents = _patch_get_contents
|
|
103
|
+
BaseLlmFlow.run_async = patch_run_async
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# DEVELOPER GUIDE for the directory: sac
|
|
2
|
+
|
|
3
|
+
## Quick Summary
|
|
4
|
+
The `sac` (Solace AI Connector) directory provides the core implementation for hosting a Google ADK (Agent Development Kit) agent within the Solace AI Connector framework. It acts as a bridge, enabling ADK agents to communicate using the A2A (Agent-to-Agent) protocol over Solace messaging. This allows for the creation of distributed, collaborative agent systems where agents can delegate tasks, share information, and work together to solve complex problems.
|
|
5
|
+
|
|
6
|
+
## Files Overview
|
|
7
|
+
- `__init__.py` - Empty package marker file
|
|
8
|
+
- `app.py` - Custom SAC App class that automatically configures Solace subscriptions and broker settings for A2A communication
|
|
9
|
+
- `component.py` - Main SAC Component that hosts the ADK agent, manages its lifecycle, and handles all A2A protocol messaging
|
|
10
|
+
- `patch_adk.py` - Runtime patches for the Google ADK library to enhance or correct its behavior
|
|
11
|
+
- `task_execution_context.py` - State management class that encapsulates all runtime information for a single, in-flight A2A task
|
|
12
|
+
|
|
13
|
+
## Developer API Reference
|
|
14
|
+
|
|
15
|
+
### app.py
|
|
16
|
+
**Purpose:** Provides a custom SAC App class that simplifies the configuration of an A2A agent
|
|
17
|
+
**Import:** `from solace_agent_mesh.agent.sac.app import SamAgentApp`
|
|
18
|
+
|
|
19
|
+
**Classes:**
|
|
20
|
+
- `SamAgentApp(app_info: Dict[str, Any], **kwargs)` - Custom App class for SAM Agent Host with namespace prefixing and automatic subscription generation
|
|
21
|
+
- `app_schema: Dict` - Class attribute defining comprehensive configuration schema for agent host validation
|
|
22
|
+
|
|
23
|
+
**Constants/Variables:**
|
|
24
|
+
- `info: Dict[str, str]` - Metadata dictionary about the SamAgentApp class for SAC framework discovery
|
|
25
|
+
|
|
26
|
+
**Usage Examples:**
|
|
27
|
+
```python
|
|
28
|
+
# SamAgentApp is typically instantiated by the SAC framework from YAML config
|
|
29
|
+
# Example agent-config.yaml:
|
|
30
|
+
# app:
|
|
31
|
+
# class_name: solace_agent_mesh.agent.sac.app.SamAgentApp
|
|
32
|
+
# app_config:
|
|
33
|
+
# namespace: "my-org/production"
|
|
34
|
+
# agent_name: "customer-support-agent"
|
|
35
|
+
# model: "gemini-1.5-pro-latest"
|
|
36
|
+
# tools:
|
|
37
|
+
# - tool_type: "builtin"
|
|
38
|
+
# tool_name: "file_search"
|
|
39
|
+
# agent_card:
|
|
40
|
+
# description: "An agent that can answer questions about customer accounts."
|
|
41
|
+
# agent_card_publishing:
|
|
42
|
+
# interval_seconds: 60
|
|
43
|
+
# session_service:
|
|
44
|
+
# type: "memory"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### component.py
|
|
48
|
+
**Purpose:** Core component that hosts a Google ADK agent and bridges communication to A2A protocol
|
|
49
|
+
**Import:** `from solace_agent_mesh.agent.sac.component import SamAgentComponent`
|
|
50
|
+
|
|
51
|
+
**Classes:**
|
|
52
|
+
- `SamAgentComponent(**kwargs)` - Solace AI Connector component that hosts a Google ADK agent
|
|
53
|
+
- `process_event(event: Event) -> None` - Main entry point for all SAC framework events
|
|
54
|
+
- `handle_timer_event(timer_data: Dict[str, Any]) -> None` - Handles scheduled timer events for agent card publishing
|
|
55
|
+
- `handle_cache_expiry_event(cache_data: Dict[str, Any]) -> None` - Handles cache expiry events for peer agent timeouts
|
|
56
|
+
- `finalize_task_success(a2a_context: Dict) -> None` - Async method to finalize successful task completion
|
|
57
|
+
- `finalize_task_canceled(a2a_context: Dict) -> None` - Finalizes task as CANCELED
|
|
58
|
+
- `finalize_task_error(exception: Exception, a2a_context: Dict) -> None` - Async method to finalize failed tasks
|
|
59
|
+
- `cleanup() -> None` - Cleans up resources on component shutdown
|
|
60
|
+
- `set_agent_specific_state(key: str, value: Any) -> None` - Sets key-value pair in agent state dictionary
|
|
61
|
+
- `get_agent_specific_state(key: str, default: Optional[Any] = None) -> Any` - Retrieves value from agent state
|
|
62
|
+
- `get_async_loop() -> Optional[asyncio.AbstractEventLoop]` - Returns dedicated asyncio event loop
|
|
63
|
+
- `set_agent_system_instruction_string(instruction_string: str) -> None` - Sets static system prompt injection
|
|
64
|
+
- `set_agent_system_instruction_callback(callback_function: Callable) -> None` - Sets dynamic system prompt callback
|
|
65
|
+
- `get_gateway_id() -> str` - Returns unique identifier for agent host instance
|
|
66
|
+
- `submit_a2a_task(target_agent_name: str, a2a_message: A2AMessage, user_id: str, user_config: Dict[str, Any], sub_task_id: str) -> str` - Submits task to peer agent
|
|
67
|
+
- `get_agent_context() -> Dict[str, Any]` - Returns agent context for middleware interactions
|
|
68
|
+
|
|
69
|
+
**Constants/Variables:**
|
|
70
|
+
- `info: Dict` - Metadata dictionary for SAC framework
|
|
71
|
+
- `CORRELATION_DATA_PREFIX: str` - Prefix for cache keys when tracking peer requests
|
|
72
|
+
- `HOST_COMPONENT_VERSION: str` - Version string of the host component
|
|
73
|
+
|
|
74
|
+
**Usage Examples:**
|
|
75
|
+
```python
|
|
76
|
+
# Custom initialization function example
|
|
77
|
+
from solace_agent_mesh.agent.sac.component import SamAgentComponent
|
|
78
|
+
|
|
79
|
+
def initialize_my_agent(host_component: SamAgentComponent, config: dict):
|
|
80
|
+
"""Custom initialization function for the agent."""
|
|
81
|
+
# Store database connection in agent state
|
|
82
|
+
db_connection = create_database_connection(config.get('db_url'))
|
|
83
|
+
host_component.set_agent_specific_state('db_connection', db_connection)
|
|
84
|
+
|
|
85
|
+
# Set custom system instruction
|
|
86
|
+
host_component.set_agent_system_instruction_string(
|
|
87
|
+
"You are a specialized customer service agent with access to our database."
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
# Tool accessing agent state
|
|
91
|
+
def my_custom_tool(host_component: SamAgentComponent, query: str) -> str:
|
|
92
|
+
"""Tool that uses stored database connection."""
|
|
93
|
+
db_connection = host_component.get_agent_specific_state('db_connection')
|
|
94
|
+
if db_connection:
|
|
95
|
+
return db_connection.execute_query(query)
|
|
96
|
+
return "Database not available"
|
|
97
|
+
|
|
98
|
+
# Scheduling async work from synchronous code
|
|
99
|
+
def schedule_background_task(host_component: SamAgentComponent):
|
|
100
|
+
"""Schedule async work on the component's event loop."""
|
|
101
|
+
loop = host_component.get_async_loop()
|
|
102
|
+
if loop:
|
|
103
|
+
asyncio.run_coroutine_threadsafe(my_async_task(), loop)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### patch_adk.py
|
|
107
|
+
**Purpose:** Contains runtime patches for the Google ADK library to enhance behavior
|
|
108
|
+
**Import:** `from solace_agent_mesh.agent.sac.patch_adk import patch_adk`
|
|
109
|
+
|
|
110
|
+
**Functions:**
|
|
111
|
+
- `patch_adk() -> None` - Applies all necessary patches to the ADK library
|
|
112
|
+
|
|
113
|
+
**Usage Examples:**
|
|
114
|
+
```python
|
|
115
|
+
from solace_agent_mesh.agent.sac.patch_adk import patch_adk
|
|
116
|
+
|
|
117
|
+
# Apply patches before using ADK
|
|
118
|
+
patch_adk()
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### task_execution_context.py
|
|
122
|
+
**Purpose:** State management class for single, in-flight agent tasks
|
|
123
|
+
**Import:** `from solace_agent_mesh.agent.sac.task_execution_context import TaskExecutionContext`
|
|
124
|
+
|
|
125
|
+
**Classes:**
|
|
126
|
+
- `TaskExecutionContext(task_id: str, a2a_context: Dict[str, Any])` - Encapsulates runtime state for a single agent task
|
|
127
|
+
- `cancel() -> None` - Signals that the task should be cancelled
|
|
128
|
+
- `is_cancelled() -> bool` - Checks if cancellation event has been set
|
|
129
|
+
- `append_to_streaming_buffer(text: str) -> None` - Appends text to streaming buffer
|
|
130
|
+
- `flush_streaming_buffer() -> str` - Returns and clears streaming buffer content
|
|
131
|
+
- `get_streaming_buffer_content() -> str` - Returns buffer content without clearing
|
|
132
|
+
- `append_to_run_based_buffer(text: str) -> None` - Appends text to run-based response buffer
|
|
133
|
+
- `register_peer_sub_task(sub_task_id: str, correlation_data: Dict[str, Any]) -> None` - Adds peer sub-task tracking
|
|
134
|
+
- `claim_sub_task_completion(sub_task_id: str) -> Optional[Dict[str, Any]]` - Atomically retrieves and removes sub-task data
|
|
135
|
+
- `register_parallel_call_sent(invocation_id: str) -> None` - Registers new parallel tool call
|
|
136
|
+
- `handle_peer_timeout(sub_task_id: str, correlation_data: Dict, timeout_sec: int, invocation_id: str) -> bool` - Handles peer timeout
|
|
137
|
+
- `record_parallel_result(result: Dict, invocation_id: str) -> bool` - Records parallel tool call result
|
|
138
|
+
- `clear_parallel_invocation_state(invocation_id: str) -> None` - Removes completed invocation state
|
|
139
|
+
- `register_produced_artifact(filename: str, version: int) -> None` - Tracks newly created artifacts
|
|
140
|
+
- `add_artifact_signal(signal: Dict[str, Any]) -> None` - Adds artifact return signal
|
|
141
|
+
- `get_and_clear_artifact_signals() -> List[Dict[str, Any]]` - Retrieves and clears artifact signals
|
|
142
|
+
- `set_event_loop(loop: asyncio.AbstractEventLoop) -> None` - Stores event loop reference
|
|
143
|
+
- `get_event_loop() -> Optional[asyncio.AbstractEventLoop]` - Retrieves stored event loop
|
|
144
|
+
- `record_token_usage(input_tokens: int, output_tokens: int, model: str, source: str = "agent", tool_name: Optional[str] = None, cached_input_tokens: int = 0) -> None` - Records token usage for LLM calls
|
|
145
|
+
- `get_token_usage_summary() -> Dict[str, Any]` - Returns summary of all token usage for the task
|
|
146
|
+
|
|
147
|
+
**Usage Examples:**
|
|
148
|
+
```python
|
|
149
|
+
from solace_agent_mesh.agent.sac.task_execution_context import TaskExecutionContext
|
|
150
|
+
|
|
151
|
+
# Create task context
|
|
152
|
+
a2a_context = {
|
|
153
|
+
"logical_task_id": "task-123",
|
|
154
|
+
"user_id": "user-456",
|
|
155
|
+
"session_id": "session-789"
|
|
156
|
+
}
|
|
157
|
+
task_context = TaskExecutionContext("task-123", a2a_context)
|
|
158
|
+
|
|
159
|
+
# Use streaming buffer
|
|
160
|
+
task_context.append_to_streaming_buffer("Hello ")
|
|
161
|
+
task_context.append_to_streaming_buffer("world!")
|
|
162
|
+
content = task_context.flush_streaming_buffer() # Returns "Hello world!"
|
|
163
|
+
|
|
164
|
+
# Track peer sub-tasks
|
|
165
|
+
correlation_data = {
|
|
166
|
+
"peer_agent_name": "math-agent",
|
|
167
|
+
"adk_function_call_id": "call-123"
|
|
168
|
+
}
|
|
169
|
+
task_context.register_peer_sub_task("sub-task-456", correlation_data)
|
|
170
|
+
|
|
171
|
+
# Handle completion
|
|
172
|
+
completed_data = task_context.claim_sub_task_completion("sub-task-456")
|
|
173
|
+
if completed_data:
|
|
174
|
+
print(f"Sub-task completed: {completed_data}")
|
|
175
|
+
|
|
176
|
+
# Track token usage
|
|
177
|
+
task_context.record_token_usage(
|
|
178
|
+
input_tokens=100,
|
|
179
|
+
output_tokens=50,
|
|
180
|
+
model="gemini-1.5-pro",
|
|
181
|
+
source="agent"
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
# Get usage summary
|
|
185
|
+
usage = task_context.get_token_usage_summary()
|
|
186
|
+
print(f"Total tokens used: {usage['total_tokens']}")
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
# content_hash: c80bf39278c35fcb73e1df4421b631aabbdb4ba330e8be028fb8a29e097c3fad
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# LLM Summary Detail File
|
|
2
|
+
|
|
3
|
+
This file is a concatenation of all individual *llm.txt files found in the 'sac' directory tree. Each section below corresponds to a specific directory's summary file.
|
|
4
|
+
|
|
5
|
+
================================================================================
|
|
6
|
+
|
|
7
|
+
## Section 1: solace_agent_mesh/agent/sac/sac_llm.txt
|
|
8
|
+
|
|
9
|
+
**Source file:** `solace_agent_mesh/agent/sac/sac_llm.txt`
|
|
10
|
+
|
|
11
|
+
# DEVELOPER GUIDE for the directory: sac
|
|
12
|
+
|
|
13
|
+
## Quick Summary
|
|
14
|
+
The `sac` (Solace AI Connector) directory provides the core implementation for hosting a Google ADK (Agent Development Kit) agent within the Solace AI Connector framework. It acts as a bridge, enabling ADK agents to communicate using the A2A (Agent-to-Agent) protocol over Solace messaging. This allows for the creation of distributed, collaborative agent systems where agents can delegate tasks, share information, and work together to solve complex problems.
|
|
15
|
+
|
|
16
|
+
## Files Overview
|
|
17
|
+
- `__init__.py` - Empty package marker file
|
|
18
|
+
- `app.py` - Custom SAC App class that automatically configures Solace subscriptions and broker settings for A2A communication
|
|
19
|
+
- `component.py` - Main SAC Component that hosts the ADK agent, manages its lifecycle, and handles all A2A protocol messaging
|
|
20
|
+
- `patch_adk.py` - Runtime patches for the Google ADK library to enhance or correct its behavior
|
|
21
|
+
- `task_execution_context.py` - State management class that encapsulates all runtime information for a single, in-flight A2A task
|
|
22
|
+
|
|
23
|
+
## Developer API Reference
|
|
24
|
+
|
|
25
|
+
### app.py
|
|
26
|
+
**Purpose:** Provides a custom SAC App class that simplifies the configuration of an A2A agent
|
|
27
|
+
**Import:** `from solace_agent_mesh.agent.sac.app import SamAgentApp`
|
|
28
|
+
|
|
29
|
+
**Classes:**
|
|
30
|
+
- `SamAgentApp(app_info: Dict[str, Any], **kwargs)` - Custom App class for SAM Agent Host with namespace prefixing and automatic subscription generation
|
|
31
|
+
- `app_schema: Dict` - Class attribute defining comprehensive configuration schema for agent host validation
|
|
32
|
+
|
|
33
|
+
**Constants/Variables:**
|
|
34
|
+
- `info: Dict[str, str]` - Metadata dictionary about the SamAgentApp class for SAC framework discovery
|
|
35
|
+
|
|
36
|
+
**Usage Examples:**
|
|
37
|
+
```python
|
|
38
|
+
# SamAgentApp is typically instantiated by the SAC framework from YAML config
|
|
39
|
+
# Example agent-config.yaml:
|
|
40
|
+
# app:
|
|
41
|
+
# class_name: solace_agent_mesh.agent.sac.app.SamAgentApp
|
|
42
|
+
# app_config:
|
|
43
|
+
# namespace: "my-org/production"
|
|
44
|
+
# agent_name: "customer-support-agent"
|
|
45
|
+
# model: "gemini-1.5-pro-latest"
|
|
46
|
+
# tools:
|
|
47
|
+
# - tool_type: "builtin"
|
|
48
|
+
# tool_name: "file_search"
|
|
49
|
+
# agent_card:
|
|
50
|
+
# description: "An agent that can answer questions about customer accounts."
|
|
51
|
+
# agent_card_publishing:
|
|
52
|
+
# interval_seconds: 60
|
|
53
|
+
# session_service:
|
|
54
|
+
# type: "memory"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### component.py
|
|
58
|
+
**Purpose:** Core component that hosts a Google ADK agent and bridges communication to A2A protocol
|
|
59
|
+
**Import:** `from solace_agent_mesh.agent.sac.component import SamAgentComponent`
|
|
60
|
+
|
|
61
|
+
**Classes:**
|
|
62
|
+
- `SamAgentComponent(**kwargs)` - Solace AI Connector component that hosts a Google ADK agent
|
|
63
|
+
- `process_event(event: Event) -> None` - Main entry point for all SAC framework events
|
|
64
|
+
- `handle_timer_event(timer_data: Dict[str, Any]) -> None` - Handles scheduled timer events for agent card publishing
|
|
65
|
+
- `handle_cache_expiry_event(cache_data: Dict[str, Any]) -> None` - Handles cache expiry events for peer agent timeouts
|
|
66
|
+
- `finalize_task_success(a2a_context: Dict) -> None` - Async method to finalize successful task completion
|
|
67
|
+
- `finalize_task_canceled(a2a_context: Dict) -> None` - Finalizes task as CANCELED
|
|
68
|
+
- `finalize_task_error(exception: Exception, a2a_context: Dict) -> None` - Async method to finalize failed tasks
|
|
69
|
+
- `cleanup() -> None` - Cleans up resources on component shutdown
|
|
70
|
+
- `set_agent_specific_state(key: str, value: Any) -> None` - Sets key-value pair in agent state dictionary
|
|
71
|
+
- `get_agent_specific_state(key: str, default: Optional[Any] = None) -> Any` - Retrieves value from agent state
|
|
72
|
+
- `get_async_loop() -> Optional[asyncio.AbstractEventLoop]` - Returns dedicated asyncio event loop
|
|
73
|
+
- `set_agent_system_instruction_string(instruction_string: str) -> None` - Sets static system prompt injection
|
|
74
|
+
- `set_agent_system_instruction_callback(callback_function: Callable) -> None` - Sets dynamic system prompt callback
|
|
75
|
+
- `get_gateway_id() -> str` - Returns unique identifier for agent host instance
|
|
76
|
+
- `submit_a2a_task(target_agent_name: str, a2a_message: A2AMessage, user_id: str, user_config: Dict[str, Any], sub_task_id: str) -> str` - Submits task to peer agent
|
|
77
|
+
- `get_agent_context() -> Dict[str, Any]` - Returns agent context for middleware interactions
|
|
78
|
+
|
|
79
|
+
**Constants/Variables:**
|
|
80
|
+
- `info: Dict` - Metadata dictionary for SAC framework
|
|
81
|
+
- `CORRELATION_DATA_PREFIX: str` - Prefix for cache keys when tracking peer requests
|
|
82
|
+
- `HOST_COMPONENT_VERSION: str` - Version string of the host component
|
|
83
|
+
|
|
84
|
+
**Usage Examples:**
|
|
85
|
+
```python
|
|
86
|
+
# Custom initialization function example
|
|
87
|
+
from solace_agent_mesh.agent.sac.component import SamAgentComponent
|
|
88
|
+
|
|
89
|
+
def initialize_my_agent(host_component: SamAgentComponent, config: dict):
|
|
90
|
+
"""Custom initialization function for the agent."""
|
|
91
|
+
# Store database connection in agent state
|
|
92
|
+
db_connection = create_database_connection(config.get('db_url'))
|
|
93
|
+
host_component.set_agent_specific_state('db_connection', db_connection)
|
|
94
|
+
|
|
95
|
+
# Set custom system instruction
|
|
96
|
+
host_component.set_agent_system_instruction_string(
|
|
97
|
+
"You are a specialized customer service agent with access to our database."
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
# Tool accessing agent state
|
|
101
|
+
def my_custom_tool(host_component: SamAgentComponent, query: str) -> str:
|
|
102
|
+
"""Tool that uses stored database connection."""
|
|
103
|
+
db_connection = host_component.get_agent_specific_state('db_connection')
|
|
104
|
+
if db_connection:
|
|
105
|
+
return db_connection.execute_query(query)
|
|
106
|
+
return "Database not available"
|
|
107
|
+
|
|
108
|
+
# Scheduling async work from synchronous code
|
|
109
|
+
def schedule_background_task(host_component: SamAgentComponent):
|
|
110
|
+
"""Schedule async work on the component's event loop."""
|
|
111
|
+
loop = host_component.get_async_loop()
|
|
112
|
+
if loop:
|
|
113
|
+
asyncio.run_coroutine_threadsafe(my_async_task(), loop)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### patch_adk.py
|
|
117
|
+
**Purpose:** Contains runtime patches for the Google ADK library to enhance behavior
|
|
118
|
+
**Import:** `from solace_agent_mesh.agent.sac.patch_adk import patch_adk`
|
|
119
|
+
|
|
120
|
+
**Functions:**
|
|
121
|
+
- `patch_adk() -> None` - Applies all necessary patches to the ADK library
|
|
122
|
+
|
|
123
|
+
**Usage Examples:**
|
|
124
|
+
```python
|
|
125
|
+
from solace_agent_mesh.agent.sac.patch_adk import patch_adk
|
|
126
|
+
|
|
127
|
+
# Apply patches before using ADK
|
|
128
|
+
patch_adk()
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### task_execution_context.py
|
|
132
|
+
**Purpose:** State management class for single, in-flight agent tasks
|
|
133
|
+
**Import:** `from solace_agent_mesh.agent.sac.task_execution_context import TaskExecutionContext`
|
|
134
|
+
|
|
135
|
+
**Classes:**
|
|
136
|
+
- `TaskExecutionContext(task_id: str, a2a_context: Dict[str, Any])` - Encapsulates runtime state for a single agent task
|
|
137
|
+
- `cancel() -> None` - Signals that the task should be cancelled
|
|
138
|
+
- `is_cancelled() -> bool` - Checks if cancellation event has been set
|
|
139
|
+
- `append_to_streaming_buffer(text: str) -> None` - Appends text to streaming buffer
|
|
140
|
+
- `flush_streaming_buffer() -> str` - Returns and clears streaming buffer content
|
|
141
|
+
- `get_streaming_buffer_content() -> str` - Returns buffer content without clearing
|
|
142
|
+
- `append_to_run_based_buffer(text: str) -> None` - Appends text to run-based response buffer
|
|
143
|
+
- `register_peer_sub_task(sub_task_id: str, correlation_data: Dict[str, Any]) -> None` - Adds peer sub-task tracking
|
|
144
|
+
- `claim_sub_task_completion(sub_task_id: str) -> Optional[Dict[str, Any]]` - Atomically retrieves and removes sub-task data
|
|
145
|
+
- `register_parallel_call_sent(invocation_id: str) -> None` - Registers new parallel tool call
|
|
146
|
+
- `handle_peer_timeout(sub_task_id: str, correlation_data: Dict, timeout_sec: int, invocation_id: str) -> bool` - Handles peer timeout
|
|
147
|
+
- `record_parallel_result(result: Dict, invocation_id: str) -> bool` - Records parallel tool call result
|
|
148
|
+
- `clear_parallel_invocation_state(invocation_id: str) -> None` - Removes completed invocation state
|
|
149
|
+
- `register_produced_artifact(filename: str, version: int) -> None` - Tracks newly created artifacts
|
|
150
|
+
- `add_artifact_signal(signal: Dict[str, Any]) -> None` - Adds artifact return signal
|
|
151
|
+
- `get_and_clear_artifact_signals() -> List[Dict[str, Any]]` - Retrieves and clears artifact signals
|
|
152
|
+
- `set_event_loop(loop: asyncio.AbstractEventLoop) -> None` - Stores event loop reference
|
|
153
|
+
- `get_event_loop() -> Optional[asyncio.AbstractEventLoop]` - Retrieves stored event loop
|
|
154
|
+
- `record_token_usage(input_tokens: int, output_tokens: int, model: str, source: str = "agent", tool_name: Optional[str] = None, cached_input_tokens: int = 0) -> None` - Records token usage for LLM calls
|
|
155
|
+
- `get_token_usage_summary() -> Dict[str, Any]` - Returns summary of all token usage for the task
|
|
156
|
+
|
|
157
|
+
**Usage Examples:**
|
|
158
|
+
```python
|
|
159
|
+
from solace_agent_mesh.agent.sac.task_execution_context import TaskExecutionContext
|
|
160
|
+
|
|
161
|
+
# Create task context
|
|
162
|
+
a2a_context = {
|
|
163
|
+
"logical_task_id": "task-123",
|
|
164
|
+
"user_id": "user-456",
|
|
165
|
+
"session_id": "session-789"
|
|
166
|
+
}
|
|
167
|
+
task_context = TaskExecutionContext("task-123", a2a_context)
|
|
168
|
+
|
|
169
|
+
# Use streaming buffer
|
|
170
|
+
task_context.append_to_streaming_buffer("Hello ")
|
|
171
|
+
task_context.append_to_streaming_buffer("world!")
|
|
172
|
+
content = task_context.flush_streaming_buffer() # Returns "Hello world!"
|
|
173
|
+
|
|
174
|
+
# Track peer sub-tasks
|
|
175
|
+
correlation_data = {
|
|
176
|
+
"peer_agent_name": "math-agent",
|
|
177
|
+
"adk_function_call_id": "call-123"
|
|
178
|
+
}
|
|
179
|
+
task_context.register_peer_sub_task("sub-task-456", correlation_data)
|
|
180
|
+
|
|
181
|
+
# Handle completion
|
|
182
|
+
completed_data = task_context.claim_sub_task_completion("sub-task-456")
|
|
183
|
+
if completed_data:
|
|
184
|
+
print(f"Sub-task completed: {completed_data}")
|
|
185
|
+
|
|
186
|
+
# Track token usage
|
|
187
|
+
task_context.record_token_usage(
|
|
188
|
+
input_tokens=100,
|
|
189
|
+
output_tokens=50,
|
|
190
|
+
model="gemini-1.5-pro",
|
|
191
|
+
source="agent"
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
# Get usage summary
|
|
195
|
+
usage = task_context.get_token_usage_summary()
|
|
196
|
+
print(f"Total tokens used: {usage['total_tokens']}")
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
================================================================================
|
|
200
|
+
|