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.
Files changed (624) hide show
  1. solace_agent_mesh/__init__.py +0 -0
  2. solace_agent_mesh/agent/__init__.py +0 -0
  3. solace_agent_mesh/agent/adk/__init__.py +0 -0
  4. solace_agent_mesh/agent/adk/adk_llm.txt +226 -0
  5. solace_agent_mesh/agent/adk/adk_llm_detail.txt +566 -0
  6. solace_agent_mesh/agent/adk/alembic/README +74 -0
  7. solace_agent_mesh/agent/adk/alembic/env.py +77 -0
  8. solace_agent_mesh/agent/adk/alembic/script.py.mako +28 -0
  9. solace_agent_mesh/agent/adk/alembic/versions/e2902798564d_adk_session_db_upgrade.py +52 -0
  10. solace_agent_mesh/agent/adk/alembic.ini +112 -0
  11. solace_agent_mesh/agent/adk/app_llm_agent.py +52 -0
  12. solace_agent_mesh/agent/adk/artifacts/__init__.py +1 -0
  13. solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +171 -0
  14. solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py +545 -0
  15. solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py +609 -0
  16. solace_agent_mesh/agent/adk/callbacks.py +2318 -0
  17. solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +406 -0
  18. solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py +415 -0
  19. solace_agent_mesh/agent/adk/mcp_content_processor.py +666 -0
  20. solace_agent_mesh/agent/adk/models/lite_llm.py +1026 -0
  21. solace_agent_mesh/agent/adk/models/models_llm.txt +189 -0
  22. solace_agent_mesh/agent/adk/models/oauth2_token_manager.py +132 -0
  23. solace_agent_mesh/agent/adk/runner.py +390 -0
  24. solace_agent_mesh/agent/adk/schema_migration.py +88 -0
  25. solace_agent_mesh/agent/adk/services.py +468 -0
  26. solace_agent_mesh/agent/adk/setup.py +1325 -0
  27. solace_agent_mesh/agent/adk/stream_parser.py +415 -0
  28. solace_agent_mesh/agent/adk/tool_wrapper.py +165 -0
  29. solace_agent_mesh/agent/agent_llm.txt +369 -0
  30. solace_agent_mesh/agent/agent_llm_detail.txt +1702 -0
  31. solace_agent_mesh/agent/protocol/__init__.py +0 -0
  32. solace_agent_mesh/agent/protocol/event_handlers.py +2041 -0
  33. solace_agent_mesh/agent/protocol/protocol_llm.txt +81 -0
  34. solace_agent_mesh/agent/protocol/protocol_llm_detail.txt +92 -0
  35. solace_agent_mesh/agent/proxies/__init__.py +0 -0
  36. solace_agent_mesh/agent/proxies/a2a/__init__.py +3 -0
  37. solace_agent_mesh/agent/proxies/a2a/a2a_llm.txt +190 -0
  38. solace_agent_mesh/agent/proxies/a2a/app.py +56 -0
  39. solace_agent_mesh/agent/proxies/a2a/component.py +1585 -0
  40. solace_agent_mesh/agent/proxies/a2a/config.py +216 -0
  41. solace_agent_mesh/agent/proxies/a2a/oauth_token_cache.py +104 -0
  42. solace_agent_mesh/agent/proxies/base/__init__.py +3 -0
  43. solace_agent_mesh/agent/proxies/base/app.py +100 -0
  44. solace_agent_mesh/agent/proxies/base/base_llm.txt +148 -0
  45. solace_agent_mesh/agent/proxies/base/component.py +816 -0
  46. solace_agent_mesh/agent/proxies/base/config.py +85 -0
  47. solace_agent_mesh/agent/proxies/base/proxy_task_context.py +19 -0
  48. solace_agent_mesh/agent/proxies/proxies_llm.txt +283 -0
  49. solace_agent_mesh/agent/sac/__init__.py +0 -0
  50. solace_agent_mesh/agent/sac/app.py +595 -0
  51. solace_agent_mesh/agent/sac/component.py +3668 -0
  52. solace_agent_mesh/agent/sac/patch_adk.py +103 -0
  53. solace_agent_mesh/agent/sac/sac_llm.txt +189 -0
  54. solace_agent_mesh/agent/sac/sac_llm_detail.txt +200 -0
  55. solace_agent_mesh/agent/sac/task_execution_context.py +415 -0
  56. solace_agent_mesh/agent/testing/__init__.py +3 -0
  57. solace_agent_mesh/agent/testing/debug_utils.py +135 -0
  58. solace_agent_mesh/agent/testing/testing_llm.txt +58 -0
  59. solace_agent_mesh/agent/testing/testing_llm_detail.txt +68 -0
  60. solace_agent_mesh/agent/tools/__init__.py +16 -0
  61. solace_agent_mesh/agent/tools/audio_tools.py +1740 -0
  62. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +2500 -0
  63. solace_agent_mesh/agent/tools/builtin_data_analysis_tools.py +244 -0
  64. solace_agent_mesh/agent/tools/dynamic_tool.py +396 -0
  65. solace_agent_mesh/agent/tools/general_agent_tools.py +572 -0
  66. solace_agent_mesh/agent/tools/image_tools.py +1185 -0
  67. solace_agent_mesh/agent/tools/peer_agent_tool.py +363 -0
  68. solace_agent_mesh/agent/tools/registry.py +38 -0
  69. solace_agent_mesh/agent/tools/test_tools.py +136 -0
  70. solace_agent_mesh/agent/tools/time_tools.py +126 -0
  71. solace_agent_mesh/agent/tools/tool_config_types.py +93 -0
  72. solace_agent_mesh/agent/tools/tool_definition.py +53 -0
  73. solace_agent_mesh/agent/tools/tools_llm.txt +276 -0
  74. solace_agent_mesh/agent/tools/tools_llm_detail.txt +275 -0
  75. solace_agent_mesh/agent/tools/web_tools.py +392 -0
  76. solace_agent_mesh/agent/utils/__init__.py +0 -0
  77. solace_agent_mesh/agent/utils/artifact_helpers.py +1353 -0
  78. solace_agent_mesh/agent/utils/config_parser.py +49 -0
  79. solace_agent_mesh/agent/utils/context_helpers.py +77 -0
  80. solace_agent_mesh/agent/utils/utils_llm.txt +152 -0
  81. solace_agent_mesh/agent/utils/utils_llm_detail.txt +149 -0
  82. solace_agent_mesh/assets/docs/404.html +16 -0
  83. solace_agent_mesh/assets/docs/assets/css/styles.8162edfb.css +1 -0
  84. solace_agent_mesh/assets/docs/assets/images/Solace_AI_Framework_With_Broker-85f0a306a9bcdd20b390b7a949f6d862.png +0 -0
  85. solace_agent_mesh/assets/docs/assets/images/sam-enterprise-credentials-b269f095349473118b2b33bdfcc40122.png +0 -0
  86. solace_agent_mesh/assets/docs/assets/js/032c2d61.f3d37824.js +1 -0
  87. solace_agent_mesh/assets/docs/assets/js/05749d90.19ac4f35.js +1 -0
  88. solace_agent_mesh/assets/docs/assets/js/0bcf40b7.c019ad46.js +1 -0
  89. solace_agent_mesh/assets/docs/assets/js/1001.0182a8bd.js +1 -0
  90. solace_agent_mesh/assets/docs/assets/js/1039.0bd46aa1.js +1 -0
  91. solace_agent_mesh/assets/docs/assets/js/149.b797a808.js +1 -0
  92. solace_agent_mesh/assets/docs/assets/js/15ba94aa.92fea363.js +1 -0
  93. solace_agent_mesh/assets/docs/assets/js/15e40e79.434bb30f.js +1 -0
  94. solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js +2 -0
  95. solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js.LICENSE.txt +9 -0
  96. solace_agent_mesh/assets/docs/assets/js/17896441.e612dfb4.js +1 -0
  97. solace_agent_mesh/assets/docs/assets/js/2130.ab9fd314.js +1 -0
  98. solace_agent_mesh/assets/docs/assets/js/2131ec11.5c7a1f6e.js +1 -0
  99. solace_agent_mesh/assets/docs/assets/js/2237.5e477fc6.js +1 -0
  100. solace_agent_mesh/assets/docs/assets/js/2279.550aa580.js +2 -0
  101. solace_agent_mesh/assets/docs/assets/js/2279.550aa580.js.LICENSE.txt +13 -0
  102. solace_agent_mesh/assets/docs/assets/js/2334.1cf50a20.js +1 -0
  103. solace_agent_mesh/assets/docs/assets/js/240a0364.9ad94d1b.js +1 -0
  104. solace_agent_mesh/assets/docs/assets/js/2987107d.a80604f9.js +1 -0
  105. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.33f5d75b.js +1 -0
  106. solace_agent_mesh/assets/docs/assets/js/3219.adc1d663.js +1 -0
  107. solace_agent_mesh/assets/docs/assets/js/341393d4.0fac2613.js +1 -0
  108. solace_agent_mesh/assets/docs/assets/js/3624.0eaa1fd0.js +1 -0
  109. solace_agent_mesh/assets/docs/assets/js/375.708d48db.js +1 -0
  110. solace_agent_mesh/assets/docs/assets/js/3834.b6cd790e.js +1 -0
  111. solace_agent_mesh/assets/docs/assets/js/3a6c6137.f5940cfa.js +1 -0
  112. solace_agent_mesh/assets/docs/assets/js/3ac1795d.28b7c67b.js +1 -0
  113. solace_agent_mesh/assets/docs/assets/js/3ff0015d.2ddc75c0.js +1 -0
  114. solace_agent_mesh/assets/docs/assets/js/41adc471.48b12a4e.js +1 -0
  115. solace_agent_mesh/assets/docs/assets/js/4250.95455b28.js +1 -0
  116. solace_agent_mesh/assets/docs/assets/js/4356.d169ab5b.js +1 -0
  117. solace_agent_mesh/assets/docs/assets/js/4458.518e66fa.js +1 -0
  118. solace_agent_mesh/assets/docs/assets/js/4488.c7cc3442.js +1 -0
  119. solace_agent_mesh/assets/docs/assets/js/4494.6ee23046.js +1 -0
  120. solace_agent_mesh/assets/docs/assets/js/4855.fc4444b6.js +1 -0
  121. solace_agent_mesh/assets/docs/assets/js/4866.22daefc0.js +1 -0
  122. solace_agent_mesh/assets/docs/assets/js/4950.ca4caeda.js +1 -0
  123. solace_agent_mesh/assets/docs/assets/js/509e993c.a1fbf45a.js +1 -0
  124. solace_agent_mesh/assets/docs/assets/js/5388.7a136447.js +1 -0
  125. solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +1 -0
  126. solace_agent_mesh/assets/docs/assets/js/55b7b518.29d6e75d.js +1 -0
  127. solace_agent_mesh/assets/docs/assets/js/5607.081356f8.js +1 -0
  128. solace_agent_mesh/assets/docs/assets/js/5864.b0d0e9de.js +1 -0
  129. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.90a87880.js +1 -0
  130. solace_agent_mesh/assets/docs/assets/js/5e95c892.558d5167.js +1 -0
  131. solace_agent_mesh/assets/docs/assets/js/6063ff4c.ef84f702.js +1 -0
  132. solace_agent_mesh/assets/docs/assets/js/60702c0e.a8bdd79b.js +1 -0
  133. solace_agent_mesh/assets/docs/assets/js/6143.0a1464c9.js +1 -0
  134. solace_agent_mesh/assets/docs/assets/js/631738c7.fa471607.js +1 -0
  135. solace_agent_mesh/assets/docs/assets/js/6395.e9c73649.js +1 -0
  136. solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +1 -0
  137. solace_agent_mesh/assets/docs/assets/js/66d4869e.b77431fc.js +1 -0
  138. solace_agent_mesh/assets/docs/assets/js/6796.51d2c9b7.js +1 -0
  139. solace_agent_mesh/assets/docs/assets/js/6976.379be23b.js +1 -0
  140. solace_agent_mesh/assets/docs/assets/js/6978.ee0b945c.js +1 -0
  141. solace_agent_mesh/assets/docs/assets/js/6a520c9d.b6e3f2ce.js +1 -0
  142. solace_agent_mesh/assets/docs/assets/js/6aaedf65.7253541d.js +1 -0
  143. solace_agent_mesh/assets/docs/assets/js/6ad8f0bd.a5b36a60.js +1 -0
  144. solace_agent_mesh/assets/docs/assets/js/6d84eae0.fd23ba4a.js +1 -0
  145. solace_agent_mesh/assets/docs/assets/js/6fdfefc7.99de744e.js +1 -0
  146. solace_agent_mesh/assets/docs/assets/js/7040.cb436723.js +1 -0
  147. solace_agent_mesh/assets/docs/assets/js/7195.412f418a.js +1 -0
  148. solace_agent_mesh/assets/docs/assets/js/71da7b71.374b9d54.js +1 -0
  149. solace_agent_mesh/assets/docs/assets/js/722f809d.965da774.js +1 -0
  150. solace_agent_mesh/assets/docs/assets/js/7280.3fb73bdb.js +1 -0
  151. solace_agent_mesh/assets/docs/assets/js/742f027b.46c07808.js +1 -0
  152. solace_agent_mesh/assets/docs/assets/js/77cf947d.48cb18a2.js +1 -0
  153. solace_agent_mesh/assets/docs/assets/js/7845.e33e7c4c.js +1 -0
  154. solace_agent_mesh/assets/docs/assets/js/7900.69516146.js +1 -0
  155. solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +1 -0
  156. solace_agent_mesh/assets/docs/assets/js/81a99df0.2484b8d9.js +1 -0
  157. solace_agent_mesh/assets/docs/assets/js/82fbfb93.161823a5.js +1 -0
  158. solace_agent_mesh/assets/docs/assets/js/8356.8a379c04.js +1 -0
  159. solace_agent_mesh/assets/docs/assets/js/8567.4732c6b7.js +1 -0
  160. solace_agent_mesh/assets/docs/assets/js/8573.cb04eda5.js +1 -0
  161. solace_agent_mesh/assets/docs/assets/js/8577.1d54e766.js +1 -0
  162. solace_agent_mesh/assets/docs/assets/js/8591.5d015485.js +2 -0
  163. solace_agent_mesh/assets/docs/assets/js/8591.5d015485.js.LICENSE.txt +61 -0
  164. solace_agent_mesh/assets/docs/assets/js/8709.7ecd4047.js +1 -0
  165. solace_agent_mesh/assets/docs/assets/js/8731.6c1dbf0c.js +1 -0
  166. solace_agent_mesh/assets/docs/assets/js/8908.f9d1b506.js +1 -0
  167. solace_agent_mesh/assets/docs/assets/js/8b032486.91a91afc.js +1 -0
  168. solace_agent_mesh/assets/docs/assets/js/9157.b4093d07.js +1 -0
  169. solace_agent_mesh/assets/docs/assets/js/924ffdeb.975e428a.js +1 -0
  170. solace_agent_mesh/assets/docs/assets/js/9278.a4fd875d.js +1 -0
  171. solace_agent_mesh/assets/docs/assets/js/945fb41e.6f4cdffd.js +1 -0
  172. solace_agent_mesh/assets/docs/assets/js/94e8668d.16083b3f.js +1 -0
  173. solace_agent_mesh/assets/docs/assets/js/9616.b75c2f6d.js +1 -0
  174. solace_agent_mesh/assets/docs/assets/js/9793.c6d16376.js +1 -0
  175. solace_agent_mesh/assets/docs/assets/js/9bb13469.b2333011.js +1 -0
  176. solace_agent_mesh/assets/docs/assets/js/9e9d0a82.570c057b.js +1 -0
  177. solace_agent_mesh/assets/docs/assets/js/a7bd4aaa.2204d2f7.js +1 -0
  178. solace_agent_mesh/assets/docs/assets/js/a94703ab.3e5fbcb3.js +1 -0
  179. solace_agent_mesh/assets/docs/assets/js/ab9708a8.245ae0ef.js +1 -0
  180. solace_agent_mesh/assets/docs/assets/js/aba21aa0.c42a534c.js +1 -0
  181. solace_agent_mesh/assets/docs/assets/js/ad71b5ed.af3ecfd1.js +1 -0
  182. solace_agent_mesh/assets/docs/assets/js/ad87452a.9d73dad6.js +1 -0
  183. solace_agent_mesh/assets/docs/assets/js/c198a0dc.8f31f867.js +1 -0
  184. solace_agent_mesh/assets/docs/assets/js/c93cbaa0.0e0d8baf.js +1 -0
  185. solace_agent_mesh/assets/docs/assets/js/cab03b5b.6a073091.js +1 -0
  186. solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.07e170dd.js +1 -0
  187. solace_agent_mesh/assets/docs/assets/js/ceb2a7a6.5d92d7d0.js +1 -0
  188. solace_agent_mesh/assets/docs/assets/js/da0b5bad.b62f7b08.js +1 -0
  189. solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +1 -0
  190. solace_agent_mesh/assets/docs/assets/js/db924877.e98d12a1.js +1 -0
  191. solace_agent_mesh/assets/docs/assets/js/dd817ffc.c37a755e.js +1 -0
  192. solace_agent_mesh/assets/docs/assets/js/dd81e2b8.b682e9c2.js +1 -0
  193. solace_agent_mesh/assets/docs/assets/js/de5f4c65.e8241890.js +1 -0
  194. solace_agent_mesh/assets/docs/assets/js/de915948.44a432bc.js +1 -0
  195. solace_agent_mesh/assets/docs/assets/js/e04b235d.52cb25ed.js +1 -0
  196. solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.b1068f9b.js +1 -0
  197. solace_agent_mesh/assets/docs/assets/js/e3d9abda.1476f570.js +1 -0
  198. solace_agent_mesh/assets/docs/assets/js/e6f9706b.4488e34c.js +1 -0
  199. solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +1 -0
  200. solace_agent_mesh/assets/docs/assets/js/f284c35a.250993bf.js +1 -0
  201. solace_agent_mesh/assets/docs/assets/js/ff4d71f2.74710fc1.js +1 -0
  202. solace_agent_mesh/assets/docs/assets/js/main.7acf7ace.js +2 -0
  203. solace_agent_mesh/assets/docs/assets/js/main.7acf7ace.js.LICENSE.txt +81 -0
  204. solace_agent_mesh/assets/docs/assets/js/runtime~main.9e0813a2.js +1 -0
  205. solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +154 -0
  206. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +99 -0
  207. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +90 -0
  208. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +107 -0
  209. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +166 -0
  210. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +101 -0
  211. solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +219 -0
  212. solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +92 -0
  213. solace_agent_mesh/assets/docs/docs/documentation/components/index.html +29 -0
  214. solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +55 -0
  215. solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +110 -0
  216. solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +182 -0
  217. solace_agent_mesh/assets/docs/docs/documentation/components/prompts/index.html +147 -0
  218. solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +345 -0
  219. solace_agent_mesh/assets/docs/docs/documentation/components/speech/index.html +52 -0
  220. solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +83 -0
  221. solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +84 -0
  222. solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +25 -0
  223. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes-deployment/index.html +47 -0
  224. solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +85 -0
  225. solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +60 -0
  226. solace_agent_mesh/assets/docs/docs/documentation/deploying/proxy_configuration/index.html +49 -0
  227. solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +144 -0
  228. solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +191 -0
  229. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +128 -0
  230. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +54 -0
  231. solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +135 -0
  232. solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +34 -0
  233. solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +55 -0
  234. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +267 -0
  235. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +142 -0
  236. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +116 -0
  237. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +86 -0
  238. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +164 -0
  239. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +140 -0
  240. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +57 -0
  241. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +72 -0
  242. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +102 -0
  243. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/teams-integration/index.html +115 -0
  244. solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +86 -0
  245. solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +67 -0
  246. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +37 -0
  247. solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +86 -0
  248. solace_agent_mesh/assets/docs/docs/documentation/enterprise/openapi-tools/index.html +324 -0
  249. solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +247 -0
  250. solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +440 -0
  251. solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +184 -0
  252. solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +62 -0
  253. solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +75 -0
  254. solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +54 -0
  255. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +85 -0
  256. solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +41 -0
  257. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +290 -0
  258. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +78 -0
  259. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +25 -0
  260. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +78 -0
  261. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +160 -0
  262. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +142 -0
  263. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +251 -0
  264. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +88 -0
  265. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +100 -0
  266. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +52 -0
  267. solace_agent_mesh/assets/docs/img/Solace_AI_Framework_With_Broker.png +0 -0
  268. solace_agent_mesh/assets/docs/img/logo.png +0 -0
  269. solace_agent_mesh/assets/docs/img/sac-flows.png +0 -0
  270. solace_agent_mesh/assets/docs/img/sac_parts_of_a_component.png +0 -0
  271. solace_agent_mesh/assets/docs/img/sam-enterprise-credentials.png +0 -0
  272. solace_agent_mesh/assets/docs/img/solace-logo-text.svg +18 -0
  273. solace_agent_mesh/assets/docs/img/solace-logo.png +0 -0
  274. solace_agent_mesh/assets/docs/lunr-index-1765810064709.json +1 -0
  275. solace_agent_mesh/assets/docs/lunr-index.json +1 -0
  276. solace_agent_mesh/assets/docs/search-doc-1765810064709.json +1 -0
  277. solace_agent_mesh/assets/docs/search-doc.json +1 -0
  278. solace_agent_mesh/assets/docs/sitemap.xml +1 -0
  279. solace_agent_mesh/cli/__init__.py +1 -0
  280. solace_agent_mesh/cli/commands/__init__.py +0 -0
  281. solace_agent_mesh/cli/commands/add_cmd/__init__.py +15 -0
  282. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +250 -0
  283. solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +729 -0
  284. solace_agent_mesh/cli/commands/add_cmd/gateway_cmd.py +322 -0
  285. solace_agent_mesh/cli/commands/add_cmd/web_add_agent_step.py +102 -0
  286. solace_agent_mesh/cli/commands/add_cmd/web_add_gateway_step.py +114 -0
  287. solace_agent_mesh/cli/commands/docs_cmd.py +60 -0
  288. solace_agent_mesh/cli/commands/eval_cmd.py +46 -0
  289. solace_agent_mesh/cli/commands/init_cmd/__init__.py +439 -0
  290. solace_agent_mesh/cli/commands/init_cmd/broker_step.py +201 -0
  291. solace_agent_mesh/cli/commands/init_cmd/database_step.py +91 -0
  292. solace_agent_mesh/cli/commands/init_cmd/directory_step.py +28 -0
  293. solace_agent_mesh/cli/commands/init_cmd/env_step.py +238 -0
  294. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +365 -0
  295. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +464 -0
  296. solace_agent_mesh/cli/commands/init_cmd/project_files_step.py +38 -0
  297. solace_agent_mesh/cli/commands/init_cmd/web_init_step.py +119 -0
  298. solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +215 -0
  299. solace_agent_mesh/cli/commands/plugin_cmd/__init__.py +20 -0
  300. solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +137 -0
  301. solace_agent_mesh/cli/commands/plugin_cmd/build_cmd.py +86 -0
  302. solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +144 -0
  303. solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +306 -0
  304. solace_agent_mesh/cli/commands/plugin_cmd/install_cmd.py +283 -0
  305. solace_agent_mesh/cli/commands/plugin_cmd/official_registry.py +175 -0
  306. solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +305 -0
  307. solace_agent_mesh/cli/commands/run_cmd.py +215 -0
  308. solace_agent_mesh/cli/main.py +52 -0
  309. solace_agent_mesh/cli/utils.py +262 -0
  310. solace_agent_mesh/client/webui/frontend/static/assets/authCallback-Dj3JtK42.js +1 -0
  311. solace_agent_mesh/client/webui/frontend/static/assets/client-ZKk9kEJ5.js +25 -0
  312. solace_agent_mesh/client/webui/frontend/static/assets/favicon-BLgzUch9.ico +0 -0
  313. solace_agent_mesh/client/webui/frontend/static/assets/main-BcUaNZ-Q.css +1 -0
  314. solace_agent_mesh/client/webui/frontend/static/assets/main-vjch4RYc.js +435 -0
  315. solace_agent_mesh/client/webui/frontend/static/assets/vendor-BNV4kZN0.js +535 -0
  316. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +15 -0
  317. solace_agent_mesh/client/webui/frontend/static/index.html +16 -0
  318. solace_agent_mesh/client/webui/frontend/static/mockServiceWorker.js +336 -0
  319. solace_agent_mesh/client/webui/frontend/static/ui-version.json +6 -0
  320. solace_agent_mesh/common/__init__.py +1 -0
  321. solace_agent_mesh/common/a2a/__init__.py +241 -0
  322. solace_agent_mesh/common/a2a/a2a_llm.txt +175 -0
  323. solace_agent_mesh/common/a2a/a2a_llm_detail.txt +193 -0
  324. solace_agent_mesh/common/a2a/artifact.py +368 -0
  325. solace_agent_mesh/common/a2a/events.py +213 -0
  326. solace_agent_mesh/common/a2a/message.py +375 -0
  327. solace_agent_mesh/common/a2a/protocol.py +689 -0
  328. solace_agent_mesh/common/a2a/task.py +127 -0
  329. solace_agent_mesh/common/a2a/translation.py +655 -0
  330. solace_agent_mesh/common/a2a/types.py +55 -0
  331. solace_agent_mesh/common/a2a_spec/a2a.json +2576 -0
  332. solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +445 -0
  333. solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +736 -0
  334. solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json +18 -0
  335. solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json +48 -0
  336. solace_agent_mesh/common/a2a_spec/schemas/feedback_event.json +51 -0
  337. solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json +41 -0
  338. solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +330 -0
  339. solace_agent_mesh/common/a2a_spec/schemas/tool_invocation_start.json +26 -0
  340. solace_agent_mesh/common/a2a_spec/schemas/tool_result.json +48 -0
  341. solace_agent_mesh/common/agent_registry.py +122 -0
  342. solace_agent_mesh/common/common_llm.txt +230 -0
  343. solace_agent_mesh/common/common_llm_detail.txt +2562 -0
  344. solace_agent_mesh/common/constants.py +6 -0
  345. solace_agent_mesh/common/data_parts.py +150 -0
  346. solace_agent_mesh/common/exceptions.py +49 -0
  347. solace_agent_mesh/common/middleware/__init__.py +12 -0
  348. solace_agent_mesh/common/middleware/config_resolver.py +132 -0
  349. solace_agent_mesh/common/middleware/middleware_llm.txt +174 -0
  350. solace_agent_mesh/common/middleware/middleware_llm_detail.txt +185 -0
  351. solace_agent_mesh/common/middleware/registry.py +127 -0
  352. solace_agent_mesh/common/oauth/__init__.py +17 -0
  353. solace_agent_mesh/common/oauth/oauth_client.py +408 -0
  354. solace_agent_mesh/common/oauth/utils.py +50 -0
  355. solace_agent_mesh/common/sac/__init__.py +0 -0
  356. solace_agent_mesh/common/sac/sac_llm.txt +71 -0
  357. solace_agent_mesh/common/sac/sac_llm_detail.txt +82 -0
  358. solace_agent_mesh/common/sac/sam_component_base.py +730 -0
  359. solace_agent_mesh/common/sam_events/__init__.py +9 -0
  360. solace_agent_mesh/common/sam_events/event_service.py +208 -0
  361. solace_agent_mesh/common/sam_events/sam_events_llm.txt +104 -0
  362. solace_agent_mesh/common/sam_events/sam_events_llm_detail.txt +115 -0
  363. solace_agent_mesh/common/services/__init__.py +4 -0
  364. solace_agent_mesh/common/services/employee_service.py +164 -0
  365. solace_agent_mesh/common/services/identity_service.py +134 -0
  366. solace_agent_mesh/common/services/providers/__init__.py +4 -0
  367. solace_agent_mesh/common/services/providers/local_file_identity_service.py +151 -0
  368. solace_agent_mesh/common/services/providers/providers_llm.txt +81 -0
  369. solace_agent_mesh/common/services/services_llm.txt +368 -0
  370. solace_agent_mesh/common/services/services_llm_detail.txt +459 -0
  371. solace_agent_mesh/common/utils/__init__.py +7 -0
  372. solace_agent_mesh/common/utils/artifact_utils.py +31 -0
  373. solace_agent_mesh/common/utils/asyncio_macos_fix.py +88 -0
  374. solace_agent_mesh/common/utils/embeds/__init__.py +33 -0
  375. solace_agent_mesh/common/utils/embeds/constants.py +56 -0
  376. solace_agent_mesh/common/utils/embeds/converter.py +447 -0
  377. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +220 -0
  378. solace_agent_mesh/common/utils/embeds/evaluators.py +395 -0
  379. solace_agent_mesh/common/utils/embeds/modifiers.py +793 -0
  380. solace_agent_mesh/common/utils/embeds/resolver.py +967 -0
  381. solace_agent_mesh/common/utils/embeds/types.py +23 -0
  382. solace_agent_mesh/common/utils/in_memory_cache.py +108 -0
  383. solace_agent_mesh/common/utils/initializer.py +52 -0
  384. solace_agent_mesh/common/utils/log_formatters.py +64 -0
  385. solace_agent_mesh/common/utils/message_utils.py +80 -0
  386. solace_agent_mesh/common/utils/mime_helpers.py +172 -0
  387. solace_agent_mesh/common/utils/push_notification_auth.py +135 -0
  388. solace_agent_mesh/common/utils/pydantic_utils.py +159 -0
  389. solace_agent_mesh/common/utils/rbac_utils.py +69 -0
  390. solace_agent_mesh/common/utils/templates/__init__.py +8 -0
  391. solace_agent_mesh/common/utils/templates/liquid_renderer.py +210 -0
  392. solace_agent_mesh/common/utils/templates/template_resolver.py +161 -0
  393. solace_agent_mesh/common/utils/type_utils.py +28 -0
  394. solace_agent_mesh/common/utils/utils_llm.txt +335 -0
  395. solace_agent_mesh/common/utils/utils_llm_detail.txt +572 -0
  396. solace_agent_mesh/config_portal/__init__.py +0 -0
  397. solace_agent_mesh/config_portal/backend/__init__.py +0 -0
  398. solace_agent_mesh/config_portal/backend/common.py +77 -0
  399. solace_agent_mesh/config_portal/backend/plugin_catalog/__init__.py +0 -0
  400. solace_agent_mesh/config_portal/backend/plugin_catalog/constants.py +24 -0
  401. solace_agent_mesh/config_portal/backend/plugin_catalog/models.py +49 -0
  402. solace_agent_mesh/config_portal/backend/plugin_catalog/registry_manager.py +166 -0
  403. solace_agent_mesh/config_portal/backend/plugin_catalog/scraper.py +521 -0
  404. solace_agent_mesh/config_portal/backend/plugin_catalog_server.py +217 -0
  405. solace_agent_mesh/config_portal/backend/server.py +644 -0
  406. solace_agent_mesh/config_portal/frontend/static/client/Solace_community_logo.png +0 -0
  407. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-DiOiAjzL.js +103 -0
  408. solace_agent_mesh/config_portal/frontend/static/client/assets/components-Rk0n-9cK.js +140 -0
  409. solace_agent_mesh/config_portal/frontend/static/client/assets/entry.client-mvZjNKiz.js +19 -0
  410. solace_agent_mesh/config_portal/frontend/static/client/assets/index-DzNKzXrc.js +68 -0
  411. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-ba77705e.js +1 -0
  412. solace_agent_mesh/config_portal/frontend/static/client/assets/root-B17tZKK7.css +1 -0
  413. solace_agent_mesh/config_portal/frontend/static/client/assets/root-V2BeTIUc.js +10 -0
  414. solace_agent_mesh/config_portal/frontend/static/client/favicon.ico +0 -0
  415. solace_agent_mesh/config_portal/frontend/static/client/index.html +7 -0
  416. solace_agent_mesh/core_a2a/__init__.py +1 -0
  417. solace_agent_mesh/core_a2a/core_a2a_llm.txt +90 -0
  418. solace_agent_mesh/core_a2a/core_a2a_llm_detail.txt +101 -0
  419. solace_agent_mesh/core_a2a/service.py +307 -0
  420. solace_agent_mesh/evaluation/__init__.py +0 -0
  421. solace_agent_mesh/evaluation/evaluator.py +691 -0
  422. solace_agent_mesh/evaluation/message_organizer.py +553 -0
  423. solace_agent_mesh/evaluation/report/benchmark_info.html +35 -0
  424. solace_agent_mesh/evaluation/report/chart_section.html +141 -0
  425. solace_agent_mesh/evaluation/report/detailed_breakdown.html +28 -0
  426. solace_agent_mesh/evaluation/report/modal.html +59 -0
  427. solace_agent_mesh/evaluation/report/modal_chart_functions.js +411 -0
  428. solace_agent_mesh/evaluation/report/modal_script.js +296 -0
  429. solace_agent_mesh/evaluation/report/modal_styles.css +340 -0
  430. solace_agent_mesh/evaluation/report/performance_metrics_styles.css +93 -0
  431. solace_agent_mesh/evaluation/report/templates/footer.html +2 -0
  432. solace_agent_mesh/evaluation/report/templates/header.html +340 -0
  433. solace_agent_mesh/evaluation/report_data_processor.py +970 -0
  434. solace_agent_mesh/evaluation/report_generator.py +607 -0
  435. solace_agent_mesh/evaluation/run.py +954 -0
  436. solace_agent_mesh/evaluation/shared/__init__.py +92 -0
  437. solace_agent_mesh/evaluation/shared/constants.py +47 -0
  438. solace_agent_mesh/evaluation/shared/exceptions.py +50 -0
  439. solace_agent_mesh/evaluation/shared/helpers.py +35 -0
  440. solace_agent_mesh/evaluation/shared/test_case_loader.py +167 -0
  441. solace_agent_mesh/evaluation/shared/test_suite_loader.py +280 -0
  442. solace_agent_mesh/evaluation/subscriber.py +776 -0
  443. solace_agent_mesh/evaluation/summary_builder.py +880 -0
  444. solace_agent_mesh/gateway/__init__.py +0 -0
  445. solace_agent_mesh/gateway/adapter/__init__.py +1 -0
  446. solace_agent_mesh/gateway/adapter/base.py +143 -0
  447. solace_agent_mesh/gateway/adapter/types.py +221 -0
  448. solace_agent_mesh/gateway/base/__init__.py +1 -0
  449. solace_agent_mesh/gateway/base/app.py +345 -0
  450. solace_agent_mesh/gateway/base/base_llm.txt +226 -0
  451. solace_agent_mesh/gateway/base/base_llm_detail.txt +235 -0
  452. solace_agent_mesh/gateway/base/component.py +2030 -0
  453. solace_agent_mesh/gateway/base/task_context.py +75 -0
  454. solace_agent_mesh/gateway/gateway_llm.txt +369 -0
  455. solace_agent_mesh/gateway/gateway_llm_detail.txt +3885 -0
  456. solace_agent_mesh/gateway/generic/__init__.py +1 -0
  457. solace_agent_mesh/gateway/generic/app.py +50 -0
  458. solace_agent_mesh/gateway/generic/component.py +727 -0
  459. solace_agent_mesh/gateway/http_sse/__init__.py +0 -0
  460. solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +345 -0
  461. solace_agent_mesh/gateway/http_sse/alembic/env.py +87 -0
  462. solace_agent_mesh/gateway/http_sse/alembic/script.py.mako +28 -0
  463. solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py +58 -0
  464. solace_agent_mesh/gateway/http_sse/alembic/versions/20250911_b1c2d3e4f5g6_add_database_indexes.py +83 -0
  465. solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py +412 -0
  466. solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py +190 -0
  467. solace_agent_mesh/gateway/http_sse/alembic/versions/20251015_add_session_performance_indexes.py +70 -0
  468. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_project_users_table.py +72 -0
  469. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py +109 -0
  470. solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_default_agent_to_projects.py +26 -0
  471. solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_projects_table.py +135 -0
  472. solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py +154 -0
  473. solace_agent_mesh/gateway/http_sse/alembic/versions/20251115_add_parent_task_id.py +32 -0
  474. solace_agent_mesh/gateway/http_sse/alembic/versions/20251126_add_background_task_fields.py +47 -0
  475. solace_agent_mesh/gateway/http_sse/alembic/versions/20251202_add_versioned_fields_to_prompts.py +52 -0
  476. solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +161 -0
  477. solace_agent_mesh/gateway/http_sse/alembic.ini +109 -0
  478. solace_agent_mesh/gateway/http_sse/app.py +351 -0
  479. solace_agent_mesh/gateway/http_sse/component.py +2360 -0
  480. solace_agent_mesh/gateway/http_sse/components/__init__.py +7 -0
  481. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +105 -0
  482. solace_agent_mesh/gateway/http_sse/components/task_logger_forwarder.py +109 -0
  483. solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py +110 -0
  484. solace_agent_mesh/gateway/http_sse/dependencies.py +653 -0
  485. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +299 -0
  486. solace_agent_mesh/gateway/http_sse/http_sse_llm_detail.txt +3278 -0
  487. solace_agent_mesh/gateway/http_sse/main.py +789 -0
  488. solace_agent_mesh/gateway/http_sse/repository/__init__.py +46 -0
  489. solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +102 -0
  490. solace_agent_mesh/gateway/http_sse/repository/entities/__init__.py +11 -0
  491. solace_agent_mesh/gateway/http_sse/repository/entities/chat_task.py +75 -0
  492. solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +221 -0
  493. solace_agent_mesh/gateway/http_sse/repository/entities/feedback.py +20 -0
  494. solace_agent_mesh/gateway/http_sse/repository/entities/project.py +81 -0
  495. solace_agent_mesh/gateway/http_sse/repository/entities/project_user.py +47 -0
  496. solace_agent_mesh/gateway/http_sse/repository/entities/session.py +66 -0
  497. solace_agent_mesh/gateway/http_sse/repository/entities/session_history.py +0 -0
  498. solace_agent_mesh/gateway/http_sse/repository/entities/task.py +32 -0
  499. solace_agent_mesh/gateway/http_sse/repository/entities/task_event.py +21 -0
  500. solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +125 -0
  501. solace_agent_mesh/gateway/http_sse/repository/interfaces.py +239 -0
  502. solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +34 -0
  503. solace_agent_mesh/gateway/http_sse/repository/models/base.py +7 -0
  504. solace_agent_mesh/gateway/http_sse/repository/models/chat_task_model.py +31 -0
  505. solace_agent_mesh/gateway/http_sse/repository/models/feedback_model.py +21 -0
  506. solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +257 -0
  507. solace_agent_mesh/gateway/http_sse/repository/models/project_model.py +51 -0
  508. solace_agent_mesh/gateway/http_sse/repository/models/project_user_model.py +75 -0
  509. solace_agent_mesh/gateway/http_sse/repository/models/prompt_model.py +159 -0
  510. solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +53 -0
  511. solace_agent_mesh/gateway/http_sse/repository/models/task_event_model.py +25 -0
  512. solace_agent_mesh/gateway/http_sse/repository/models/task_model.py +39 -0
  513. solace_agent_mesh/gateway/http_sse/repository/project_repository.py +172 -0
  514. solace_agent_mesh/gateway/http_sse/repository/project_user_repository.py +186 -0
  515. solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +308 -0
  516. solace_agent_mesh/gateway/http_sse/repository/session_repository.py +268 -0
  517. solace_agent_mesh/gateway/http_sse/repository/task_repository.py +248 -0
  518. solace_agent_mesh/gateway/http_sse/routers/__init__.py +4 -0
  519. solace_agent_mesh/gateway/http_sse/routers/agent_cards.py +74 -0
  520. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +1137 -0
  521. solace_agent_mesh/gateway/http_sse/routers/auth.py +311 -0
  522. solace_agent_mesh/gateway/http_sse/routers/config.py +371 -0
  523. solace_agent_mesh/gateway/http_sse/routers/dto/__init__.py +10 -0
  524. solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +450 -0
  525. solace_agent_mesh/gateway/http_sse/routers/dto/project_dto.py +69 -0
  526. solace_agent_mesh/gateway/http_sse/routers/dto/prompt_dto.py +255 -0
  527. solace_agent_mesh/gateway/http_sse/routers/dto/requests/__init__.py +15 -0
  528. solace_agent_mesh/gateway/http_sse/routers/dto/requests/project_requests.py +48 -0
  529. solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +133 -0
  530. solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +33 -0
  531. solace_agent_mesh/gateway/http_sse/routers/dto/requests/task_requests.py +58 -0
  532. solace_agent_mesh/gateway/http_sse/routers/dto/responses/__init__.py +18 -0
  533. solace_agent_mesh/gateway/http_sse/routers/dto/responses/base_responses.py +42 -0
  534. solace_agent_mesh/gateway/http_sse/routers/dto/responses/project_responses.py +31 -0
  535. solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +123 -0
  536. solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +33 -0
  537. solace_agent_mesh/gateway/http_sse/routers/dto/responses/task_responses.py +30 -0
  538. solace_agent_mesh/gateway/http_sse/routers/dto/responses/version_responses.py +31 -0
  539. solace_agent_mesh/gateway/http_sse/routers/feedback.py +168 -0
  540. solace_agent_mesh/gateway/http_sse/routers/people.py +38 -0
  541. solace_agent_mesh/gateway/http_sse/routers/projects.py +767 -0
  542. solace_agent_mesh/gateway/http_sse/routers/prompts.py +1415 -0
  543. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +312 -0
  544. solace_agent_mesh/gateway/http_sse/routers/sessions.py +634 -0
  545. solace_agent_mesh/gateway/http_sse/routers/speech.py +355 -0
  546. solace_agent_mesh/gateway/http_sse/routers/sse.py +230 -0
  547. solace_agent_mesh/gateway/http_sse/routers/tasks.py +1089 -0
  548. solace_agent_mesh/gateway/http_sse/routers/users.py +83 -0
  549. solace_agent_mesh/gateway/http_sse/routers/version.py +343 -0
  550. solace_agent_mesh/gateway/http_sse/routers/visualization.py +1220 -0
  551. solace_agent_mesh/gateway/http_sse/services/__init__.py +4 -0
  552. solace_agent_mesh/gateway/http_sse/services/agent_card_service.py +71 -0
  553. solace_agent_mesh/gateway/http_sse/services/audio_service.py +1227 -0
  554. solace_agent_mesh/gateway/http_sse/services/background_task_monitor.py +186 -0
  555. solace_agent_mesh/gateway/http_sse/services/data_retention_service.py +273 -0
  556. solace_agent_mesh/gateway/http_sse/services/feedback_service.py +250 -0
  557. solace_agent_mesh/gateway/http_sse/services/people_service.py +78 -0
  558. solace_agent_mesh/gateway/http_sse/services/project_service.py +930 -0
  559. solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py +303 -0
  560. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +303 -0
  561. solace_agent_mesh/gateway/http_sse/services/session_service.py +702 -0
  562. solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +593 -0
  563. solace_agent_mesh/gateway/http_sse/services/task_service.py +119 -0
  564. solace_agent_mesh/gateway/http_sse/session_manager.py +219 -0
  565. solace_agent_mesh/gateway/http_sse/shared/__init__.py +146 -0
  566. solace_agent_mesh/gateway/http_sse/shared/auth_utils.py +29 -0
  567. solace_agent_mesh/gateway/http_sse/shared/base_repository.py +252 -0
  568. solace_agent_mesh/gateway/http_sse/shared/database_exceptions.py +274 -0
  569. solace_agent_mesh/gateway/http_sse/shared/database_helpers.py +43 -0
  570. solace_agent_mesh/gateway/http_sse/shared/enums.py +40 -0
  571. solace_agent_mesh/gateway/http_sse/shared/error_dto.py +107 -0
  572. solace_agent_mesh/gateway/http_sse/shared/exception_handlers.py +217 -0
  573. solace_agent_mesh/gateway/http_sse/shared/exceptions.py +192 -0
  574. solace_agent_mesh/gateway/http_sse/shared/pagination.py +138 -0
  575. solace_agent_mesh/gateway/http_sse/shared/response_utils.py +134 -0
  576. solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +319 -0
  577. solace_agent_mesh/gateway/http_sse/shared/timestamp_utils.py +97 -0
  578. solace_agent_mesh/gateway/http_sse/shared/types.py +50 -0
  579. solace_agent_mesh/gateway/http_sse/shared/utils.py +22 -0
  580. solace_agent_mesh/gateway/http_sse/sse_event_buffer.py +88 -0
  581. solace_agent_mesh/gateway/http_sse/sse_manager.py +491 -0
  582. solace_agent_mesh/gateway/http_sse/utils/__init__.py +1 -0
  583. solace_agent_mesh/gateway/http_sse/utils/artifact_copy_utils.py +370 -0
  584. solace_agent_mesh/gateway/http_sse/utils/stim_utils.py +72 -0
  585. solace_agent_mesh/gateway/http_sse/utils/utils_llm.txt +47 -0
  586. solace_agent_mesh/llm.txt +228 -0
  587. solace_agent_mesh/llm_detail.txt +2835 -0
  588. solace_agent_mesh/services/__init__.py +0 -0
  589. solace_agent_mesh/services/platform/__init__.py +18 -0
  590. solace_agent_mesh/services/platform/alembic/env.py +85 -0
  591. solace_agent_mesh/services/platform/alembic/script.py.mako +28 -0
  592. solace_agent_mesh/services/platform/alembic.ini +109 -0
  593. solace_agent_mesh/services/platform/api/__init__.py +3 -0
  594. solace_agent_mesh/services/platform/api/dependencies.py +147 -0
  595. solace_agent_mesh/services/platform/api/main.py +280 -0
  596. solace_agent_mesh/services/platform/api/middleware.py +51 -0
  597. solace_agent_mesh/services/platform/api/routers/__init__.py +24 -0
  598. solace_agent_mesh/services/platform/app.py +114 -0
  599. solace_agent_mesh/services/platform/component.py +235 -0
  600. solace_agent_mesh/solace_agent_mesh_llm.txt +362 -0
  601. solace_agent_mesh/solace_agent_mesh_llm_detail.txt +8599 -0
  602. solace_agent_mesh/templates/agent_template.yaml +53 -0
  603. solace_agent_mesh/templates/eval_backend_template.yaml +54 -0
  604. solace_agent_mesh/templates/gateway_app_template.py +75 -0
  605. solace_agent_mesh/templates/gateway_component_template.py +484 -0
  606. solace_agent_mesh/templates/gateway_config_template.yaml +38 -0
  607. solace_agent_mesh/templates/logging_config_template.yaml +48 -0
  608. solace_agent_mesh/templates/main_orchestrator.yaml +66 -0
  609. solace_agent_mesh/templates/plugin_agent_config_template.yaml +122 -0
  610. solace_agent_mesh/templates/plugin_custom_config_template.yaml +27 -0
  611. solace_agent_mesh/templates/plugin_custom_template.py +10 -0
  612. solace_agent_mesh/templates/plugin_gateway_config_template.yaml +60 -0
  613. solace_agent_mesh/templates/plugin_pyproject_template.toml +32 -0
  614. solace_agent_mesh/templates/plugin_readme_template.md +12 -0
  615. solace_agent_mesh/templates/plugin_tool_config_template.yaml +109 -0
  616. solace_agent_mesh/templates/plugin_tools_template.py +224 -0
  617. solace_agent_mesh/templates/shared_config.yaml +112 -0
  618. solace_agent_mesh/templates/templates_llm.txt +147 -0
  619. solace_agent_mesh/templates/webui.yaml +177 -0
  620. solace_agent_mesh-1.11.2.dist-info/METADATA +504 -0
  621. solace_agent_mesh-1.11.2.dist-info/RECORD +624 -0
  622. solace_agent_mesh-1.11.2.dist-info/WHEEL +4 -0
  623. solace_agent_mesh-1.11.2.dist-info/entry_points.txt +3 -0
  624. solace_agent_mesh-1.11.2.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,224 @@
1
+ import logging
2
+ import asyncio
3
+ from datetime import datetime, timezone
4
+ from typing import Any, Dict, Optional
5
+
6
+ from google.adk.tools import ToolContext
7
+ from solace_agent_mesh.agent.utils.artifact_helpers import (
8
+ save_artifact_with_metadata,
9
+ DEFAULT_SCHEMA_MAX_KEYS,
10
+ )
11
+ from solace_agent_mesh.agent.utils.context_helpers import get_original_session_id
12
+
13
+ log = logging.getLogger(__name__)
14
+
15
+ async def example_text_processor_tool(
16
+ text_input: str,
17
+ uppercase: bool = False, # Example of a boolean parameter
18
+ tool_context: Optional[ToolContext] = None,
19
+ tool_config: Optional[Dict[str, Any]] = None,
20
+ ) -> Dict[str, Any]:
21
+ """
22
+ An example tool that processes input text, optionally converts it to uppercase,
23
+ and adds a prefix from tool_config.
24
+ """
25
+ plugin_name = "__PLUGIN_SPACED_NAME__"
26
+ log_identifier = f"[{plugin_name}:example_text_processor_tool]"
27
+ log.info(f"{log_identifier} Received text: '{text_input}', uppercase: {uppercase}")
28
+
29
+ current_tool_config = tool_config if tool_config is not None else {}
30
+ prefix = current_tool_config.get("prefix", "Processed: ")
31
+
32
+ processed_text = text_input
33
+ if uppercase:
34
+ processed_text = processed_text.upper()
35
+
36
+ final_text = f"{prefix}{processed_text}"
37
+
38
+ log.info(f"{log_identifier} Processed text: '{final_text}'")
39
+ return {
40
+ "status": "success",
41
+ "message": "Text processed successfully by example_text_processor_tool.",
42
+ "original_input": text_input,
43
+ "processed_text": final_text,
44
+ "was_uppercased": uppercase,
45
+ }
46
+
47
+
48
+ async def example_text_file_creator_tool(
49
+ filename: str,
50
+ content: str,
51
+ tool_context: Optional[ToolContext] = None,
52
+ tool_config: Optional[Dict[str, Any]] = None,
53
+ ) -> Dict[str, Any]:
54
+ """
55
+ An example tool that creates a text file and saves it as an artifact
56
+ using the Solace Agent Mesh artifact service.
57
+ """
58
+ plugin_name = "__PLUGIN_SPACED_NAME__"
59
+ log_identifier = f"[{plugin_name}:example_text_file_creator_tool]"
60
+ log.info(
61
+ f"{log_identifier} Received request to create file: '{filename}' with content starting: '{content[:50]}...'"
62
+ )
63
+
64
+ if not tool_context or not tool_context._invocation_context:
65
+ log.error(
66
+ f"{log_identifier} ToolContext or InvocationContext is missing. Cannot save artifact."
67
+ )
68
+ return {
69
+ "status": "error",
70
+ "message": "ToolContext or InvocationContext is missing.",
71
+ }
72
+
73
+ inv_context = tool_context._invocation_context
74
+ app_name = getattr(inv_context, "app_name", None)
75
+ user_id = getattr(inv_context, "user_id", None)
76
+ session_id = get_original_session_id(inv_context)
77
+ artifact_service = getattr(inv_context, "artifact_service", None)
78
+
79
+ if not all([app_name, user_id, session_id, artifact_service]):
80
+ missing_parts = [
81
+ part
82
+ for part, val in [
83
+ ("app_name", app_name),
84
+ ("user_id", user_id),
85
+ ("session_id", session_id),
86
+ ("artifact_service", artifact_service),
87
+ ]
88
+ if not val
89
+ ]
90
+ log.error(
91
+ f"{log_identifier} Missing required context parts for artifact saving: {', '.join(missing_parts)}"
92
+ )
93
+ return {
94
+ "status": "error",
95
+ "message": f"Missing required context parts for artifact saving: {', '.join(missing_parts)}",
96
+ }
97
+
98
+ output_filename = filename
99
+ if not output_filename.lower().endswith(".txt"):
100
+ output_filename += ".txt"
101
+
102
+ content_bytes = content.encode("utf-8")
103
+ mime_type = "text/plain"
104
+ timestamp = datetime.now(timezone.utc)
105
+
106
+ metadata_dict = {
107
+ "description": f"Text file created by {plugin_name}'s example_text_file_creator_tool.",
108
+ "source_tool": "example_text_file_creator_tool",
109
+ "original_requested_filename": filename,
110
+ "creation_timestamp_iso": timestamp.isoformat(),
111
+ "content_character_count": len(content),
112
+ }
113
+
114
+ log.info(
115
+ f"{log_identifier} Attempting to save artifact '{output_filename}' via artifact_service."
116
+ )
117
+ try:
118
+ save_result = await save_artifact_with_metadata(
119
+ artifact_service=artifact_service,
120
+ app_name=app_name,
121
+ user_id=user_id,
122
+ session_id=session_id,
123
+ filename=output_filename,
124
+ content_bytes=content_bytes,
125
+ mime_type=mime_type,
126
+ metadata_dict=metadata_dict,
127
+ timestamp=timestamp,
128
+ schema_max_keys=DEFAULT_SCHEMA_MAX_KEYS,
129
+ tool_context=tool_context,
130
+ )
131
+ if save_result.get("status") == "error":
132
+ log.error(
133
+ f"{log_identifier} Failed to save artifact: {save_result.get('message')}"
134
+ )
135
+ return {
136
+ "status": "error",
137
+ "message": f"Failed to save artifact: {save_result.get('message')}",
138
+ }
139
+
140
+ log.info(
141
+ f"{log_identifier} Artifact '{output_filename}' v{save_result['data_version']} saved successfully."
142
+ )
143
+ return {
144
+ "status": "success",
145
+ "message": f"File '{output_filename}' created and saved as artifact v{save_result['data_version']}.",
146
+ "output_filename": output_filename,
147
+ "output_version": save_result["data_version"],
148
+ }
149
+ except Exception as e:
150
+ log.exception(f"{log_identifier} Unexpected error during artifact saving: {e}")
151
+ return {
152
+ "status": "error",
153
+ "message": f"An unexpected error occurred during artifact saving: {e}",
154
+ }
155
+
156
+
157
+ # Example of how these might be tested or run if this file was executed directly.
158
+ # This assumes the script is run in an environment where solace_agent_mesh is importable,
159
+ # or the imports at the top will fail.
160
+ if __name__ == "__main__":
161
+
162
+ async def run_tests():
163
+ print("--- Testing example_text_processor_tool ---")
164
+ # For standalone testing, ToolContext might be minimal or None if ADK is not fully available.
165
+ # The tool should handle tool_context=None gracefully if it's designed to be testable standalone.
166
+
167
+ # A more complete mock for standalone testing if needed:
168
+ class MockArtifactService:
169
+ async def save_artifact(
170
+ self, **kwargs
171
+ ): # Match expected signature elements
172
+ log.info(
173
+ f"MockArtifactService.save_artifact called with filename: {kwargs.get('filename')}"
174
+ )
175
+ return {
176
+ "uri": f"mock://{kwargs.get('filename')}",
177
+ "version": 1,
178
+ } # Simulate ADK response
179
+
180
+ async def save_artifact_metadata(self, **kwargs):
181
+ log.info(
182
+ f"MockArtifactService.save_artifact_metadata called for: {kwargs.get('filename')}"
183
+ )
184
+ return {
185
+ "uri": f"mock://{kwargs.get('filename')}.metadata",
186
+ "version": 1,
187
+ }
188
+
189
+ class MockInvocationContext:
190
+ def __init__(self):
191
+ self.app_name = "test_app"
192
+ self.user_id = "test_user"
193
+ self.session_id = "test_session_123"
194
+ self.artifact_service = MockArtifactService()
195
+ # Add other attributes if your tool or helpers expect them
196
+
197
+ class MockToolContext:
198
+ def __init__(self):
199
+ self._invocation_context = MockInvocationContext()
200
+
201
+ mock_context = MockToolContext()
202
+
203
+ text_result1 = await example_text_processor_tool(
204
+ "hello world",
205
+ uppercase=True,
206
+ tool_context=mock_context,
207
+ tool_config={"prefix": "TestPrefix: "},
208
+ )
209
+ print(f"Text tool result 1: {text_result1}")
210
+
211
+ text_result2 = await example_text_processor_tool(
212
+ "another test", tool_context=mock_context
213
+ )
214
+ print(f"Text tool result 2: {text_result2}")
215
+
216
+ print("\n--- Testing example_text_file_creator_tool ---")
217
+ file_result = await example_text_file_creator_tool(
218
+ "my_example_file.txt",
219
+ "This is the content of the example file created by the plugin template.",
220
+ tool_context=mock_context, # Using the mock context with a mock artifact service
221
+ )
222
+ print(f"File tool result: {file_result}")
223
+
224
+ asyncio.run(run_tests())
@@ -0,0 +1,112 @@
1
+ shared_config:
2
+ - broker_connection: &broker_connection
3
+ dev_mode: ${SOLACE_DEV_MODE, false}
4
+ broker_url: ${SOLACE_BROKER_URL, ws://localhost:8008}
5
+ broker_username: ${SOLACE_BROKER_USERNAME, default}
6
+ broker_password: ${SOLACE_BROKER_PASSWORD, default}
7
+ broker_vpn: ${SOLACE_BROKER_VPN, default}
8
+ temporary_queue: ${USE_TEMPORARY_QUEUES, true}
9
+
10
+
11
+ - models:
12
+ planning: &planning_model
13
+ # This dictionary structure tells ADK to use the LiteLlm wrapper.
14
+ # 'model' uses the specific model identifier your endpoint expects.
15
+ model: ${LLM_SERVICE_PLANNING_MODEL_NAME} # Use env var for model name
16
+ # 'api_base' tells LiteLLM where to send the request.
17
+ api_base: ${LLM_SERVICE_ENDPOINT} # Use env var for endpoint URL
18
+ # 'api_key' provides authentication.
19
+ api_key: ${LLM_SERVICE_API_KEY} # Use env var for API key
20
+ # Enable parallel tool calls for planning model
21
+ parallel_tool_calls: true
22
+ # Prompt Caching Strategy
23
+ cache_strategy: "5m" # none, 5m, 1h
24
+
25
+ # max_tokens: ${MAX_TOKENS, 16000} # Set a reasonable max token limit for planning
26
+ # temperature: 0.1 # Lower temperature for more deterministic planning
27
+
28
+
29
+ general: &general_model
30
+ # This dictionary structure tells ADK to use the LiteLlm wrapper.
31
+ # 'model' uses the specific model identifier your endpoint expects.
32
+ model: ${LLM_SERVICE_GENERAL_MODEL_NAME} # Use env var for model name
33
+ # 'api_base' tells LiteLLM where to send the request.
34
+ api_base: ${LLM_SERVICE_ENDPOINT} # Use env var for endpoint URL
35
+ # 'api_key' provides authentication.
36
+ api_key: ${LLM_SERVICE_API_KEY} # Use env var for API key
37
+ # Prompt Caching Strategy
38
+ cache_strategy: "5m" # none, 5m, 1h
39
+
40
+ image_gen: &image_generation_model
41
+ # This dictionary structure tells ADK to use the LiteLlm wrapper.
42
+ # 'model' uses the specific model identifier your endpoint expects.
43
+ model: ${IMAGE_MODEL_NAME} # Use env var for model name
44
+ # 'api_base' tells LiteLLM where to send the request.
45
+ api_base: ${IMAGE_SERVICE_ENDPOINT} # Use env var for endpoint URL
46
+ # 'api_key' provides authentication.
47
+ api_key: ${IMAGE_SERVICE_API_KEY} # Use env var for API key
48
+
49
+ report_gen: &report_generation_model
50
+ # This dictionary structure tells ADK to use the LiteLlm wrapper.
51
+ # 'model' uses the specific model identifier your endpoint expects.
52
+ model: ${LLM_REPORT_MODEL_NAME} # Use env var for model name
53
+ # 'api_base' tells LiteLLM where to send the request.
54
+ api_base: ${LLM_SERVICE_ENDPOINT} # Use env var for endpoint URL
55
+ # 'api_key' provides authentication.
56
+ api_key: ${LLM_SERVICE_API_KEY} # Use env var for API key
57
+
58
+ multimodal: &multimodal_model "gemini-2.5-flash-preview-04-17"
59
+
60
+ # OAuth 2.0 Client Credentials authentication example
61
+ oauth_planning: &oauth_planning_model
62
+ # This dictionary structure tells ADK to use the LiteLlm wrapper with OAuth authentication.
63
+ # 'model' uses the specific model identifier your endpoint expects.
64
+ model: ${LLM_SERVICE_OAUTH_PLANNING_MODEL_NAME} # Use env var for model name
65
+ # 'api_base' tells LiteLLM where to send the request.
66
+ api_base: ${LLM_SERVICE_OAUTH_ENDPOINT} # Use env var for endpoint URL
67
+
68
+ # OAuth 2.0 Client Credentials configuration
69
+ oauth_token_url: ${LLM_SERVICE_OAUTH_TOKEN_URL} # OAuth token endpoint URL
70
+ oauth_client_id: ${LLM_SERVICE_OAUTH_CLIENT_ID} # OAuth client identifier
71
+ oauth_client_secret: ${LLM_SERVICE_OAUTH_CLIENT_SECRET} # OAuth client secret
72
+ oauth_scope: ${LLM_SERVICE_OAUTH_SCOPE} # Optional: OAuth scope (space-separated)
73
+ # oauth_ca_cert: ${LLM_SERVICE_OAUTH_CA_CERT_PATH} # Optional: Custom CA certificate path
74
+ oauth_token_refresh_buffer_seconds: ${LLM_SERVICE_OAUTH_TOKEN_REFRESH_BUFFER_SECONDS, 300} # Refresh buffer
75
+
76
+ # Enable parallel tool calls for planning model
77
+ parallel_tool_calls: true
78
+ # max_tokens: ${MAX_TOKENS, 16000} # Set a reasonable max token limit for planning
79
+ # temperature: 0.1 # Lower temperature for more deterministic planning
80
+
81
+ oauth_general: &oauth_general_model
82
+ # This dictionary structure tells ADK to use the LiteLlm wrapper with OAuth authentication.
83
+ # 'model' uses the specific model identifier your endpoint expects.
84
+ model: ${LLM_SERVICE_OAUTH_GENERAL_MODEL_NAME} # Use env var for model name
85
+ # 'api_base' tells LiteLLM where to send the request.
86
+ api_base: ${LLM_SERVICE_OAUTH_ENDPOINT} # Use env var for endpoint URL
87
+
88
+ # OAuth 2.0 Client Credentials configuration
89
+ oauth_token_url: ${LLM_SERVICE_OAUTH_TOKEN_URL} # OAuth token endpoint URL
90
+ oauth_client_id: ${LLM_SERVICE_OAUTH_CLIENT_ID} # OAuth client identifier
91
+ oauth_client_secret: ${LLM_SERVICE_OAUTH_CLIENT_SECRET} # OAuth client secret
92
+ oauth_scope: ${LLM_SERVICE_OAUTH_SCOPE} # Optional: OAuth scope (space-separated)
93
+ # oauth_ca_cert: ${LLM_SERVICE_OAUTH_CA_CERT_PATH} # Optional: Custom CA certificate path
94
+ oauth_token_refresh_buffer_seconds: ${LLM_SERVICE_OAUTH_TOKEN_REFRESH_BUFFER_SECONDS, 300} # Refresh buffer
95
+
96
+ - services:
97
+ # Default session service configuration
98
+ session_service: &default_session_service
99
+ type: "memory"
100
+ default_behavior: "PERSISTENT"
101
+
102
+ # Default artifact service configuration
103
+ artifact_service: &default_artifact_service
104
+ type: "__DEFAULT_ARTIFACT_SERVICE_TYPE__"
105
+ # __DEFAULT_ARTIFACT_SERVICE_BASE_PATH_LINE__
106
+ artifact_scope: __DEFAULT_ARTIFACT_SERVICE_SCOPE__
107
+
108
+ # Default data tools configuration
109
+ data_tools_config: &default_data_tools_config
110
+ sqlite_memory_threshold_mb: 100
111
+ max_result_preview_rows: 50
112
+ max_result_preview_bytes: 4096
@@ -0,0 +1,147 @@
1
+ Here is the DEVELOPER GUIDE for the `templates` directory.
2
+
3
+ ## Quick Summary
4
+
5
+ The `templates` directory contains boilerplate files for creating various components within the Solace Agent Mesh (SAM) ecosystem. These templates are used by the `sam` command-line interface (CLI) and developers to bootstrap new agents, gateways, and plugins. They provide a standardized starting point, ensuring new components adhere to the required structure and include necessary configurations.
6
+
7
+ ## Files Overview
8
+
9
+ * `agent_template.yaml`: A template for a standard agent configuration file.
10
+ * `eval_backend_template.yaml`: Configuration template for the A2A Evaluation Backend service.
11
+ * `gateway_app_template.py`: Python template for a custom gateway's main `App` class, which handles configuration.
12
+ * `gateway_component_template.py`: Python template for a custom gateway's `Component` class, which implements the core logic.
13
+ * `gateway_config_template.yaml`: YAML configuration template for a custom gateway.
14
+ * `main_orchestrator.yaml`: Configuration template for the primary Orchestrator agent.
15
+ * `plugin_agent_config_template.yaml`: Template for an agent configuration generated from a plugin.
16
+ * `plugin_custom_config_template.yaml`: Template for a custom configuration file generated from a plugin.
17
+ * `plugin_custom_template.py`: Python template for a custom class within a plugin.
18
+ * `plugin_gateway_config_template.yaml`: Template for a gateway configuration generated from a plugin.
19
+ * `plugin_pyproject_template.toml`: Template for a plugin's `pyproject.toml` file, defining its packaging and dependencies.
20
+ * `plugin_readme_template.md`: Template for a plugin's `README.md` file.
21
+ * `plugin_tools_template.py`: Python template demonstrating how to create custom tools for a plugin.
22
+ * `shared_config.yaml`: A template for shared configuration settings (e.g., broker, models, services) used across multiple components.
23
+ * `webui.yaml`: Configuration template for the WebUI Gateway.
24
+
25
+ ## Developer API Reference
26
+
27
+ ### agent_template.yaml
28
+
29
+ **Purpose:** A generic template for creating a new agent configuration. It includes placeholders that are typically filled in by a developer or a script to define a new agent's behavior, model, tools, and communication settings.
30
+
31
+ **Key Placeholders:**
32
+ * `__AGENT_NAME__`: The unique name of the agent.
33
+ * `__NAMESPACE__`: The namespace the agent operates in.
34
+ * `__SUPPORTS_STREAMING__`: `true` or `false` to indicate if the agent supports streaming responses.
35
+ * `__MODEL_ALIAS__`: The alias of the language model to use (e.g., `*planning_model`).
36
+ * `__INSTRUCTION__`: The system prompt or instruction for the agent.
37
+ * `__TOOLS_CONFIG__`: A YAML list defining the tools available to the agent.
38
+ * `__SESSION_SERVICE__`, `__ARTIFACT_SERVICE__`: Configuration for session and artifact services.
39
+ * `__AGENT_CARD_...__`: Fields defining the agent's metadata for discovery.
40
+ * `__INTER_AGENT_COMMUNICATION_...__`: Rules for how this agent can communicate with other agents.
41
+
42
+ ---
43
+ ### eval_backend_template.yaml
44
+
45
+ **Purpose:** A configuration template for the evaluation backend, a specialized REST gateway used for testing and evaluation purposes. It defines the broker connection, API settings, and system prompts.
46
+
47
+ **Key Configuration:**
48
+ * `app_module`: Set to `solace_agent_mesh.gateway.rest.app` to use the standard REST gateway implementation.
49
+ * `namespace`: The operational namespace, often set via an environment variable `${NAMESPACE}`.
50
+ * `fastapi_host`, `fastapi_port`: The host and port for the backend's REST API.
51
+ * `cors_allowed_origins`: A list of origins allowed to make cross-origin requests to the API.
52
+ * `system_purpose`, `response_format`: Default prompts for the gateway.
53
+
54
+ ---
55
+ ### gateway_app_template.py
56
+
57
+ **Purpose:** This template defines the main application class for a custom gateway. Its primary role is to extend `BaseGatewayApp` and define the gateway-specific configuration schema.
58
+
59
+ **Import:** `from my_gateway.app import MyGatewayApp` (where `__GATEWAY_NAME_PASCAL_CASE__` is replaced, e.g., `MyGatewayApp`)
60
+
61
+ **Classes:**
62
+ - `__GATEWAY_NAME_PASCAL_CASE__GatewayApp(BaseGatewayApp)` - The main app class for the custom gateway.
63
+ - `SPECIFIC_APP_SCHEMA_PARAMS: List[Dict[str, Any]]` - A class attribute where you define the custom configuration parameters for your gateway. Each dictionary in the list defines a parameter's name, type, requirement, and description.
64
+ - `_get_gateway_component_class() -> Type[BaseGatewayComponent]` - An abstract method that must be implemented to return the type of your custom gateway component class.
65
+
66
+ **Usage Examples:**
67
+ ```python
68
+ # In your gateway's app.py (e.g., src/my_slack_gateway/app.py)
69
+
70
+ from typing import Any, Dict, List, Type
71
+
72
+ from solace_agent_mesh.gateway.base.app import BaseGatewayApp
73
+ from solace_agent_mesh.gateway.base.component import BaseGatewayComponent
74
+
75
+ # Import your component class
76
+ from .component import MySlackGatewayComponent
77
+
78
+ class MySlackGatewayApp(BaseGatewayApp):
79
+ """
80
+ App class for the My Slack Gateway.
81
+ """
82
+
83
+ # Define custom configuration parameters that will be available
84
+ # in the gateway's YAML config file.
85
+ SPECIFIC_APP_SCHEMA_PARAMS: List[Dict[str, Any]] = [
86
+ {
87
+ "name": "slack_bot_token",
88
+ "required": True,
89
+ "type": "string",
90
+ "description": "The Slack Bot User OAuth Token (starts with xoxb-).",
91
+ },
92
+ {
93
+ "name": "slack_app_token",
94
+ "required": True,
95
+ "type": "string",
96
+ "description": "The Slack App-Level Token for Socket Mode (starts with xapp-).",
97
+ },
98
+ {
99
+ "name": "default_target_agent",
100
+ "required": False,
101
+ "type": "string",
102
+ "default": "OrchestratorAgent",
103
+ "description": "The default agent to send messages to.",
104
+ },
105
+ ]
106
+
107
+ def _get_gateway_component_class(self) -> Type[BaseGatewayComponent]:
108
+ """
109
+ Returns the specific gateway component class for this app.
110
+ """
111
+ return MySlackGatewayComponent
112
+ ```
113
+
114
+ ---
115
+ ### gateway_component_template.py
116
+
117
+ **Purpose:** This template implements the core logic of a custom gateway. It handles the lifecycle of the gateway, communication with the external system, and translation between the external system's data format and the A2A (Agent-to-Agent) protocol.
118
+
119
+ **Import:** `from my_gateway.component import MyGatewayComponent` (where `__GATEWAY_NAME_PASCAL_CASE__` is replaced)
120
+
121
+ **Classes:**
122
+ - `__GATEWAY_NAME_PASCAL_CASE__GatewayComponent(BaseGatewayComponent)` - The main component class implementing the gateway's logic.
123
+ - `_start_listener() -> None` - **GDK Hook:** Implement this to start listening for events from the external system (e.g., start a polling loop, connect a client). Called by the framework.
124
+ - `_stop_listener() -> None` - **GDK Hook:** Implement this to stop listening and clean up connections to the external system. Called by the framework.
125
+ - `_authenticate_external_user(external_event_data: Any) -> Optional[str]` - **GDK Hook:** Implement this to authenticate an incoming request from the external system. Return a unique user ID string on success, `None` on failure.
126
+ - `_translate_external_input(external_event_data: Any, authenticated_user_identity: str) -> Tuple[Optional[str], List[A2APart], Dict[str, Any]]` - **GDK Hook:** Implement this to convert an event from the external system into an A2A task. Returns the target agent name, a list of A2A parts (Text, File, etc.), and a context dictionary to be used for sending the response back.
127
+ - `_send_final_response_to_external(external_request_context: Dict[str, Any], task_data: Task) -> None` - **GDK Hook:** Implement this to send the final result of an A2A task back to the external system.
128
+ - `_send_error_to_external(external_request_context: Dict[str, Any], error_data: JSONRPCError) -> None` - **GDK Hook:** Implement this to send an error notification back to the external system.
129
+ - `_send_update_to_external(external_request_context: Dict[str, Any], event_data: Union[TaskStatusUpdateEvent, TaskArtifactUpdateEvent], is_final_chunk_of_update: bool) -> None` - **GDK Hook:** (Optional) Implement this to handle streaming intermediate updates (e.g., "Agent is thinking...") back to the external system.
130
+ - `cleanup() -> None` - **GDK Hook:** Perform any final cleanup before the component is destroyed. Always call `super().cleanup()`.
131
+
132
+ **Usage Examples:**
133
+ ```python
134
+ # In your gateway's component.py (e.g., src/my_slack_gateway/component.py)
135
+ # This is a conceptual example of the implementation flow.
136
+
137
+ from typing import Any, Dict, List, Optional, Tuple
138
+ from solace_agent_mesh.gateway.base.component import BaseGatewayComponent
139
+ from solace_agent_mesh.common.types import Part as A2APart, TextPart, Task
140
+
141
+ class MySlackGatewayComponent(BaseGatewayComponent):
142
+ def __init__(self, **kwargs: Any):
143
+ super().__init__(**kwargs)
144
+ # Retrieve config defined in the App class
145
+ self.slack_token = self.get_config("slack_bot_token")
146
+ self.default_agent = self.get_config("default_target_agent")
147
+ # self.slack_client = SlackClient(token=self.slack_token)
@@ -0,0 +1,177 @@
1
+
2
+
3
+ log:
4
+ stdout_log_level: INFO
5
+ log_file_level: DEBUG
6
+ log_file: webui_app.log
7
+
8
+
9
+ !include ../shared_config.yaml
10
+
11
+ apps:
12
+ - name: a2a_webui_app
13
+ app_base_path: .
14
+ app_module: solace_agent_mesh.gateway.http_sse.app
15
+
16
+ broker:
17
+ <<: *broker_connection
18
+
19
+ app_config:
20
+ namespace: ${NAMESPACE}
21
+ session_secret_key: "${SESSION_SECRET_KEY}"
22
+
23
+ model: *general_model
24
+ artifact_service: *default_artifact_service
25
+ session_service: __SESSION_SERVICE__
26
+ gateway_id: ${WEBUI_GATEWAY_ID}
27
+ fastapi_host: ${FASTAPI_HOST}
28
+ fastapi_port: ${FASTAPI_PORT}
29
+ cors_allowed_origins:
30
+ - "http://localhost:3000"
31
+ - "http://127.0.0.1:3000"
32
+
33
+ enable_embed_resolution: ${ENABLE_EMBED_RESOLUTION} # Enable late-stage resolution
34
+ gateway_artifact_content_limit_bytes: ${GATEWAY_ARTIFACT_LIMIT_BYTES, 10000000} # Max size for late-stage embeds
35
+ sse_max_queue_size: ${SSE_MAX_QUEUE_SIZE, 200} # Max size of SSE connection queues
36
+
37
+ system_purpose: >
38
+ The system is an AI Chatbot with agentic capabilities.
39
+ It will use the agents available to provide information,
40
+ reasoning and general assistance for the users in this system.
41
+ **Always return useful artifacts and files that you create to the user.**
42
+ Provide a status update before each tool call.
43
+ Your external name is Agent Mesh.
44
+
45
+ response_format: >
46
+ Responses should be clear, concise, and professionally toned.
47
+ Format responses to the user in Markdown using appropriate formatting.
48
+
49
+ # --- Frontend Config Passthrough ---
50
+ frontend_welcome_message: __FRONTEND_WELCOME_MESSAGE__
51
+ frontend_bot_name: __FRONTEND_BOT_NAME__
52
+ frontend_collect_feedback: __FRONTEND_COLLECT_FEEDBACK__
53
+ frontend_logo_url: __FRONTEND_LOGO_URL__
54
+
55
+ # --- Frontend Feature Flags ---
56
+ # Uncomment to control speech features in the UI
57
+ frontend_feature_enablement:
58
+ # speechToText: true # Set to false to hide Speech-to-Text settings & microphone
59
+ # textToSpeech: true # Set to false to hide Text-to-Speech settings & speaker button
60
+ # projects: true
61
+ # promptLibrary: true
62
+ background_tasks: true # Enable background task execution
63
+
64
+ # --- Background Tasks Configuration ---
65
+ background_tasks:
66
+ default_timeout_ms: 3600000 # Default: 1 hour (3600000ms)
67
+
68
+ # --- Speech Configuration (STT/TTS) ---
69
+ speech:
70
+ # stt:
71
+ # provider: openai
72
+ # url: "https://api.openai.com/v1/audio/transcriptions"
73
+ # api_key: "${OPENAI_API_KEY}"
74
+ # model: "whisper-1"
75
+ stt:
76
+ provider: azure
77
+ azure:
78
+ api_key: "${AZURE_SPEECH_KEY}"
79
+ region: "${AZURE_SPEECH_REGION}"
80
+ language: en-US
81
+
82
+ # Text-to-Speech Configuration
83
+ tts:
84
+ provider: ${TTS_PROVIDER, gemini} # "gemini", "azure", or "polly" (can be overridden by UI)
85
+
86
+ # Azure Neural Voices Configuration
87
+ azure:
88
+ api_key: "${AZURE_SPEECH_KEY}"
89
+ region: "${AZURE_SPEECH_REGION}"
90
+ default_voice: "en-US-Andrew:DragonHDLatestNeural"
91
+ voices:
92
+ # DragonHD Latest Neural Voices (Highest Quality)
93
+ - "en-US-Ava:DragonHDLatestNeural"
94
+ - "en-US-Ava3:DragonHDLatestNeural"
95
+ - "en-US-Adam:DragonHDLatestNeural"
96
+ - "en-US-Alloy:DragonHDLatestNeural"
97
+ - "en-US-Andrew:DragonHDLatestNeural"
98
+ - "en-US-Andrew2:DragonHDLatestNeural"
99
+ - "en-US-Andrew3:DragonHDLatestNeural"
100
+ - "en-US-Aria:DragonHDLatestNeural"
101
+ - "en-US-Brian:DragonHDLatestNeural"
102
+ - "en-US-Davis:DragonHDLatestNeural"
103
+ - "en-US-Emma:DragonHDLatestNeural"
104
+ - "en-US-Emma2:DragonHDLatestNeural"
105
+ - "en-US-Jenny:DragonHDLatestNeural"
106
+ - "en-US-MultiTalker-Ava-Andrew:DragonHDLatestNeural"
107
+ - "en-US-Nova:DragonHDLatestNeural"
108
+ - "en-US-Phoebe:DragonHDLatestNeural"
109
+ - "en-US-Serena:DragonHDLatestNeural"
110
+ - "en-US-Steffan:DragonHDLatestNeural"
111
+ # Standard Neural Voices
112
+ - "en-US-JennyNeural"
113
+ - "en-US-GuyNeural"
114
+ - "en-US-AriaNeural"
115
+ - "en-US-DavisNeural"
116
+ - "en-US-JaneNeural"
117
+ - "en-US-JasonNeural"
118
+ - "en-US-NancyNeural"
119
+ - "en-US-TonyNeural"
120
+ - "en-GB-LibbyNeural"
121
+ - "en-GB-RyanNeural"
122
+ - "en-GB-SoniaNeural"
123
+ - "en-AU-NatashaNeural"
124
+ - "en-AU-WilliamNeural"
125
+
126
+ # Google Gemini Configuration
127
+ gemini:
128
+ api_key: "${GEMINI_API_KEY}"
129
+ model: "gemini-2.5-flash-preview-tts"
130
+ default_voice: "Kore"
131
+ language: "en-US"
132
+ voices:
133
+ - "Kore"
134
+ - "Puck"
135
+ - "Zephyr"
136
+ - "Charon"
137
+ - "Fenrir"
138
+ - "Leda"
139
+ - "Aoede"
140
+ - "Callirhoe"
141
+ - "Umbriel"
142
+ - "Enceladus"
143
+ - "Iapetus"
144
+ - "Erinome"
145
+ - "Algieba"
146
+ - "Despina"
147
+ - "Algenib"
148
+ - "Achernar"
149
+ - "Schedar"
150
+ - "Gacrux"
151
+ - "Pulcherrima"
152
+ - "Achird"
153
+ - "Zubenelgenubi"
154
+ - "Vindemiatrix"
155
+ - "Sadachbia"
156
+ - "Sadaltager"
157
+ - "Sulafat"
158
+ - "Autonoe"
159
+ - "Laomedeia"
160
+ - "Orus"
161
+ - "Rasalgethi"
162
+ - "Alnilam"
163
+
164
+ # Frontend Speech Tab Default Settings (optional)
165
+ speechTab:
166
+ advancedMode: false
167
+ speechToText:
168
+ speechToText: true
169
+ engineSTT: "external" # Use external for better quality
170
+ languageSTT: "en-US"
171
+ textToSpeech:
172
+ textToSpeech: true
173
+ engineTTS: "external" # Use external for better quality
174
+ voice: "Kore"
175
+ playbackRate: 1.0
176
+ cacheTTS: true
177
+