solace-agent-mesh 0.2.4__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 -181
  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.4.dist-info → solace_agent_mesh-1.0.1.dist-info}/licenses/LICENSE +1 -1
  344. solace_agent_mesh/agents/base_agent_component.py +0 -256
  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-a-zJ6rLx.js +0 -46
  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-44c41103.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.4.dist-info/METADATA +0 -176
  508. solace_agent_mesh-0.2.4.dist-info/RECORD +0 -193
  509. solace_agent_mesh-0.2.4.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.4.dist-info → solace_agent_mesh-1.0.1.dist-info}/WHEEL +0 -0
@@ -1,278 +0,0 @@
1
- from typing import Dict, Any
2
- import base64
3
- import json
4
- from uuid import uuid4
5
-
6
- from solace_ai_connector.common.message import Message
7
- from solace_ai_connector.common.log import log
8
- from ...services.file_service import FileService
9
- from ...common.constants import DEFAULT_IDENTITY_KEY_FIELD, HISTORY_USER_ROLE
10
- from .gateway_base import GatewayBase
11
-
12
- info = {
13
- "class_name": "GatewayInput",
14
- "description": (
15
- "This component handles requests from users and forms the "
16
- "appropriate prompt for the next component in the flow."
17
- ),
18
- "config_parameters": [
19
- {
20
- "name": "gateway_config",
21
- "type": "object",
22
- "properties": {
23
- "gateway_id": {"type": "string"},
24
- "system_purpose": {"type": "string"},
25
- "interaction_type": {"type": "string"},
26
- "history_class": {"type": "string"},
27
- "history_config": {"type": "object"},
28
- "identity_key_field": {"type": "string", "default": DEFAULT_IDENTITY_KEY_FIELD},
29
- "identity": {
30
- "type": "object",
31
- "properties": {
32
- "type": {"type": "string"},
33
- "module": {"type": "string"},
34
- "configuration": {"type": "object"},
35
- },
36
- "description": "Identity component configuration including module and class names.",
37
- },
38
- },
39
- "description": "Gateway configuration including originators and their configurations.",
40
- },
41
- {
42
- "name": "response_format_prompt",
43
- "type": "string",
44
- "description": "Format instructions for the response that will be passed to the model",
45
- "default": ""
46
- }
47
- ],
48
- "input_schema": {
49
- "type": "object",
50
- "properties": {
51
- "event": {
52
- "type": "object",
53
- "properties": {
54
- "text": {"type": "string"},
55
- "files": {
56
- "type": "array",
57
- "items": {
58
- "type": "object",
59
- "properties": {
60
- "name": {
61
- "type": "string",
62
- },
63
- "content": {
64
- "type": "string",
65
- },
66
- "mime_type": {"type": "string"},
67
- "url": {
68
- "type": "string",
69
- },
70
- "size": {
71
- "type": "number",
72
- },
73
- },
74
- },
75
- },
76
- },
77
- },
78
- },
79
- "required": ["event"],
80
- },
81
- "output_schema": {
82
- "type": "object",
83
- "properties": {
84
- "files": {
85
- "type": "array",
86
- "items": {
87
- "type": "object",
88
- "properties": {
89
- "name": {
90
- "type": "string",
91
- },
92
- "content": {
93
- "type": "string",
94
- },
95
- "mime_type": {
96
- "type": "string",
97
- },
98
- "url": {
99
- "type": "string",
100
- },
101
- "file_size": {
102
- "type": "number",
103
- },
104
- },
105
- },
106
- },
107
- "text": {"type": "string"},
108
- "interface_properties": {"type": "object"},
109
- "history": {
110
- "type": "array",
111
- "items": {
112
- "type": "object",
113
- "properties": {
114
- "role": {"type": "string"},
115
- "content": {"type": "string"},
116
- },
117
- },
118
- },
119
- },
120
- "required": ["session_id", "clear_history", "messages"],
121
- },
122
- }
123
-
124
- DEFAULT_SYSTEM_PURPOSE = "You are participating in the chat bot framework."
125
- DEFAULT_INTERACTION_TYPE = "interactive" # vs "autonomous"
126
-
127
-
128
- class GatewayInput(GatewayBase):
129
- """This component handles incoming stimuli and prepares the context for processing."""
130
-
131
- def __init__(self, **kwargs):
132
- super().__init__(info, **kwargs)
133
- self.system_purpose = self.get_config("system_purpose", DEFAULT_SYSTEM_PURPOSE) + self.system_purpose_prompt_suffix
134
- self.interaction_type = self.get_config(
135
- "interaction_type", DEFAULT_INTERACTION_TYPE
136
- )
137
- self.identity_component = self._initialize_identity_component()
138
- self.response_format_prompt = self.get_config("response_format_prompt", "")
139
-
140
- def _authenticate_user(self, _user_properties: Dict[str, Any]) -> bool:
141
- # Implement actual authentication logic here
142
- return True
143
-
144
- def invoke(self, message: Message, data: Dict[str, Any]) -> Dict[str, Any]:
145
- user_properties = message.get_user_properties() or {}
146
- copied_data = data.copy()
147
-
148
- errors = []
149
- available_files = []
150
-
151
- try:
152
- if not self._authenticate_user(user_properties):
153
- log.error("User authentication failed")
154
- raise PermissionError("User authentication failed")
155
-
156
- # Get identity info
157
- identity_field = self.identity_component.get_identity_field()
158
- identity_value = user_properties.get(identity_field)
159
- if not identity_value:
160
- log.error("Identity field '%s' not found", identity_field)
161
- raise ValueError(f"Identity field '{identity_field}' not found")
162
-
163
- user_info = self.identity_component.get_user_info(identity_value)
164
-
165
- session_id = user_properties.get("session_id")
166
-
167
- # De-clutter the data and user_properties by moving some properties to a nested sub-object
168
- top_level_data_properties = {"text", "files"}
169
- self.demote_interface_properties(copied_data, top_level_data_properties)
170
-
171
- top_level_user_properties = {
172
- "input_type",
173
- "session_id",
174
- }
175
- self.demote_interface_properties(user_properties, top_level_user_properties)
176
-
177
- prompt = data.get("text", "")
178
- files = data.get("files", [])
179
-
180
- attached_files = []
181
- if len(files) > 0:
182
- file_service = FileService()
183
- for file in files:
184
- content = file["content"]
185
- if type(content) == str:
186
- try:
187
- byte_buffer = base64.b64decode(content)
188
- except Exception as e:
189
- byte_buffer = content.encode("utf-8")
190
- elif type(content) == bytes:
191
- byte_buffer = content
192
- else:
193
- log.error(
194
- "Invalid content type for file %s: %s",
195
- file["name"],
196
- type(content),
197
- )
198
- continue
199
-
200
- file_metadata = file_service.upload_from_buffer(
201
- byte_buffer,
202
- file["name"],
203
- session_id,
204
- file_size=file["size"],
205
- data_source=f"User provided file - {self.gateway_id} Gateway",
206
- )
207
- attached_files.append(file_metadata)
208
- copied_data["files"] = attached_files
209
-
210
- copied_data["history"] = []
211
- if self.use_history:
212
- other_history_props = {
213
- "identity": identity_value,
214
- }
215
- prompt = data.get("text", "")
216
- self.history_instance.store_history(session_id, HISTORY_USER_ROLE, prompt, other_history_props)
217
-
218
- for file in attached_files:
219
- self.history_instance.store_file(session_id, file )
220
-
221
- # retrieve all files for the session
222
- available_files = self.history_instance.get_files(session_id)
223
-
224
- # Add history to the data
225
- copied_data["history"] = self.history_instance.get_history(session_id, other_history_props)
226
-
227
- available_files = json.dumps(available_files)
228
- except Exception as e:
229
- log.error("Error processing input: %s", e)
230
- errors.append(str(e))
231
-
232
- stimulus_uuid = self.gateway_id + str(uuid4())
233
-
234
- # Add response format prompt from config if available
235
- if self.response_format_prompt:
236
- user_properties["response_format_prompt"] = self.response_format_prompt
237
-
238
- user_properties.update(
239
- {
240
- "gateway_id": self.gateway_id,
241
- "system_purpose": self.system_purpose,
242
- "interaction_type": self.interaction_type,
243
- "available_files": available_files,
244
- "stimulus_uuid": stimulus_uuid,
245
- "user_info": user_info,
246
- "identity": identity_value,
247
- }
248
- )
249
- copied_data["user_info"] = user_info
250
- copied_data["errors"] = errors
251
- message.set_user_properties(user_properties)
252
- message.set_payload(copied_data)
253
-
254
- return copied_data
255
-
256
- def demote_interface_properties(
257
- self, dict_properties: Dict[str, Any], top_level_properties: set
258
- ):
259
- """
260
- Demotes specified properties from the top level of a dictionary to a nested dictionary under the key 'interface_properties'.
261
-
262
- Args:
263
- dict_properties (Dict[str, Any]): The dictionary containing the properties.
264
- top_level_properties (set): A set of property names that should remain at the top level.
265
-
266
- Modifies:
267
- dict_properties: Adds a new key 'interface_properties' containing the properties that are not in top_level_properties.
268
- Removes the demoted properties from the top level of dict_properties.
269
- """
270
-
271
- interface_properties = {
272
- k: v for k, v in dict_properties.items() if k not in top_level_properties
273
- }
274
- dict_properties["interface_properties"] = interface_properties
275
-
276
- # Remove keys from user_properties that are in interface_user_properties
277
- for key in interface_properties:
278
- dict_properties.pop(key, None)
@@ -1,298 +0,0 @@
1
- import base64
2
- from solace_ai_connector.common.message import Message
3
- from solace_ai_connector.common.log import log
4
-
5
- from .gateway_base import GatewayBase
6
- from ...services.file_service import FileService
7
- from ...common.utils import files_to_block_text
8
- from ...common.constants import HISTORY_ASSISTANT_ROLE
9
-
10
- info = {
11
- "class_name": "GatewayOutput",
12
- "description": (
13
- "This component handles stimuli from users and forms the "
14
- "appropriate prompt for the next component in the flow."
15
- ),
16
- "config_parameters": [
17
- {
18
- "name": "gateway_config",
19
- "type": "object",
20
- "properties": {
21
- "gateway_id": {"type": "string"},
22
- "system_purpose": {"type": "string"},
23
- "interaction_type": {"type": "string"},
24
- "default_originator_scopes": {
25
- "type": "array",
26
- "items": {"type": "string"},
27
- },
28
- },
29
- "description": "Gateway configuration including originators and their configurations.",
30
- },
31
- ],
32
- "input_schema": {
33
- "type": "object",
34
- "properties": {
35
- "event": {
36
- "type": "object",
37
- "properties": {
38
- "text": {
39
- "type": "string",
40
- },
41
- "files": {
42
- "type": "array",
43
- "items": {
44
- "type": "object",
45
- "properties": {
46
- "name": {
47
- "type": "string",
48
- },
49
- "data": {
50
- "type": "string",
51
- },
52
- "mime_type": {
53
- "type": "string",
54
- },
55
- "url": {
56
- "type": "string",
57
- },
58
- "file_size": {
59
- "type": "number",
60
- },
61
- },
62
- },
63
- },
64
- "first_chunk": {
65
- "type": "boolean",
66
- },
67
- "last_chunk": {
68
- "type": "boolean",
69
- },
70
- "uuid": {
71
- "type": "string",
72
- },
73
- "chunk": {
74
- "type": "text",
75
- },
76
- "status_update": {
77
- "type": "boolean",
78
- },
79
- },
80
- },
81
- },
82
- },
83
- "output_schema": {
84
- "type": "object",
85
- "properties": {
86
- "event": {
87
- "type": "object",
88
- "properties": {
89
- "text": {
90
- "type": "string",
91
- },
92
- "files": {
93
- "type": "array",
94
- "items": {
95
- "type": "object",
96
- "properties": {
97
- "name": {
98
- "type": "string",
99
- },
100
- "data": {
101
- "type": "string",
102
- },
103
- "mime_type": {
104
- "type": "string",
105
- },
106
- "url": {
107
- "type": "string",
108
- },
109
- "file_size": {
110
- "type": "number",
111
- },
112
- },
113
- },
114
- },
115
- "first_chunk": {
116
- "type": "boolean",
117
- },
118
- "last_chunk": {
119
- "type": "boolean",
120
- },
121
- "uuid": {
122
- "type": "string",
123
- },
124
- "chunk": {
125
- "type": "text",
126
- },
127
- "status_update": {
128
- "type": "boolean",
129
- },
130
- },
131
- },
132
- },
133
- },
134
- }
135
-
136
-
137
- class GatewayOutput(GatewayBase):
138
- """This is the component that handles incoming stimuli"""
139
-
140
- def __init__(self, **kwargs):
141
- super().__init__(info, **kwargs)
142
- self.default_agent_scopes = self.get_config("default_agent_scopes", [])
143
- self.originators = self.get_config("originators", [])
144
-
145
- def _resolve_text_content(self, data: dict, session_id: str) -> None:
146
- """
147
- Resolve all AMFS URLs in text and chunk fields of the data dictionary.
148
-
149
- Args:
150
- data (dict): The data dictionary containing text and chunk fields
151
- session_id (str): The session ID for file service operations
152
-
153
- Returns:
154
- None: Modifies the data dictionary in place
155
- """
156
- try:
157
- file_service = FileService()
158
- text_output_response = data.get("text", "") or ""
159
- data["text"] = file_service.resolve_all_resolvable_urls(
160
- text_output_response, session_id
161
- )
162
- chunk_output_response = data.get("chunk", "") or ""
163
- data["chunk"] = file_service.resolve_all_resolvable_urls(
164
- chunk_output_response, session_id
165
- )
166
- except Exception as e:
167
- log.error(f"Failed to resolve URLs in text: {e}")
168
-
169
- def invoke(self, message: Message, data) -> Message:
170
- file_service = FileService()
171
- user_properties = message.get_user_properties()
172
- session_id = user_properties.get("session_id")
173
- identity_value = user_properties.get("identity")
174
- files = data.get("files", [])
175
-
176
- # Extract the interface queue ID
177
- interface_properties = user_properties.get("interface_properties", [])
178
- server_input_id = (
179
- interface_properties and interface_properties.get("server_input_id", "")
180
- if interface_properties
181
- else ""
182
- )
183
-
184
- if self.use_history and session_id:
185
- other_history_props = {
186
- "identity": identity_value,
187
- }
188
-
189
- topic = message.get_topic()
190
- content = data.get("text") or ""
191
-
192
- file_text_blocks = files_to_block_text(files)
193
- if file_text_blocks:
194
- content += file_text_blocks
195
-
196
- if (
197
- "/streamingResponse/" in topic
198
- and data.get("last_chunk")
199
- and "text" in data
200
- ):
201
- actions_called = user_properties.get("actions_called", [])
202
- if actions_called:
203
- self.history_instance.store_actions(session_id, actions_called)
204
-
205
- if content:
206
- self.history_instance.store_history(
207
- session_id, HISTORY_ASSISTANT_ROLE, content, other_history_props
208
- )
209
-
210
- for file in files:
211
- self.history_instance.store_history(
212
- session_id, HISTORY_ASSISTANT_ROLE, f'\n[Returned file: {{name: {file.get("name")}, url: {file.get("url")}}}]\n', other_history_props
213
- )
214
- self.history_instance.store_file(session_id, file)
215
-
216
- clear_history_tuple = user_properties.get("clear_gateway_history", [])
217
- if clear_history_tuple and clear_history_tuple[0]:
218
- keep_depth = clear_history_tuple[1]
219
- self.history_instance.clear_history(session_id, keep_depth)
220
-
221
- if files:
222
- downloaded_files = []
223
- for file in files:
224
- output_file = {
225
- "name": file.get("name"),
226
- }
227
- # inline file
228
- if file.get("data"):
229
- data_content = file_service.resolve_all_resolvable_urls(
230
- file.get("data"), session_id
231
- )
232
- inline_data = base64.b64encode(data_content.encode()).decode()
233
- output_file["content"] = inline_data
234
- output_file["mime_type"] = file.get("mime_type", "text/plain")
235
- elif file.get("url"):
236
- url = file.get("url")
237
- try:
238
- resolved_content = file_service.resolve_url(url, session_id)
239
- buffer_content = (
240
- resolved_content
241
- if type(resolved_content) == bytes
242
- else resolved_content.encode()
243
- )
244
- output_file["content"] = base64.b64encode(
245
- buffer_content
246
- ).decode("utf-8")
247
-
248
- # If the file name or mime type is not provided, try to get it from the resolved URL
249
- if not output_file.get("name") or not output_file.get(
250
- "mime_type"
251
- ):
252
- metadata = file_service.get_metadata(url)
253
- output_file["name"] = output_file.get(
254
- "name"
255
- ) or metadata.get("name")
256
- output_file["mime_type"] = output_file.get(
257
- "mime_type"
258
- ) or metadata.get("mime_type")
259
- except Exception as e:
260
- log.error(f"Failed to download file {file.get('name')}: {e}")
261
- continue
262
- else:
263
- log.error(f"No file content found for {file.get('name')}")
264
- continue
265
- downloaded_files.append(output_file)
266
-
267
- data["files"] = downloaded_files
268
- data["server_input_id"] = server_input_id
269
-
270
- # Promote the interface properties back to the top level of the user_properties
271
- self.promote_interface_properties(user_properties)
272
- message.set_user_properties(user_properties)
273
-
274
- # Resolve inline URLs in text and chunk fields
275
- self._resolve_text_content(data, session_id)
276
-
277
- message.set_payload(data)
278
- return {"payload": data}
279
-
280
- def promote_interface_properties(self, user_properties):
281
- """
282
- Updates the user_properties with the values from the
283
- "interface_properties" sub-object, if it exists.
284
-
285
- Args:
286
- user_properties (dict): A dictionary that may contain an
287
- "interface_properties" key with a sub-dictionary
288
- of properties to be merged into the main dictionary.
289
-
290
- Returns:
291
- None: The function modifies the user_properties dictionary in place.
292
- """
293
- interface_properties = user_properties.get("interface_properties", {})
294
- if isinstance(interface_properties, dict):
295
- for key, value in interface_properties.items():
296
- user_properties[key] = value
297
-
298
- user_properties.pop("interface_properties", None)
@@ -1,18 +0,0 @@
1
- import re
2
- from .identity_base import IdentityBase
3
- from ...services.bamboo_hr_service.bamboo_hr import BambooHR
4
-
5
- class BambooHRIdentity(IdentityBase):
6
- def __init__(self, config: dict):
7
- super().__init__(config)
8
- self.bamboo_hr_service = BambooHR(config)
9
-
10
- def get_user_info(self, identity: str) -> dict:
11
- if not re.match(r"[^@]+@[^@]+\.[^@]+", identity):
12
- raise ValueError("Invalid email address")
13
-
14
- employee_summary = self.bamboo_hr_service.get_employee_summary(identity)
15
- if employee_summary:
16
- return employee_summary
17
-
18
- return {"identity": identity}
@@ -1,10 +0,0 @@
1
- from abc import ABC, abstractmethod
2
-
3
- class IdentityBase(ABC):
4
- def __init__(self, config: dict):
5
- self.config = config
6
-
7
- @abstractmethod
8
- def get_user_info(self, identity: str) -> dict:
9
- """Get user information for a given identity."""
10
- pass
@@ -1,60 +0,0 @@
1
- import importlib
2
-
3
- from ...gateway.identity.passthru_identity import PassthruIdentity
4
- from ...gateway.identity.bamboohr_identity import BambooHRIdentity
5
- from ...gateway.identity.no_identity import NoIdentity
6
- from ...gateway.identity.identity_base import IdentityBase
7
- from ...common.constants import DEFAULT_IDENTITY_KEY_FIELD
8
-
9
- IDENTITY_PROVIDERS = {
10
- "passthru": PassthruIdentity,
11
- "bamboohr": BambooHRIdentity,
12
- "none": NoIdentity,
13
- }
14
-
15
- DEFAULT_PROVIDER = "none"
16
-
17
- class IdentityProvider:
18
- identity_provider: IdentityBase
19
-
20
- def __init__(self, config=None):
21
- self.config = config or {}
22
- self.provider_type = self.config.get("type", DEFAULT_PROVIDER)
23
- self.identity_field = self.config.get("key_field", DEFAULT_IDENTITY_KEY_FIELD)
24
- if self.provider_type not in IDENTITY_PROVIDERS and not self.config.get("module_path"):
25
- raise ValueError(
26
- f"Unsupported identity provider type: {self.provider_type}. No module_path provided."
27
- )
28
-
29
- provider_configuration = self.config.get("configuration", {})
30
-
31
- if self.provider_type in IDENTITY_PROVIDERS:
32
- # Load built-in identity provider
33
- self.identity_provider = IDENTITY_PROVIDERS[self.provider_type](provider_configuration)
34
- else:
35
- try:
36
- # Load the provider from the module path
37
- module_name = self.provider_type
38
- module_path = self.config.get("module_path")
39
- module = importlib.import_module(module_path, package=__package__)
40
- identity_class = getattr(module, module_name)
41
- if not issubclass(identity_class, IdentityBase):
42
- raise ValueError(
43
- f"Identity provider class {identity_class} does not inherit from IdentityBase"
44
- )
45
- self.identity_provider = identity_class(provider_configuration)
46
- except Exception as e:
47
- raise ImportError("Unable to load component: " + str(e)) from e
48
-
49
- def get_identity_field(self) -> str:
50
- """Returns the configured field name to use for identity lookup"""
51
- return self.identity_field
52
-
53
- def get_user_info(self, identity: str) -> dict:
54
- """
55
- Get user information using the configured identity provider.
56
-
57
- :param identity: The user identity string (usually email)
58
- :return: Dictionary containing user information
59
- """
60
- return self.identity_provider.get_user_info(identity)
@@ -1,9 +0,0 @@
1
-
2
- from .identity_base import IdentityBase
3
-
4
- class NoIdentity(IdentityBase):
5
- def __init__(self, config: dict):
6
- super().__init__(config)
7
-
8
- def get_user_info(self, identity: str) -> dict:
9
- return {}
@@ -1,9 +0,0 @@
1
-
2
- from .identity_base import IdentityBase
3
-
4
- class PassthruIdentity(IdentityBase):
5
- def __init__(self, config: dict):
6
- super().__init__(config)
7
-
8
- def get_user_info(self, identity: str) -> dict:
9
- return {"identity": identity}