solace-agent-mesh 0.2.3__py3-none-any.whl → 1.0.1__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 (518) hide show
  1. solace_agent_mesh/agent/adk/adk_llm.txt +93 -0
  2. solace_agent_mesh/agent/adk/app_llm_agent.py +26 -0
  3. solace_agent_mesh/agent/adk/callbacks.py +1694 -0
  4. solace_agent_mesh/agent/adk/filesystem_artifact_service.py +381 -0
  5. solace_agent_mesh/agent/adk/invocation_monitor.py +295 -0
  6. solace_agent_mesh/agent/adk/models/lite_llm.py +872 -0
  7. solace_agent_mesh/agent/adk/models/models_llm.txt +94 -0
  8. solace_agent_mesh/agent/adk/runner.py +353 -0
  9. solace_agent_mesh/agent/adk/services.py +240 -0
  10. solace_agent_mesh/agent/adk/setup.py +751 -0
  11. solace_agent_mesh/agent/adk/stream_parser.py +214 -0
  12. solace_agent_mesh/agent/adk/tool_wrapper.py +139 -0
  13. solace_agent_mesh/agent/agent_llm.txt +41 -0
  14. solace_agent_mesh/agent/protocol/event_handlers.py +1469 -0
  15. solace_agent_mesh/agent/protocol/protocol_llm.txt +21 -0
  16. solace_agent_mesh/agent/sac/app.py +640 -0
  17. solace_agent_mesh/agent/sac/component.py +3388 -0
  18. solace_agent_mesh/agent/sac/patch_adk.py +111 -0
  19. solace_agent_mesh/agent/sac/sac_llm.txt +105 -0
  20. solace_agent_mesh/agent/sac/task_execution_context.py +176 -0
  21. solace_agent_mesh/agent/testing/__init__.py +3 -0
  22. solace_agent_mesh/agent/testing/debug_utils.py +135 -0
  23. solace_agent_mesh/agent/testing/testing_llm.txt +90 -0
  24. solace_agent_mesh/agent/tools/__init__.py +14 -0
  25. solace_agent_mesh/agent/tools/audio_tools.py +1622 -0
  26. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +1954 -0
  27. solace_agent_mesh/agent/tools/builtin_data_analysis_tools.py +238 -0
  28. solace_agent_mesh/agent/tools/general_agent_tools.py +569 -0
  29. solace_agent_mesh/agent/tools/image_tools.py +1184 -0
  30. solace_agent_mesh/agent/tools/peer_agent_tool.py +289 -0
  31. solace_agent_mesh/agent/tools/registry.py +36 -0
  32. solace_agent_mesh/agent/tools/test_tools.py +135 -0
  33. solace_agent_mesh/agent/tools/tool_definition.py +45 -0
  34. solace_agent_mesh/agent/tools/tools_llm.txt +104 -0
  35. solace_agent_mesh/agent/tools/web_tools.py +381 -0
  36. solace_agent_mesh/agent/utils/artifact_helpers.py +927 -0
  37. solace_agent_mesh/agent/utils/config_parser.py +47 -0
  38. solace_agent_mesh/agent/utils/context_helpers.py +60 -0
  39. solace_agent_mesh/agent/utils/utils_llm.txt +153 -0
  40. solace_agent_mesh/assets/docs/404.html +16 -0
  41. solace_agent_mesh/assets/docs/assets/css/styles.906a1503.css +1 -0
  42. solace_agent_mesh/assets/docs/assets/images/Solace_AI_Framework_With_Broker-85f0a306a9bcdd20b390b7a949f6d862.png +0 -0
  43. solace_agent_mesh/assets/docs/assets/images/sac-flows-80d5b603c6aafd33e87945680ce0abf3.png +0 -0
  44. solace_agent_mesh/assets/docs/assets/images/sac_parts_of_a_component-cb3d0424b1d0c17734c5435cca6b4082.png +0 -0
  45. solace_agent_mesh/assets/docs/assets/js/04989206.674a8007.js +1 -0
  46. solace_agent_mesh/assets/docs/assets/js/0e682baa.79f0ab22.js +1 -0
  47. solace_agent_mesh/assets/docs/assets/js/1001.0182a8bd.js +1 -0
  48. solace_agent_mesh/assets/docs/assets/js/1023fc19.015679ca.js +1 -0
  49. solace_agent_mesh/assets/docs/assets/js/1039.0bd46aa1.js +1 -0
  50. solace_agent_mesh/assets/docs/assets/js/149.b797a808.js +1 -0
  51. solace_agent_mesh/assets/docs/assets/js/1523c6b4.91c7bc01.js +1 -0
  52. solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js +2 -0
  53. solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js.LICENSE.txt +9 -0
  54. solace_agent_mesh/assets/docs/assets/js/166ab619.7d97ccaf.js +1 -0
  55. solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js +2 -0
  56. solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js.LICENSE.txt +7 -0
  57. solace_agent_mesh/assets/docs/assets/js/1c6e87d2.23bccffb.js +1 -0
  58. solace_agent_mesh/assets/docs/assets/js/2130.ab9fd314.js +1 -0
  59. solace_agent_mesh/assets/docs/assets/js/21ceee5f.614fa8dd.js +1 -0
  60. solace_agent_mesh/assets/docs/assets/js/2237.5e477fc6.js +1 -0
  61. solace_agent_mesh/assets/docs/assets/js/2334.622a6395.js +1 -0
  62. solace_agent_mesh/assets/docs/assets/js/2a9cab12.8909df92.js +1 -0
  63. solace_agent_mesh/assets/docs/assets/js/3219.adc1d663.js +1 -0
  64. solace_agent_mesh/assets/docs/assets/js/332e10b5.7a103f42.js +1 -0
  65. solace_agent_mesh/assets/docs/assets/js/3624.b524e433.js +1 -0
  66. solace_agent_mesh/assets/docs/assets/js/375.708d48db.js +1 -0
  67. solace_agent_mesh/assets/docs/assets/js/3834.b6cd790e.js +1 -0
  68. solace_agent_mesh/assets/docs/assets/js/3d406171.f722eaf5.js +1 -0
  69. solace_agent_mesh/assets/docs/assets/js/4250.95455b28.js +1 -0
  70. solace_agent_mesh/assets/docs/assets/js/42b3f8d8.36090198.js +1 -0
  71. solace_agent_mesh/assets/docs/assets/js/4356.d169ab5b.js +1 -0
  72. solace_agent_mesh/assets/docs/assets/js/442a8107.5ba94b65.js +1 -0
  73. solace_agent_mesh/assets/docs/assets/js/4458.518e66fa.js +1 -0
  74. solace_agent_mesh/assets/docs/assets/js/4488.c7cc3442.js +1 -0
  75. solace_agent_mesh/assets/docs/assets/js/4494.6ee23046.js +1 -0
  76. solace_agent_mesh/assets/docs/assets/js/4855.fc4444b6.js +1 -0
  77. solace_agent_mesh/assets/docs/assets/js/4866.22daefc0.js +1 -0
  78. solace_agent_mesh/assets/docs/assets/js/4950.ca4caeda.js +1 -0
  79. solace_agent_mesh/assets/docs/assets/js/4c2787c2.66ee00e9.js +1 -0
  80. solace_agent_mesh/assets/docs/assets/js/5388.7a136447.js +1 -0
  81. solace_agent_mesh/assets/docs/assets/js/55f47984.c484bf96.js +1 -0
  82. solace_agent_mesh/assets/docs/assets/js/5607.081356f8.js +1 -0
  83. solace_agent_mesh/assets/docs/assets/js/5864.b0d0e9de.js +1 -0
  84. solace_agent_mesh/assets/docs/assets/js/5b4258a4.bda20761.js +1 -0
  85. solace_agent_mesh/assets/docs/assets/js/5e95c892.558d5167.js +1 -0
  86. solace_agent_mesh/assets/docs/assets/js/6143.0a1464c9.js +1 -0
  87. solace_agent_mesh/assets/docs/assets/js/6395.e9c73649.js +1 -0
  88. solace_agent_mesh/assets/docs/assets/js/6796.51d2c9b7.js +1 -0
  89. solace_agent_mesh/assets/docs/assets/js/6976.379be23b.js +1 -0
  90. solace_agent_mesh/assets/docs/assets/js/6978.ee0b945c.js +1 -0
  91. solace_agent_mesh/assets/docs/assets/js/7040.cb436723.js +1 -0
  92. solace_agent_mesh/assets/docs/assets/js/7195.412f418a.js +1 -0
  93. solace_agent_mesh/assets/docs/assets/js/7280.3fb73bdb.js +1 -0
  94. solace_agent_mesh/assets/docs/assets/js/768e31b0.a12673db.js +1 -0
  95. solace_agent_mesh/assets/docs/assets/js/7845.e33e7c4c.js +1 -0
  96. solace_agent_mesh/assets/docs/assets/js/7900.69516146.js +1 -0
  97. solace_agent_mesh/assets/docs/assets/js/8356.8a379c04.js +1 -0
  98. solace_agent_mesh/assets/docs/assets/js/85387663.6bf41934.js +1 -0
  99. solace_agent_mesh/assets/docs/assets/js/8567.4732c6b7.js +1 -0
  100. solace_agent_mesh/assets/docs/assets/js/8573.cb04eda5.js +1 -0
  101. solace_agent_mesh/assets/docs/assets/js/8577.1d54e766.js +1 -0
  102. solace_agent_mesh/assets/docs/assets/js/8591.d7c16be6.js +2 -0
  103. solace_agent_mesh/assets/docs/assets/js/8591.d7c16be6.js.LICENSE.txt +61 -0
  104. solace_agent_mesh/assets/docs/assets/js/8709.7ecd4047.js +1 -0
  105. solace_agent_mesh/assets/docs/assets/js/8731.49e930c2.js +1 -0
  106. solace_agent_mesh/assets/docs/assets/js/8908.f9d1b506.js +1 -0
  107. solace_agent_mesh/assets/docs/assets/js/9157.b4093d07.js +1 -0
  108. solace_agent_mesh/assets/docs/assets/js/9278.a4fd875d.js +1 -0
  109. solace_agent_mesh/assets/docs/assets/js/945fb41e.74d728aa.js +1 -0
  110. solace_agent_mesh/assets/docs/assets/js/9616.b75c2f6d.js +1 -0
  111. solace_agent_mesh/assets/docs/assets/js/9793.c6d16376.js +1 -0
  112. solace_agent_mesh/assets/docs/assets/js/9eff14a2.1bf8f61c.js +1 -0
  113. solace_agent_mesh/assets/docs/assets/js/a3a92b25.26ca071f.js +1 -0
  114. solace_agent_mesh/assets/docs/assets/js/a7bd4aaa.2204d2f7.js +1 -0
  115. solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js +1 -0
  116. solace_agent_mesh/assets/docs/assets/js/aba21aa0.c42a534c.js +1 -0
  117. solace_agent_mesh/assets/docs/assets/js/aba87c2f.d3e2dcc3.js +1 -0
  118. solace_agent_mesh/assets/docs/assets/js/ae4415af.8e279b5d.js +1 -0
  119. solace_agent_mesh/assets/docs/assets/js/b7006a3a.40b10c9d.js +1 -0
  120. solace_agent_mesh/assets/docs/assets/js/bac0be12.f50d9bac.js +1 -0
  121. solace_agent_mesh/assets/docs/assets/js/bb2ef573.207e6990.js +1 -0
  122. solace_agent_mesh/assets/docs/assets/js/c2c06897.63b76e9e.js +1 -0
  123. solace_agent_mesh/assets/docs/assets/js/cc969b05.954186d4.js +1 -0
  124. solace_agent_mesh/assets/docs/assets/js/cd3d4052.ca6eed8c.js +1 -0
  125. solace_agent_mesh/assets/docs/assets/js/ced92a13.fb92e7ca.js +1 -0
  126. solace_agent_mesh/assets/docs/assets/js/cee5d587.f5b73ca1.js +1 -0
  127. solace_agent_mesh/assets/docs/assets/js/f284c35a.ecc3d195.js +1 -0
  128. solace_agent_mesh/assets/docs/assets/js/f897a61a.2c2e152c.js +1 -0
  129. solace_agent_mesh/assets/docs/assets/js/fbfa3e75.aca209c9.js +1 -0
  130. solace_agent_mesh/assets/docs/assets/js/main.7ed3319f.js +2 -0
  131. solace_agent_mesh/assets/docs/assets/js/main.7ed3319f.js.LICENSE.txt +81 -0
  132. solace_agent_mesh/assets/docs/assets/js/runtime~main.d9520ae2.js +1 -0
  133. solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +128 -0
  134. solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +91 -0
  135. solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +201 -0
  136. solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +91 -0
  137. solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +55 -0
  138. solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +82 -0
  139. solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +60 -0
  140. solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +48 -0
  141. solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +54 -0
  142. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +17 -0
  143. solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +45 -0
  144. solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +76 -0
  145. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +150 -0
  146. solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +54 -0
  147. solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +267 -0
  148. solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +136 -0
  149. solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +116 -0
  150. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +80 -0
  151. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +164 -0
  152. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +57 -0
  153. solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +72 -0
  154. solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +102 -0
  155. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +99 -0
  156. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +90 -0
  157. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +107 -0
  158. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +152 -0
  159. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +103 -0
  160. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +170 -0
  161. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +200 -0
  162. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +54 -0
  163. solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +69 -0
  164. solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +59 -0
  165. solace_agent_mesh/assets/docs/img/Solace_AI_Framework_README.png +0 -0
  166. solace_agent_mesh/assets/docs/img/Solace_AI_Framework_With_Broker.png +0 -0
  167. solace_agent_mesh/assets/docs/img/logo.png +0 -0
  168. solace_agent_mesh/assets/docs/img/sac-flows.png +0 -0
  169. solace_agent_mesh/assets/docs/img/sac_parts_of_a_component.png +0 -0
  170. solace_agent_mesh/assets/docs/img/solace-logo.png +0 -0
  171. solace_agent_mesh/assets/docs/lunr-index-1753813536522.json +1 -0
  172. solace_agent_mesh/assets/docs/lunr-index.json +1 -0
  173. solace_agent_mesh/assets/docs/search-doc-1753813536522.json +1 -0
  174. solace_agent_mesh/assets/docs/search-doc.json +1 -0
  175. solace_agent_mesh/assets/docs/sitemap.xml +1 -0
  176. solace_agent_mesh/cli/__init__.py +1 -1
  177. solace_agent_mesh/cli/commands/add_cmd/__init__.py +15 -0
  178. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +250 -0
  179. solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +659 -0
  180. solace_agent_mesh/cli/commands/add_cmd/gateway_cmd.py +322 -0
  181. solace_agent_mesh/cli/commands/add_cmd/web_add_agent_step.py +93 -0
  182. solace_agent_mesh/cli/commands/add_cmd/web_add_gateway_step.py +118 -0
  183. solace_agent_mesh/cli/commands/docs_cmd.py +57 -0
  184. solace_agent_mesh/cli/commands/eval_cmd.py +64 -0
  185. solace_agent_mesh/cli/commands/init_cmd/__init__.py +404 -0
  186. solace_agent_mesh/cli/commands/init_cmd/broker_step.py +201 -0
  187. solace_agent_mesh/cli/commands/init_cmd/directory_step.py +28 -0
  188. solace_agent_mesh/cli/commands/init_cmd/env_step.py +197 -0
  189. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +365 -0
  190. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +387 -0
  191. solace_agent_mesh/cli/commands/init_cmd/project_files_step.py +38 -0
  192. solace_agent_mesh/cli/commands/init_cmd/web_init_step.py +110 -0
  193. solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +183 -0
  194. solace_agent_mesh/cli/commands/plugin_cmd/__init__.py +18 -0
  195. solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +372 -0
  196. solace_agent_mesh/cli/commands/plugin_cmd/build_cmd.py +86 -0
  197. solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +138 -0
  198. solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +309 -0
  199. solace_agent_mesh/cli/commands/plugin_cmd/official_registry.py +174 -0
  200. solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +305 -0
  201. solace_agent_mesh/cli/commands/run_cmd.py +158 -0
  202. solace_agent_mesh/cli/main.py +17 -294
  203. solace_agent_mesh/cli/utils.py +135 -204
  204. solace_agent_mesh/client/webui/frontend/static/assets/authCallback-DvlO62me.js +1 -0
  205. solace_agent_mesh/client/webui/frontend/static/assets/client-bp6u3qVZ.js +49 -0
  206. solace_agent_mesh/client/webui/frontend/static/assets/favicon-BLgzUch9.ico +0 -0
  207. solace_agent_mesh/client/webui/frontend/static/assets/main-An0a5j5k.js +663 -0
  208. solace_agent_mesh/client/webui/frontend/static/assets/main-Bu5-4Bac.css +1 -0
  209. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +14 -0
  210. solace_agent_mesh/client/webui/frontend/static/index.html +15 -0
  211. solace_agent_mesh/common/__init__.py +1 -0
  212. solace_agent_mesh/common/a2a_protocol.py +564 -0
  213. solace_agent_mesh/common/agent_registry.py +42 -0
  214. solace_agent_mesh/common/client/__init__.py +4 -0
  215. solace_agent_mesh/common/client/card_resolver.py +21 -0
  216. solace_agent_mesh/common/client/client.py +85 -0
  217. solace_agent_mesh/common/client/client_llm.txt +133 -0
  218. solace_agent_mesh/common/common_llm.txt +144 -0
  219. solace_agent_mesh/common/constants.py +1 -14
  220. solace_agent_mesh/common/middleware/__init__.py +12 -0
  221. solace_agent_mesh/common/middleware/config_resolver.py +130 -0
  222. solace_agent_mesh/common/middleware/middleware_llm.txt +174 -0
  223. solace_agent_mesh/common/middleware/registry.py +125 -0
  224. solace_agent_mesh/common/server/__init__.py +4 -0
  225. solace_agent_mesh/common/server/server.py +122 -0
  226. solace_agent_mesh/common/server/server_llm.txt +169 -0
  227. solace_agent_mesh/common/server/task_manager.py +291 -0
  228. solace_agent_mesh/common/server/utils.py +28 -0
  229. solace_agent_mesh/common/services/__init__.py +4 -0
  230. solace_agent_mesh/common/services/employee_service.py +162 -0
  231. solace_agent_mesh/common/services/identity_service.py +129 -0
  232. solace_agent_mesh/common/services/providers/__init__.py +4 -0
  233. solace_agent_mesh/common/services/providers/local_file_identity_service.py +148 -0
  234. solace_agent_mesh/common/services/providers/providers_llm.txt +113 -0
  235. solace_agent_mesh/common/services/services_llm.txt +132 -0
  236. solace_agent_mesh/common/types.py +411 -0
  237. solace_agent_mesh/common/utils/__init__.py +7 -0
  238. solace_agent_mesh/common/utils/asyncio_macos_fix.py +86 -0
  239. solace_agent_mesh/common/utils/embeds/__init__.py +33 -0
  240. solace_agent_mesh/common/utils/embeds/constants.py +55 -0
  241. solace_agent_mesh/common/utils/embeds/converter.py +452 -0
  242. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +124 -0
  243. solace_agent_mesh/common/utils/embeds/evaluators.py +394 -0
  244. solace_agent_mesh/common/utils/embeds/modifiers.py +816 -0
  245. solace_agent_mesh/common/utils/embeds/resolver.py +865 -0
  246. solace_agent_mesh/common/utils/embeds/types.py +14 -0
  247. solace_agent_mesh/common/utils/in_memory_cache.py +108 -0
  248. solace_agent_mesh/common/utils/log_formatters.py +44 -0
  249. solace_agent_mesh/common/utils/mime_helpers.py +106 -0
  250. solace_agent_mesh/common/utils/push_notification_auth.py +134 -0
  251. solace_agent_mesh/common/utils/utils_llm.txt +67 -0
  252. solace_agent_mesh/config_portal/backend/common.py +66 -24
  253. solace_agent_mesh/config_portal/backend/plugin_catalog/constants.py +23 -0
  254. solace_agent_mesh/config_portal/backend/plugin_catalog/models.py +49 -0
  255. solace_agent_mesh/config_portal/backend/plugin_catalog/registry_manager.py +160 -0
  256. solace_agent_mesh/config_portal/backend/plugin_catalog/scraper.py +525 -0
  257. solace_agent_mesh/config_portal/backend/plugin_catalog_server.py +216 -0
  258. solace_agent_mesh/config_portal/backend/server.py +550 -140
  259. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-DNxCwAGB.js +48 -0
  260. solace_agent_mesh/config_portal/frontend/static/client/assets/components-B7lKcHVY.js +140 -0
  261. solace_agent_mesh/config_portal/frontend/static/client/assets/{entry.client-DX1misIU.js → entry.client-CEumGClk.js} +3 -3
  262. solace_agent_mesh/config_portal/frontend/static/client/assets/index-DSo1AH_7.js +68 -0
  263. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-d2b54a97.js +1 -0
  264. solace_agent_mesh/config_portal/frontend/static/client/assets/{root-BApq5dPK.js → root-C4XmHinv.js} +2 -2
  265. solace_agent_mesh/config_portal/frontend/static/client/assets/root-DxRwaWiE.css +1 -0
  266. solace_agent_mesh/config_portal/frontend/static/client/index.html +3 -3
  267. solace_agent_mesh/core_a2a/__init__.py +1 -0
  268. solace_agent_mesh/core_a2a/core_a2a_llm.txt +88 -0
  269. solace_agent_mesh/core_a2a/service.py +331 -0
  270. solace_agent_mesh/evaluation/config_loader.py +657 -0
  271. solace_agent_mesh/evaluation/evaluator.py +667 -0
  272. solace_agent_mesh/evaluation/message_organizer.py +568 -0
  273. solace_agent_mesh/evaluation/report/benchmark_info.html +35 -0
  274. solace_agent_mesh/evaluation/report/chart_section.html +141 -0
  275. solace_agent_mesh/evaluation/report/detailed_breakdown.html +28 -0
  276. solace_agent_mesh/evaluation/report/modal.html +59 -0
  277. solace_agent_mesh/evaluation/report/modal_chart_functions.js +411 -0
  278. solace_agent_mesh/evaluation/report/modal_script.js +296 -0
  279. solace_agent_mesh/evaluation/report/modal_styles.css +340 -0
  280. solace_agent_mesh/evaluation/report/performance_metrics_styles.css +93 -0
  281. solace_agent_mesh/evaluation/report/templates/footer.html +2 -0
  282. solace_agent_mesh/evaluation/report/templates/header.html +340 -0
  283. solace_agent_mesh/evaluation/report_data_processor.py +972 -0
  284. solace_agent_mesh/evaluation/report_generator.py +613 -0
  285. solace_agent_mesh/evaluation/run.py +613 -0
  286. solace_agent_mesh/evaluation/subscriber.py +872 -0
  287. solace_agent_mesh/evaluation/summary_builder.py +775 -0
  288. solace_agent_mesh/evaluation/test_case_loader.py +714 -0
  289. solace_agent_mesh/gateway/base/__init__.py +1 -0
  290. solace_agent_mesh/gateway/base/app.py +266 -0
  291. solace_agent_mesh/gateway/base/base_llm.txt +119 -0
  292. solace_agent_mesh/gateway/base/component.py +1542 -0
  293. solace_agent_mesh/gateway/base/task_context.py +74 -0
  294. solace_agent_mesh/gateway/gateway_llm.txt +125 -0
  295. solace_agent_mesh/gateway/http_sse/app.py +190 -0
  296. solace_agent_mesh/gateway/http_sse/component.py +1602 -0
  297. solace_agent_mesh/gateway/http_sse/components/__init__.py +7 -0
  298. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +65 -0
  299. solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py +108 -0
  300. solace_agent_mesh/gateway/http_sse/dependencies.py +316 -0
  301. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +63 -0
  302. solace_agent_mesh/gateway/http_sse/main.py +442 -0
  303. solace_agent_mesh/gateway/http_sse/routers/__init__.py +4 -0
  304. solace_agent_mesh/gateway/http_sse/routers/agents.py +41 -0
  305. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +821 -0
  306. solace_agent_mesh/gateway/http_sse/routers/auth.py +212 -0
  307. solace_agent_mesh/gateway/http_sse/routers/config.py +55 -0
  308. solace_agent_mesh/gateway/http_sse/routers/people.py +69 -0
  309. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +37 -0
  310. solace_agent_mesh/gateway/http_sse/routers/sessions.py +80 -0
  311. solace_agent_mesh/gateway/http_sse/routers/sse.py +138 -0
  312. solace_agent_mesh/gateway/http_sse/routers/tasks.py +294 -0
  313. solace_agent_mesh/gateway/http_sse/routers/users.py +59 -0
  314. solace_agent_mesh/gateway/http_sse/routers/visualization.py +1131 -0
  315. solace_agent_mesh/gateway/http_sse/services/__init__.py +4 -0
  316. solace_agent_mesh/gateway/http_sse/services/agent_service.py +69 -0
  317. solace_agent_mesh/gateway/http_sse/services/people_service.py +158 -0
  318. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +179 -0
  319. solace_agent_mesh/gateway/http_sse/services/task_service.py +121 -0
  320. solace_agent_mesh/gateway/http_sse/session_manager.py +187 -0
  321. solace_agent_mesh/gateway/http_sse/sse_manager.py +328 -0
  322. solace_agent_mesh/llm.txt +228 -0
  323. solace_agent_mesh/llm_detail.txt +2835 -0
  324. solace_agent_mesh/templates/agent_template.yaml +53 -0
  325. solace_agent_mesh/templates/eval_backend_template.yaml +54 -0
  326. solace_agent_mesh/templates/gateway_app_template.py +73 -0
  327. solace_agent_mesh/templates/gateway_component_template.py +400 -0
  328. solace_agent_mesh/templates/gateway_config_template.yaml +43 -0
  329. solace_agent_mesh/templates/main_orchestrator.yaml +55 -0
  330. solace_agent_mesh/templates/plugin_agent_config_template.yaml +122 -0
  331. solace_agent_mesh/templates/plugin_custom_config_template.yaml +27 -0
  332. solace_agent_mesh/templates/plugin_custom_template.py +10 -0
  333. solace_agent_mesh/templates/plugin_gateway_config_template.yaml +63 -0
  334. solace_agent_mesh/templates/plugin_pyproject_template.toml +33 -0
  335. solace_agent_mesh/templates/plugin_readme_template.md +34 -0
  336. solace_agent_mesh/templates/plugin_tools_template.py +224 -0
  337. solace_agent_mesh/templates/shared_config.yaml +66 -0
  338. solace_agent_mesh/templates/templates_llm.txt +147 -0
  339. solace_agent_mesh/templates/webui.yaml +53 -0
  340. solace_agent_mesh-1.0.1.dist-info/METADATA +432 -0
  341. solace_agent_mesh-1.0.1.dist-info/RECORD +359 -0
  342. solace_agent_mesh-1.0.1.dist-info/entry_points.txt +3 -0
  343. {solace_agent_mesh-0.2.3.dist-info → solace_agent_mesh-1.0.1.dist-info}/licenses/LICENSE +1 -1
  344. solace_agent_mesh/agents/base_agent_component.py +0 -226
  345. solace_agent_mesh/agents/global/actions/agent_state_change.py +0 -54
  346. solace_agent_mesh/agents/global/actions/clear_history.py +0 -32
  347. solace_agent_mesh/agents/global/actions/convert_file_to_markdown.py +0 -160
  348. solace_agent_mesh/agents/global/actions/create_file.py +0 -70
  349. solace_agent_mesh/agents/global/actions/error_action.py +0 -45
  350. solace_agent_mesh/agents/global/actions/plantuml_diagram.py +0 -163
  351. solace_agent_mesh/agents/global/actions/plotly_graph.py +0 -152
  352. solace_agent_mesh/agents/global/actions/retrieve_file.py +0 -51
  353. solace_agent_mesh/agents/global/global_agent_component.py +0 -38
  354. solace_agent_mesh/agents/image_processing/actions/create_image.py +0 -75
  355. solace_agent_mesh/agents/image_processing/actions/describe_image.py +0 -115
  356. solace_agent_mesh/agents/image_processing/image_processing_agent_component.py +0 -23
  357. solace_agent_mesh/agents/slack/__init__.py +0 -1
  358. solace_agent_mesh/agents/slack/actions/__init__.py +0 -1
  359. solace_agent_mesh/agents/slack/actions/post_message.py +0 -177
  360. solace_agent_mesh/agents/slack/slack_agent_component.py +0 -59
  361. solace_agent_mesh/agents/web_request/actions/do_image_search.py +0 -84
  362. solace_agent_mesh/agents/web_request/actions/do_news_search.py +0 -47
  363. solace_agent_mesh/agents/web_request/actions/do_suggestion_search.py +0 -34
  364. solace_agent_mesh/agents/web_request/actions/do_web_request.py +0 -135
  365. solace_agent_mesh/agents/web_request/actions/download_file.py +0 -69
  366. solace_agent_mesh/agents/web_request/web_request_agent_component.py +0 -33
  367. solace_agent_mesh/assets/web-visualizer/assets/index-D0qORgkg.css +0 -1
  368. solace_agent_mesh/assets/web-visualizer/assets/index-DnDr1pnu.js +0 -109
  369. solace_agent_mesh/assets/web-visualizer/index.html +0 -14
  370. solace_agent_mesh/assets/web-visualizer/vite.svg +0 -1
  371. solace_agent_mesh/cli/commands/add/__init__.py +0 -3
  372. solace_agent_mesh/cli/commands/add/add.py +0 -88
  373. solace_agent_mesh/cli/commands/add/agent.py +0 -110
  374. solace_agent_mesh/cli/commands/add/copy_from_plugin.py +0 -92
  375. solace_agent_mesh/cli/commands/add/gateway.py +0 -374
  376. solace_agent_mesh/cli/commands/build.py +0 -670
  377. solace_agent_mesh/cli/commands/chat/__init__.py +0 -3
  378. solace_agent_mesh/cli/commands/chat/chat.py +0 -361
  379. solace_agent_mesh/cli/commands/config.py +0 -29
  380. solace_agent_mesh/cli/commands/init/__init__.py +0 -3
  381. solace_agent_mesh/cli/commands/init/ai_provider_step.py +0 -93
  382. solace_agent_mesh/cli/commands/init/broker_step.py +0 -99
  383. solace_agent_mesh/cli/commands/init/builtin_agent_step.py +0 -83
  384. solace_agent_mesh/cli/commands/init/check_if_already_done.py +0 -13
  385. solace_agent_mesh/cli/commands/init/create_config_file_step.py +0 -65
  386. solace_agent_mesh/cli/commands/init/create_other_project_files_step.py +0 -147
  387. solace_agent_mesh/cli/commands/init/file_service_step.py +0 -73
  388. solace_agent_mesh/cli/commands/init/init.py +0 -92
  389. solace_agent_mesh/cli/commands/init/project_structure_step.py +0 -16
  390. solace_agent_mesh/cli/commands/init/web_init_step.py +0 -32
  391. solace_agent_mesh/cli/commands/plugin/__init__.py +0 -3
  392. solace_agent_mesh/cli/commands/plugin/add.py +0 -100
  393. solace_agent_mesh/cli/commands/plugin/build.py +0 -268
  394. solace_agent_mesh/cli/commands/plugin/create.py +0 -117
  395. solace_agent_mesh/cli/commands/plugin/plugin.py +0 -124
  396. solace_agent_mesh/cli/commands/plugin/remove.py +0 -73
  397. solace_agent_mesh/cli/commands/run.py +0 -68
  398. solace_agent_mesh/cli/commands/visualizer.py +0 -138
  399. solace_agent_mesh/cli/config.py +0 -85
  400. solace_agent_mesh/common/action.py +0 -91
  401. solace_agent_mesh/common/action_list.py +0 -37
  402. solace_agent_mesh/common/action_response.py +0 -340
  403. solace_agent_mesh/common/mysql_database.py +0 -40
  404. solace_agent_mesh/common/postgres_database.py +0 -85
  405. solace_agent_mesh/common/prompt_templates.py +0 -28
  406. solace_agent_mesh/common/stimulus_utils.py +0 -152
  407. solace_agent_mesh/common/time.py +0 -24
  408. solace_agent_mesh/common/utils.py +0 -712
  409. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-DMmCawWe.js +0 -42
  410. solace_agent_mesh/config_portal/frontend/static/client/assets/components-ZIfdTbrV.js +0 -191
  411. solace_agent_mesh/config_portal/frontend/static/client/assets/index-BJHAE5s4.js +0 -17
  412. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-dd988f05.js +0 -1
  413. solace_agent_mesh/config_portal/frontend/static/client/assets/root-DX4gQ516.css +0 -1
  414. solace_agent_mesh/configs/agent_global.yaml +0 -74
  415. solace_agent_mesh/configs/agent_image_processing.yaml +0 -82
  416. solace_agent_mesh/configs/agent_slack.yaml +0 -64
  417. solace_agent_mesh/configs/agent_web_request.yaml +0 -75
  418. solace_agent_mesh/configs/conversation_to_file.yaml +0 -56
  419. solace_agent_mesh/configs/error_catcher.yaml +0 -56
  420. solace_agent_mesh/configs/monitor.yaml +0 -0
  421. solace_agent_mesh/configs/monitor_stim_and_errors_to_slack.yaml +0 -109
  422. solace_agent_mesh/configs/monitor_user_feedback.yaml +0 -58
  423. solace_agent_mesh/configs/orchestrator.yaml +0 -241
  424. solace_agent_mesh/configs/service_embedding.yaml +0 -81
  425. solace_agent_mesh/configs/service_llm.yaml +0 -265
  426. solace_agent_mesh/configs/visualize_websocket.yaml +0 -55
  427. solace_agent_mesh/gateway/components/gateway_base.py +0 -47
  428. solace_agent_mesh/gateway/components/gateway_input.py +0 -278
  429. solace_agent_mesh/gateway/components/gateway_output.py +0 -298
  430. solace_agent_mesh/gateway/identity/bamboohr_identity.py +0 -18
  431. solace_agent_mesh/gateway/identity/identity_base.py +0 -10
  432. solace_agent_mesh/gateway/identity/identity_provider.py +0 -60
  433. solace_agent_mesh/gateway/identity/no_identity.py +0 -9
  434. solace_agent_mesh/gateway/identity/passthru_identity.py +0 -9
  435. solace_agent_mesh/monitors/base_monitor_component.py +0 -26
  436. solace_agent_mesh/monitors/feedback/user_feedback_monitor.py +0 -75
  437. solace_agent_mesh/monitors/stim_and_errors/stim_and_error_monitor.py +0 -560
  438. solace_agent_mesh/orchestrator/__init__.py +0 -0
  439. solace_agent_mesh/orchestrator/action_manager.py +0 -237
  440. solace_agent_mesh/orchestrator/components/__init__.py +0 -0
  441. solace_agent_mesh/orchestrator/components/orchestrator_action_manager_timeout_component.py +0 -58
  442. solace_agent_mesh/orchestrator/components/orchestrator_action_response_component.py +0 -179
  443. solace_agent_mesh/orchestrator/components/orchestrator_register_component.py +0 -107
  444. solace_agent_mesh/orchestrator/components/orchestrator_stimulus_processor_component.py +0 -527
  445. solace_agent_mesh/orchestrator/components/orchestrator_streaming_output_component.py +0 -260
  446. solace_agent_mesh/orchestrator/orchestrator_main.py +0 -172
  447. solace_agent_mesh/orchestrator/orchestrator_prompt.py +0 -539
  448. solace_agent_mesh/services/__init__.py +0 -0
  449. solace_agent_mesh/services/authorization/providers/base_authorization_provider.py +0 -56
  450. solace_agent_mesh/services/bamboo_hr_service/__init__.py +0 -3
  451. solace_agent_mesh/services/bamboo_hr_service/bamboo_hr.py +0 -182
  452. solace_agent_mesh/services/common/__init__.py +0 -4
  453. solace_agent_mesh/services/common/auto_expiry.py +0 -45
  454. solace_agent_mesh/services/common/singleton.py +0 -18
  455. solace_agent_mesh/services/file_service/__init__.py +0 -14
  456. solace_agent_mesh/services/file_service/file_manager/__init__.py +0 -0
  457. solace_agent_mesh/services/file_service/file_manager/bucket_file_manager.py +0 -149
  458. solace_agent_mesh/services/file_service/file_manager/file_manager_base.py +0 -162
  459. solace_agent_mesh/services/file_service/file_manager/memory_file_manager.py +0 -64
  460. solace_agent_mesh/services/file_service/file_manager/volume_file_manager.py +0 -106
  461. solace_agent_mesh/services/file_service/file_service.py +0 -437
  462. solace_agent_mesh/services/file_service/file_service_constants.py +0 -54
  463. solace_agent_mesh/services/file_service/file_transformations.py +0 -141
  464. solace_agent_mesh/services/file_service/file_utils.py +0 -324
  465. solace_agent_mesh/services/file_service/transformers/__init__.py +0 -5
  466. solace_agent_mesh/services/history_service/__init__.py +0 -3
  467. solace_agent_mesh/services/history_service/history_providers/__init__.py +0 -0
  468. solace_agent_mesh/services/history_service/history_providers/base_history_provider.py +0 -54
  469. solace_agent_mesh/services/history_service/history_providers/file_history_provider.py +0 -74
  470. solace_agent_mesh/services/history_service/history_providers/index.py +0 -40
  471. solace_agent_mesh/services/history_service/history_providers/memory_history_provider.py +0 -33
  472. solace_agent_mesh/services/history_service/history_providers/mongodb_history_provider.py +0 -66
  473. solace_agent_mesh/services/history_service/history_providers/redis_history_provider.py +0 -66
  474. solace_agent_mesh/services/history_service/history_providers/sql_history_provider.py +0 -93
  475. solace_agent_mesh/services/history_service/history_service.py +0 -413
  476. solace_agent_mesh/services/history_service/long_term_memory/__init__.py +0 -0
  477. solace_agent_mesh/services/history_service/long_term_memory/long_term_memory.py +0 -399
  478. solace_agent_mesh/services/llm_service/components/llm_request_component.py +0 -340
  479. solace_agent_mesh/services/llm_service/components/llm_service_component_base.py +0 -152
  480. solace_agent_mesh/services/middleware_service/__init__.py +0 -0
  481. solace_agent_mesh/services/middleware_service/middleware_service.py +0 -20
  482. solace_agent_mesh/templates/action.py +0 -38
  483. solace_agent_mesh/templates/agent.py +0 -29
  484. solace_agent_mesh/templates/agent.yaml +0 -70
  485. solace_agent_mesh/templates/gateway-config-template.yaml +0 -6
  486. solace_agent_mesh/templates/gateway-default-config.yaml +0 -28
  487. solace_agent_mesh/templates/gateway-flows.yaml +0 -78
  488. solace_agent_mesh/templates/gateway-header.yaml +0 -16
  489. solace_agent_mesh/templates/gateway_base.py +0 -15
  490. solace_agent_mesh/templates/gateway_input.py +0 -98
  491. solace_agent_mesh/templates/gateway_output.py +0 -71
  492. solace_agent_mesh/templates/plugin-gateway-default-config.yaml +0 -29
  493. solace_agent_mesh/templates/plugin-pyproject.toml +0 -30
  494. solace_agent_mesh/templates/rest-api-default-config.yaml +0 -31
  495. solace_agent_mesh/templates/rest-api-flows.yaml +0 -81
  496. solace_agent_mesh/templates/slack-default-config.yaml +0 -16
  497. solace_agent_mesh/templates/slack-flows.yaml +0 -81
  498. solace_agent_mesh/templates/solace-agent-mesh-default.yaml +0 -86
  499. solace_agent_mesh/templates/solace-agent-mesh-plugin-default.yaml +0 -8
  500. solace_agent_mesh/templates/web-default-config.yaml +0 -10
  501. solace_agent_mesh/templates/web-flows.yaml +0 -76
  502. solace_agent_mesh/tools/__init__.py +0 -0
  503. solace_agent_mesh/tools/components/__init__.py +0 -0
  504. solace_agent_mesh/tools/components/conversation_formatter.py +0 -111
  505. solace_agent_mesh/tools/components/file_resolver_component.py +0 -58
  506. solace_agent_mesh/tools/config/runtime_config.py +0 -26
  507. solace_agent_mesh-0.2.3.dist-info/METADATA +0 -172
  508. solace_agent_mesh-0.2.3.dist-info/RECORD +0 -193
  509. solace_agent_mesh-0.2.3.dist-info/entry_points.txt +0 -3
  510. /solace_agent_mesh/{agents → agent}/__init__.py +0 -0
  511. /solace_agent_mesh/{agents/global → agent/adk}/__init__.py +0 -0
  512. /solace_agent_mesh/{agents/global/actions → agent/protocol}/__init__.py +0 -0
  513. /solace_agent_mesh/{agents/image_processing → agent/sac}/__init__.py +0 -0
  514. /solace_agent_mesh/{agents/image_processing/actions → agent/utils}/__init__.py +0 -0
  515. /solace_agent_mesh/{agents/web_request → config_portal/backend/plugin_catalog}/__init__.py +0 -0
  516. /solace_agent_mesh/{agents/web_request/actions → evaluation}/__init__.py +0 -0
  517. /solace_agent_mesh/gateway/{components → http_sse}/__init__.py +0 -0
  518. {solace_agent_mesh-0.2.3.dist-info → solace_agent_mesh-1.0.1.dist-info}/WHEEL +0 -0
@@ -1,268 +0,0 @@
1
- import subprocess
2
- import os
3
- import click
4
-
5
- from cli.utils import (
6
- log_error,
7
- apply_document_parsers,
8
- load_plugin,
9
- get_formatted_names,
10
- )
11
- from cli.config import Config
12
-
13
-
14
- def build_command():
15
- """Builds the plugin python module."""
16
- subprocess.check_call(["python", "-m", "build"])
17
-
18
-
19
- def get_all_plugin_gateway_interfaces(config, abort, return_plugin_config=False):
20
- plugins = config.get("plugins", [])
21
- gateway_interfaces = {}
22
-
23
- for plugin in plugins:
24
- if plugin.get("includes_gateway_interface"):
25
- name = plugin.get("name")
26
- plugin_path = load_plugin(name, return_path_only=True)
27
- if not plugin_path:
28
- log_error(f"Plugin '{name}' is not installed.")
29
- abort()
30
- interface_path = os.path.join(plugin_path, "interfaces")
31
-
32
- if not os.path.exists(interface_path):
33
- continue
34
-
35
- interface_gateway_configs = (
36
- (
37
- Config.load_config(
38
- os.path.join(plugin_path, Config.user_plugin_config_file)
39
- )
40
- or {}
41
- )
42
- .get("solace_agent_mesh_plugin", {})
43
- .get("interface_gateway_configs", {})
44
- )
45
- interface_gateway_config = None
46
- # Ensuring flow and default pair exist
47
- interface_pairs = {}
48
- for file in os.listdir(interface_path):
49
- if file.endswith("-flows.yaml"):
50
- name = file.split("-flows.yaml")[0]
51
- if name not in interface_pairs:
52
- interface_pairs[name] = []
53
- interface_pairs[name].append(file)
54
-
55
- elif file.endswith("-default-config.yaml"):
56
- name = file.split("-default-config.yaml")[0]
57
- if name not in interface_pairs:
58
- interface_pairs[name] = []
59
- interface_pairs[name].append(file)
60
-
61
- for name, files in interface_pairs.items():
62
- if len(files) == 2:
63
- if return_plugin_config:
64
- for (
65
- interface_name,
66
- interface_config,
67
- ) in interface_gateway_configs.items():
68
- if interface_name == name.replace("-", "_"):
69
- interface_gateway_config = interface_config
70
- break
71
- gateway_interfaces[name] = (
72
- interface_path,
73
- interface_gateway_config,
74
- )
75
- else:
76
- gateway_interfaces[name] = interface_path
77
-
78
- return gateway_interfaces
79
-
80
-
81
- def build_plugins(
82
- config,
83
- build_config_dir,
84
- abort,
85
- parsers,
86
- plugin_gateway_interfaces,
87
- build_specific_gateway,
88
- ):
89
- plugins = config.get("plugins", [])
90
- plugins_overwrite_dir = os.path.join(build_config_dir, "..", "overwrites")
91
-
92
- os.makedirs(build_config_dir, exist_ok=True)
93
- os.makedirs(plugins_overwrite_dir, exist_ok=True)
94
-
95
- for plugin in plugins:
96
- click.echo("Building plugin: " + plugin.get("name"))
97
- name = plugin.get("name")
98
- load_unspecified_files = plugin.get("load_unspecified_files", True)
99
- load = plugin.get("load", {})
100
- agents_to_load = [
101
- agent.replace("-", "_") for agent in (load.get("agents") or [])
102
- ]
103
- gateways_to_load = load.get("gateways") or []
104
- overwrites_to_load = load.get("overwrites") or []
105
-
106
- plugin_path = load_plugin(name, return_path_only=True)
107
- if not plugin_path:
108
- log_error(f"Plugin '{name}' is not installed.")
109
- abort()
110
-
111
- try:
112
- # Path to plugin config in the module
113
- plugin_file_path = os.path.join(plugin_path, Config.user_plugin_config_file)
114
- plugin_config = Config.load_config(plugin_file_path)
115
-
116
- if not plugin_config or "solace_agent_mesh_plugin" not in plugin_config:
117
- raise ValueError("Invalid solace-agent-mesh plugin module.")
118
- except Exception:
119
- log_error(
120
- f"Error loading plugin '{name}': Invalid solace-agent-mesh plugin module."
121
- )
122
- abort()
123
-
124
- ################
125
- # Build Agents #
126
- ################
127
- agent_config_path = os.path.join(plugin_path, "configs", "agents")
128
- if os.path.exists(agent_config_path):
129
- click.echo("Building agents for plugin: " + name)
130
- # Get all agent configuration files
131
- agent_configs = [
132
- f for f in os.listdir(agent_config_path) if f.endswith(".yaml")
133
- ]
134
- yaml_agents = [f"{agent}.yaml" for agent in agents_to_load]
135
- if not load_unspecified_files:
136
- agent_configs = [f for f in agent_configs if f in yaml_agents]
137
-
138
- # Ensuring all user requested agents are present
139
- for agent_config in yaml_agents:
140
- if agent_config not in agent_configs:
141
- log_error(
142
- f"Agent '{agent_config[:-5]}' was not found in the plugin '{name}'"
143
- )
144
- abort()
145
-
146
- for agent_config in agent_configs:
147
- try:
148
- # Read agent configuration file
149
- agent_config_file = os.path.join(agent_config_path, agent_config)
150
- with open(agent_config_file, "r", encoding="utf-8") as f:
151
- agent_config_content = f.read()
152
- # Apply document parsers
153
- meta = {
154
- "skip_relative_import_path": True,
155
- "extra_literals": {
156
- "MODULE_DIRECTORY": f"{name}.src",
157
- },
158
- }
159
- agent_config_content = apply_document_parsers(
160
- agent_config_content, parsers, meta
161
- )
162
- # Perform name substitutions
163
- base_agent_name = agent_config[:-5] # Remove .yaml
164
- name_cases = get_formatted_names(base_agent_name)
165
- for case, val in name_cases.items():
166
- agent_config_content = agent_config_content.replace(
167
- f"{{{{{case}}}}}", val
168
- )
169
-
170
- # Write agent configuration to build directory
171
- agent_build_path = os.path.join(
172
- build_config_dir, "agent_" + agent_config
173
- )
174
- with open(agent_build_path, "w", encoding="utf-8") as f:
175
- f.write(agent_config_content)
176
- except IOError as e:
177
- log_error(
178
- f'Error reading agent configuration file for "{agent_config}" from plugin "{name}": {e}'
179
- )
180
- abort()
181
- except Exception as e:
182
- log_error(
183
- f'Error building agent configuration for "{agent_config}" from plugin "{name}": {e}'
184
- )
185
- abort()
186
-
187
- ##################
188
- # Build Gateways #
189
- ##################
190
- gateway_config_path = os.path.join(plugin_path, "configs", "gateways")
191
- gateway_dirs = [gateway.replace("-", "_") for gateway in gateways_to_load]
192
- if os.path.exists(gateway_config_path):
193
- gateway_subdirs = os.listdir(gateway_config_path)
194
- for gateway in gateway_dirs:
195
- if gateway not in gateway_subdirs:
196
- log_error(
197
- f"Gateway '{gateway}' was not found in the plugin '{name}'"
198
- )
199
- abort()
200
-
201
- # Loop over the subdirectories of gateways_config_path
202
- for gateway in gateway_subdirs:
203
- if load_unspecified_files or gateway in gateway_dirs:
204
- build_specific_gateway(
205
- build_config_dir,
206
- abort,
207
- parsers,
208
- gateway_config_path,
209
- gateway,
210
- plugin_gateway_interfaces,
211
- )
212
-
213
- ####################
214
- # Build Overwrites #
215
- ####################
216
- overwrite_config_path = os.path.join(plugin_path, "configs", "overwrite")
217
- if os.path.exists(overwrite_config_path):
218
- click.echo("Building overwrite for plugin: " + name)
219
- # Get all overwrite configuration files
220
- overwrite_configs = [
221
- f for f in os.listdir(overwrite_config_path) if f.endswith(".yaml")
222
- ]
223
- if not load_unspecified_files:
224
- overwrite_configs = [
225
- f for f in overwrite_configs if f in overwrites_to_load
226
- ]
227
-
228
- # Ensuring all user requested overwrites are present
229
- for overwrite_config in overwrites_to_load:
230
- if overwrite_config not in overwrite_configs:
231
- log_error(
232
- f"Overwrite '{overwrite_config}' was not found in the plugin '{name}'"
233
- )
234
- abort()
235
- for overwrite_config in overwrite_configs:
236
- try:
237
- # Read overwrite configuration file
238
- overwrite_config_file = os.path.join(
239
- overwrite_config_path, overwrite_config
240
- )
241
- with open(overwrite_config_file, "r", encoding="utf-8") as f:
242
- overwrite_config_content = f.read()
243
- # Apply document parsers
244
- meta = {
245
- "skip_relative_import_path": True,
246
- "extra_literals": {
247
- "MODULE_DIRECTORY": f"{name}.src",
248
- },
249
- }
250
- overwrite_config_content = apply_document_parsers(
251
- overwrite_config_content, parsers, meta
252
- )
253
- # Write overwrite configuration to build directory
254
- overwrite_build_path = os.path.join(
255
- plugins_overwrite_dir, overwrite_config
256
- )
257
- with open(overwrite_build_path, "w", encoding="utf-8") as f:
258
- f.write(overwrite_config_content)
259
- except IOError as e:
260
- log_error(
261
- f'Error reading overwrite configuration file for "{overwrite_config}" from plugin "{name}": {e}'
262
- )
263
- abort()
264
- except Exception as e:
265
- log_error(
266
- f'Error building overwrite configuration for "{overwrite_config}" from plugin "{name}": {e}'
267
- )
268
- abort()
@@ -1,117 +0,0 @@
1
- import click
2
- import os
3
-
4
- from cli.config import Config
5
- from cli.utils import load_template
6
- from cli.utils import log_error, ask_question
7
-
8
-
9
- DEFAULT_DESCRIPTION = "A solace-agent-mesh plugin project."
10
- DEFAULT_AUTHOR = "Author Name"
11
- EMPTY_FILE_MSG = ""
12
-
13
- def create_command(
14
- path: str, description: str = None, author: str = None, skip: bool = False
15
- ):
16
- """Initializes and creates a new solace-agent-mesh plugin project.
17
-
18
- Project structure:
19
-
20
- plugin-name/
21
- ├─ configs/
22
- │ ├─ overwrite/
23
- ├─ src/
24
- │ ├─ __init__.py
25
- │ ├─ agents/
26
- │ │ ├─ __init__.py
27
- │ ├─ gateways/
28
- │ │ ├─ __init__.py
29
- ├─ interfaces/
30
- ├─ solace-agent-mesh-plugin.yaml
31
- ├─ .gitignore
32
- ├─ pyproject.toml
33
- ├─ README.md
34
-
35
- """
36
- if not skip:
37
- if not path:
38
- path = ask_question("Plugin name (A path if it shouldn't be created in the current directory)")
39
- if not description:
40
- description = ask_question("Plugin description", "")
41
- if not author:
42
- author = ask_question("Plugin author", "")
43
- if not path:
44
- log_error("Plugin name is required.")
45
- return 1
46
- click.echo(f"Creating solace-agent-mesh plugin '{path}'.")
47
-
48
- # Create the plugin directory
49
- click.echo("Creating plugin directory...")
50
- os.makedirs(path, exist_ok=True)
51
-
52
- # Check into the plugin directory
53
- os.chdir(path)
54
-
55
- # Get the directory base name
56
- name = str(os.path.basename(path))
57
-
58
- config = Config.get_default_plugin_config()
59
- config["solace_agent_mesh_plugin"]["name"] = name
60
-
61
- # Write the plugin config file
62
- Config.write_config(config, Config.user_plugin_config_file)
63
-
64
- # Create the .gitignore file
65
- ignore_files = ["*.pyc", "__pycache__", "*.egg-info", "dist"]
66
- with open(".gitignore", "w", encoding="utf-8") as f:
67
- f.write("\n".join(ignore_files))
68
-
69
- # Create README.md
70
- with open("README.md", "w", encoding="utf-8") as f:
71
- f.write(f"# {name.upper()}\n\n{description or DEFAULT_DESCRIPTION}")
72
-
73
- # Create directories and __init__.py files
74
- py_paths = ["agents", "gateways"]
75
- py_paths = [os.path.join("src", path) for path in py_paths]
76
- directories = [
77
- "interfaces",
78
- "configs",
79
- "src",
80
- os.path.join("configs", "overwrite"),
81
- ] + py_paths
82
-
83
- for path in directories:
84
- os.makedirs(path, exist_ok=True)
85
-
86
- for py_path in py_paths:
87
- with open(os.path.join(py_path, "__init__.py"), "w", encoding="utf-8") as f:
88
- f.write("")
89
-
90
- with open(os.path.join("configs", ".gitkeep"), "w", encoding="utf-8") as f:
91
- f.write(EMPTY_FILE_MSG)
92
-
93
- with open(os.path.join("interfaces", ".gitkeep"), "w", encoding="utf-8") as f:
94
- f.write(EMPTY_FILE_MSG)
95
-
96
- with open(os.path.join("src", "__init__.py"), "w", encoding="utf-8") as f:
97
- f.write('__version__ = "0.0.1"\n')
98
-
99
- # Create pyproject.toml
100
- pyproject = load_template("plugin-pyproject.toml")
101
- pyproject = (pyproject
102
- .replace("{{name}}", name)
103
- .replace("{{snake_name}}", name.replace("-", "_"))
104
- .replace("{{description}}", description or DEFAULT_DESCRIPTION)
105
- .replace("{{author}}", author or DEFAULT_AUTHOR)
106
- )
107
-
108
- with open("pyproject.toml", "w", encoding="utf-8") as f:
109
- f.write(pyproject)
110
-
111
- click.echo(f"Plugin project '{name}' was created successfully.")
112
- click.echo(
113
- click.style(f"\tUse `cd {name}` to check into project.", fg="blue")
114
- )
115
- click.echo(
116
- click.style("\tUse `solace-agent-mesh add` to add agents and gateways.", fg="blue")
117
- )
@@ -1,124 +0,0 @@
1
- import click
2
-
3
- from cli.utils import log_error
4
- from .add import add_command
5
- from .remove import remove_command
6
- from .create import create_command
7
- from .build import build_command
8
-
9
-
10
- def plugin_command(plugin):
11
-
12
- @plugin.command()
13
- @click.option(
14
- "-n",
15
- "--name",
16
- help="Plugin name. (A path if it shouldn't be created in the current directory)",
17
- )
18
- @click.option(
19
- "-d",
20
- "--description",
21
- help="Plugin description.",
22
- )
23
- @click.option(
24
- "-a",
25
- "--author",
26
- help="Plugin author.",
27
- )
28
- @click.option(
29
- "-s",
30
- "--skip",
31
- is_flag=True,
32
- help="Skip the prompts and use the default values. (Name is required)",
33
- )
34
- def create(name, description, author, skip):
35
- """Initializes and creates a new solace-agent-mesh plugin project."""
36
- create_command(name, description, author, skip)
37
-
38
- @plugin.command()
39
- def build():
40
- """Build the solace-agent-mesh plugin project."""
41
- build_command()
42
-
43
- @plugin.command()
44
- @click.argument("name")
45
- @click.option("--add-all", is_flag=True, help="Added the plugin with default of loading all exported files from the plugin")
46
- @click.option("--pip", is_flag=True, help="Install with pip.")
47
- @click.option("--uv", is_flag=True, help="Install with uv pip.")
48
- @click.option("--poetry", is_flag=True, help="Install with poetry.")
49
- @click.option("--conda", is_flag=True, help="Install with conda.")
50
- @click.option(
51
- "-u",
52
- "--from-url",
53
- help="Install the plugin from a the given URL instead of the given name. (URL can be a file path or a git URL)",
54
- )
55
- def add(name, add_all, uv, pip, poetry, conda, from_url):
56
- """
57
- Add a new plugin to solace-agent-mesh config yaml.
58
- Optional install the module if not found.
59
-
60
- Only one installation method can be selected at a time.
61
- """
62
- # Only one option can be true at a time
63
- if sum([uv, pip, poetry, conda]) > 1:
64
- log_error("Only one installation method can be selected.")
65
- return 1
66
- installer = (
67
- "uv" if uv
68
- else "pip" if pip
69
- else "poetry" if poetry
70
- else "conda" if conda
71
- else None
72
- )
73
- return add_command(name, installer, from_url, add_all)
74
-
75
- @plugin.command()
76
- @click.argument("name")
77
- @click.option(
78
- "--pip-uninstall",
79
- default=False,
80
- is_flag=True,
81
- help="Removes the plugin module using pip",
82
- )
83
- @click.option(
84
- "--uv-uninstall",
85
- default=False,
86
- is_flag=True,
87
- help="Removes the plugin module using uv.",
88
- )
89
- @click.option(
90
- "--poetry-uninstall",
91
- default=False,
92
- is_flag=True,
93
- help="Removes the plugin module using poetry",
94
- )
95
- @click.option(
96
- "--conda-uninstall",
97
- default=False,
98
- is_flag=True,
99
- help="Removes the plugin module using conda",
100
- )
101
- def remove(name, pip_uninstall, uv_uninstall, poetry_uninstall, conda_uninstall):
102
- """
103
- Remove a plugin by removing it from solace-agent-mesh config yaml
104
- Optionally uninstall the module.
105
-
106
- Only one uninstallation method can be selected at a time.
107
- """
108
- # Only one option can be true at a time
109
- if sum([pip_uninstall, uv_uninstall, poetry_uninstall, conda_uninstall]) > 1:
110
- log_error("Only one uninstallation method can be selected.")
111
- return 1
112
-
113
- installer = (
114
- "pip"
115
- if pip_uninstall
116
- else "uv"
117
- if uv_uninstall
118
- else "poetry"
119
- if poetry_uninstall
120
- else "conda"
121
- if conda_uninstall
122
- else None
123
- )
124
- return remove_command(name, installer)
@@ -1,73 +0,0 @@
1
- import subprocess
2
- import importlib.util
3
- import click
4
-
5
- from cli.utils import log_error
6
- from cli.config import Config
7
-
8
-
9
- def remove_command(name: str, installer: str = None):
10
- """
11
- Remove a plugin by removing it from solace-agent-mesh config yaml
12
- Optionally uninstall the module
13
-
14
- Args:
15
- name (str): The name of the module to remove.
16
- installer (str, optional): Installer to use for uninstallation.
17
- Should be one of 'pip', 'poetry', 'conda', or None.
18
- """
19
- name = name.replace("-", "_")
20
- sam_config = Config.get_user_config()
21
- if not sam_config:
22
- log_error("No configuration found.")
23
- return 1
24
-
25
- plugin = None
26
- plugins = sam_config.get("solace_agent_mesh", {}).get("plugins", [])
27
- for p in plugins:
28
- if p.get("name") == name:
29
- plugin = p
30
- plugins.remove(plugin)
31
- Config.write_config(sam_config)
32
- click.echo(f"Plugin '{name}' was removed from solace-agent-mesh config.")
33
- break
34
-
35
- if not plugin:
36
- log_error(f"Plugin '{name}' not found in the config.")
37
- return
38
-
39
- if installer:
40
- # Check if the module exists
41
- if importlib.util.find_spec(name) is None:
42
- log_error(
43
- f"Module '{name}' is not installed. Run without uninstall flag to just remove from config."
44
- )
45
- return 1
46
-
47
- # Attempt to uninstall using the specified installer
48
- click.echo(f"Attempting to uninstall module '{name}' using {installer}...")
49
- try:
50
- if installer == "pip":
51
- subprocess.check_call(["pip3", "uninstall", "-y", name])
52
- elif installer == "uv":
53
- subprocess.check_call(["uv", "pip", "uninstall", "-y", name])
54
- elif installer == "poetry":
55
- subprocess.check_call(["poetry", "remove", name])
56
- elif installer == "conda":
57
- subprocess.check_call(["conda", "remove", "-y", name])
58
- else:
59
- log_error(
60
- f"Unsupported installer: {installer} - (pip, poetry, or conda)."
61
- )
62
- return 1
63
- click.echo(f"Successfully uninstalled module '{name}'.")
64
- except subprocess.CalledProcessError as e:
65
- log_error(f"Error occurred while uninstalling module '{name}': {e}")
66
- return 1
67
- else:
68
- click.echo(
69
- click.style(
70
- f"Module '{name}' was only removed from the config. Use your package manager to uninstall from environment.",
71
- fg="yellow",
72
- )
73
- )
@@ -1,68 +0,0 @@
1
- import sys
2
- import os
3
- import click
4
-
5
- from cli.commands.build import build_command
6
- from cli.utils import log_error
7
-
8
-
9
- def run_solace_ai_connector(configs):
10
- try:
11
- from solace_ai_connector.main import main
12
- except ImportError:
13
- log_error("Failed to import Solace AI Connector.")
14
- return 1
15
-
16
- sys.argv = [sys.argv[0].replace("solace-agent-mesh", "solace-ai-connector"), *configs]
17
- return sys.exit(main())
18
-
19
-
20
- FILES_TO_EXCLUDE = []
21
-
22
-
23
- def run_command(
24
- use_system_env, config_files, exclude_files, quick_build, ignore_build, force_build
25
- ):
26
- """Run the Solace Agent Mesh application."""
27
-
28
- config = click.get_current_context().obj["solace_agent_mesh"]
29
- build_dir = config["build"]["build_directory"]
30
- build_config_dir = os.path.join(build_dir, "configs")
31
-
32
- if force_build or (not ignore_build and not os.path.exists(build_dir)):
33
- build_command(skip_without_asking=quick_build)
34
-
35
- click.echo("Running Solace Agent Mesh application")
36
-
37
- if not use_system_env:
38
- try:
39
- from dotenv import load_dotenv
40
-
41
- env_file = config["env_file"]
42
- load_dotenv(env_file, override=True)
43
- except ImportError:
44
- log_error(
45
- "Failed to import dotenv. Please install it using 'pip install python-dotenv'"
46
- )
47
- return 1
48
- except Exception as e:
49
- log_error(f"Failed to load environment variables. {e}")
50
- return 1
51
-
52
- if not config_files:
53
- if not os.path.exists(build_config_dir):
54
- log_error("No build directory found. Run 'solace-agent-mesh build' first.")
55
- return 1
56
-
57
- config_files = [
58
- os.path.join(build_config_dir, f)
59
- for f in os.listdir(build_config_dir)
60
- if f.endswith(".yaml")
61
- ]
62
-
63
- # Exclude files
64
- # only basename of the files
65
- exclude_files = [os.path.basename(f) for f in exclude_files] + FILES_TO_EXCLUDE
66
- config_files = [f for f in config_files if os.path.basename(f) not in exclude_files]
67
-
68
- return run_solace_ai_connector(config_files)