solace-agent-mesh 1.0.6__py3-none-any.whl → 1.0.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of solace-agent-mesh might be problematic. Click here for more details.

Files changed (141) hide show
  1. solace_agent_mesh/agent/adk/artifacts/__init__.py +1 -0
  2. solace_agent_mesh/agent/adk/{filesystem_artifact_service.py → artifacts/filesystem_artifact_service.py} +14 -15
  3. solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py +440 -0
  4. solace_agent_mesh/agent/adk/callbacks.py +123 -159
  5. solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +316 -0
  6. solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py +414 -0
  7. solace_agent_mesh/agent/adk/mcp_content_processor.py +665 -0
  8. solace_agent_mesh/agent/adk/services.py +43 -1
  9. solace_agent_mesh/agent/adk/setup.py +85 -45
  10. solace_agent_mesh/agent/adk/tool_wrapper.py +19 -3
  11. solace_agent_mesh/agent/protocol/event_handlers.py +1 -1
  12. solace_agent_mesh/agent/sac/app.py +67 -0
  13. solace_agent_mesh/agent/sac/component.py +14 -86
  14. solace_agent_mesh/assets/docs/404.html +3 -3
  15. solace_agent_mesh/assets/docs/assets/js/04989206.b9dfe831.js +1 -0
  16. solace_agent_mesh/assets/docs/assets/js/0e682baa.b3bbde9a.js +1 -0
  17. solace_agent_mesh/assets/docs/assets/js/1023fc19.364235d5.js +1 -0
  18. solace_agent_mesh/assets/docs/assets/js/1523c6b4.1b0ec6f9.js +1 -0
  19. solace_agent_mesh/assets/docs/assets/js/166ab619.e8f3a7c7.js +1 -0
  20. solace_agent_mesh/assets/docs/assets/js/21ceee5f.3bf39250.js +1 -0
  21. solace_agent_mesh/assets/docs/assets/js/3d406171.7d02a73b.js +1 -0
  22. solace_agent_mesh/assets/docs/assets/js/42b3f8d8.8ccb9901.js +1 -0
  23. solace_agent_mesh/assets/docs/assets/js/442a8107.b3159bb2.js +1 -0
  24. solace_agent_mesh/assets/docs/assets/js/4c2787c2.fc6804f2.js +1 -0
  25. solace_agent_mesh/assets/docs/assets/js/5b4258a4.0d080cd9.js +1 -0
  26. solace_agent_mesh/assets/docs/assets/js/75384d09.ccd480c4.js +1 -0
  27. solace_agent_mesh/assets/docs/assets/js/768e31b0.8b51cd70.js +1 -0
  28. solace_agent_mesh/assets/docs/assets/js/945fb41e.c63791d1.js +1 -0
  29. solace_agent_mesh/assets/docs/assets/js/{9eff14a2.036c35ea.js → 9eff14a2.472b0310.js} +1 -1
  30. solace_agent_mesh/assets/docs/assets/js/a3a92b25.4b7fa6a2.js +1 -0
  31. solace_agent_mesh/assets/docs/assets/js/aba87c2f.76376d7c.js +1 -0
  32. solace_agent_mesh/assets/docs/assets/js/ae4415af.7a2f0bbf.js +1 -0
  33. solace_agent_mesh/assets/docs/assets/js/b7006a3a.73a79653.js +1 -0
  34. solace_agent_mesh/assets/docs/assets/js/beecea0d.ae31f6a7.js +1 -0
  35. solace_agent_mesh/assets/docs/assets/js/c2c06897.587b4af5.js +1 -0
  36. solace_agent_mesh/assets/docs/assets/js/{cd3d4052.ca6eed8c.js → cd3d4052.b6535013.js} +1 -1
  37. solace_agent_mesh/assets/docs/assets/js/f284c35a.731836ad.js +1 -0
  38. solace_agent_mesh/assets/docs/assets/js/f897a61a.0aa29dbb.js +1 -0
  39. solace_agent_mesh/assets/docs/assets/js/main.6dba4a66.js +2 -0
  40. solace_agent_mesh/assets/docs/assets/js/runtime~main.6415ad00.js +1 -0
  41. solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +28 -4
  42. solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +6 -6
  43. solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +8 -8
  44. solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +5 -5
  45. solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +5 -5
  46. solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +34 -5
  47. solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +4 -4
  48. solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +5 -5
  49. solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +4 -4
  50. solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +6 -6
  51. solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html +72 -0
  52. solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +5 -5
  53. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +7 -7
  54. solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +35 -16
  55. solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +4 -4
  56. solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +17 -11
  57. solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +4 -4
  58. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +5 -5
  59. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +4 -4
  60. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html +6 -6
  61. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +6 -6
  62. solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +6 -6
  63. solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +4 -4
  64. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +8 -8
  65. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +14 -14
  66. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +8 -8
  67. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +4 -4
  68. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +6 -6
  69. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +35 -23
  70. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +4 -4
  71. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +6 -6
  72. solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +4 -4
  73. solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +4 -4
  74. solace_agent_mesh/assets/docs/lunr-index-1756153049706.json +1 -0
  75. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  76. solace_agent_mesh/assets/docs/search-doc-1756153049706.json +1 -0
  77. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  78. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  79. solace_agent_mesh/cli/__init__.py +1 -1
  80. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +1 -1
  81. solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +67 -10
  82. solace_agent_mesh/cli/commands/add_cmd/gateway_cmd.py +2 -2
  83. solace_agent_mesh/cli/commands/eval_cmd.py +8 -2
  84. solace_agent_mesh/cli/commands/init_cmd/__init__.py +20 -2
  85. solace_agent_mesh/cli/commands/init_cmd/env_step.py +25 -1
  86. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +45 -1
  87. solace_agent_mesh/cli/utils.py +21 -12
  88. solace_agent_mesh/client/webui/frontend/static/assets/main-BucUdn9m.js +673 -0
  89. solace_agent_mesh/client/webui/frontend/static/index.html +1 -1
  90. solace_agent_mesh/common/a2a_protocol.py +1 -1
  91. solace_agent_mesh/common/utils/mime_helpers.py +60 -1
  92. solace_agent_mesh/config_portal/backend/server.py +1 -1
  93. solace_agent_mesh/config_portal/frontend/static/client/assets/{_index-xSu2leR8.js → _index-MqsrTd6g.js} +9 -9
  94. solace_agent_mesh/config_portal/frontend/static/client/assets/{manifest-950eb3be.js → manifest-28271392.js} +1 -1
  95. solace_agent_mesh/config_portal/frontend/static/client/index.html +1 -1
  96. solace_agent_mesh/core_a2a/core_a2a_llm.txt +1 -1
  97. solace_agent_mesh/core_a2a/service.py +1 -1
  98. solace_agent_mesh/evaluation/run.py +149 -15
  99. solace_agent_mesh/evaluation/summary_builder.py +5 -3
  100. solace_agent_mesh/gateway/http_sse/dependencies.py +1 -1
  101. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +1 -1
  102. solace_agent_mesh/gateway/http_sse/services/task_service.py +1 -1
  103. solace_agent_mesh/llm_detail.txt +2 -2
  104. solace_agent_mesh/templates/agent_template.yaml +1 -1
  105. solace_agent_mesh/templates/plugin_agent_config_template.yaml +3 -3
  106. solace_agent_mesh/templates/plugin_readme_template.md +1 -1
  107. solace_agent_mesh/templates/shared_config.yaml +8 -1
  108. {solace_agent_mesh-1.0.6.dist-info → solace_agent_mesh-1.0.8.dist-info}/METADATA +4 -1
  109. {solace_agent_mesh-1.0.6.dist-info → solace_agent_mesh-1.0.8.dist-info}/RECORD +113 -108
  110. solace_agent_mesh/assets/docs/assets/js/04989206.da8246cd.js +0 -1
  111. solace_agent_mesh/assets/docs/assets/js/0e682baa.79f0ab22.js +0 -1
  112. solace_agent_mesh/assets/docs/assets/js/1023fc19.8e6d174c.js +0 -1
  113. solace_agent_mesh/assets/docs/assets/js/1523c6b4.91c7bc01.js +0 -1
  114. solace_agent_mesh/assets/docs/assets/js/166ab619.7d97ccaf.js +0 -1
  115. solace_agent_mesh/assets/docs/assets/js/21ceee5f.614fa8dd.js +0 -1
  116. solace_agent_mesh/assets/docs/assets/js/3d406171.9b081d5f.js +0 -1
  117. solace_agent_mesh/assets/docs/assets/js/42b3f8d8.36090198.js +0 -1
  118. solace_agent_mesh/assets/docs/assets/js/442a8107.5ba94b65.js +0 -1
  119. solace_agent_mesh/assets/docs/assets/js/4c2787c2.66ee00e9.js +0 -1
  120. solace_agent_mesh/assets/docs/assets/js/5b4258a4.bda20761.js +0 -1
  121. solace_agent_mesh/assets/docs/assets/js/75384d09.c3991823.js +0 -1
  122. solace_agent_mesh/assets/docs/assets/js/768e31b0.a12673db.js +0 -1
  123. solace_agent_mesh/assets/docs/assets/js/945fb41e.74d728aa.js +0 -1
  124. solace_agent_mesh/assets/docs/assets/js/a3a92b25.26ca071f.js +0 -1
  125. solace_agent_mesh/assets/docs/assets/js/aba87c2f.a6b84da6.js +0 -1
  126. solace_agent_mesh/assets/docs/assets/js/ae4415af.96189a93.js +0 -1
  127. solace_agent_mesh/assets/docs/assets/js/b7006a3a.38c0cf3d.js +0 -1
  128. solace_agent_mesh/assets/docs/assets/js/bb2ef573.56931473.js +0 -1
  129. solace_agent_mesh/assets/docs/assets/js/c2c06897.63b76e9e.js +0 -1
  130. solace_agent_mesh/assets/docs/assets/js/f284c35a.5aff74ab.js +0 -1
  131. solace_agent_mesh/assets/docs/assets/js/f897a61a.862b0514.js +0 -1
  132. solace_agent_mesh/assets/docs/assets/js/main.ea9672b6.js +0 -2
  133. solace_agent_mesh/assets/docs/assets/js/runtime~main.aa687c82.js +0 -1
  134. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +0 -17
  135. solace_agent_mesh/assets/docs/lunr-index-1755285974624.json +0 -1
  136. solace_agent_mesh/assets/docs/search-doc-1755285974624.json +0 -1
  137. solace_agent_mesh/client/webui/frontend/static/assets/main-DzKPMTRs.js +0 -673
  138. /solace_agent_mesh/assets/docs/assets/js/{main.ea9672b6.js.LICENSE.txt → main.6dba4a66.js.LICENSE.txt} +0 -0
  139. {solace_agent_mesh-1.0.6.dist-info → solace_agent_mesh-1.0.8.dist-info}/WHEEL +0 -0
  140. {solace_agent_mesh-1.0.6.dist-info → solace_agent_mesh-1.0.8.dist-info}/entry_points.txt +0 -0
  141. {solace_agent_mesh-1.0.6.dist-info → solace_agent_mesh-1.0.8.dist-info}/licenses/LICENSE +0 -0
@@ -1 +1 @@
1
- <?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/architecture</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/cli</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/gateways</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/orchestrator</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/plugins</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/debugging</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/deploy</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/observability</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/enterprise</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/component-overview</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/installation</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/introduction</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/quick-start</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/bedrock-agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/custom-agent</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/event-mesh-gateway</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/mcp-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/mongodb-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/rag-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/rest-gateway</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/slack-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/sql-database</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/artifact-management</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/audio-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/data-analysis-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/embeds</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/create-agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/create-gateways</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/creating-service-providers</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/solace-ai-connector</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/structure</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>
1
+ <?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/architecture</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/cli</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/gateways</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/orchestrator</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/plugins</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/debugging</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/deploy</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/observability</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/component-overview</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/configurations</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/installation</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/introduction</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/quick-start</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/bedrock-agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/custom-agent</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/event-mesh-gateway</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/mcp-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/mongodb-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/rag-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/rest-gateway</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/slack-integration</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/tutorials/sql-database</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/artifact-management</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/audio-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/data-analysis-tools</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/builtin-tools/embeds</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/create-agents</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/create-gateways</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/creating-service-providers</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/solace-ai-connector</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://solacelabs.github.io/solace-agent-mesh/docs/documentation/user-guide/structure</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>
@@ -1 +1 @@
1
- __version__ = "1.0.6"
1
+ __version__ = "1.0.8"
@@ -56,7 +56,7 @@ AGENT_DEFAULTS = {
56
56
  "inter_agent_communication_allow_list": list[str], # Allow list: ["*"]
57
57
  "inter_agent_communication_deny_list": list[str], # Deny list: []
58
58
  "inter_agent_communication_timeout": int, # Timeout in seconds
59
- "namespace": str, # A2A namespace
59
+ "namespace": str, # namespace
60
60
  }
61
61
  ```
62
62
 
@@ -1,19 +1,22 @@
1
- import click
1
+ import json
2
2
  from pathlib import Path
3
+
4
+ import click
3
5
  import yaml
4
- import json
6
+
5
7
  from config_portal.backend.common import (
6
8
  AGENT_DEFAULTS,
7
9
  USE_DEFAULT_SHARED_ARTIFACT,
8
10
  USE_DEFAULT_SHARED_SESSION,
9
11
  )
10
- from .web_add_agent_step import launch_add_agent_web_portal
12
+
11
13
  from ...utils import (
12
14
  ask_if_not_provided,
13
15
  get_formatted_names,
14
- load_template,
15
16
  indent_multiline_string,
17
+ load_template,
16
18
  )
19
+ from .web_add_agent_step import launch_add_agent_web_portal
17
20
 
18
21
 
19
22
  def _write_agent_yaml_from_data(
@@ -66,6 +69,26 @@ def _write_agent_yaml_from_data(
66
69
  AGENT_DEFAULTS["artifact_service_base_path"],
67
70
  )
68
71
  custom_artifact_lines.append(f'base_path: "{base_path_val}"')
72
+ elif type_val == "s3":
73
+ bucket_name_val = config_options.get(
74
+ "artifact_service_bucket_name",
75
+ AGENT_DEFAULTS.get("artifact_service_bucket_name", ""),
76
+ )
77
+ custom_artifact_lines.append(f'bucket_name: "{bucket_name_val}"')
78
+
79
+ endpoint_url_val = config_options.get(
80
+ "artifact_service_endpoint_url",
81
+ AGENT_DEFAULTS.get("artifact_service_endpoint_url", ""),
82
+ )
83
+ if endpoint_url_val:
84
+ custom_artifact_lines.append(f'endpoint_url: "{endpoint_url_val}"')
85
+
86
+ region_val = config_options.get(
87
+ "artifact_service_region",
88
+ AGENT_DEFAULTS.get("artifact_service_region", "us-east-1"),
89
+ )
90
+ if region_val:
91
+ custom_artifact_lines.append(f'region: "{region_val}"')
69
92
  custom_artifact_lines.append(f"artifact_scope: {scope_val}")
70
93
  artifact_service_block = "\n" + "\n".join(
71
94
  [f" {line}" for line in custom_artifact_lines]
@@ -81,7 +104,7 @@ def _write_agent_yaml_from_data(
81
104
  if not isinstance(actual_tools_list, list):
82
105
  click.echo(
83
106
  click.style(
84
- f"Warning: Tools data was a string but not a valid JSON list. Defaulting to empty tools list.",
107
+ "Warning: Tools data was a string but not a valid JSON list. Defaulting to empty tools list.",
85
108
  fg="yellow",
86
109
  ),
87
110
  err=True,
@@ -164,6 +187,7 @@ def _write_agent_yaml_from_data(
164
187
 
165
188
  replacements = {
166
189
  "__AGENT_NAME__": agent_name_camel,
190
+ "__AGENT_SPACED_NAME__": get_formatted_names(agent_name_camel).get("SPACED_CAPITALIZED_NAME"),
167
191
  "__NAMESPACE__": config_options.get(
168
192
  "namespace", AGENT_DEFAULTS["namespace"]
169
193
  ),
@@ -172,7 +196,7 @@ def _write_agent_yaml_from_data(
172
196
  "supports_streaming", AGENT_DEFAULTS["supports_streaming"]
173
197
  )
174
198
  ).lower(),
175
- "__MODEL_ALIAS__": f'*{config_options.get("model_type", AGENT_DEFAULTS["model_type"])}_model',
199
+ "__MODEL_ALIAS__": f"*{config_options.get('model_type', AGENT_DEFAULTS['model_type'])}_model",
176
200
  "__INSTRUCTION__": instructions,
177
201
  "__TOOLS_CONFIG__": tools_replacement_value,
178
202
  "__SESSION_SERVICE__": session_service_block,
@@ -302,7 +326,7 @@ def create_agent_config(
302
326
  collected_options["namespace"] = ask_if_not_provided(
303
327
  collected_options,
304
328
  "namespace",
305
- "Enter A2A namespace (e.g., myorg/dev, or leave for ${NAMESPACE})",
329
+ "Enter namespace (e.g., myorg/dev, or leave for ${NAMESPACE})",
306
330
  AGENT_DEFAULTS["namespace"],
307
331
  skip_interactive,
308
332
  )
@@ -364,7 +388,7 @@ def create_agent_config(
364
388
  "Artifact service type",
365
389
  AGENT_DEFAULTS["artifact_service_type"],
366
390
  skip_interactive,
367
- choices=[USE_DEFAULT_SHARED_ARTIFACT, "memory", "filesystem", "gcs"],
391
+ choices=[USE_DEFAULT_SHARED_ARTIFACT, "memory", "filesystem", "gcs", "s3"],
368
392
  )
369
393
  if collected_options["artifact_service_type"] != USE_DEFAULT_SHARED_ARTIFACT:
370
394
  if collected_options.get("artifact_service_type") == "filesystem":
@@ -375,6 +399,28 @@ def create_agent_config(
375
399
  AGENT_DEFAULTS["artifact_service_base_path"],
376
400
  skip_interactive,
377
401
  )
402
+ elif collected_options.get("artifact_service_type") == "s3":
403
+ collected_options["artifact_service_bucket_name"] = ask_if_not_provided(
404
+ collected_options,
405
+ "artifact_service_bucket_name",
406
+ "S3 bucket name",
407
+ AGENT_DEFAULTS.get("artifact_service_bucket_name", ""),
408
+ skip_interactive,
409
+ )
410
+ collected_options["artifact_service_endpoint_url"] = ask_if_not_provided(
411
+ collected_options,
412
+ "artifact_service_endpoint_url",
413
+ "S3 endpoint URL (leave empty for AWS S3)",
414
+ AGENT_DEFAULTS.get("artifact_service_endpoint_url", ""),
415
+ skip_interactive,
416
+ )
417
+ collected_options["artifact_service_region"] = ask_if_not_provided(
418
+ collected_options,
419
+ "artifact_service_region",
420
+ "S3 region",
421
+ AGENT_DEFAULTS.get("artifact_service_region", "us-east-1"),
422
+ skip_interactive,
423
+ )
378
424
  collected_options["artifact_service_scope"] = ask_if_not_provided(
379
425
  collected_options,
380
426
  "artifact_service_scope",
@@ -537,7 +583,7 @@ def create_agent_config(
537
583
  is_flag=True,
538
584
  help="Skip interactive prompts and use defaults (CLI mode only).",
539
585
  )
540
- @click.option("--namespace", help="A2A namespace (e.g., myorg/dev).")
586
+ @click.option("--namespace", help="namespace (e.g., myorg/dev).")
541
587
  @click.option("--supports-streaming", type=bool, help="Enable streaming support.")
542
588
  @click.option(
543
589
  "--model-type",
@@ -559,12 +605,23 @@ def create_agent_config(
559
605
  )
560
606
  @click.option(
561
607
  "--artifact-service-type",
562
- type=click.Choice(["memory", "filesystem", "gcs"]),
608
+ type=click.Choice(["memory", "filesystem", "gcs", "s3"]),
563
609
  help="Artifact service type.",
564
610
  )
565
611
  @click.option(
566
612
  "--artifact-service-base-path", help="Base path for filesystem artifact service."
567
613
  )
614
+ @click.option(
615
+ "--artifact-service-bucket-name",
616
+ help="S3 bucket name (for s3 artifact service type).",
617
+ )
618
+ @click.option(
619
+ "--artifact-service-endpoint-url",
620
+ help="S3 endpoint URL (for s3 artifact service type, optional for AWS S3).",
621
+ )
622
+ @click.option(
623
+ "--artifact-service-region", help="S3 region (for s3 artifact service type)."
624
+ )
568
625
  @click.option(
569
626
  "--artifact-service-scope",
570
627
  type=click.Choice(["namespace", "app", "custom"]),
@@ -31,7 +31,7 @@ def create_gateway_files(
31
31
  collected_options["namespace"] = ask_if_not_provided(
32
32
  collected_options,
33
33
  "namespace",
34
- "Enter A2A namespace for the gateway (e.g., myorg/dev, or leave for ${NAMESPACE})",
34
+ "Enter namespace for the gateway (e.g., myorg/dev, or leave for ${NAMESPACE})",
35
35
  GATEWAY_DEFAULTS["namespace"],
36
36
  skip_interactive,
37
37
  )
@@ -236,7 +236,7 @@ def create_gateway_files(
236
236
 
237
237
  @click.command(name="gateway")
238
238
  @click.argument("name", required=False)
239
- @click.option("--namespace", help="A2A namespace for the gateway (e.g., myorg/dev).")
239
+ @click.option("--namespace", help="namespace for the gateway (e.g., myorg/dev).")
240
240
  @click.option("--gateway-id", help="Custom Gateway ID for the gateway.")
241
241
  @click.option(
242
242
  "--artifact-service-type",
@@ -44,7 +44,13 @@ def _ensure_eval_backend_config_exists():
44
44
  required=True,
45
45
  metavar="<PATH>",
46
46
  )
47
- def eval_cmd(test_suite_config_path):
47
+ @click.option(
48
+ "-v",
49
+ "--verbose",
50
+ is_flag=True,
51
+ help="Enable verbose output.",
52
+ )
53
+ def eval_cmd(test_suite_config_path, verbose):
48
54
  """
49
55
  Run an evaluation suite using a specified configuration file. Such as path/to/file.yaml.
50
56
 
@@ -58,7 +64,7 @@ def eval_cmd(test_suite_config_path):
58
64
  )
59
65
  _ensure_eval_backend_config_exists()
60
66
  try:
61
- run_evaluation_main(test_suite_config_path)
67
+ run_evaluation_main(test_suite_config_path, verbose=verbose)
62
68
  click.echo(click.style("Evaluation completed successfully.", fg="green"))
63
69
  except Exception as e:
64
70
  error_exit(f"An error occurred during evaluation: {e}")
@@ -30,6 +30,9 @@ def _get_flat_orchestrator_defaults():
30
30
  flat_defaults["artifact_service_scope"] = O_DEFAULTS["artifact_service"][
31
31
  "artifact_scope"
32
32
  ]
33
+ flat_defaults["artifact_service_bucket_name"] = O_DEFAULTS["artifact_service"].get("bucket_name", "")
34
+ flat_defaults["artifact_service_endpoint_url"] = O_DEFAULTS["artifact_service"].get("endpoint_url", "")
35
+ flat_defaults["artifact_service_region"] = O_DEFAULTS["artifact_service"].get("region", "us-east-1")
33
36
  flat_defaults["artifact_handling_mode"] = O_DEFAULTS["artifact_handling_mode"]
34
37
  flat_defaults["enable_embed_resolution"] = O_DEFAULTS["enable_embed_resolution"]
35
38
  flat_defaults["enable_artifact_content_instruction"] = O_DEFAULTS[
@@ -263,7 +266,7 @@ def run_init_flow(skip_interactive: bool, use_web_based_init_flag: bool, **cli_o
263
266
  )
264
267
  @click.option(
265
268
  "--artifact-service-type",
266
- type=click.Choice(["memory", "filesystem", "gcs"]),
269
+ type=click.Choice(["memory", "filesystem", "gcs", "s3"]),
267
270
  help="Artifact service type.",
268
271
  )
269
272
  @click.option(
@@ -271,6 +274,21 @@ def run_init_flow(skip_interactive: bool, use_web_based_init_flag: bool, **cli_o
271
274
  type=str,
272
275
  help="Artifact service base path (for filesystem type).",
273
276
  )
277
+ @click.option(
278
+ "--artifact-service-bucket-name",
279
+ type=str,
280
+ help="S3 bucket name (for s3 artifact service type).",
281
+ )
282
+ @click.option(
283
+ "--artifact-service-endpoint-url",
284
+ type=str,
285
+ help="S3 endpoint URL (for s3 artifact service type, optional for AWS S3).",
286
+ )
287
+ @click.option(
288
+ "--artifact-service-region",
289
+ type=str,
290
+ help="S3 region (for s3 artifact service type).",
291
+ )
274
292
  @click.option(
275
293
  "--artifact-service-scope",
276
294
  type=click.Choice(["namespace", "app", "custom"]),
@@ -401,4 +419,4 @@ def init(**kwargs):
401
419
  skip_interactive=skip_interactive_val,
402
420
  use_web_based_init_flag=use_web_based_init_val,
403
421
  **kwargs,
404
- )
422
+ )
@@ -21,7 +21,10 @@ ENV_DEFAULTS = {
21
21
  "SSL_KEYFILE": "",
22
22
  "SSL_CERTFILE": "",
23
23
  "SSL_KEYFILE_PASSWORD": "",
24
- "LOGGING_CONFIG_PATH": "configs/logging_config.ini"
24
+ "LOGGING_CONFIG_PATH": "configs/logging_config.ini",
25
+ "S3_BUCKET_NAME": "",
26
+ "S3_ENDPOINT_URL": "",
27
+ "S3_REGION": "us-east-1"
25
28
  }
26
29
 
27
30
 
@@ -168,6 +171,27 @@ def create_env_file(project_root: Path, options: dict, skip_interactive: bool) -
168
171
  False,
169
172
  "LOGGING_CONFIG_PATH",
170
173
  ),
174
+ (
175
+ "s3_bucket_name",
176
+ "S3_BUCKET_NAME",
177
+ "Enter S3 Bucket Name (for S3 artifact service)",
178
+ False,
179
+ "S3_BUCKET_NAME",
180
+ ),
181
+ (
182
+ "s3_endpoint_url",
183
+ "S3_ENDPOINT_URL",
184
+ "Enter S3 Endpoint URL (for S3-compatible services, leave empty for AWS S3)",
185
+ False,
186
+ "S3_ENDPOINT_URL",
187
+ ),
188
+ (
189
+ "s3_region",
190
+ "S3_REGION",
191
+ "Enter S3 Region (for S3 artifact service)",
192
+ False,
193
+ "S3_REGION",
194
+ ),
171
195
  ]
172
196
 
173
197
  env_vars_to_write = {}
@@ -16,6 +16,9 @@ ORCHESTRATOR_DEFAULTS = {
16
16
  "type": "filesystem",
17
17
  "base_path": "/tmp/samv2",
18
18
  "artifact_scope": "namespace",
19
+ "bucket_name": "",
20
+ "endpoint_url": "",
21
+ "region": "us-east-1",
19
22
  },
20
23
  "agent_card": {
21
24
  "description": "The Orchestrator component. It manages tasks and coordinates multi-agent workflows.",
@@ -100,10 +103,14 @@ def create_orchestrator_config(
100
103
  "Enter artifact service type",
101
104
  ORCHESTRATOR_DEFAULTS["artifact_service"]["type"],
102
105
  skip_interactive,
103
- choices=["memory", "filesystem", "gcs"],
106
+ choices=["memory", "filesystem", "gcs", "s3"],
104
107
  )
105
108
 
106
109
  artifact_base_path = None
110
+ s3_bucket_name = None
111
+ s3_endpoint_url = None
112
+ s3_region = None
113
+
107
114
  if artifact_type == "filesystem":
108
115
  artifact_base_path = ask_if_not_provided(
109
116
  options,
@@ -112,6 +119,36 @@ def create_orchestrator_config(
112
119
  ORCHESTRATOR_DEFAULTS["artifact_service"]["base_path"],
113
120
  skip_interactive,
114
121
  )
122
+ elif artifact_type == "s3":
123
+ # Map CLI artifact-service-* parameters to s3_* keys
124
+ if options.get("artifact_service_bucket_name"):
125
+ options["s3_bucket_name"] = options["artifact_service_bucket_name"]
126
+ if options.get("artifact_service_endpoint_url"):
127
+ options["s3_endpoint_url"] = options["artifact_service_endpoint_url"]
128
+ if options.get("artifact_service_region"):
129
+ options["s3_region"] = options["artifact_service_region"]
130
+
131
+ s3_bucket_name = ask_if_not_provided(
132
+ options,
133
+ "s3_bucket_name",
134
+ "Enter S3 bucket name",
135
+ ORCHESTRATOR_DEFAULTS["artifact_service"]["bucket_name"],
136
+ skip_interactive,
137
+ )
138
+ s3_endpoint_url = ask_if_not_provided(
139
+ options,
140
+ "s3_endpoint_url",
141
+ "Enter S3 endpoint URL (leave empty for AWS S3)",
142
+ ORCHESTRATOR_DEFAULTS["artifact_service"]["endpoint_url"],
143
+ skip_interactive,
144
+ )
145
+ s3_region = ask_if_not_provided(
146
+ options,
147
+ "s3_region",
148
+ "Enter S3 region",
149
+ ORCHESTRATOR_DEFAULTS["artifact_service"]["region"],
150
+ skip_interactive,
151
+ )
115
152
 
116
153
  artifact_scope = ask_if_not_provided(
117
154
  options,
@@ -266,6 +303,13 @@ def create_orchestrator_config(
266
303
  artifact_base_path_line = ""
267
304
  if artifact_type == "filesystem":
268
305
  artifact_base_path_line = f'base_path: "{artifact_base_path}"'
306
+ elif artifact_type == "s3":
307
+ s3_config_lines = [f'bucket_name: "{s3_bucket_name}"']
308
+ if s3_endpoint_url:
309
+ s3_config_lines.append(f'endpoint_url: "{s3_endpoint_url}"')
310
+ if s3_region:
311
+ s3_config_lines.append(f'region: "{s3_region}"')
312
+ artifact_base_path_line = "\n ".join(s3_config_lines)
269
313
 
270
314
  shared_replacements = {
271
315
  "__DEFAULT_SESSION_SERVICE_TYPE__": session_type,
@@ -91,21 +91,30 @@ def load_template(name, parser=None, *args):
91
91
 
92
92
 
93
93
  def get_formatted_names(name: str):
94
- # Normalize the name
95
- parts = [
96
- segment
97
- for segment in re.split(
98
- r"[\s_-]", re.sub(r"(?<!^)(?=[A-Z])", "_", name.strip()).lower()
99
- )
100
- if segment
94
+ # Normalize separators
95
+ normalized = re.sub(r'[\s\-_]+', '_', name.strip())
96
+
97
+ camel_case_split = re.sub(r'([a-z0-9])([A-Z])', r'\1_\2', normalized) # fooBar -> foo_Bar
98
+ acronym_split = re.sub(r'([A-Z]+)([A-Z][a-z])', r'\1_\2', camel_case_split) # APIKey -> API_Key
99
+
100
+ raw_parts = [p for p in acronym_split.split('_') if p]
101
+
102
+ parts = [p.lower() for p in raw_parts]
103
+
104
+ # Spaced capitalized name:
105
+ # - If original was all caps, keep it all caps (API -> API)
106
+ # - Else capitalize normally
107
+ spaced_capitalized_parts = [
108
+ p if p.isupper() else p.capitalize() for p in raw_parts
101
109
  ]
110
+
102
111
  return {
103
- "KEBAB_CASE_NAME": "-".join([word.lower() for word in parts]),
104
- "PASCAL_CASE_NAME": "".join([word.capitalize() for word in parts]),
105
- "SNAKE_CASE_NAME": "_".join([word.lower() for word in parts]),
106
- "SNAKE_UPPER_CASE_NAME": "_".join([word.upper() for word in parts]),
112
+ "KEBAB_CASE_NAME": "-".join(parts),
113
+ "PASCAL_CASE_NAME": "".join(word.capitalize() for word in parts),
114
+ "SNAKE_CASE_NAME": "_".join(parts),
115
+ "SNAKE_UPPER_CASE_NAME": "_".join(word.upper() for word in parts),
107
116
  "SPACED_NAME": " ".join(parts),
108
- "SPACED_CAPITALIZED_NAME": " ".join([word.capitalize() for word in parts]),
117
+ "SPACED_CAPITALIZED_NAME": " ".join(spaced_capitalized_parts),
109
118
  }
110
119
 
111
120