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,361 +0,0 @@
1
- import click
2
- import requests
3
- import os
4
- import json
5
- import pyperclip
6
- import uuid
7
- import base64
8
- import stat
9
-
10
- from ...utils import log_error
11
- from ...utils import log_link
12
- from ...utils import log_success
13
-
14
- XDG_CONFIG_HOME = os.getenv(
15
- "XDG_CONFIG_HOME", os.path.expanduser("~/.config/solace_agent_mesh")
16
- )
17
-
18
- XDG_DOWNLOAD_DIR = os.getenv(
19
- "XDG_DOWNLOAD_DIR", os.path.expanduser("~/Downloads/solace_agent_mesh")
20
- )
21
-
22
- TOKEN_FILE = os.path.join(XDG_CONFIG_HOME, "token.json")
23
- CONFIG_FILE = os.path.join(XDG_CONFIG_HOME, "setting.conf")
24
-
25
-
26
- def validate_token(server, access_token):
27
- """
28
- Validate the access token with the server.
29
- """
30
- response = requests.post(
31
- f"{server}/is_token_valid",
32
- headers={"Authorization": f"Bearer {access_token}"},
33
- )
34
- return response.status_code
35
-
36
-
37
- def config_directory():
38
- """
39
- Get the configuration directory path.
40
- """
41
- return XDG_CONFIG_HOME
42
-
43
-
44
- def file_directory():
45
- """
46
- Get the file directory path.
47
- """
48
- return XDG_DOWNLOAD_DIR
49
-
50
-
51
- def set_permission(file_path):
52
- """
53
- Set file permissions to be readable and writable only by the owner.
54
- """
55
- os.chmod(file_path, stat.S_IRUSR | stat.S_IWUSR)
56
-
57
-
58
- def save_configuration(conf: dict):
59
- """
60
- Save the server address to the configuration file.
61
- """
62
- home_dir = config_directory()
63
-
64
- # Create the home directory if it does not exist
65
- os.makedirs(home_dir, exist_ok=True)
66
-
67
- # Load existing configuration if it exists
68
- if os.path.exists(CONFIG_FILE):
69
- with open(CONFIG_FILE, "r") as f:
70
- existing_conf = json.load(f)
71
- else:
72
- existing_conf = {}
73
-
74
- # Update the existing configuration with new values
75
- existing_conf.update(conf)
76
-
77
- # Save the updated configuration
78
- with open(CONFIG_FILE, "w") as f:
79
- json.dump(existing_conf, f)
80
- set_permission(CONFIG_FILE)
81
-
82
-
83
- def save_files(files):
84
- """
85
- Save files to the file directory.
86
- """
87
- if files:
88
- file_directory_path = file_directory()
89
- os.makedirs(file_directory_path, exist_ok=True)
90
- for file in files:
91
- file_name = file["name"]
92
- file_content = file["content"]
93
- file_type = file["mime_type"]
94
- if file_type.startswith("image/"):
95
- # Decode Base64
96
- file_content = base64.b64decode(file_content)
97
- else:
98
- file_content = file_content.encode("utf-8")
99
-
100
- file_path = os.path.join(file_directory_path, file_name)
101
- with open(file_path, "wb") as f:
102
- f.write(file_content)
103
- click.echo(f"File saved in {file_path}")
104
-
105
-
106
- def chat_command(chat):
107
- """
108
- Login and start a chat conversation.
109
- """
110
-
111
- @chat.command()
112
- @click.argument("server")
113
- def login(server):
114
- """Log in to the solace-agent-mesh application."""
115
- if not server:
116
- log_error("Server address is required.")
117
- return
118
-
119
- # Save the server address
120
- save_configuration({"auth_server": server})
121
-
122
- try:
123
- url = f"{server}/login"
124
- click.secho(
125
- "\U0001F447 Please authenticate by visiting the following URL:",
126
- fg="green",
127
- )
128
- log_link(url)
129
-
130
- click.prompt(
131
- click.style(
132
- "\U0001F4C4 Copy the entire json object and press Enter (Ctrl+D to exit)",
133
- fg="green",
134
- ),
135
- default="",
136
- show_default=False,
137
- )
138
-
139
- token = pyperclip.paste()
140
-
141
- # Save the response as JSON
142
- with open(TOKEN_FILE, "w") as f:
143
- json.dump(json.loads(token), f)
144
- set_permission(TOKEN_FILE)
145
-
146
- token_data = json.loads(token)
147
-
148
- # Verify the token
149
- try:
150
- status_code = validate_token(server, token_data.get("access_token"))
151
- if status_code == 200:
152
- log_success("Login successful.")
153
- else:
154
- log_error("Token is invalid or expired. Please log in again.")
155
- return
156
- except requests.exceptions.RequestException as e:
157
- log_error(f"Token validation failed: {e}")
158
- return
159
-
160
- except requests.exceptions.RequestException as e:
161
- log_error(f"Login failed: {e}")
162
-
163
- @chat.command()
164
- def logout():
165
- """Log out from the solace-agent-mesh application."""
166
- if os.path.exists(TOKEN_FILE):
167
- os.remove(TOKEN_FILE)
168
- log_success("Logout successful.")
169
- else:
170
- log_error("No active session found.")
171
-
172
- @chat.command()
173
- @click.option(
174
- "-s",
175
- "--stream",
176
- is_flag=True,
177
- help="Stream mode.",
178
- default=False,
179
- )
180
- @click.option(
181
- "-a",
182
- "--auth",
183
- is_flag=True,
184
- help="Enable authentication.",
185
- default=False,
186
- )
187
- @click.option(
188
- "-u",
189
- "--url",
190
- help="Chat endpoint url (e.g., https://<server>/api/v1/request).",
191
- )
192
- @click.option(
193
- "-f",
194
- "--file",
195
- type=click.Path(exists=True, dir_okay=False, resolve_path=True),
196
- multiple=True,
197
- help="Attach files to the chat. Use -f or --file for each file.",
198
- )
199
- def start(stream, auth, url, file):
200
- """Establish a chat with solace-agent-mesh plugin application."""
201
-
202
- # Load the rest server address
203
- rest_server = None
204
- if url is not None:
205
- # save the server address
206
- rest_server = url
207
- save_configuration({"rest_api_server": rest_server})
208
- elif os.path.exists(CONFIG_FILE):
209
- # load the server address from the configuration file
210
- with open(CONFIG_FILE, "r") as f:
211
- setting_data = json.load(f)
212
- rest_server = setting_data.get("rest_api_server", None)
213
- if rest_server is None:
214
- rest_server = click.prompt(
215
- click.style(
216
- "💬 Enter the server address (e.g., https://<server>/api/v1/request): ",
217
- fg="green",
218
- )
219
- )
220
- # Save the server address
221
- save_configuration({"rest_api_server": rest_server})
222
-
223
- session_id = str(uuid.uuid4())
224
- rest_endpoint_headers = {}
225
-
226
- # Authenticate if it is enabled
227
- if auth:
228
- # Load authentication server
229
- with open(CONFIG_FILE, "r") as f:
230
- setting_data = json.load(f)
231
- auth_server = setting_data.get("auth_server", "")
232
- if not auth_server:
233
- log_error(
234
- "Authentication server not found. Please log in using 'sam login <server name>'."
235
- )
236
- return
237
-
238
- # Load the token
239
- if not os.path.exists(TOKEN_FILE):
240
- log_error(
241
- "Token not found. Please log in using 'sam login <server name>'."
242
- )
243
- return
244
-
245
- try:
246
- with open(TOKEN_FILE, "r") as f:
247
- token_data = json.load(f)
248
- access_token = token_data.get("access_token")
249
- refresh_token = token_data.get("refresh_token")
250
-
251
- if access_token and refresh_token:
252
- # Validate token
253
- try:
254
- status_code = validate_token(auth_server, access_token)
255
- if status_code != 200:
256
- # Refresh token
257
- response = requests.post(
258
- f"{auth_server}/refresh_token",
259
- headers={
260
- "Content-Type": "application/json",
261
- "Authorization": f"Bearer {access_token}",
262
- },
263
- json={"refresh_token": refresh_token},
264
- )
265
- if response.status_code == 200:
266
- access_token = response.json()
267
- else:
268
- log_error(
269
- "Failed to refresh token. Please log in again."
270
- )
271
- return
272
- rest_endpoint_headers = {
273
- "Authorization": f"Bearer {access_token}"
274
- }
275
- except requests.exceptions.RequestException as e:
276
- log_error(f"Token validation failed: {e}")
277
- return
278
- else:
279
- log_error(
280
- "Invalid token data. Please log in again using 'sam login <server name>'."
281
- )
282
- return
283
- except Exception as e:
284
- log_error(
285
- f"Token data not found: {e}. Please log in again using 'sam login <server name>'."
286
- )
287
- return
288
-
289
- try:
290
- files_to_send = []
291
- if file:
292
- for file_path in file:
293
- file_name = os.path.basename(file_path)
294
- files_to_send.append(("files", (file_name, open(file_path, "rb"))))
295
-
296
- while True:
297
- user_prompt = click.prompt(
298
- click.style("💬 How can I help you? (Ctrl+D to exit)", fg="green")
299
- )
300
- # Exit the chat
301
- if user_prompt.lower() == "exit":
302
- break
303
- # Skip empty prompts
304
- if not user_prompt.strip():
305
- continue
306
-
307
- try:
308
- response = requests.post(
309
- f"{rest_server}",
310
- headers=rest_endpoint_headers,
311
- data={
312
- "prompt": user_prompt,
313
- "stream": stream,
314
- "session_id": session_id,
315
- },
316
- files=files_to_send,
317
- )
318
- response.raise_for_status()
319
-
320
- if stream:
321
- buffer = ""
322
- for chunk in response.iter_content(chunk_size=1):
323
- utf_chunk = chunk.decode("utf-8")
324
- buffer += utf_chunk
325
-
326
- while "\n\n" in buffer:
327
- split_chunk = buffer.split("\n\n", 1)
328
- data_chunk = split_chunk[0]
329
- buffer = split_chunk[1]
330
-
331
- if data_chunk == "data: [DONE]":
332
- break
333
- data = json.loads(data_chunk[6:])
334
- content = data.get("content", "")
335
- if content:
336
- click.echo(content, nl=False)
337
- status_message = data.get("status_message", "")
338
- if status_message:
339
- click.secho(status_message, nl=True, fg="yellow")
340
- # Save files
341
- if "files" in data:
342
- files = data["files"]
343
- save_files(files)
344
- else:
345
- data = response.json()
346
- click.echo(f"{data['response']['content']}")
347
- # Save files
348
- if "files" in data["response"]:
349
- files = data["response"]["files"]
350
- save_files(files)
351
- click.echo("\n")
352
-
353
- except requests.exceptions.RequestException as e:
354
- log_error(f"Request failed: {e}")
355
- return
356
-
357
- except json.JSONDecodeError:
358
- log_error(
359
- "Sorry! I could not response to your request. Please try again later."
360
- )
361
- return
@@ -1,29 +0,0 @@
1
- import os
2
- import click
3
-
4
- from cli.config import Config
5
- from cli.utils import load_template, get_display_path
6
-
7
-
8
- def config_command():
9
- """Update the config file with new default settings."""
10
- config_path = Config.user_config_file
11
-
12
- if not os.path.exists(config_path):
13
- click.echo(
14
- click.style(
15
- (
16
- "No config file found. "
17
- "\n\tRun `solace-agent-mesh init` to generate a new config file."
18
- ),
19
- fg="yellow",
20
- )
21
- )
22
- return 1
23
-
24
- config = Config.get_config(config_path)
25
- Config.write_config(config, config_path)
26
-
27
- click.echo(
28
- f"Config file updated with latest default configurations at {get_display_path(config_path)}"
29
- )
@@ -1,3 +0,0 @@
1
- from .init import init_command
2
-
3
- __all__ = ["init_command"]
@@ -1,93 +0,0 @@
1
- import click
2
-
3
- from cli.utils import ask_if_not_provided
4
-
5
-
6
- def ai_provider_step(options, default_options, none_interactive, abort):
7
- """
8
- Initialize the AI provider.
9
- """
10
- ask_if_not_provided(
11
- options,
12
- "llm_endpoint_url",
13
- "Provide LLM endpoint URL",
14
- default_options["llm_endpoint_url"],
15
- none_interactive,
16
- )
17
-
18
- ask_if_not_provided(
19
- options,
20
- "llm_api_key",
21
- "Provide LLM API Key",
22
- default_options["llm_api_key"],
23
- none_interactive,
24
- hide_input=True,
25
- )
26
- click.echo(
27
- click.style(
28
- (
29
- "The model name should follow the format `provider/model-name`."
30
- "\n\t For example: openai/gpt-4o or openai/my-model-that-follows-openai-api"
31
- ),
32
- fg="yellow",
33
- )
34
- )
35
- ask_if_not_provided(
36
- options,
37
- "llm_model_name",
38
- "Provide LLM model name to use",
39
- default_options["llm_model_name"],
40
- none_interactive,
41
- )
42
- # Ask if the user wants to enable the embedding service
43
- embedding_enabled = ask_if_not_provided(
44
- options,
45
- "embedding_service_enabled",
46
- "Enable embedding service for vector embeddings?",
47
- default_options["embedding_service_enabled"],
48
- none_interactive,
49
- )
50
-
51
- options["embedding_service_enabled"] = embedding_enabled
52
-
53
- # Only ask for embedding configuration if the service is enabled
54
- if embedding_enabled:
55
- ask_if_not_provided(
56
- options,
57
- "embedding_endpoint_url",
58
- "Provide Embedding endpoint URL",
59
- default_options["embedding_endpoint_url"],
60
- none_interactive,
61
- )
62
-
63
- ask_if_not_provided(
64
- options,
65
- "embedding_api_key",
66
- "Provide Embedding API Key",
67
- default_options["embedding_api_key"],
68
- none_interactive,
69
- hide_input=True,
70
- )
71
-
72
- click.echo(
73
- click.style(
74
- (
75
- "The model name should follow the format `provider/model-name`."
76
- "\n\t For example: openai/text-embedding-ada-002 or openai/my-model-that-follows-openai-api"
77
- ),
78
- fg="yellow",
79
- )
80
- )
81
-
82
- ask_if_not_provided(
83
- options,
84
- "embedding_model_name",
85
- "Provide Embedding model name to use",
86
- default_options["embedding_model_name"],
87
- none_interactive,
88
- )
89
- else:
90
- # Set empty values for embedding configuration if the service is disabled
91
- options["embedding_endpoint_url"] = ""
92
- options["embedding_api_key"] = ""
93
- options["embedding_model_name"] = ""
@@ -1,99 +0,0 @@
1
- import shutil
2
- import click
3
- import os
4
-
5
- from cli.utils import ask_if_not_provided
6
- from solace_agent_mesh.config_portal.backend.common import CONTAINER_RUN_COMMAND
7
-
8
- def broker_step(options, default_options, none_interactive, abort):
9
- """
10
- Initialize the broker.
11
- """
12
- broker_type = ask_if_not_provided(
13
- options,
14
- "broker_type",
15
- (
16
- "Which broker type do you want to use?\n"
17
- "\t1) Existing Solace Pub/Sub+ broker\n"
18
- "\t2) New local Solace PubSub+ broker container (podman/docker)\n"
19
- "\t3) Run in 'dev mode' - all in one process (not recommended for production)\n"
20
- "Enter the number of your choice"
21
- ),
22
- "1",
23
- none_interactive,
24
- ["1", "2", "3"],
25
- )
26
- if broker_type == "2" or broker_type == "container":
27
- options["dev_mode"] = "false"
28
- # Check if the user have podman or docker installed
29
- has_podman = shutil.which("podman")
30
- has_docker = shutil.which("docker")
31
- if not has_podman and not has_docker:
32
- abort(
33
- "You need to have either podman or docker installed to use the container broker."
34
- )
35
-
36
- container_engine = "podman" if has_podman else "docker"
37
- if has_podman and has_docker:
38
- container_engine = ask_if_not_provided(
39
- options,
40
- "container_engine",
41
- "Which container engine do you want to use?",
42
- "podman",
43
- none_interactive,
44
- ["podman", "docker"],
45
- )
46
-
47
- # Run command for the container start
48
- command = container_engine + CONTAINER_RUN_COMMAND
49
- click.echo(
50
- f"Running the Solace PubSub+ broker container using {container_engine}"
51
- )
52
- response_status = os.system(command)
53
- if response_status != 0:
54
- abort("Failed to start the Solace PubSub+ broker container.")
55
-
56
- options["broker_url"] = default_options["broker_url"]
57
- options["broker_vpn"] = default_options["broker_vpn"]
58
- options["broker_username"] = default_options["broker_username"]
59
- options["broker_password"] = default_options["broker_password"]
60
-
61
- elif broker_type == "1" or broker_type == "solace":
62
- options["dev_mode"] = "false"
63
- ask_if_not_provided(
64
- options,
65
- "broker_url",
66
- "Enter the Solace broker url endpoint",
67
- default_options["broker_url"],
68
- none_interactive,
69
- )
70
- ask_if_not_provided(
71
- options,
72
- "broker_vpn",
73
- "Enter the Solace broker vpn name",
74
- default_options["broker_vpn"],
75
- none_interactive,
76
- )
77
- ask_if_not_provided(
78
- options,
79
- "broker_username",
80
- "Enter the Solace broker username",
81
- default_options["broker_username"],
82
- none_interactive,
83
- )
84
- ask_if_not_provided(
85
- options,
86
- "broker_password",
87
- "Enter the Solace broker password",
88
- default_options["broker_password"],
89
- none_interactive,
90
- hide_input=True,
91
- )
92
-
93
- elif (
94
- broker_type == "3" or
95
- broker_type == "dev_broker" or
96
- broker_type == "dev_mode" or
97
- broker_type == "dev"
98
- ):
99
- options["dev_mode"] = "true"
@@ -1,83 +0,0 @@
1
- from cli.utils import ask_if_not_provided
2
-
3
-
4
- def builtin_agent_step(options, default_options, none_interactive, abort):
5
- """
6
- Initialize the built-in agent.
7
- """
8
- agents = {
9
- "web_request": (True, "can make queries to web to get real-time data", []),
10
- "image_processing": (
11
- True,
12
- "generate images from text or convert images to text (The model name should be formatted like provider/model-name)",
13
- ["IMAGE_GEN_ENDPOINT=", "IMAGE_GEN_API_KEY=", "IMAGE_GEN_MODEL=",],
14
- ),
15
- }
16
-
17
- env_vars = {}
18
- if "env_var" in options and options["env_var"]:
19
- env_var_list = list(options["env_var"])
20
- for env_var in env_var_list:
21
- if "=" in env_var:
22
- key, value = env_var.split("=")
23
- env_vars[key] = value
24
-
25
- if (
26
- "built_in_agent" in options
27
- and (
28
- isinstance(options["built_in_agent"], tuple)
29
- or isinstance(options["built_in_agent"], list)
30
- )
31
- and len(options["built_in_agent"]) > 0
32
- ):
33
- options["built_in_agent"] = list(options["built_in_agent"])
34
- # Update env vars with default values
35
- for name, agent in agents.items():
36
- if name in options["built_in_agent"]:
37
- for pair in agent[2]:
38
- key, value = pair.split("=")
39
- if key not in env_vars:
40
- env_vars[key] = value
41
- options["env_var"] = [f"{key}={value}" for key, value in env_vars.items()]
42
- return
43
-
44
- if none_interactive:
45
- selected_agents_list = [
46
- agent for agent, (enabled, _, _), in agents.items() if enabled
47
- ]
48
- options["built_in_agent"] = selected_agents_list
49
- # Update env vars with default values
50
- for name, agent in agents.items():
51
- if name in options["built_in_agent"]:
52
- for pair in agent[2]:
53
- key, value = pair.split("=")
54
- if key not in env_vars:
55
- env_vars[key] = value
56
- options["env_var"] = [f"{key}={value}" for key, value in env_vars.items()]
57
- return
58
-
59
- selected_agents = {}
60
- for agent, (default, description, pairs) in agents.items():
61
- enabled = ask_if_not_provided(
62
- selected_agents,
63
- agent,
64
- f"Enable {agent} agent: {description}",
65
- default,
66
- none_interactive,
67
- )
68
- if enabled:
69
- for pair in pairs:
70
- key, value = pair.split("=")
71
- ask_if_not_provided(
72
- env_vars,
73
- key,
74
- f'\tAgent "{agent}" requires env value "{key}":',
75
- value,
76
- none_interactive,
77
- hide_input="KEY" in key.upper(),
78
- )
79
- selected_agents_list = [
80
- agent for agent, enabled in selected_agents.items() if enabled
81
- ]
82
- options["built_in_agent"] = selected_agents_list
83
- options["env_var"] = [f"{key}={value}" for key, value in env_vars.items()]
@@ -1,13 +0,0 @@
1
- import os
2
-
3
- from cli.config import Config
4
-
5
-
6
- def check_if_already_done(options, default_options, none_interactive, abort):
7
- """
8
- Checks if the init command has already been done"""
9
- config_path = Config.user_config_file
10
- if os.path.exists(config_path):
11
- abort(
12
- "The project has already been initialized. If you want to reinitialize the project, please delete the solace-agent-mesh.yaml file"
13
- )