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
@@ -0,0 +1,21 @@
1
+ ## Quick Summary
2
+ The `protocol` directory implements the core logic for Agent-to-Agent (A2A) communication. It handles receiving and processing requests, responses, and discovery messages (Agent Cards) over the Solace event mesh. It acts as the bridge between the A2A protocol and the underlying Google ADK execution environment.
3
+
4
+ ## Files Overview
5
+ - `__init__.py` - An empty file that marks the directory as a Python package.
6
+ - `event_handlers.py` - Contains the primary logic for handling all A2A protocol events, including routing incoming messages to the correct processors, managing task execution, and handling agent discovery.
7
+
8
+ ## Developer API Reference
9
+
10
+ ### __init__.py
11
+ **Purpose:** Standard Python package initialization file.
12
+ **Import:** `from src.solace_agent_mesh.agent.protocol import *`
13
+
14
+ This is an empty package initialization file and has no public interfaces.
15
+
16
+ ### event_handlers.py
17
+ **Purpose:** This file is the central hub for processing all events related to the A2A protocol. It receives events from the Solace AI Connector framework, determines their type (e.g., new task request, peer agent response, discovery message, timer), and routes them to the appropriate handler function. It manages the lifecycle of tasks, from initiation and cancellation to handling responses from peer agents.
18
+ **Import:** `from src.solace_agent_mesh.agent.protocol.event_handlers import process_event, handle_a2a_request, handle_agent_card_message, handle_a2a_response, publish_agent_card`
19
+
20
+ **Functions:**
21
+ - `process_event(component: "SamAgentComponent", event: Event
@@ -0,0 +1,640 @@
1
+ import sys
2
+ import os
3
+
4
+ sys.path.insert(
5
+ 0, os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
6
+ )
7
+
8
+ from common.utils.asyncio_macos_fix import ensure_asyncio_compatibility
9
+ from .patch_adk import patch_adk
10
+ from solace_ai_connector.common.log import log
11
+
12
+ ensure_asyncio_compatibility()
13
+ patch_adk()
14
+
15
+ from typing import Any, Dict
16
+ from solace_ai_connector.flow.app import App
17
+ from solace_ai_connector.common.log import log
18
+
19
+ from ...common.a2a_protocol import (
20
+ get_agent_request_topic,
21
+ get_discovery_topic,
22
+ get_agent_response_subscription_topic,
23
+ get_agent_status_subscription_topic,
24
+ )
25
+ from ...common.constants import DEFAULT_COMMUNICATION_TIMEOUT
26
+ from ...agent.sac.component import SamAgentComponent
27
+ from ...agent.utils.artifact_helpers import DEFAULT_SCHEMA_MAX_KEYS
28
+
29
+ info = {
30
+ "class_name": "SamAgentApp",
31
+ "description": "Custom App class for SAM Agent Host with namespace prefixing and automatic subscription generation.",
32
+ }
33
+
34
+
35
+ class SamAgentApp(App):
36
+ """
37
+ Custom App class for SAM Agent Host that automatically generates
38
+ the required Solace subscriptions based on namespace and agent name,
39
+ and programmatically defines the single SamAgentComponent instance.
40
+ It also defines the expected configuration structure via `app_schema`.
41
+ """
42
+
43
+ app_schema = {
44
+ "config_parameters": [
45
+ # --- A2A Config (Flattened) ---
46
+ {
47
+ "name": "namespace",
48
+ "required": True,
49
+ "type": "string",
50
+ "description": "Absolute topic prefix for A2A communication (e.g., 'myorg/dev').",
51
+ },
52
+ {
53
+ "name": "supports_streaming",
54
+ "required": False,
55
+ "type": "boolean",
56
+ "default": False,
57
+ "description": "Whether this host supports A2A streaming (tasks/sendSubscribe).",
58
+ },
59
+ # --- Core ADK Agent Definition ---
60
+ {
61
+ "name": "agent_name",
62
+ "required": True,
63
+ "type": "string",
64
+ "description": "Unique name for this ADK agent instance.",
65
+ },
66
+ {
67
+ "name": "model",
68
+ "required": True,
69
+ "type": "any",
70
+ "description": "ADK model name (string) or BaseLlm config dict.",
71
+ },
72
+ {
73
+ "name": "instruction",
74
+ "required": False,
75
+ "type": "any",
76
+ "default": "",
77
+ "description": "User-provided instructions for the ADK agent (string or invoke block).",
78
+ },
79
+ {
80
+ "name": "global_instruction",
81
+ "required": False,
82
+ "type": "any",
83
+ "default": "",
84
+ "description": "User-provided global instructions for the agent tree (string or invoke block).",
85
+ },
86
+ {
87
+ "name": "tools",
88
+ "required": False,
89
+ "type": "list",
90
+ "default": [],
91
+ "description": "List of tool configurations (python, mcp, built-in). Each tool can have 'required_scopes'.",
92
+ "items": { # Schema for each item in the tools list
93
+ "type": "object",
94
+ "properties": {
95
+ "tool_type": {
96
+ "type": "string",
97
+ "required": True,
98
+ "enum": ["python", "mcp", "builtin", "builtin-group"],
99
+ "description": "Type of the tool.",
100
+ },
101
+ "tool_name": {
102
+ "type": "string",
103
+ "required": False, # Required for mcp/builtin, optional for python
104
+ "description": "Name of the tool (e.g., ADK built-in name, specific MCP tool name). Overwrite function_name for python tools.",
105
+ },
106
+ "tool_description": {
107
+ "type": "string",
108
+ "required": False, # Optional, Only for python
109
+ "description": "Description of the tool to overwrite for python tools. Overwrite the python function description",
110
+ },
111
+ "component_module": { # For python tools
112
+ "type": "string",
113
+ "required": False,
114
+ "description": "Python module for 'python' tool type.",
115
+ },
116
+ "function_name": { # For python tools
117
+ "type": "string",
118
+ "required": False,
119
+ "description": "Function name within the module for 'python' tool type.",
120
+ },
121
+ "component_base_path": { # For python tools
122
+ "type": "string",
123
+ "required": False,
124
+ "description": "Base path for 'python' tool module resolution.",
125
+ },
126
+ "connection_params": { # For mcp tools
127
+ "type": "object",
128
+ "required": False,
129
+ "description": "Connection parameters for 'mcp' tool type.",
130
+ },
131
+ "environment_variables": { # For mcp tools (stdio)
132
+ "type": "object",
133
+ "required": False,
134
+ "description": "Environment variables for 'mcp' tool type with stdio connection.",
135
+ },
136
+ "required_scopes": {
137
+ "type": "list",
138
+ "required": False,
139
+ "default": [],
140
+ "description": "List of scope strings required to use this specific tool.",
141
+ "items": {"type": "string"},
142
+ },
143
+ "tool_config": {
144
+ "type": "object",
145
+ "required": False,
146
+ "default": {},
147
+ "description": "A dictionary holding specific configuration for this tool instance (e.g., API keys, model names for an image generation tool).",
148
+ "additionalProperties": True,
149
+ },
150
+ },
151
+ },
152
+ },
153
+ {
154
+ "name": "data_tools_config",
155
+ "required": False,
156
+ "type": "object",
157
+ "default": {},
158
+ "description": "Runtime configuration parameters for built-in data analysis tools.",
159
+ "properties": {
160
+ "sqlite_memory_threshold_mb": {
161
+ "type": "integer",
162
+ "required": False,
163
+ "default": 100,
164
+ "description": "Size threshold (MB) for using in-memory vs. temp file SQLite DB for CSV input.",
165
+ },
166
+ "max_result_preview_rows": {
167
+ "type": "integer",
168
+ "required": False,
169
+ "default": 50,
170
+ "description": "Max rows to return in preview for SQL/JQ results.",
171
+ },
172
+ "max_result_preview_bytes": {
173
+ "type": "integer",
174
+ "required": False,
175
+ "default": 4096,
176
+ "description": "Max bytes to return in preview for SQL/JQ results (if row limit not hit first).",
177
+ },
178
+ },
179
+ },
180
+ {
181
+ "name": "planner",
182
+ "required": False,
183
+ "type": "object",
184
+ "default": None,
185
+ "description": "Optional configuration for an ADK planner.",
186
+ },
187
+ {
188
+ "name": "code_executor",
189
+ "required": False,
190
+ "type": "object",
191
+ "default": None,
192
+ "description": "Optional configuration for an ADK code executor.",
193
+ },
194
+ {
195
+ "name": "inject_current_time",
196
+ "required": False,
197
+ "type": "boolean",
198
+ "default": True,
199
+ "description": "Whether to inject the current time into the agent's instruction.",
200
+ },
201
+ # --- ADK Services Configuration ---
202
+ {
203
+ "name": "session_service",
204
+ "required": True,
205
+ "type": "object",
206
+ "description": "Configuration for ADK Session Service (e.g., { type: 'memory' }).",
207
+ "default": {"type": "memory", "default_behavior": "PERSISTENT"},
208
+ "properties": {
209
+ "type": {
210
+ "type": "string",
211
+ "required": True,
212
+ "description": "Service type (e.g., 'memory', 'vertex_rag').",
213
+ },
214
+ "default_behavior": {
215
+ "type": "string",
216
+ "required": False,
217
+ "default": "PERSISTENT",
218
+ "enum": ["PERSISTENT", "RUN_BASED"],
219
+ "description": "Default behavior for session service: 'PERSISTENT' (default) or 'RUN_BASED' for how long to keep the session history.",
220
+ },
221
+ },
222
+ },
223
+ {
224
+ "name": "artifact_service",
225
+ "required": False,
226
+ "type": "object",
227
+ "default": {"type": "memory"},
228
+ "description": "Configuration for ADK Artifact Service (defaults to memory).",
229
+ "properties": {
230
+ "type": {
231
+ "type": "string",
232
+ "required": True,
233
+ "description": "Service type (e.g., 'memory', 'gcs', 'filesystem').",
234
+ },
235
+ "base_path": {
236
+ "type": "string",
237
+ "required": False, # Required only if type is filesystem
238
+ "description": "Base directory path (required for type 'filesystem').",
239
+ },
240
+ "bucket_name": {
241
+ "type": "string",
242
+ "required": False, # Required only if type is gcs
243
+ "description": "GCS bucket name (required for type 'gcs').",
244
+ },
245
+ "artifact_scope": {
246
+ "type": "string",
247
+ "required": False,
248
+ "default": "namespace",
249
+ "enum": ["namespace", "app", "custom"],
250
+ "description": "Scope for filesystem artifacts: 'namespace' (default, shared by namespace), 'app' (isolated by app name), 'custom' (use artifact_scope_value).",
251
+ },
252
+ "artifact_scope_value": {
253
+ "type": "string",
254
+ "required": False,
255
+ "default": None,
256
+ "description": "Custom identifier for artifact scope (required if artifact_scope is 'custom').",
257
+ },
258
+ },
259
+ },
260
+ {
261
+ "name": "memory_service",
262
+ "required": False,
263
+ "type": "object",
264
+ "default": {"type": "memory"},
265
+ "description": "Configuration for ADK Memory Service (defaults to memory).",
266
+ },
267
+ # --- Tool Output Handling (Generalized) ---
268
+ {
269
+ "name": "tool_output_save_threshold_bytes",
270
+ "required": False,
271
+ "type": "integer",
272
+ "default": 2048, # 2KB
273
+ "description": "If any tool's processed output (e.g., extracted content from an artifact, MCP response) exceeds this size (bytes), its full content is saved as a new ADK artifact. This threshold should generally be less than or equal to tool_output_llm_return_max_bytes.",
274
+ },
275
+ {
276
+ "name": "tool_output_llm_return_max_bytes",
277
+ "required": False,
278
+ "type": "integer",
279
+ "default": 4096, # 4KB
280
+ "description": "Maximum size (bytes) of any tool's (potentially summarized or original) output content returned directly to the LLM. If exceeded, the content will be truncated, and the full original output will be saved as an artifact if not already.",
281
+ },
282
+ # --- LLM-Powered Artifact Extraction Tool Config ---
283
+ {
284
+ "name": "extract_content_from_artifact_config",
285
+ "required": False,
286
+ "type": "object",
287
+ "default": {},
288
+ "description": "Configuration for the LLM-powered artifact extraction tool.",
289
+ "properties": {
290
+ "supported_binary_mime_types": {
291
+ "type": "list",
292
+ "required": False,
293
+ "default": [],
294
+ "items": {"type": "string"},
295
+ "description": "List of binary MIME type patterns (e.g., 'image/png', 'image/*', 'video/mp4') that the tool should attempt to process using its internal LLM.",
296
+ },
297
+ "model": {
298
+ "type": "any", # Union[str, Dict[str, Any]]
299
+ "required": False,
300
+ "default": None,
301
+ "description": "Specifies the LLM for extraction. String (ADK LLMRegistry name) or dict (LiteLlm config). Defaults to agent's LLM.",
302
+ },
303
+ },
304
+ },
305
+ # --- Artifact Handling ---
306
+ {
307
+ "name": "artifact_handling_mode",
308
+ "required": False,
309
+ "type": "string",
310
+ "default": "ignore",
311
+ "description": "How to represent created artifacts in A2A messages: 'ignore' (default), 'embed' (include base64 data), 'reference' (include fetch URI).",
312
+ },
313
+ # --- Schema Inference Config ---
314
+ {
315
+ "name": "schema_max_keys",
316
+ "required": False,
317
+ "type": "integer",
318
+ "default": DEFAULT_SCHEMA_MAX_KEYS,
319
+ "description": "Maximum number of dictionary keys to inspect during schema inference.",
320
+ },
321
+ # --- Embed Resolution Config ---
322
+ {
323
+ "name": "enable_embed_resolution",
324
+ "required": False,
325
+ "type": "boolean",
326
+ "default": True,
327
+ "description": "Enable early-stage processing (state, math, etc.) of dynamic embeds and inject related instructions.",
328
+ },
329
+ {
330
+ "name": "enable_auto_continuation",
331
+ "required": False,
332
+ "type": "boolean",
333
+ "default": True,
334
+ "description": "If true, automatically attempts to continue LLM generation if it is interrupted by a token limit.",
335
+ },
336
+ {
337
+ "name": "stream_batching_threshold_bytes",
338
+ "required": False,
339
+ "type": "integer",
340
+ "default": 0,
341
+ "description": "Minimum size in bytes for accumulated text from LLM stream before sending a status update. If 0 or less, batching is disabled and updates are sent per chunk. Final LLM chunks are always sent regardless of this threshold.",
342
+ },
343
+ {
344
+ "name": "enable_artifact_content_instruction",
345
+ "required": False,
346
+ "type": "boolean",
347
+ "default": True,
348
+ "description": "Inject instructions about the 'artifact_content' embed type (resolved late-stage, typically by a gateway).",
349
+ },
350
+ # --- Agent Card Definition (Simplified) ---
351
+ {
352
+ "name": "agent_card",
353
+ "required": True,
354
+ "type": "object",
355
+ "description": "Static definition of this agent's capabilities for discovery.",
356
+ "properties": {
357
+ "description": {
358
+ "type": "string",
359
+ "required": False,
360
+ "default": "",
361
+ "description": "Concise agent description for discovery.",
362
+ },
363
+ "defaultInputModes": {
364
+ "type": "list",
365
+ "required": False,
366
+ "default": ["text"],
367
+ "description": "Supported input content types.",
368
+ },
369
+ "defaultOutputModes": {
370
+ "type": "list",
371
+ "required": False,
372
+ "default": ["text"],
373
+ "description": "Supported output content types.",
374
+ },
375
+ "skills": {
376
+ "type": "list",
377
+ "required": False,
378
+ "default": [],
379
+ "description": "List of advertised agent skills (A2A AgentSkill structure).",
380
+ },
381
+ "documentationUrl": {
382
+ "type": "string",
383
+ "required": False,
384
+ "default": None,
385
+ "description": "Optional URL for agent documentation.",
386
+ },
387
+ "provider": {
388
+ "type": "object",
389
+ "required": False,
390
+ "default": None,
391
+ "description": "Optional provider information (A2A AgentProvider structure).",
392
+ "properties": {
393
+ "organization": {"type": "string", "required": True},
394
+ "url": {"type": "string", "required": False},
395
+ },
396
+ },
397
+ },
398
+ },
399
+ # --- Agent Discovery & Communication ---
400
+ {
401
+ "name": "agent_card_publishing",
402
+ "required": True,
403
+ "type": "object",
404
+ "description": "Settings for publishing the agent card.",
405
+ "properties": {
406
+ "interval_seconds": {
407
+ "type": "integer",
408
+ "required": True,
409
+ "description": "Publish interval (seconds). <= 0 disables periodic publish.",
410
+ }
411
+ },
412
+ },
413
+ {
414
+ "name": "agent_discovery",
415
+ "required": True,
416
+ "type": "object",
417
+ "description": "Settings for discovering other agents and injecting related instructions.",
418
+ "properties": {
419
+ "enabled": {
420
+ "type": "boolean",
421
+ "required": False,
422
+ "default": True,
423
+ "description": "Enable discovery and instruction injection.",
424
+ }
425
+ },
426
+ },
427
+ {
428
+ "name": "inter_agent_communication",
429
+ "required": True,
430
+ "type": "object",
431
+ "description": "Configuration for interacting with peer agents.",
432
+ "properties": {
433
+ "allow_list": {
434
+ "type": "list",
435
+ "required": False,
436
+ "default": ["*"],
437
+ "description": "Agent name patterns to allow delegation to.",
438
+ },
439
+ "deny_list": {
440
+ "type": "list",
441
+ "required": False,
442
+ "default": [],
443
+ "description": "Agent name patterns to deny delegation to.",
444
+ },
445
+ "request_timeout_seconds": {
446
+ "type": "integer",
447
+ "required": False,
448
+ "default": DEFAULT_COMMUNICATION_TIMEOUT,
449
+ "description": "Timeout for peer requests (seconds).",
450
+ },
451
+ },
452
+ },
453
+ {
454
+ "name": "inject_system_purpose",
455
+ "required": False,
456
+ "type": "boolean",
457
+ "default": False,
458
+ "description": "If true, injects the system_purpose received from the gateway (via task metadata) into the agent's prompt.",
459
+ },
460
+ {
461
+ "name": "inject_response_format",
462
+ "required": False,
463
+ "type": "boolean",
464
+ "default": False,
465
+ "description": "If true, injects the response_format received from the gateway (via task metadata) into the agent's prompt.",
466
+ },
467
+ {
468
+ "name": "inject_user_profile",
469
+ "required": False,
470
+ "type": "boolean",
471
+ "default": False,
472
+ "description": "If true, injects the user_profile received from the gateway (via task metadata) into the agent's prompt.",
473
+ },
474
+ # --- Configurable Agent Initialization ---
475
+ {
476
+ "name": "agent_init_function",
477
+ "required": False,
478
+ "type": "object",
479
+ "description": "Configuration for the agent's custom initialization function.",
480
+ "properties": {
481
+ "module": {
482
+ "type": "string",
483
+ "required": True,
484
+ "description": "Python module path for the init function (e.g., 'my_plugin.initializers').",
485
+ },
486
+ "name": {
487
+ "type": "string",
488
+ "required": True,
489
+ "description": "Name of the init function within the module.",
490
+ },
491
+ "base_path": {
492
+ "type": "string",
493
+ "required": False,
494
+ "description": "Optional base path for module resolution if not in PYTHONPATH.",
495
+ },
496
+ "config": {
497
+ "type": "object",
498
+ "required": False,
499
+ "default": {},
500
+ "additionalProperties": True,
501
+ "description": "Configuration dictionary for the init function, validated by its Pydantic model.",
502
+ },
503
+ },
504
+ },
505
+ # --- Configurable Agent Cleanup ---
506
+ {
507
+ "name": "agent_cleanup_function",
508
+ "required": False,
509
+ "type": "object",
510
+ "description": "Configuration for the agent's custom cleanup function.",
511
+ "properties": {
512
+ "module": {
513
+ "type": "string",
514
+ "required": True,
515
+ "description": "Python module path for the cleanup function.",
516
+ },
517
+ "name": {
518
+ "type": "string",
519
+ "required": True,
520
+ "description": "Name of the cleanup function within the module.",
521
+ },
522
+ "base_path": {
523
+ "type": "string",
524
+ "required": False,
525
+ "description": "Optional base path for module resolution.",
526
+ },
527
+ },
528
+ },
529
+ {
530
+ "name": "text_artifact_content_max_length",
531
+ "required": False,
532
+ "type": "integer",
533
+ "default": 1000,
534
+ "minimum": 100,
535
+ "maximum": 100000,
536
+ "description": "Maximum character length for text-based artifact content (100-100000 characters). Binary artifacts are unaffected.",
537
+ },
538
+ {
539
+ "name": "max_llm_calls_per_task",
540
+ "required": False,
541
+ "type": "integer",
542
+ "default": 20,
543
+ "description": "Maximum number of LLM calls allowed for a single A2A task. A value of 0 or less means unlimited.",
544
+ },
545
+ ]
546
+ }
547
+
548
+ def __init__(self, app_info: Dict[str, Any], **kwargs):
549
+ log.debug("Initializing A2A_ADK_App...")
550
+
551
+ app_config = app_info.get("app_config", {})
552
+ namespace = app_config.get("namespace")
553
+ agent_name = app_config.get("agent_name")
554
+
555
+ if not namespace or not isinstance(namespace, str):
556
+ raise ValueError(
557
+ "Internal Error: Namespace missing or invalid after validation."
558
+ )
559
+ if not agent_name or not isinstance(agent_name, str):
560
+ raise ValueError(
561
+ "Internal Error: Agent name missing or invalid after validation."
562
+ )
563
+
564
+ artifact_mode = app_config.get("artifact_handling_mode", "ignore").lower()
565
+ if artifact_mode not in ["ignore", "embed", "reference"]:
566
+ log.warning(
567
+ "Invalid 'artifact_handling_mode' value '%s' in app_config. Using 'ignore'. Allowed values: 'ignore', 'embed', 'reference'.",
568
+ artifact_mode,
569
+ )
570
+ app_config["artifact_handling_mode"] = "ignore"
571
+
572
+ schema_max_keys = app_config.get("schema_max_keys", DEFAULT_SCHEMA_MAX_KEYS)
573
+ if not isinstance(schema_max_keys, int) or schema_max_keys < 0:
574
+ log.warning(
575
+ "Invalid 'schema_max_keys' value '%s' in app_config. Using default: %d.",
576
+ schema_max_keys,
577
+ DEFAULT_SCHEMA_MAX_KEYS,
578
+ )
579
+ app_config["schema_max_keys"] = DEFAULT_SCHEMA_MAX_KEYS
580
+
581
+ artifact_service_config = app_config.get("artifact_service", {})
582
+ if artifact_service_config.get("type") == "filesystem":
583
+ artifact_scope = artifact_service_config.get("artifact_scope", "namespace")
584
+ if artifact_scope == "custom" and not artifact_service_config.get(
585
+ "artifact_scope_value"
586
+ ):
587
+ raise ValueError(
588
+ "Configuration Error: 'artifact_scope_value' is required when 'artifact_scope' is 'custom'."
589
+ )
590
+ if artifact_scope != "custom" and artifact_service_config.get(
591
+ "artifact_scope_value"
592
+ ):
593
+ log.warning(
594
+ "Configuration Warning: 'artifact_scope_value' is ignored when 'artifact_scope' is not 'custom'."
595
+ )
596
+
597
+ log.info(
598
+ "Configuring A2A_ADK_App for Agent: '%s' in Namespace: '%s'",
599
+ agent_name,
600
+ namespace,
601
+ )
602
+
603
+ required_topics = [
604
+ get_agent_request_topic(namespace, agent_name),
605
+ get_discovery_topic(namespace),
606
+ get_agent_response_subscription_topic(namespace, agent_name),
607
+ get_agent_status_subscription_topic(namespace, agent_name),
608
+ ]
609
+ generated_subs = [{"topic": topic} for topic in required_topics]
610
+ log.info(
611
+ "Automatically generated subscriptions for Agent '%s': %s",
612
+ agent_name,
613
+ generated_subs,
614
+ )
615
+
616
+ component_definition = {
617
+ "name": f"{agent_name}_host",
618
+ "component_class": SamAgentComponent,
619
+ "component_config": {},
620
+ "subscriptions": generated_subs,
621
+ }
622
+
623
+ app_info["components"] = [component_definition]
624
+ log.debug("Replaced 'components' in app_info with programmatic definition.")
625
+
626
+ broker_config = app_info.setdefault("broker", {})
627
+
628
+ broker_config["input_enabled"] = True
629
+ broker_config["output_enabled"] = True
630
+ log.debug("Injected broker.input_enabled=True and broker.output_enabled=True")
631
+
632
+ generated_queue_name = f"{namespace.strip('/')}/q/a2a/{agent_name}"
633
+ broker_config["queue_name"] = generated_queue_name
634
+ log.debug("Injected generated broker.queue_name: %s", generated_queue_name)
635
+
636
+ broker_config["temporary_queue"] = True
637
+ log.debug("Set broker_config.temporary_queue = True")
638
+
639
+ super().__init__(app_info, **kwargs)
640
+ log.debug("A2A_ADK_App initialization complete.")