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,255 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Pydantic models for prompt library API.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from typing import Any, Dict, List, Optional
|
|
6
|
+
from pydantic import BaseModel, Field
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class PromptBase(BaseModel):
|
|
10
|
+
"""Base schema for Prompt"""
|
|
11
|
+
prompt_text: str = Field(
|
|
12
|
+
...,
|
|
13
|
+
min_length=1,
|
|
14
|
+
max_length=10000,
|
|
15
|
+
description="The prompt text content",
|
|
16
|
+
alias="promptText"
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
class Config:
|
|
20
|
+
populate_by_name = True
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class PromptCreate(PromptBase):
|
|
24
|
+
"""Schema for creating a new prompt version"""
|
|
25
|
+
pass
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class PromptResponse(PromptBase):
|
|
29
|
+
"""Schema for prompt response"""
|
|
30
|
+
id: str
|
|
31
|
+
group_id: str = Field(alias="groupId")
|
|
32
|
+
user_id: str = Field(alias="userId")
|
|
33
|
+
version: int
|
|
34
|
+
# Versioned metadata fields
|
|
35
|
+
name: Optional[str] = Field(None, description="Prompt name at this version")
|
|
36
|
+
description: Optional[str] = Field(None, description="Prompt description at this version")
|
|
37
|
+
category: Optional[str] = Field(None, description="Prompt category at this version")
|
|
38
|
+
command: Optional[str] = Field(None, description="Prompt command at this version")
|
|
39
|
+
created_at: int = Field(alias="createdAt") # epoch milliseconds
|
|
40
|
+
updated_at: int = Field(alias="updatedAt") # epoch milliseconds
|
|
41
|
+
|
|
42
|
+
class Config:
|
|
43
|
+
from_attributes = True
|
|
44
|
+
populate_by_name = True
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class PromptGroupBase(BaseModel):
|
|
48
|
+
"""Base schema for PromptGroup"""
|
|
49
|
+
name: str = Field(
|
|
50
|
+
...,
|
|
51
|
+
min_length=1,
|
|
52
|
+
max_length=255,
|
|
53
|
+
description="Name of the prompt group"
|
|
54
|
+
)
|
|
55
|
+
description: Optional[str] = Field(
|
|
56
|
+
None,
|
|
57
|
+
max_length=1000,
|
|
58
|
+
description="Short description"
|
|
59
|
+
)
|
|
60
|
+
category: Optional[str] = Field(
|
|
61
|
+
None,
|
|
62
|
+
max_length=100,
|
|
63
|
+
description="Category for organization"
|
|
64
|
+
)
|
|
65
|
+
command: Optional[str] = Field(
|
|
66
|
+
None,
|
|
67
|
+
min_length=1,
|
|
68
|
+
max_length=50,
|
|
69
|
+
pattern="^[a-zA-Z0-9_-]+$",
|
|
70
|
+
description="Shorthand command (alphanumeric, dash, underscore only)"
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
class PromptGroupCreate(PromptGroupBase):
|
|
75
|
+
"""Schema for creating a new prompt group"""
|
|
76
|
+
initial_prompt: str = Field(
|
|
77
|
+
...,
|
|
78
|
+
min_length=1,
|
|
79
|
+
max_length=10000,
|
|
80
|
+
description="Initial prompt text"
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
class PromptGroupUpdate(BaseModel):
|
|
85
|
+
"""Schema for updating a prompt group"""
|
|
86
|
+
name: Optional[str] = Field(None, min_length=1, max_length=255)
|
|
87
|
+
description: Optional[str] = Field(None, max_length=1000)
|
|
88
|
+
category: Optional[str] = Field(None, max_length=100)
|
|
89
|
+
command: Optional[str] = Field(
|
|
90
|
+
None,
|
|
91
|
+
min_length=1,
|
|
92
|
+
max_length=50,
|
|
93
|
+
pattern="^[a-zA-Z0-9_-]+$"
|
|
94
|
+
)
|
|
95
|
+
initial_prompt: Optional[str] = Field(
|
|
96
|
+
None,
|
|
97
|
+
min_length=1,
|
|
98
|
+
max_length=10000,
|
|
99
|
+
description="Updated prompt text (creates new version if changed)"
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class PromptGroupResponse(PromptGroupBase):
|
|
104
|
+
"""Schema for prompt group response"""
|
|
105
|
+
id: str
|
|
106
|
+
user_id: str = Field(alias="userId")
|
|
107
|
+
author_name: Optional[str] = Field(None, alias="authorName")
|
|
108
|
+
production_prompt_id: Optional[str] = Field(None, alias="productionPromptId")
|
|
109
|
+
is_shared: bool = Field(alias="isShared")
|
|
110
|
+
is_pinned: bool = Field(alias="isPinned")
|
|
111
|
+
created_at: int = Field(alias="createdAt") # epoch milliseconds
|
|
112
|
+
updated_at: int = Field(alias="updatedAt") # epoch milliseconds
|
|
113
|
+
|
|
114
|
+
# Include production prompt if available
|
|
115
|
+
production_prompt: Optional[PromptResponse] = Field(None, alias="productionPrompt")
|
|
116
|
+
|
|
117
|
+
class Config:
|
|
118
|
+
from_attributes = True
|
|
119
|
+
populate_by_name = True
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class PromptGroupListResponse(BaseModel):
|
|
123
|
+
"""Schema for paginated prompt group list"""
|
|
124
|
+
groups: List[PromptGroupResponse]
|
|
125
|
+
total: int
|
|
126
|
+
skip: int
|
|
127
|
+
limit: int
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
# AI-Assisted Prompt Builder Models
|
|
131
|
+
|
|
132
|
+
class ChatMessage(BaseModel):
|
|
133
|
+
"""Schema for a chat message"""
|
|
134
|
+
role: str = Field(
|
|
135
|
+
...,
|
|
136
|
+
pattern="^(user|assistant)$",
|
|
137
|
+
description="Message role"
|
|
138
|
+
)
|
|
139
|
+
content: str = Field(..., min_length=1, description="Message content")
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
class PromptBuilderChatRequest(BaseModel):
|
|
143
|
+
"""Schema for prompt builder chat request"""
|
|
144
|
+
message: str = Field(
|
|
145
|
+
...,
|
|
146
|
+
min_length=1,
|
|
147
|
+
max_length=200000,
|
|
148
|
+
description="User message (supports long conversation histories for template creation)"
|
|
149
|
+
)
|
|
150
|
+
conversation_history: List[ChatMessage] = Field(
|
|
151
|
+
default_factory=list,
|
|
152
|
+
description="Previous messages"
|
|
153
|
+
)
|
|
154
|
+
current_template: Optional[Dict[str, Any]] = Field(
|
|
155
|
+
None,
|
|
156
|
+
description="Current template state"
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
class PromptBuilderChatResponse(BaseModel):
|
|
161
|
+
"""Schema for prompt builder chat response"""
|
|
162
|
+
message: str = Field(..., description="Assistant's response message")
|
|
163
|
+
template_updates: Dict[str, Any] = Field(
|
|
164
|
+
default_factory=dict,
|
|
165
|
+
description="Updates to template config"
|
|
166
|
+
)
|
|
167
|
+
confidence: float = Field(
|
|
168
|
+
0.0,
|
|
169
|
+
ge=0.0,
|
|
170
|
+
le=1.0,
|
|
171
|
+
description="Confidence score"
|
|
172
|
+
)
|
|
173
|
+
ready_to_save: bool = Field(
|
|
174
|
+
False,
|
|
175
|
+
description="Whether template is ready to save"
|
|
176
|
+
)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
# Export/Import Models
|
|
180
|
+
|
|
181
|
+
class PromptExportMetadata(BaseModel):
|
|
182
|
+
"""Metadata for exported prompt"""
|
|
183
|
+
author_name: Optional[str] = Field(None, alias="authorName")
|
|
184
|
+
original_version: int = Field(alias="originalVersion")
|
|
185
|
+
original_created_at: int = Field(alias="originalCreatedAt")
|
|
186
|
+
|
|
187
|
+
class Config:
|
|
188
|
+
populate_by_name = True
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
class PromptExportData(BaseModel):
|
|
192
|
+
"""Data structure for exported prompt"""
|
|
193
|
+
name: str
|
|
194
|
+
description: Optional[str] = None
|
|
195
|
+
category: Optional[str] = None
|
|
196
|
+
command: Optional[str] = None
|
|
197
|
+
prompt_text: str = Field(alias="promptText")
|
|
198
|
+
metadata: PromptExportMetadata
|
|
199
|
+
|
|
200
|
+
class Config:
|
|
201
|
+
populate_by_name = True
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
class PromptExportResponse(BaseModel):
|
|
205
|
+
"""Schema for exported prompt file"""
|
|
206
|
+
version: str = "1.0"
|
|
207
|
+
exported_at: int = Field(alias="exportedAt")
|
|
208
|
+
prompt: PromptExportData
|
|
209
|
+
|
|
210
|
+
class Config:
|
|
211
|
+
populate_by_name = True
|
|
212
|
+
by_alias = True
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
class PromptImportOptions(BaseModel):
|
|
216
|
+
"""Options for importing a prompt"""
|
|
217
|
+
preserve_command: bool = Field(
|
|
218
|
+
False,
|
|
219
|
+
alias="preserveCommand",
|
|
220
|
+
description="If true, attempt to keep original command (may be modified if conflict exists)"
|
|
221
|
+
)
|
|
222
|
+
preserve_category: bool = Field(
|
|
223
|
+
True,
|
|
224
|
+
alias="preserveCategory",
|
|
225
|
+
description="If true, keep the original category"
|
|
226
|
+
)
|
|
227
|
+
|
|
228
|
+
class Config:
|
|
229
|
+
populate_by_name = True
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
class PromptImportRequest(BaseModel):
|
|
233
|
+
"""Schema for importing a prompt"""
|
|
234
|
+
prompt_data: Dict[str, Any] = Field(
|
|
235
|
+
...,
|
|
236
|
+
description="The exported prompt JSON data"
|
|
237
|
+
)
|
|
238
|
+
options: Optional[PromptImportOptions] = Field(
|
|
239
|
+
default_factory=PromptImportOptions,
|
|
240
|
+
description="Import options"
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
class PromptImportResponse(BaseModel):
|
|
245
|
+
"""Schema for import response"""
|
|
246
|
+
success: bool
|
|
247
|
+
prompt_group_id: str = Field(alias="promptGroupId")
|
|
248
|
+
warnings: List[str] = Field(
|
|
249
|
+
default_factory=list,
|
|
250
|
+
description="Any warnings generated during import (e.g., command conflicts)"
|
|
251
|
+
)
|
|
252
|
+
|
|
253
|
+
class Config:
|
|
254
|
+
populate_by_name = True
|
|
255
|
+
by_alias = True
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Request DTOs for API endpoints.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from .session_requests import (
|
|
6
|
+
GetSessionRequest,
|
|
7
|
+
UpdateSessionRequest,
|
|
8
|
+
)
|
|
9
|
+
from .task_requests import SaveTaskRequest
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
"GetSessionRequest",
|
|
13
|
+
"UpdateSessionRequest",
|
|
14
|
+
"SaveTaskRequest",
|
|
15
|
+
]
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Request DTOs for project-related API endpoints.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, Field
|
|
6
|
+
from typing import Optional
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class CreateProjectRequest(BaseModel):
|
|
10
|
+
"""Request to create a new project."""
|
|
11
|
+
|
|
12
|
+
name: str = Field(..., min_length=1, max_length=255, description="Project name")
|
|
13
|
+
description: Optional[str] = Field(None, max_length=1000, description="Project description")
|
|
14
|
+
system_prompt: Optional[str] = Field(None, max_length=4000, description="Instructions for the project")
|
|
15
|
+
default_agent_id: Optional[str] = Field(None, description="Default agent ID for new chats")
|
|
16
|
+
file_metadata: Optional[str] = Field(None, description="JSON string containing file metadata")
|
|
17
|
+
user_id: str
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class UpdateProjectRequest(BaseModel):
|
|
21
|
+
"""Request to update an existing project."""
|
|
22
|
+
|
|
23
|
+
name: Optional[str] = Field(None, min_length=1, max_length=255, description="Project name")
|
|
24
|
+
description: Optional[str] = Field(None, max_length=1000, description="Project description")
|
|
25
|
+
system_prompt: Optional[str] = Field(None, alias="systemPrompt", max_length=4000, description="Instructions for the project")
|
|
26
|
+
default_agent_id: Optional[str] = Field(None, alias="defaultAgentId", description="Default agent ID for new chats")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class GetProjectsRequest(BaseModel):
|
|
30
|
+
"""Request DTO for retrieving projects."""
|
|
31
|
+
user_id: str
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class GetProjectRequest(BaseModel):
|
|
35
|
+
"""Request DTO for retrieving a specific project."""
|
|
36
|
+
project_id: str
|
|
37
|
+
user_id: str
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class DeleteProjectRequest(BaseModel):
|
|
41
|
+
"""Request DTO for deleting a project."""
|
|
42
|
+
project_id: str
|
|
43
|
+
user_id: str
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class ProjectFilter(BaseModel):
|
|
47
|
+
"""Filter criteria for retrieving projects."""
|
|
48
|
+
user_id: Optional[str] = None
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# DEVELOPER GUIDE: requests
|
|
2
|
+
|
|
3
|
+
## Quick Summary
|
|
4
|
+
This directory contains request Data Transfer Objects (DTOs) for API endpoints, providing Pydantic models for session management and task operations. These DTOs handle request validation, field transformation, and type safety for incoming API requests.
|
|
5
|
+
|
|
6
|
+
## Files Overview
|
|
7
|
+
- `__init__.py` - Exports all request DTOs for centralized importing
|
|
8
|
+
- `session_requests.py` - Defines request DTOs for session operations (get, update)
|
|
9
|
+
- `task_requests.py` - Defines request DTOs for task operations (save)
|
|
10
|
+
|
|
11
|
+
## Developer API Reference
|
|
12
|
+
|
|
13
|
+
### __init__.py
|
|
14
|
+
**Purpose:** Provides centralized imports for all request DTOs
|
|
15
|
+
**Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.requests import GetSessionRequest, UpdateSessionRequest, SaveTaskRequest`
|
|
16
|
+
|
|
17
|
+
**Usage Examples:**
|
|
18
|
+
```python
|
|
19
|
+
# Import all request DTOs
|
|
20
|
+
from solace_agent_mesh.gateway.http_sse.routers.dto.requests import (
|
|
21
|
+
GetSessionRequest,
|
|
22
|
+
UpdateSessionRequest,
|
|
23
|
+
SaveTaskRequest
|
|
24
|
+
)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### session_requests.py
|
|
28
|
+
**Purpose:** Defines Pydantic models for session-related API request validation
|
|
29
|
+
**Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.requests.session_requests import GetSessionRequest, UpdateSessionRequest`
|
|
30
|
+
|
|
31
|
+
**Classes:**
|
|
32
|
+
- `GetSessionRequest(session_id: SessionId, user_id: UserId)` - Request DTO for retrieving a specific session by ID
|
|
33
|
+
- `UpdateSessionRequest(session_id: SessionId, user_id: UserId, name: str)` - Request DTO for updating session details with validation (name must be 1-255 characters)
|
|
34
|
+
|
|
35
|
+
**Usage Examples:**
|
|
36
|
+
```python
|
|
37
|
+
from solace_agent_mesh.gateway.http_sse.routers.dto.requests.session_requests import (
|
|
38
|
+
GetSessionRequest,
|
|
39
|
+
UpdateSessionRequest
|
|
40
|
+
)
|
|
41
|
+
from pydantic import ValidationError
|
|
42
|
+
|
|
43
|
+
# Create a request to get a specific session
|
|
44
|
+
get_session_req = GetSessionRequest(
|
|
45
|
+
session_id="session456",
|
|
46
|
+
user_id="user123"
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
# Create a request to update a session name
|
|
50
|
+
update_req = UpdateSessionRequest(
|
|
51
|
+
session_id="session456",
|
|
52
|
+
user_id="user123",
|
|
53
|
+
name="My Updated Session"
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
# Validate request data from dictionary
|
|
57
|
+
request_data = {
|
|
58
|
+
"session_id": "session789",
|
|
59
|
+
"user_id": "user456",
|
|
60
|
+
"name": "New Session Name"
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
try:
|
|
64
|
+
validated_request = UpdateSessionRequest(**request_data)
|
|
65
|
+
print(f"Valid request: {validated_request}")
|
|
66
|
+
except ValidationError as e:
|
|
67
|
+
print(f"Validation failed: {e}")
|
|
68
|
+
|
|
69
|
+
# Access validated fields
|
|
70
|
+
print(f"Session ID: {update_req.session_id}")
|
|
71
|
+
print(f"User ID: {update_req.user_id}")
|
|
72
|
+
print(f"New name: {update_req.name}")
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### task_requests.py
|
|
76
|
+
**Purpose:** Defines Pydantic models for task-related API request validation with JSON field handling
|
|
77
|
+
**Import:** `from solace_agent_mesh.gateway.http_sse.routers.dto.requests.task_requests import SaveTaskRequest`
|
|
78
|
+
|
|
79
|
+
**Classes:**
|
|
80
|
+
- `SaveTaskRequest(task_id: str, user_message: Optional[str], message_bubbles: str, task_metadata: Optional[str])` - Request DTO for saving tasks with JSON validation
|
|
81
|
+
- `validate_task_id(v: str) -> str` - Validates task_id is non-empty and strips whitespace
|
|
82
|
+
- `validate_message_bubbles(v: str) -> str` - Validates message_bubbles is valid non-empty JSON array
|
|
83
|
+
- `validate_task_metadata(v: Optional[str]) -> Optional[str]` - Validates task_metadata is valid JSON if provided
|
|
84
|
+
|
|
85
|
+
**Usage Examples:**
|
|
86
|
+
```python
|
|
87
|
+
from solace_agent_mesh.gateway.http_sse.routers.dto.requests.task_requests import SaveTaskRequest
|
|
88
|
+
from pydantic import ValidationError
|
|
89
|
+
import json
|
|
90
|
+
|
|
91
|
+
# Create a save task request with camelCase field names (API style)
|
|
92
|
+
task_data = {
|
|
93
|
+
"taskId": "task_123",
|
|
94
|
+
"userMessage": "Please analyze this data",
|
|
95
|
+
"messageBubbles": json.dumps([
|
|
96
|
+
{"type": "user", "content": "Hello"},
|
|
97
|
+
{"type": "assistant", "content": "Hi there!"}
|
|
98
|
+
]),
|
|
99
|
+
"taskMetadata": json.dumps({"priority": "high", "category": "analysis"})
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
try:
|
|
103
|
+
save_task_req = SaveTaskRequest(**task_data)
|
|
104
|
+
print(f"Task ID: {save_task_req.task_id}")
|
|
105
|
+
print(f"User Message: {save_task_req.user_message}")
|
|
106
|
+
print(f"Message Bubbles: {save_task_req.message_bubbles}")
|
|
107
|
+
print(f"Task Metadata: {save_task_req.task_metadata}")
|
|
108
|
+
except ValidationError as e:
|
|
109
|
+
print(f"Validation failed: {e}")
|
|
110
|
+
|
|
111
|
+
# Create with snake_case field names (internal style)
|
|
112
|
+
task_data_snake = {
|
|
113
|
+
"task_id": "task_456",
|
|
114
|
+
"user_message": "Process this request",
|
|
115
|
+
"message_bubbles": json.dumps([{"type": "system", "content": "Processing..."}]),
|
|
116
|
+
"task_metadata": None # Optional field
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
save_task_req2 = SaveTaskRequest(**task_data_snake)
|
|
120
|
+
|
|
121
|
+
# Handle validation errors
|
|
122
|
+
invalid_data = {
|
|
123
|
+
"taskId": "", # Empty task_id will fail validation
|
|
124
|
+
"messageBubbles": "invalid json" # Invalid JSON will fail
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
try:
|
|
128
|
+
SaveTaskRequest(**invalid_data)
|
|
129
|
+
except ValidationError as e:
|
|
130
|
+
print(f"Expected validation error: {e}")
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
# content_hash: 57595b5f602ab4728452316a250ef1ecdcf8dedba497c07de378959b659eccc2
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Session-related request DTOs.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from pydantic import BaseModel, Field
|
|
7
|
+
|
|
8
|
+
from ....shared.types import SessionId, UserId
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class GetSessionRequest(BaseModel):
|
|
12
|
+
"""Request DTO for retrieving a specific session."""
|
|
13
|
+
session_id: SessionId
|
|
14
|
+
project_id: Optional[str] = None
|
|
15
|
+
user_id: UserId
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class UpdateSessionRequest(BaseModel):
|
|
19
|
+
"""Request DTO for updating session details."""
|
|
20
|
+
session_id: SessionId
|
|
21
|
+
user_id: UserId
|
|
22
|
+
name: str = Field(..., min_length=1, max_length=255, description="New session name")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class MoveSessionRequest(BaseModel):
|
|
26
|
+
"""Request DTO for moving a session to a different project."""
|
|
27
|
+
project_id: Optional[str] = Field(None, alias="projectId", description="New project ID (null to remove from project)")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class SearchSessionsRequest(BaseModel):
|
|
31
|
+
"""Request DTO for searching sessions."""
|
|
32
|
+
query: str = Field(..., min_length=1, description="Search query string")
|
|
33
|
+
project_id: Optional[str] = Field(None, alias="projectId", description="Optional project ID to filter results")
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Task-related request DTOs.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
from typing import Optional
|
|
7
|
+
from pydantic import BaseModel, Field, field_validator
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SaveTaskRequest(BaseModel):
|
|
11
|
+
"""Request DTO for saving a task."""
|
|
12
|
+
|
|
13
|
+
task_id: str = Field(..., alias="taskId", min_length=1)
|
|
14
|
+
user_message: Optional[str] = Field(None, alias="userMessage")
|
|
15
|
+
message_bubbles: str = Field(..., alias="messageBubbles") # JSON string (opaque)
|
|
16
|
+
task_metadata: Optional[str] = Field(None, alias="taskMetadata") # JSON string (opaque)
|
|
17
|
+
|
|
18
|
+
model_config = {"populate_by_name": True}
|
|
19
|
+
|
|
20
|
+
@field_validator("task_id")
|
|
21
|
+
@classmethod
|
|
22
|
+
def validate_task_id(cls, v: str) -> str:
|
|
23
|
+
"""Validate that task_id is non-empty."""
|
|
24
|
+
if not v or not v.strip():
|
|
25
|
+
raise ValueError("task_id cannot be empty")
|
|
26
|
+
return v.strip()
|
|
27
|
+
|
|
28
|
+
@field_validator("message_bubbles")
|
|
29
|
+
@classmethod
|
|
30
|
+
def validate_message_bubbles(cls, v: str) -> str:
|
|
31
|
+
"""Validate that message_bubbles is a non-empty JSON string."""
|
|
32
|
+
if not v or not v.strip():
|
|
33
|
+
raise ValueError("message_bubbles cannot be empty")
|
|
34
|
+
|
|
35
|
+
# Validate it's valid JSON (but don't validate structure)
|
|
36
|
+
try:
|
|
37
|
+
parsed = json.loads(v)
|
|
38
|
+
if not isinstance(parsed, list) or len(parsed) == 0:
|
|
39
|
+
raise ValueError("message_bubbles must be a non-empty JSON array")
|
|
40
|
+
except json.JSONDecodeError as e:
|
|
41
|
+
raise ValueError(f"message_bubbles must be valid JSON: {e}")
|
|
42
|
+
|
|
43
|
+
return v
|
|
44
|
+
|
|
45
|
+
@field_validator("task_metadata")
|
|
46
|
+
@classmethod
|
|
47
|
+
def validate_task_metadata(cls, v: Optional[str]) -> Optional[str]:
|
|
48
|
+
"""Validate that task_metadata is valid JSON if provided."""
|
|
49
|
+
if v is None or not v.strip():
|
|
50
|
+
return None
|
|
51
|
+
|
|
52
|
+
# Validate it's valid JSON (but don't validate structure)
|
|
53
|
+
try:
|
|
54
|
+
json.loads(v)
|
|
55
|
+
except json.JSONDecodeError as e:
|
|
56
|
+
raise ValueError(f"task_metadata must be valid JSON: {e}")
|
|
57
|
+
|
|
58
|
+
return v
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Response DTOs for API endpoints.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from .session_responses import (
|
|
6
|
+
SessionResponse,
|
|
7
|
+
SessionListResponse,
|
|
8
|
+
)
|
|
9
|
+
from .task_responses import TaskResponse, TaskListResponse
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
# Session responses
|
|
13
|
+
"SessionResponse",
|
|
14
|
+
"SessionListResponse",
|
|
15
|
+
# Task responses
|
|
16
|
+
"TaskResponse",
|
|
17
|
+
"TaskListResponse",
|
|
18
|
+
]
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Base response classes with automatic timestamp serialization.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel, ConfigDict
|
|
8
|
+
|
|
9
|
+
from ....shared import epoch_ms_to_iso8601
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class BaseTimestampResponse(BaseModel):
|
|
13
|
+
"""
|
|
14
|
+
Base class for responses that include standard timestamp fields.
|
|
15
|
+
|
|
16
|
+
Timestamp fields are stored as epoch milliseconds (int) internally.
|
|
17
|
+
Automatically converts created_time and updated_time to ISO strings in JSON output.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
model_config = ConfigDict(populate_by_name=True)
|
|
21
|
+
|
|
22
|
+
def model_dump(self, **kwargs) -> dict[str, Any]:
|
|
23
|
+
kwargs.setdefault('by_alias', True)
|
|
24
|
+
"""Override model_dump to convert timestamp fields to ISO strings."""
|
|
25
|
+
data = super().model_dump(**kwargs)
|
|
26
|
+
|
|
27
|
+
# Convert timestamp fields to ISO strings for JSON output
|
|
28
|
+
# Check both snake_case (internal) and camelCase (API) names
|
|
29
|
+
timestamp_fields = ["created_time", "updated_time", "createdTime", "updatedTime"]
|
|
30
|
+
for field in timestamp_fields:
|
|
31
|
+
if field in data and data[field] is not None:
|
|
32
|
+
data[field] = epoch_ms_to_iso8601(data[field])
|
|
33
|
+
|
|
34
|
+
return data
|
|
35
|
+
|
|
36
|
+
def model_dump_json(self, **kwargs) -> str:
|
|
37
|
+
"""Override model_dump_json to use our timestamp conversion."""
|
|
38
|
+
# Get the converted data first, then serialize to JSON
|
|
39
|
+
converted_data = self.model_dump(**kwargs)
|
|
40
|
+
import json
|
|
41
|
+
|
|
42
|
+
return json.dumps(converted_data, default=str)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Project-related response DTOs.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
6
|
+
from typing import Optional
|
|
7
|
+
|
|
8
|
+
from .base_responses import BaseTimestampResponse
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ProjectResponse(BaseTimestampResponse):
|
|
12
|
+
"""Response DTO for a project."""
|
|
13
|
+
|
|
14
|
+
id: str
|
|
15
|
+
name: str
|
|
16
|
+
user_id: str = Field(alias="userId")
|
|
17
|
+
description: Optional[str] = None
|
|
18
|
+
system_prompt: Optional[str] = Field(default=None, alias="systemPrompt")
|
|
19
|
+
default_agent_id: Optional[str] = Field(default=None, alias="defaultAgentId")
|
|
20
|
+
artifact_count: Optional[int] = Field(default=None, alias="artifactCount")
|
|
21
|
+
created_at: int = Field(alias="createdAt")
|
|
22
|
+
updated_at: Optional[int] = Field(default=None, alias="updatedAt")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ProjectListResponse(BaseModel):
|
|
26
|
+
"""Response DTO for a list of projects."""
|
|
27
|
+
|
|
28
|
+
model_config = ConfigDict(populate_by_name=True)
|
|
29
|
+
|
|
30
|
+
projects: list[ProjectResponse]
|
|
31
|
+
total: int
|