solace-agent-mesh 0.2.3__py3-none-any.whl → 1.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of solace-agent-mesh might be problematic. Click here for more details.

Files changed (518) hide show
  1. solace_agent_mesh/agent/adk/adk_llm.txt +93 -0
  2. solace_agent_mesh/agent/adk/app_llm_agent.py +26 -0
  3. solace_agent_mesh/agent/adk/callbacks.py +1694 -0
  4. solace_agent_mesh/agent/adk/filesystem_artifact_service.py +381 -0
  5. solace_agent_mesh/agent/adk/invocation_monitor.py +295 -0
  6. solace_agent_mesh/agent/adk/models/lite_llm.py +872 -0
  7. solace_agent_mesh/agent/adk/models/models_llm.txt +94 -0
  8. solace_agent_mesh/agent/adk/runner.py +353 -0
  9. solace_agent_mesh/agent/adk/services.py +240 -0
  10. solace_agent_mesh/agent/adk/setup.py +751 -0
  11. solace_agent_mesh/agent/adk/stream_parser.py +214 -0
  12. solace_agent_mesh/agent/adk/tool_wrapper.py +139 -0
  13. solace_agent_mesh/agent/agent_llm.txt +41 -0
  14. solace_agent_mesh/agent/protocol/event_handlers.py +1469 -0
  15. solace_agent_mesh/agent/protocol/protocol_llm.txt +21 -0
  16. solace_agent_mesh/agent/sac/app.py +640 -0
  17. solace_agent_mesh/agent/sac/component.py +3388 -0
  18. solace_agent_mesh/agent/sac/patch_adk.py +111 -0
  19. solace_agent_mesh/agent/sac/sac_llm.txt +105 -0
  20. solace_agent_mesh/agent/sac/task_execution_context.py +176 -0
  21. solace_agent_mesh/agent/testing/__init__.py +3 -0
  22. solace_agent_mesh/agent/testing/debug_utils.py +135 -0
  23. solace_agent_mesh/agent/testing/testing_llm.txt +90 -0
  24. solace_agent_mesh/agent/tools/__init__.py +14 -0
  25. solace_agent_mesh/agent/tools/audio_tools.py +1622 -0
  26. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +1954 -0
  27. solace_agent_mesh/agent/tools/builtin_data_analysis_tools.py +238 -0
  28. solace_agent_mesh/agent/tools/general_agent_tools.py +569 -0
  29. solace_agent_mesh/agent/tools/image_tools.py +1184 -0
  30. solace_agent_mesh/agent/tools/peer_agent_tool.py +289 -0
  31. solace_agent_mesh/agent/tools/registry.py +36 -0
  32. solace_agent_mesh/agent/tools/test_tools.py +135 -0
  33. solace_agent_mesh/agent/tools/tool_definition.py +45 -0
  34. solace_agent_mesh/agent/tools/tools_llm.txt +104 -0
  35. solace_agent_mesh/agent/tools/web_tools.py +381 -0
  36. solace_agent_mesh/agent/utils/artifact_helpers.py +927 -0
  37. solace_agent_mesh/agent/utils/config_parser.py +47 -0
  38. solace_agent_mesh/agent/utils/context_helpers.py +60 -0
  39. solace_agent_mesh/agent/utils/utils_llm.txt +153 -0
  40. solace_agent_mesh/assets/docs/404.html +16 -0
  41. solace_agent_mesh/assets/docs/assets/css/styles.906a1503.css +1 -0
  42. solace_agent_mesh/assets/docs/assets/images/Solace_AI_Framework_With_Broker-85f0a306a9bcdd20b390b7a949f6d862.png +0 -0
  43. solace_agent_mesh/assets/docs/assets/images/sac-flows-80d5b603c6aafd33e87945680ce0abf3.png +0 -0
  44. solace_agent_mesh/assets/docs/assets/images/sac_parts_of_a_component-cb3d0424b1d0c17734c5435cca6b4082.png +0 -0
  45. solace_agent_mesh/assets/docs/assets/js/04989206.674a8007.js +1 -0
  46. solace_agent_mesh/assets/docs/assets/js/0e682baa.79f0ab22.js +1 -0
  47. solace_agent_mesh/assets/docs/assets/js/1001.0182a8bd.js +1 -0
  48. solace_agent_mesh/assets/docs/assets/js/1023fc19.015679ca.js +1 -0
  49. solace_agent_mesh/assets/docs/assets/js/1039.0bd46aa1.js +1 -0
  50. solace_agent_mesh/assets/docs/assets/js/149.b797a808.js +1 -0
  51. solace_agent_mesh/assets/docs/assets/js/1523c6b4.91c7bc01.js +1 -0
  52. solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js +2 -0
  53. solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js.LICENSE.txt +9 -0
  54. solace_agent_mesh/assets/docs/assets/js/166ab619.7d97ccaf.js +1 -0
  55. solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js +2 -0
  56. solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js.LICENSE.txt +7 -0
  57. solace_agent_mesh/assets/docs/assets/js/1c6e87d2.23bccffb.js +1 -0
  58. solace_agent_mesh/assets/docs/assets/js/2130.ab9fd314.js +1 -0
  59. solace_agent_mesh/assets/docs/assets/js/21ceee5f.614fa8dd.js +1 -0
  60. solace_agent_mesh/assets/docs/assets/js/2237.5e477fc6.js +1 -0
  61. solace_agent_mesh/assets/docs/assets/js/2334.622a6395.js +1 -0
  62. solace_agent_mesh/assets/docs/assets/js/2a9cab12.8909df92.js +1 -0
  63. solace_agent_mesh/assets/docs/assets/js/3219.adc1d663.js +1 -0
  64. solace_agent_mesh/assets/docs/assets/js/332e10b5.7a103f42.js +1 -0
  65. solace_agent_mesh/assets/docs/assets/js/3624.b524e433.js +1 -0
  66. solace_agent_mesh/assets/docs/assets/js/375.708d48db.js +1 -0
  67. solace_agent_mesh/assets/docs/assets/js/3834.b6cd790e.js +1 -0
  68. solace_agent_mesh/assets/docs/assets/js/3d406171.f722eaf5.js +1 -0
  69. solace_agent_mesh/assets/docs/assets/js/4250.95455b28.js +1 -0
  70. solace_agent_mesh/assets/docs/assets/js/42b3f8d8.36090198.js +1 -0
  71. solace_agent_mesh/assets/docs/assets/js/4356.d169ab5b.js +1 -0
  72. solace_agent_mesh/assets/docs/assets/js/442a8107.5ba94b65.js +1 -0
  73. solace_agent_mesh/assets/docs/assets/js/4458.518e66fa.js +1 -0
  74. solace_agent_mesh/assets/docs/assets/js/4488.c7cc3442.js +1 -0
  75. solace_agent_mesh/assets/docs/assets/js/4494.6ee23046.js +1 -0
  76. solace_agent_mesh/assets/docs/assets/js/4855.fc4444b6.js +1 -0
  77. solace_agent_mesh/assets/docs/assets/js/4866.22daefc0.js +1 -0
  78. solace_agent_mesh/assets/docs/assets/js/4950.ca4caeda.js +1 -0
  79. solace_agent_mesh/assets/docs/assets/js/4c2787c2.66ee00e9.js +1 -0
  80. solace_agent_mesh/assets/docs/assets/js/5388.7a136447.js +1 -0
  81. solace_agent_mesh/assets/docs/assets/js/55f47984.c484bf96.js +1 -0
  82. solace_agent_mesh/assets/docs/assets/js/5607.081356f8.js +1 -0
  83. solace_agent_mesh/assets/docs/assets/js/5864.b0d0e9de.js +1 -0
  84. solace_agent_mesh/assets/docs/assets/js/5b4258a4.bda20761.js +1 -0
  85. solace_agent_mesh/assets/docs/assets/js/5e95c892.558d5167.js +1 -0
  86. solace_agent_mesh/assets/docs/assets/js/6143.0a1464c9.js +1 -0
  87. solace_agent_mesh/assets/docs/assets/js/6395.e9c73649.js +1 -0
  88. solace_agent_mesh/assets/docs/assets/js/6796.51d2c9b7.js +1 -0
  89. solace_agent_mesh/assets/docs/assets/js/6976.379be23b.js +1 -0
  90. solace_agent_mesh/assets/docs/assets/js/6978.ee0b945c.js +1 -0
  91. solace_agent_mesh/assets/docs/assets/js/7040.cb436723.js +1 -0
  92. solace_agent_mesh/assets/docs/assets/js/7195.412f418a.js +1 -0
  93. solace_agent_mesh/assets/docs/assets/js/7280.3fb73bdb.js +1 -0
  94. solace_agent_mesh/assets/docs/assets/js/768e31b0.a12673db.js +1 -0
  95. solace_agent_mesh/assets/docs/assets/js/7845.e33e7c4c.js +1 -0
  96. solace_agent_mesh/assets/docs/assets/js/7900.69516146.js +1 -0
  97. solace_agent_mesh/assets/docs/assets/js/8356.8a379c04.js +1 -0
  98. solace_agent_mesh/assets/docs/assets/js/85387663.6bf41934.js +1 -0
  99. solace_agent_mesh/assets/docs/assets/js/8567.4732c6b7.js +1 -0
  100. solace_agent_mesh/assets/docs/assets/js/8573.cb04eda5.js +1 -0
  101. solace_agent_mesh/assets/docs/assets/js/8577.1d54e766.js +1 -0
  102. solace_agent_mesh/assets/docs/assets/js/8591.d7c16be6.js +2 -0
  103. solace_agent_mesh/assets/docs/assets/js/8591.d7c16be6.js.LICENSE.txt +61 -0
  104. solace_agent_mesh/assets/docs/assets/js/8709.7ecd4047.js +1 -0
  105. solace_agent_mesh/assets/docs/assets/js/8731.49e930c2.js +1 -0
  106. solace_agent_mesh/assets/docs/assets/js/8908.f9d1b506.js +1 -0
  107. solace_agent_mesh/assets/docs/assets/js/9157.b4093d07.js +1 -0
  108. solace_agent_mesh/assets/docs/assets/js/9278.a4fd875d.js +1 -0
  109. solace_agent_mesh/assets/docs/assets/js/945fb41e.74d728aa.js +1 -0
  110. solace_agent_mesh/assets/docs/assets/js/9616.b75c2f6d.js +1 -0
  111. solace_agent_mesh/assets/docs/assets/js/9793.c6d16376.js +1 -0
  112. solace_agent_mesh/assets/docs/assets/js/9eff14a2.1bf8f61c.js +1 -0
  113. solace_agent_mesh/assets/docs/assets/js/a3a92b25.26ca071f.js +1 -0
  114. solace_agent_mesh/assets/docs/assets/js/a7bd4aaa.2204d2f7.js +1 -0
  115. solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js +1 -0
  116. solace_agent_mesh/assets/docs/assets/js/aba21aa0.c42a534c.js +1 -0
  117. solace_agent_mesh/assets/docs/assets/js/aba87c2f.d3e2dcc3.js +1 -0
  118. solace_agent_mesh/assets/docs/assets/js/ae4415af.8e279b5d.js +1 -0
  119. solace_agent_mesh/assets/docs/assets/js/b7006a3a.40b10c9d.js +1 -0
  120. solace_agent_mesh/assets/docs/assets/js/bac0be12.f50d9bac.js +1 -0
  121. solace_agent_mesh/assets/docs/assets/js/bb2ef573.207e6990.js +1 -0
  122. solace_agent_mesh/assets/docs/assets/js/c2c06897.63b76e9e.js +1 -0
  123. solace_agent_mesh/assets/docs/assets/js/cc969b05.954186d4.js +1 -0
  124. solace_agent_mesh/assets/docs/assets/js/cd3d4052.ca6eed8c.js +1 -0
  125. solace_agent_mesh/assets/docs/assets/js/ced92a13.fb92e7ca.js +1 -0
  126. solace_agent_mesh/assets/docs/assets/js/cee5d587.f5b73ca1.js +1 -0
  127. solace_agent_mesh/assets/docs/assets/js/f284c35a.ecc3d195.js +1 -0
  128. solace_agent_mesh/assets/docs/assets/js/f897a61a.2c2e152c.js +1 -0
  129. solace_agent_mesh/assets/docs/assets/js/fbfa3e75.aca209c9.js +1 -0
  130. solace_agent_mesh/assets/docs/assets/js/main.7ed3319f.js +2 -0
  131. solace_agent_mesh/assets/docs/assets/js/main.7ed3319f.js.LICENSE.txt +81 -0
  132. solace_agent_mesh/assets/docs/assets/js/runtime~main.d9520ae2.js +1 -0
  133. solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +128 -0
  134. solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +91 -0
  135. solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +201 -0
  136. solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +91 -0
  137. solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +55 -0
  138. solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +82 -0
  139. solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +60 -0
  140. solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +48 -0
  141. solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +54 -0
  142. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +17 -0
  143. solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +45 -0
  144. solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +76 -0
  145. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +150 -0
  146. solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +54 -0
  147. solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +267 -0
  148. solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +136 -0
  149. solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +116 -0
  150. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +80 -0
  151. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +164 -0
  152. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +57 -0
  153. solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +72 -0
  154. solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +102 -0
  155. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +99 -0
  156. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +90 -0
  157. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +107 -0
  158. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +152 -0
  159. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +103 -0
  160. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +170 -0
  161. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +200 -0
  162. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +54 -0
  163. solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +69 -0
  164. solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +59 -0
  165. solace_agent_mesh/assets/docs/img/Solace_AI_Framework_README.png +0 -0
  166. solace_agent_mesh/assets/docs/img/Solace_AI_Framework_With_Broker.png +0 -0
  167. solace_agent_mesh/assets/docs/img/logo.png +0 -0
  168. solace_agent_mesh/assets/docs/img/sac-flows.png +0 -0
  169. solace_agent_mesh/assets/docs/img/sac_parts_of_a_component.png +0 -0
  170. solace_agent_mesh/assets/docs/img/solace-logo.png +0 -0
  171. solace_agent_mesh/assets/docs/lunr-index-1753813536522.json +1 -0
  172. solace_agent_mesh/assets/docs/lunr-index.json +1 -0
  173. solace_agent_mesh/assets/docs/search-doc-1753813536522.json +1 -0
  174. solace_agent_mesh/assets/docs/search-doc.json +1 -0
  175. solace_agent_mesh/assets/docs/sitemap.xml +1 -0
  176. solace_agent_mesh/cli/__init__.py +1 -1
  177. solace_agent_mesh/cli/commands/add_cmd/__init__.py +15 -0
  178. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +250 -0
  179. solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +659 -0
  180. solace_agent_mesh/cli/commands/add_cmd/gateway_cmd.py +322 -0
  181. solace_agent_mesh/cli/commands/add_cmd/web_add_agent_step.py +93 -0
  182. solace_agent_mesh/cli/commands/add_cmd/web_add_gateway_step.py +118 -0
  183. solace_agent_mesh/cli/commands/docs_cmd.py +57 -0
  184. solace_agent_mesh/cli/commands/eval_cmd.py +64 -0
  185. solace_agent_mesh/cli/commands/init_cmd/__init__.py +404 -0
  186. solace_agent_mesh/cli/commands/init_cmd/broker_step.py +201 -0
  187. solace_agent_mesh/cli/commands/init_cmd/directory_step.py +28 -0
  188. solace_agent_mesh/cli/commands/init_cmd/env_step.py +197 -0
  189. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +365 -0
  190. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +387 -0
  191. solace_agent_mesh/cli/commands/init_cmd/project_files_step.py +38 -0
  192. solace_agent_mesh/cli/commands/init_cmd/web_init_step.py +110 -0
  193. solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +183 -0
  194. solace_agent_mesh/cli/commands/plugin_cmd/__init__.py +18 -0
  195. solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +372 -0
  196. solace_agent_mesh/cli/commands/plugin_cmd/build_cmd.py +86 -0
  197. solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +138 -0
  198. solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +309 -0
  199. solace_agent_mesh/cli/commands/plugin_cmd/official_registry.py +174 -0
  200. solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +305 -0
  201. solace_agent_mesh/cli/commands/run_cmd.py +158 -0
  202. solace_agent_mesh/cli/main.py +17 -294
  203. solace_agent_mesh/cli/utils.py +135 -204
  204. solace_agent_mesh/client/webui/frontend/static/assets/authCallback-DvlO62me.js +1 -0
  205. solace_agent_mesh/client/webui/frontend/static/assets/client-bp6u3qVZ.js +49 -0
  206. solace_agent_mesh/client/webui/frontend/static/assets/favicon-BLgzUch9.ico +0 -0
  207. solace_agent_mesh/client/webui/frontend/static/assets/main-An0a5j5k.js +663 -0
  208. solace_agent_mesh/client/webui/frontend/static/assets/main-Bu5-4Bac.css +1 -0
  209. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +14 -0
  210. solace_agent_mesh/client/webui/frontend/static/index.html +15 -0
  211. solace_agent_mesh/common/__init__.py +1 -0
  212. solace_agent_mesh/common/a2a_protocol.py +564 -0
  213. solace_agent_mesh/common/agent_registry.py +42 -0
  214. solace_agent_mesh/common/client/__init__.py +4 -0
  215. solace_agent_mesh/common/client/card_resolver.py +21 -0
  216. solace_agent_mesh/common/client/client.py +85 -0
  217. solace_agent_mesh/common/client/client_llm.txt +133 -0
  218. solace_agent_mesh/common/common_llm.txt +144 -0
  219. solace_agent_mesh/common/constants.py +1 -14
  220. solace_agent_mesh/common/middleware/__init__.py +12 -0
  221. solace_agent_mesh/common/middleware/config_resolver.py +130 -0
  222. solace_agent_mesh/common/middleware/middleware_llm.txt +174 -0
  223. solace_agent_mesh/common/middleware/registry.py +125 -0
  224. solace_agent_mesh/common/server/__init__.py +4 -0
  225. solace_agent_mesh/common/server/server.py +122 -0
  226. solace_agent_mesh/common/server/server_llm.txt +169 -0
  227. solace_agent_mesh/common/server/task_manager.py +291 -0
  228. solace_agent_mesh/common/server/utils.py +28 -0
  229. solace_agent_mesh/common/services/__init__.py +4 -0
  230. solace_agent_mesh/common/services/employee_service.py +162 -0
  231. solace_agent_mesh/common/services/identity_service.py +129 -0
  232. solace_agent_mesh/common/services/providers/__init__.py +4 -0
  233. solace_agent_mesh/common/services/providers/local_file_identity_service.py +148 -0
  234. solace_agent_mesh/common/services/providers/providers_llm.txt +113 -0
  235. solace_agent_mesh/common/services/services_llm.txt +132 -0
  236. solace_agent_mesh/common/types.py +411 -0
  237. solace_agent_mesh/common/utils/__init__.py +7 -0
  238. solace_agent_mesh/common/utils/asyncio_macos_fix.py +86 -0
  239. solace_agent_mesh/common/utils/embeds/__init__.py +33 -0
  240. solace_agent_mesh/common/utils/embeds/constants.py +55 -0
  241. solace_agent_mesh/common/utils/embeds/converter.py +452 -0
  242. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +124 -0
  243. solace_agent_mesh/common/utils/embeds/evaluators.py +394 -0
  244. solace_agent_mesh/common/utils/embeds/modifiers.py +816 -0
  245. solace_agent_mesh/common/utils/embeds/resolver.py +865 -0
  246. solace_agent_mesh/common/utils/embeds/types.py +14 -0
  247. solace_agent_mesh/common/utils/in_memory_cache.py +108 -0
  248. solace_agent_mesh/common/utils/log_formatters.py +44 -0
  249. solace_agent_mesh/common/utils/mime_helpers.py +106 -0
  250. solace_agent_mesh/common/utils/push_notification_auth.py +134 -0
  251. solace_agent_mesh/common/utils/utils_llm.txt +67 -0
  252. solace_agent_mesh/config_portal/backend/common.py +66 -24
  253. solace_agent_mesh/config_portal/backend/plugin_catalog/constants.py +23 -0
  254. solace_agent_mesh/config_portal/backend/plugin_catalog/models.py +49 -0
  255. solace_agent_mesh/config_portal/backend/plugin_catalog/registry_manager.py +160 -0
  256. solace_agent_mesh/config_portal/backend/plugin_catalog/scraper.py +525 -0
  257. solace_agent_mesh/config_portal/backend/plugin_catalog_server.py +216 -0
  258. solace_agent_mesh/config_portal/backend/server.py +550 -140
  259. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-DNxCwAGB.js +48 -0
  260. solace_agent_mesh/config_portal/frontend/static/client/assets/components-B7lKcHVY.js +140 -0
  261. solace_agent_mesh/config_portal/frontend/static/client/assets/{entry.client-DX1misIU.js → entry.client-CEumGClk.js} +3 -3
  262. solace_agent_mesh/config_portal/frontend/static/client/assets/index-DSo1AH_7.js +68 -0
  263. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-d2b54a97.js +1 -0
  264. solace_agent_mesh/config_portal/frontend/static/client/assets/{root-BApq5dPK.js → root-C4XmHinv.js} +2 -2
  265. solace_agent_mesh/config_portal/frontend/static/client/assets/root-DxRwaWiE.css +1 -0
  266. solace_agent_mesh/config_portal/frontend/static/client/index.html +3 -3
  267. solace_agent_mesh/core_a2a/__init__.py +1 -0
  268. solace_agent_mesh/core_a2a/core_a2a_llm.txt +88 -0
  269. solace_agent_mesh/core_a2a/service.py +331 -0
  270. solace_agent_mesh/evaluation/config_loader.py +657 -0
  271. solace_agent_mesh/evaluation/evaluator.py +667 -0
  272. solace_agent_mesh/evaluation/message_organizer.py +568 -0
  273. solace_agent_mesh/evaluation/report/benchmark_info.html +35 -0
  274. solace_agent_mesh/evaluation/report/chart_section.html +141 -0
  275. solace_agent_mesh/evaluation/report/detailed_breakdown.html +28 -0
  276. solace_agent_mesh/evaluation/report/modal.html +59 -0
  277. solace_agent_mesh/evaluation/report/modal_chart_functions.js +411 -0
  278. solace_agent_mesh/evaluation/report/modal_script.js +296 -0
  279. solace_agent_mesh/evaluation/report/modal_styles.css +340 -0
  280. solace_agent_mesh/evaluation/report/performance_metrics_styles.css +93 -0
  281. solace_agent_mesh/evaluation/report/templates/footer.html +2 -0
  282. solace_agent_mesh/evaluation/report/templates/header.html +340 -0
  283. solace_agent_mesh/evaluation/report_data_processor.py +972 -0
  284. solace_agent_mesh/evaluation/report_generator.py +613 -0
  285. solace_agent_mesh/evaluation/run.py +613 -0
  286. solace_agent_mesh/evaluation/subscriber.py +872 -0
  287. solace_agent_mesh/evaluation/summary_builder.py +775 -0
  288. solace_agent_mesh/evaluation/test_case_loader.py +714 -0
  289. solace_agent_mesh/gateway/base/__init__.py +1 -0
  290. solace_agent_mesh/gateway/base/app.py +266 -0
  291. solace_agent_mesh/gateway/base/base_llm.txt +119 -0
  292. solace_agent_mesh/gateway/base/component.py +1542 -0
  293. solace_agent_mesh/gateway/base/task_context.py +74 -0
  294. solace_agent_mesh/gateway/gateway_llm.txt +125 -0
  295. solace_agent_mesh/gateway/http_sse/app.py +190 -0
  296. solace_agent_mesh/gateway/http_sse/component.py +1602 -0
  297. solace_agent_mesh/gateway/http_sse/components/__init__.py +7 -0
  298. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +65 -0
  299. solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py +108 -0
  300. solace_agent_mesh/gateway/http_sse/dependencies.py +316 -0
  301. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +63 -0
  302. solace_agent_mesh/gateway/http_sse/main.py +442 -0
  303. solace_agent_mesh/gateway/http_sse/routers/__init__.py +4 -0
  304. solace_agent_mesh/gateway/http_sse/routers/agents.py +41 -0
  305. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +821 -0
  306. solace_agent_mesh/gateway/http_sse/routers/auth.py +212 -0
  307. solace_agent_mesh/gateway/http_sse/routers/config.py +55 -0
  308. solace_agent_mesh/gateway/http_sse/routers/people.py +69 -0
  309. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +37 -0
  310. solace_agent_mesh/gateway/http_sse/routers/sessions.py +80 -0
  311. solace_agent_mesh/gateway/http_sse/routers/sse.py +138 -0
  312. solace_agent_mesh/gateway/http_sse/routers/tasks.py +294 -0
  313. solace_agent_mesh/gateway/http_sse/routers/users.py +59 -0
  314. solace_agent_mesh/gateway/http_sse/routers/visualization.py +1131 -0
  315. solace_agent_mesh/gateway/http_sse/services/__init__.py +4 -0
  316. solace_agent_mesh/gateway/http_sse/services/agent_service.py +69 -0
  317. solace_agent_mesh/gateway/http_sse/services/people_service.py +158 -0
  318. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +179 -0
  319. solace_agent_mesh/gateway/http_sse/services/task_service.py +121 -0
  320. solace_agent_mesh/gateway/http_sse/session_manager.py +187 -0
  321. solace_agent_mesh/gateway/http_sse/sse_manager.py +328 -0
  322. solace_agent_mesh/llm.txt +228 -0
  323. solace_agent_mesh/llm_detail.txt +2835 -0
  324. solace_agent_mesh/templates/agent_template.yaml +53 -0
  325. solace_agent_mesh/templates/eval_backend_template.yaml +54 -0
  326. solace_agent_mesh/templates/gateway_app_template.py +73 -0
  327. solace_agent_mesh/templates/gateway_component_template.py +400 -0
  328. solace_agent_mesh/templates/gateway_config_template.yaml +43 -0
  329. solace_agent_mesh/templates/main_orchestrator.yaml +55 -0
  330. solace_agent_mesh/templates/plugin_agent_config_template.yaml +122 -0
  331. solace_agent_mesh/templates/plugin_custom_config_template.yaml +27 -0
  332. solace_agent_mesh/templates/plugin_custom_template.py +10 -0
  333. solace_agent_mesh/templates/plugin_gateway_config_template.yaml +63 -0
  334. solace_agent_mesh/templates/plugin_pyproject_template.toml +33 -0
  335. solace_agent_mesh/templates/plugin_readme_template.md +34 -0
  336. solace_agent_mesh/templates/plugin_tools_template.py +224 -0
  337. solace_agent_mesh/templates/shared_config.yaml +66 -0
  338. solace_agent_mesh/templates/templates_llm.txt +147 -0
  339. solace_agent_mesh/templates/webui.yaml +53 -0
  340. solace_agent_mesh-1.0.1.dist-info/METADATA +432 -0
  341. solace_agent_mesh-1.0.1.dist-info/RECORD +359 -0
  342. solace_agent_mesh-1.0.1.dist-info/entry_points.txt +3 -0
  343. {solace_agent_mesh-0.2.3.dist-info → solace_agent_mesh-1.0.1.dist-info}/licenses/LICENSE +1 -1
  344. solace_agent_mesh/agents/base_agent_component.py +0 -226
  345. solace_agent_mesh/agents/global/actions/agent_state_change.py +0 -54
  346. solace_agent_mesh/agents/global/actions/clear_history.py +0 -32
  347. solace_agent_mesh/agents/global/actions/convert_file_to_markdown.py +0 -160
  348. solace_agent_mesh/agents/global/actions/create_file.py +0 -70
  349. solace_agent_mesh/agents/global/actions/error_action.py +0 -45
  350. solace_agent_mesh/agents/global/actions/plantuml_diagram.py +0 -163
  351. solace_agent_mesh/agents/global/actions/plotly_graph.py +0 -152
  352. solace_agent_mesh/agents/global/actions/retrieve_file.py +0 -51
  353. solace_agent_mesh/agents/global/global_agent_component.py +0 -38
  354. solace_agent_mesh/agents/image_processing/actions/create_image.py +0 -75
  355. solace_agent_mesh/agents/image_processing/actions/describe_image.py +0 -115
  356. solace_agent_mesh/agents/image_processing/image_processing_agent_component.py +0 -23
  357. solace_agent_mesh/agents/slack/__init__.py +0 -1
  358. solace_agent_mesh/agents/slack/actions/__init__.py +0 -1
  359. solace_agent_mesh/agents/slack/actions/post_message.py +0 -177
  360. solace_agent_mesh/agents/slack/slack_agent_component.py +0 -59
  361. solace_agent_mesh/agents/web_request/actions/do_image_search.py +0 -84
  362. solace_agent_mesh/agents/web_request/actions/do_news_search.py +0 -47
  363. solace_agent_mesh/agents/web_request/actions/do_suggestion_search.py +0 -34
  364. solace_agent_mesh/agents/web_request/actions/do_web_request.py +0 -135
  365. solace_agent_mesh/agents/web_request/actions/download_file.py +0 -69
  366. solace_agent_mesh/agents/web_request/web_request_agent_component.py +0 -33
  367. solace_agent_mesh/assets/web-visualizer/assets/index-D0qORgkg.css +0 -1
  368. solace_agent_mesh/assets/web-visualizer/assets/index-DnDr1pnu.js +0 -109
  369. solace_agent_mesh/assets/web-visualizer/index.html +0 -14
  370. solace_agent_mesh/assets/web-visualizer/vite.svg +0 -1
  371. solace_agent_mesh/cli/commands/add/__init__.py +0 -3
  372. solace_agent_mesh/cli/commands/add/add.py +0 -88
  373. solace_agent_mesh/cli/commands/add/agent.py +0 -110
  374. solace_agent_mesh/cli/commands/add/copy_from_plugin.py +0 -92
  375. solace_agent_mesh/cli/commands/add/gateway.py +0 -374
  376. solace_agent_mesh/cli/commands/build.py +0 -670
  377. solace_agent_mesh/cli/commands/chat/__init__.py +0 -3
  378. solace_agent_mesh/cli/commands/chat/chat.py +0 -361
  379. solace_agent_mesh/cli/commands/config.py +0 -29
  380. solace_agent_mesh/cli/commands/init/__init__.py +0 -3
  381. solace_agent_mesh/cli/commands/init/ai_provider_step.py +0 -93
  382. solace_agent_mesh/cli/commands/init/broker_step.py +0 -99
  383. solace_agent_mesh/cli/commands/init/builtin_agent_step.py +0 -83
  384. solace_agent_mesh/cli/commands/init/check_if_already_done.py +0 -13
  385. solace_agent_mesh/cli/commands/init/create_config_file_step.py +0 -65
  386. solace_agent_mesh/cli/commands/init/create_other_project_files_step.py +0 -147
  387. solace_agent_mesh/cli/commands/init/file_service_step.py +0 -73
  388. solace_agent_mesh/cli/commands/init/init.py +0 -92
  389. solace_agent_mesh/cli/commands/init/project_structure_step.py +0 -16
  390. solace_agent_mesh/cli/commands/init/web_init_step.py +0 -32
  391. solace_agent_mesh/cli/commands/plugin/__init__.py +0 -3
  392. solace_agent_mesh/cli/commands/plugin/add.py +0 -100
  393. solace_agent_mesh/cli/commands/plugin/build.py +0 -268
  394. solace_agent_mesh/cli/commands/plugin/create.py +0 -117
  395. solace_agent_mesh/cli/commands/plugin/plugin.py +0 -124
  396. solace_agent_mesh/cli/commands/plugin/remove.py +0 -73
  397. solace_agent_mesh/cli/commands/run.py +0 -68
  398. solace_agent_mesh/cli/commands/visualizer.py +0 -138
  399. solace_agent_mesh/cli/config.py +0 -85
  400. solace_agent_mesh/common/action.py +0 -91
  401. solace_agent_mesh/common/action_list.py +0 -37
  402. solace_agent_mesh/common/action_response.py +0 -340
  403. solace_agent_mesh/common/mysql_database.py +0 -40
  404. solace_agent_mesh/common/postgres_database.py +0 -85
  405. solace_agent_mesh/common/prompt_templates.py +0 -28
  406. solace_agent_mesh/common/stimulus_utils.py +0 -152
  407. solace_agent_mesh/common/time.py +0 -24
  408. solace_agent_mesh/common/utils.py +0 -712
  409. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-DMmCawWe.js +0 -42
  410. solace_agent_mesh/config_portal/frontend/static/client/assets/components-ZIfdTbrV.js +0 -191
  411. solace_agent_mesh/config_portal/frontend/static/client/assets/index-BJHAE5s4.js +0 -17
  412. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-dd988f05.js +0 -1
  413. solace_agent_mesh/config_portal/frontend/static/client/assets/root-DX4gQ516.css +0 -1
  414. solace_agent_mesh/configs/agent_global.yaml +0 -74
  415. solace_agent_mesh/configs/agent_image_processing.yaml +0 -82
  416. solace_agent_mesh/configs/agent_slack.yaml +0 -64
  417. solace_agent_mesh/configs/agent_web_request.yaml +0 -75
  418. solace_agent_mesh/configs/conversation_to_file.yaml +0 -56
  419. solace_agent_mesh/configs/error_catcher.yaml +0 -56
  420. solace_agent_mesh/configs/monitor.yaml +0 -0
  421. solace_agent_mesh/configs/monitor_stim_and_errors_to_slack.yaml +0 -109
  422. solace_agent_mesh/configs/monitor_user_feedback.yaml +0 -58
  423. solace_agent_mesh/configs/orchestrator.yaml +0 -241
  424. solace_agent_mesh/configs/service_embedding.yaml +0 -81
  425. solace_agent_mesh/configs/service_llm.yaml +0 -265
  426. solace_agent_mesh/configs/visualize_websocket.yaml +0 -55
  427. solace_agent_mesh/gateway/components/gateway_base.py +0 -47
  428. solace_agent_mesh/gateway/components/gateway_input.py +0 -278
  429. solace_agent_mesh/gateway/components/gateway_output.py +0 -298
  430. solace_agent_mesh/gateway/identity/bamboohr_identity.py +0 -18
  431. solace_agent_mesh/gateway/identity/identity_base.py +0 -10
  432. solace_agent_mesh/gateway/identity/identity_provider.py +0 -60
  433. solace_agent_mesh/gateway/identity/no_identity.py +0 -9
  434. solace_agent_mesh/gateway/identity/passthru_identity.py +0 -9
  435. solace_agent_mesh/monitors/base_monitor_component.py +0 -26
  436. solace_agent_mesh/monitors/feedback/user_feedback_monitor.py +0 -75
  437. solace_agent_mesh/monitors/stim_and_errors/stim_and_error_monitor.py +0 -560
  438. solace_agent_mesh/orchestrator/__init__.py +0 -0
  439. solace_agent_mesh/orchestrator/action_manager.py +0 -237
  440. solace_agent_mesh/orchestrator/components/__init__.py +0 -0
  441. solace_agent_mesh/orchestrator/components/orchestrator_action_manager_timeout_component.py +0 -58
  442. solace_agent_mesh/orchestrator/components/orchestrator_action_response_component.py +0 -179
  443. solace_agent_mesh/orchestrator/components/orchestrator_register_component.py +0 -107
  444. solace_agent_mesh/orchestrator/components/orchestrator_stimulus_processor_component.py +0 -527
  445. solace_agent_mesh/orchestrator/components/orchestrator_streaming_output_component.py +0 -260
  446. solace_agent_mesh/orchestrator/orchestrator_main.py +0 -172
  447. solace_agent_mesh/orchestrator/orchestrator_prompt.py +0 -539
  448. solace_agent_mesh/services/__init__.py +0 -0
  449. solace_agent_mesh/services/authorization/providers/base_authorization_provider.py +0 -56
  450. solace_agent_mesh/services/bamboo_hr_service/__init__.py +0 -3
  451. solace_agent_mesh/services/bamboo_hr_service/bamboo_hr.py +0 -182
  452. solace_agent_mesh/services/common/__init__.py +0 -4
  453. solace_agent_mesh/services/common/auto_expiry.py +0 -45
  454. solace_agent_mesh/services/common/singleton.py +0 -18
  455. solace_agent_mesh/services/file_service/__init__.py +0 -14
  456. solace_agent_mesh/services/file_service/file_manager/__init__.py +0 -0
  457. solace_agent_mesh/services/file_service/file_manager/bucket_file_manager.py +0 -149
  458. solace_agent_mesh/services/file_service/file_manager/file_manager_base.py +0 -162
  459. solace_agent_mesh/services/file_service/file_manager/memory_file_manager.py +0 -64
  460. solace_agent_mesh/services/file_service/file_manager/volume_file_manager.py +0 -106
  461. solace_agent_mesh/services/file_service/file_service.py +0 -437
  462. solace_agent_mesh/services/file_service/file_service_constants.py +0 -54
  463. solace_agent_mesh/services/file_service/file_transformations.py +0 -141
  464. solace_agent_mesh/services/file_service/file_utils.py +0 -324
  465. solace_agent_mesh/services/file_service/transformers/__init__.py +0 -5
  466. solace_agent_mesh/services/history_service/__init__.py +0 -3
  467. solace_agent_mesh/services/history_service/history_providers/__init__.py +0 -0
  468. solace_agent_mesh/services/history_service/history_providers/base_history_provider.py +0 -54
  469. solace_agent_mesh/services/history_service/history_providers/file_history_provider.py +0 -74
  470. solace_agent_mesh/services/history_service/history_providers/index.py +0 -40
  471. solace_agent_mesh/services/history_service/history_providers/memory_history_provider.py +0 -33
  472. solace_agent_mesh/services/history_service/history_providers/mongodb_history_provider.py +0 -66
  473. solace_agent_mesh/services/history_service/history_providers/redis_history_provider.py +0 -66
  474. solace_agent_mesh/services/history_service/history_providers/sql_history_provider.py +0 -93
  475. solace_agent_mesh/services/history_service/history_service.py +0 -413
  476. solace_agent_mesh/services/history_service/long_term_memory/__init__.py +0 -0
  477. solace_agent_mesh/services/history_service/long_term_memory/long_term_memory.py +0 -399
  478. solace_agent_mesh/services/llm_service/components/llm_request_component.py +0 -340
  479. solace_agent_mesh/services/llm_service/components/llm_service_component_base.py +0 -152
  480. solace_agent_mesh/services/middleware_service/__init__.py +0 -0
  481. solace_agent_mesh/services/middleware_service/middleware_service.py +0 -20
  482. solace_agent_mesh/templates/action.py +0 -38
  483. solace_agent_mesh/templates/agent.py +0 -29
  484. solace_agent_mesh/templates/agent.yaml +0 -70
  485. solace_agent_mesh/templates/gateway-config-template.yaml +0 -6
  486. solace_agent_mesh/templates/gateway-default-config.yaml +0 -28
  487. solace_agent_mesh/templates/gateway-flows.yaml +0 -78
  488. solace_agent_mesh/templates/gateway-header.yaml +0 -16
  489. solace_agent_mesh/templates/gateway_base.py +0 -15
  490. solace_agent_mesh/templates/gateway_input.py +0 -98
  491. solace_agent_mesh/templates/gateway_output.py +0 -71
  492. solace_agent_mesh/templates/plugin-gateway-default-config.yaml +0 -29
  493. solace_agent_mesh/templates/plugin-pyproject.toml +0 -30
  494. solace_agent_mesh/templates/rest-api-default-config.yaml +0 -31
  495. solace_agent_mesh/templates/rest-api-flows.yaml +0 -81
  496. solace_agent_mesh/templates/slack-default-config.yaml +0 -16
  497. solace_agent_mesh/templates/slack-flows.yaml +0 -81
  498. solace_agent_mesh/templates/solace-agent-mesh-default.yaml +0 -86
  499. solace_agent_mesh/templates/solace-agent-mesh-plugin-default.yaml +0 -8
  500. solace_agent_mesh/templates/web-default-config.yaml +0 -10
  501. solace_agent_mesh/templates/web-flows.yaml +0 -76
  502. solace_agent_mesh/tools/__init__.py +0 -0
  503. solace_agent_mesh/tools/components/__init__.py +0 -0
  504. solace_agent_mesh/tools/components/conversation_formatter.py +0 -111
  505. solace_agent_mesh/tools/components/file_resolver_component.py +0 -58
  506. solace_agent_mesh/tools/config/runtime_config.py +0 -26
  507. solace_agent_mesh-0.2.3.dist-info/METADATA +0 -172
  508. solace_agent_mesh-0.2.3.dist-info/RECORD +0 -193
  509. solace_agent_mesh-0.2.3.dist-info/entry_points.txt +0 -3
  510. /solace_agent_mesh/{agents → agent}/__init__.py +0 -0
  511. /solace_agent_mesh/{agents/global → agent/adk}/__init__.py +0 -0
  512. /solace_agent_mesh/{agents/global/actions → agent/protocol}/__init__.py +0 -0
  513. /solace_agent_mesh/{agents/image_processing → agent/sac}/__init__.py +0 -0
  514. /solace_agent_mesh/{agents/image_processing/actions → agent/utils}/__init__.py +0 -0
  515. /solace_agent_mesh/{agents/web_request → config_portal/backend/plugin_catalog}/__init__.py +0 -0
  516. /solace_agent_mesh/{agents/web_request/actions → evaluation}/__init__.py +0 -0
  517. /solace_agent_mesh/gateway/{components → http_sse}/__init__.py +0 -0
  518. {solace_agent_mesh-0.2.3.dist-info → solace_agent_mesh-1.0.1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,55 @@
1
+ # Solace Agent Mesh Orchestrator Agent Configurations
2
+
3
+ log:
4
+ stdout_log_level: INFO
5
+ log_file_level: INFO
6
+ log_file: __LOG_FILE_NAME__
7
+
8
+ # Shared SAM config
9
+ !include ../shared_config.yaml
10
+
11
+ apps:
12
+ - name: __APP_NAME__
13
+ app_base_path: .
14
+ app_module: solace_agent_mesh.agent.sac.app
15
+ broker:
16
+ <<: *broker_connection
17
+
18
+ app_config:
19
+ namespace: __NAMESPACE__
20
+ supports_streaming: __SUPPORTS_STREAMING__
21
+ agent_name: "__AGENT_NAME__"
22
+ display_name: "__AGENT_NAME__"
23
+ model: *planning_model
24
+
25
+ instruction: |
26
+ __INSTRUCTION__
27
+ inject_system_purpose: true
28
+ inject_response_format: true
29
+ inject_user_profile: true
30
+ session_service: __SESSION_SERVICE__
31
+ artifact_service: __ARTIFACT_SERVICE__
32
+ artifact_handling_mode: "__ARTIFACT_HANDLING_MODE__"
33
+ enable_embed_resolution: __ENABLE_EMBED_RESOLUTION__
34
+ enable_artifact_content_instruction: __ENABLE_ARTIFACT_CONTENT_INSTRUCTION__
35
+ data_tools_config: *default_data_tools_config
36
+ tools:
37
+ - group_name: artifact_management
38
+ tool_type: builtin-group
39
+ - tool_type: builtin-group
40
+ group_name: "data_analysis"
41
+
42
+ agent_card:
43
+ description: "__AGENT_CARD_DESCRIPTION__"
44
+ defaultInputModes: __DEFAULT_INPUT_MODES__
45
+ defaultOutputModes: __DEFAULT_OUTPUT_MODES__
46
+ skills: []
47
+
48
+ agent_card_publishing:
49
+ interval_seconds: __AGENT_CARD_PUBLISHING_INTERVAL__
50
+ agent_discovery:
51
+ enabled: __AGENT_DISCOVERY_ENABLED__
52
+ inter_agent_communication:
53
+ allow_list: __INTER_AGENT_COMMUNICATION_ALLOW_LIST__
54
+ __INTER_AGENT_COMMUNICATION_DENY_LIST_LINE__
55
+ request_timeout_seconds: __INTER_AGENT_COMMUNICATION_TIMEOUT__
@@ -0,0 +1,122 @@
1
+ # Plugin Metadata:
2
+ # Name: __PLUGIN_KEBAB_CASE_NAME__
3
+ # Version: __PLUGIN_VERSION__
4
+ # Description: __PLUGIN_DESCRIPTION__
5
+ # Author: __PLUGIN_AUTHOR_NAME__ <__PLUGIN_AUTHOR_EMAIL__>
6
+ #
7
+ # --- Start of Agent Configuration Template ---
8
+ # Solace Agent Mesh: Plugin Configuration Template
9
+ #
10
+ # This file serves as a template for creating new agent configurations from this plugin.
11
+ # Use placeholders like __COMPONENT_KEBAB_CASE_NAME__, __COMPONENT_PASCAL_CASE_NAME__,
12
+ # and __COMPONENT_UPPER_SNAKE_CASE_NAME__ where the specific component name should be inserted.
13
+
14
+ log:
15
+ stdout_log_level: INFO
16
+ log_file_level: DEBUG
17
+ log_file: __COMPONENT_KEBAB_CASE_NAME__.log
18
+
19
+ # To use the `shared_config.yaml` file, uncomment the following line and remove the `shared_config` section below.
20
+ # !include ../shared_config.yaml
21
+ shared_config:
22
+ - broker_connection: &broker_connection
23
+ dev_mode: ${SOLACE_DEV_MODE, false}
24
+ broker_url: ${SOLACE_BROKER_URL, ws://localhost:8080}
25
+ broker_username: ${SOLACE_BROKER_USERNAME, default}
26
+ broker_password: ${SOLACE_BROKER_PASSWORD, default}
27
+ broker_vpn: ${SOLACE_BROKER_VPN, default}
28
+ temporary_queue: ${USE_TEMPORARY_QUEUES, true}
29
+
30
+ - models:
31
+ general: &general_model
32
+ # This dictionary structure tells ADK to use the LiteLlm wrapper.
33
+ # 'model' uses the specific model identifier your endpoint expects.
34
+ model: ${LLM_SERVICE_GENERAL_MODEL_NAME} # Use env var for model name
35
+ # 'api_base' tells LiteLLM where to send the request.
36
+ api_base: ${LLM_SERVICE_ENDPOINT} # Use env var for endpoint URL
37
+ # 'api_key' provides authentication.
38
+ api_key: ${LLM_SERVICE_API_KEY} # Use env var for API key
39
+
40
+ - services:
41
+ # Default session service configuration
42
+ session_service: &default_session_service
43
+ type: "memory"
44
+ default_behavior: "PERSISTENT"
45
+
46
+ # Default artifact service configuration
47
+ artifact_service: &default_artifact_service
48
+ type: "filesystem"
49
+ base_path: "/tmp/samv2"
50
+ artifact_scope: namespace # Or "namespace", "app", "custom"
51
+
52
+ apps:
53
+ - name: __COMPONENT_KEBAB_CASE_NAME__-app
54
+ app_base_path: .
55
+ app_module: solace_agent_mesh.agent.sac.app
56
+ broker:
57
+ <<: *broker_connection
58
+
59
+ # App Level Config
60
+ app_config:
61
+ namespace: ${NAMESPACE}
62
+ supports_streaming: true
63
+ agent_name: "__COMPONENT_PASCAL_CASE_NAME__"
64
+ display_name: "__COMPONENT_PASCAL_CASE_NAME__ Agent"
65
+ model: *general_model
66
+
67
+ instruction: |
68
+ This is a component created from the __COMPONENT_PASCAL_CASE_NAME__ plugin.
69
+ Configure its specific instructions here.
70
+
71
+ tools:
72
+ - group_name: artifact_management
73
+ tool_type: builtin-group
74
+
75
+ # Example: Plugin creator should define their tools.
76
+ # - tool_type: mcp
77
+ # connection_params:
78
+ # type: stdio
79
+ # command: "my-mcp-server-command"
80
+ # args: ["--arg1", "value1"]
81
+ # timeout: 30
82
+
83
+ # --- Example Python Tools (defined in tools.py) ---
84
+ # - tool_type: python
85
+ # component_module: __PLUGIN_SNAKE_CASE_NAME__.tools
86
+ # component_base_path: . # Relative to where the agent runs
87
+ # function_name: example_text_processor_tool
88
+ # tool_config:
89
+ # prefix: "PluginProcessed: "
90
+
91
+ # - tool_type: python
92
+ # component_module: __PLUGIN_SNAKE_CASE_NAME__.tools
93
+ # component_base_path: .
94
+ # function_name: example_file_creator_tool
95
+ # tool_config: {} # Add specific config if needed by the tool
96
+
97
+ # --- Example Builtin Tools ---
98
+ # - tool_type: builtin-group
99
+ # group_name: "text_to_speech"
100
+ # tool_config: {}
101
+
102
+ session_service: *default_session_service
103
+ artifact_service: *default_artifact_service
104
+
105
+ artifact_handling_mode: "embed"
106
+ enable_embed_resolution: true
107
+ enable_artifact_content_instruction: true
108
+
109
+ agent_card:
110
+ description: "__PLUGIN_DESCRIPTION__"
111
+ defaultInputModes: ["text"]
112
+ defaultOutputModes: ["text"]
113
+ skills:
114
+ # - id: "example_tool"
115
+ # name: "Example Tool"
116
+ # description: "An example tool provided by the __PLUGIN_PASCAL_CASE_NAME__ plugin."
117
+
118
+ agent_card_publishing: { interval_seconds: 10 }
119
+ agent_discovery: { enabled: false }
120
+ inter_agent_communication:
121
+ allow_list: []
122
+ request_timeout_seconds: 30
@@ -0,0 +1,27 @@
1
+ # Plugin Metadata:
2
+ # Name: __PLUGIN_KEBAB_CASE_NAME__
3
+ # Version: __PLUGIN_VERSION__
4
+ # Description: __PLUGIN_DESCRIPTION__
5
+ # Author: __PLUGIN_AUTHOR_NAME__ <__PLUGIN_AUTHOR_EMAIL__>
6
+ #
7
+ # --- Start of Custom Configuration Template ---
8
+ # Solace Agent Mesh: Custom Configuration Template
9
+ #
10
+ # This file serves as a template for creating new custom configurations from this plugin.
11
+ # Use placeholders like __COMPONENT_KEBAB_CASE_NAME__, __COMPONENT_PASCAL_CASE_NAME__,
12
+ # and __COMPONENT_UPPER_SNAKE_CASE_NAME__ where the specific component name should be inserted.
13
+
14
+ # To use the `shared_config.yaml` file, uncomment the following line and remove the `shared_config` section below.
15
+ # !include ../shared_config.yaml
16
+
17
+ shared_config:
18
+ - broker_connection: &broker_connection
19
+ dev_mode: ${SOLACE_DEV_MODE, false}
20
+ broker_url: ${SOLACE_BROKER_URL, ws://localhost:8080}
21
+ broker_username: ${SOLACE_BROKER_USERNAME, default}
22
+ broker_password: ${SOLACE_BROKER_PASSWORD, default}
23
+ broker_vpn: ${SOLACE_BROKER_VPN, default}
24
+ temporary_queue: ${USE_TEMPORARY_QUEUES, true}
25
+
26
+
27
+ __PLUGIN_SNAKE_CASE_NAME__: {}
@@ -0,0 +1,10 @@
1
+ # Solace Agent Mesh Custom Plugin
2
+
3
+ class __COMPONENT_PASCAL_CASE_NAME__:
4
+ def template_function(self):
5
+ """
6
+ This function serves as a placeholder for custom template logic.
7
+ It can be modified to include specific functionality as needed.
8
+ """
9
+ # Custom logic goes here
10
+ print("This is a custom template function.")
@@ -0,0 +1,63 @@
1
+ # Plugin Metadata:
2
+ # Name: __PLUGIN_KEBAB_CASE_NAME__
3
+ # Version: __PLUGIN_VERSION__
4
+ # Description: __PLUGIN_DESCRIPTION__
5
+ # Author: __PLUGIN_AUTHOR_NAME__ <__PLUGIN_AUTHOR_EMAIL__>
6
+ #
7
+ # --- Start of Gateway Configuration Template ---
8
+ # Solace Agent Mesh: Gateway Configuration Template
9
+ #
10
+ # This file serves as a template for creating new gateway configurations from this plugin.
11
+ # Use placeholders like __COMPONENT_KEBAB_CASE_NAME__, __COMPONENT_PASCAL_CASE_NAME__,
12
+ # and __COMPONENT_UPPER_SNAKE_CASE_NAME__ where the specific component name should be inserted.
13
+
14
+ log:
15
+ stdout_log_level: INFO
16
+ log_file_level: DEBUG
17
+ log_file: __COMPONENT_KEBAB_CASE_NAME__.log
18
+
19
+ # To use the `shared_config.yaml` file, uncomment the following line and remove the `shared_config` section below.
20
+ # !include ../shared_config.yaml
21
+
22
+ shared_config:
23
+ - broker_connection: &broker_connection
24
+ dev_mode: ${SOLACE_DEV_MODE, false}
25
+ broker_url: ${SOLACE_BROKER_URL, ws://localhost:8080}
26
+ broker_username: ${SOLACE_BROKER_USERNAME, default}
27
+ broker_password: ${SOLACE_BROKER_PASSWORD, default}
28
+ broker_vpn: ${SOLACE_BROKER_VPN, default}
29
+ temporary_queue: ${USE_TEMPORARY_QUEUES, true}
30
+
31
+ - services:
32
+ # Default artifact service configuration
33
+ artifact_service: &default_artifact_service
34
+ type: "filesystem"
35
+ base_path: "/tmp/samv2"
36
+ artifact_scope: namespace # Or "namespace", "app", "custom"
37
+
38
+ apps:
39
+ # --- App Definition ---
40
+ - name: __COMPONENT_PASCAL_CASE_NAME____app # Unique name for this gateway app instance
41
+ app_module: __PLUGIN_SNAKE_CASE_NAME__.app # Points to the plugin's App class
42
+ broker:
43
+ <<: *broker_connection
44
+
45
+ app_config:
46
+ namespace: "${NAMESPACE}"
47
+ gateway_id: __COMPONENT_KEBAB_CASE_NAME__-gw-01
48
+ artifact_service: *default_artifact_service
49
+
50
+ authorization_service:
51
+ type: "none" # Or "default_rbac"
52
+
53
+ system_purpose: >
54
+ The system is an AI Chatbot with agentic capabilities.
55
+ It will use the agents available to provide information,
56
+ reasoning and general assistance for the users in this system.
57
+ **Always return useful artifacts and files that you create to the user.**
58
+ Provide a status update before each tool call.
59
+ Your external name is Agent Mesh.
60
+
61
+ response_format: >
62
+ Responses should be clear, concise, and professionally toned.
63
+ Format responses to the user in Markdown using appropriate formatting.
@@ -0,0 +1,33 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [tool.hatch.metadata]
6
+ allow-direct-references = true
7
+
8
+ [tool.__PLUGIN_SNAKE_CASE_NAME__.metadata]
9
+ type = "__PLUGIN_META_DATA_TYPE__"
10
+
11
+ [project]
12
+ name = "__PLUGIN_SNAKE_CASE_NAME__"
13
+ version = "__PLUGIN_VERSION__"
14
+ authors = [
15
+ { name="__PLUGIN_AUTHOR_NAME__", email="__PLUGIN_AUTHOR_EMAIL__" },
16
+ ]
17
+ description = "__PLUGIN_DESCRIPTION__"
18
+ readme = "README.md"
19
+ requires-python = ">=3.10"
20
+ dependencies = [
21
+ "solace_agent_mesh~=__SAM_VERSION__",
22
+ # Add plugin-specific dependencies here
23
+ ]
24
+
25
+ [tool.hatch.build.targets.wheel]
26
+ packages = ["src/__PLUGIN_SNAKE_CASE_NAME__"]
27
+ src-path = "src"
28
+
29
+ [tool.hatch.build.targets.wheel.force-include]
30
+ "src/__PLUGIN_SNAKE_CASE_NAME__" = "__PLUGIN_SNAKE_CASE_NAME__/"
31
+ "config.yaml" = "__PLUGIN_SNAKE_CASE_NAME__/config.yaml"
32
+ "README.md" = "__PLUGIN_SNAKE_CASE_NAME__/README.md"
33
+ "pyproject.toml" = "__PLUGIN_SNAKE_CASE_NAME__/pyproject.toml"
@@ -0,0 +1,34 @@
1
+ # __PLUGIN_KEBAB_CASE_NAME__ SAM Plugin
2
+
3
+ __PLUGIN_DESCRIPTION__
4
+
5
+ This is a plugin for the Solace Agent Mesh (SAM).
6
+
7
+ ## Configuration (`config.yaml`)
8
+
9
+ The `config.yaml` in this plugin serves as a template. When you use `sam plugin add <component_name> --plugin __PLUGIN_KEBAB_CASE_NAME__`, the following placeholders in the YAML structure will be replaced with variations of `<component_name>`:
10
+ - `__COMPONENT_UPPER_SNAKE_CASE_NAME__`
11
+ - `__COMPONENT_KEBAB_CASE_NAME__`
12
+ - `__COMPONENT_PASCAL_CASE_NAME__`
13
+
14
+ Customize the `config.yaml` in this plugin directory to define the base configuration for components created from it.
15
+
16
+ ## Source Code (`src/`)
17
+ The `src/` directory contains the Python source code for your plugin.
18
+
19
+ ## Installation (as a developer of this plugin)
20
+
21
+ To build and install this plugin locally for testing:
22
+ ```bash
23
+ sam plugin build
24
+ pip install dist/*.whl
25
+ ```
26
+ (Or `pip install .` if preferred, `sam plugin build` is for creating the distributable wheel)
27
+
28
+ ## Usage (as a user of this plugin)
29
+
30
+ Once the plugin is installed (e.g., from PyPI or a local wheel file):
31
+ ```bash
32
+ sam plugin add <your-new-component-name> --plugin __PLUGIN_KEBAB_CASE_NAME__
33
+ ```
34
+ This will create a new component configuration at `configs/plugins/<your-new-component-name-kebab-case>.yaml`.
@@ -0,0 +1,224 @@
1
+ import asyncio
2
+ import uuid
3
+ from datetime import datetime, timezone
4
+ from typing import Any, Dict, Optional
5
+
6
+ from google.adk.tools import ToolContext
7
+ from solace_ai_connector.common.log import log
8
+ from solace_agent_mesh.agent.utils.artifact_helpers import (
9
+ save_artifact_with_metadata,
10
+ DEFAULT_SCHEMA_MAX_KEYS,
11
+ )
12
+ from solace_agent_mesh.agent.utils.context_helpers import get_original_session_id
13
+
14
+
15
+ async def example_text_processor_tool(
16
+ text_input: str,
17
+ uppercase: bool = False, # Example of a boolean parameter
18
+ tool_context: Optional[ToolContext] = None,
19
+ tool_config: Optional[Dict[str, Any]] = None,
20
+ ) -> Dict[str, Any]:
21
+ """
22
+ An example tool that processes input text, optionally converts it to uppercase,
23
+ and adds a prefix from tool_config.
24
+ """
25
+ plugin_name = "__PLUGIN_SPACED_NAME__"
26
+ log_identifier = f"[{plugin_name}:example_text_processor_tool]"
27
+ log.info(f"{log_identifier} Received text: '{text_input}', uppercase: {uppercase}")
28
+
29
+ current_tool_config = tool_config if tool_config is not None else {}
30
+ prefix = current_tool_config.get("prefix", "Processed: ")
31
+
32
+ processed_text = text_input
33
+ if uppercase:
34
+ processed_text = processed_text.upper()
35
+
36
+ final_text = f"{prefix}{processed_text}"
37
+
38
+ log.info(f"{log_identifier} Processed text: '{final_text}'")
39
+ return {
40
+ "status": "success",
41
+ "message": "Text processed successfully by example_text_processor_tool.",
42
+ "original_input": text_input,
43
+ "processed_text": final_text,
44
+ "was_uppercased": uppercase,
45
+ }
46
+
47
+
48
+ async def example_text_file_creator_tool(
49
+ filename: str,
50
+ content: str,
51
+ tool_context: Optional[ToolContext] = None,
52
+ tool_config: Optional[Dict[str, Any]] = None,
53
+ ) -> Dict[str, Any]:
54
+ """
55
+ An example tool that creates a text file and saves it as an artifact
56
+ using the Solace Agent Mesh artifact service.
57
+ """
58
+ plugin_name = "__PLUGIN_SPACED_NAME__"
59
+ log_identifier = f"[{plugin_name}:example_text_file_creator_tool]"
60
+ log.info(
61
+ f"{log_identifier} Received request to create file: '{filename}' with content starting: '{content[:50]}...'"
62
+ )
63
+
64
+ if not tool_context or not tool_context._invocation_context:
65
+ log.error(
66
+ f"{log_identifier} ToolContext or InvocationContext is missing. Cannot save artifact."
67
+ )
68
+ return {
69
+ "status": "error",
70
+ "message": "ToolContext or InvocationContext is missing.",
71
+ }
72
+
73
+ inv_context = tool_context._invocation_context
74
+ app_name = getattr(inv_context, "app_name", None)
75
+ user_id = getattr(inv_context, "user_id", None)
76
+ session_id = get_original_session_id(inv_context)
77
+ artifact_service = getattr(inv_context, "artifact_service", None)
78
+
79
+ if not all([app_name, user_id, session_id, artifact_service]):
80
+ missing_parts = [
81
+ part
82
+ for part, val in [
83
+ ("app_name", app_name),
84
+ ("user_id", user_id),
85
+ ("session_id", session_id),
86
+ ("artifact_service", artifact_service),
87
+ ]
88
+ if not val
89
+ ]
90
+ log.error(
91
+ f"{log_identifier} Missing required context parts for artifact saving: {', '.join(missing_parts)}"
92
+ )
93
+ return {
94
+ "status": "error",
95
+ "message": f"Missing required context parts for artifact saving: {', '.join(missing_parts)}",
96
+ }
97
+
98
+ output_filename = filename
99
+ if not output_filename.lower().endswith(".txt"):
100
+ output_filename += ".txt"
101
+
102
+ content_bytes = content.encode("utf-8")
103
+ mime_type = "text/plain"
104
+ timestamp = datetime.now(timezone.utc)
105
+
106
+ metadata_dict = {
107
+ "description": f"Text file created by {plugin_name}'s example_text_file_creator_tool.",
108
+ "source_tool": "example_text_file_creator_tool",
109
+ "original_requested_filename": filename,
110
+ "creation_timestamp_iso": timestamp.isoformat(),
111
+ "content_character_count": len(content),
112
+ }
113
+
114
+ log.info(
115
+ f"{log_identifier} Attempting to save artifact '{output_filename}' via artifact_service."
116
+ )
117
+ try:
118
+ save_result = await save_artifact_with_metadata(
119
+ artifact_service=artifact_service,
120
+ app_name=app_name,
121
+ user_id=user_id,
122
+ session_id=session_id,
123
+ filename=output_filename,
124
+ content_bytes=content_bytes,
125
+ mime_type=mime_type,
126
+ metadata_dict=metadata_dict,
127
+ timestamp=timestamp,
128
+ schema_max_keys=DEFAULT_SCHEMA_MAX_KEYS,
129
+ tool_context=tool_context,
130
+ )
131
+ if save_result.get("status") == "error":
132
+ log.error(
133
+ f"{log_identifier} Failed to save artifact: {save_result.get('message')}"
134
+ )
135
+ return {
136
+ "status": "error",
137
+ "message": f"Failed to save artifact: {save_result.get('message')}",
138
+ }
139
+
140
+ log.info(
141
+ f"{log_identifier} Artifact '{output_filename}' v{save_result['data_version']} saved successfully."
142
+ )
143
+ return {
144
+ "status": "success",
145
+ "message": f"File '{output_filename}' created and saved as artifact v{save_result['data_version']}.",
146
+ "output_filename": output_filename,
147
+ "output_version": save_result["data_version"],
148
+ }
149
+ except Exception as e:
150
+ log.exception(f"{log_identifier} Unexpected error during artifact saving: {e}")
151
+ return {
152
+ "status": "error",
153
+ "message": f"An unexpected error occurred during artifact saving: {e}",
154
+ }
155
+
156
+
157
+ # Example of how these might be tested or run if this file was executed directly.
158
+ # This assumes the script is run in an environment where solace_agent_mesh is importable,
159
+ # or the imports at the top will fail.
160
+ if __name__ == "__main__":
161
+
162
+ async def run_tests():
163
+ print("--- Testing example_text_processor_tool ---")
164
+ # For standalone testing, ToolContext might be minimal or None if ADK is not fully available.
165
+ # The tool should handle tool_context=None gracefully if it's designed to be testable standalone.
166
+
167
+ # A more complete mock for standalone testing if needed:
168
+ class MockArtifactService:
169
+ async def save_artifact(
170
+ self, **kwargs
171
+ ): # Match expected signature elements
172
+ log.info(
173
+ f"MockArtifactService.save_artifact called with filename: {kwargs.get('filename')}"
174
+ )
175
+ return {
176
+ "uri": f"mock://{kwargs.get('filename')}",
177
+ "version": 1,
178
+ } # Simulate ADK response
179
+
180
+ async def save_artifact_metadata(self, **kwargs):
181
+ log.info(
182
+ f"MockArtifactService.save_artifact_metadata called for: {kwargs.get('filename')}"
183
+ )
184
+ return {
185
+ "uri": f"mock://{kwargs.get('filename')}.metadata",
186
+ "version": 1,
187
+ }
188
+
189
+ class MockInvocationContext:
190
+ def __init__(self):
191
+ self.app_name = "test_app"
192
+ self.user_id = "test_user"
193
+ self.session_id = "test_session_123"
194
+ self.artifact_service = MockArtifactService()
195
+ # Add other attributes if your tool or helpers expect them
196
+
197
+ class MockToolContext:
198
+ def __init__(self):
199
+ self._invocation_context = MockInvocationContext()
200
+
201
+ mock_context = MockToolContext()
202
+
203
+ text_result1 = await example_text_processor_tool(
204
+ "hello world",
205
+ uppercase=True,
206
+ tool_context=mock_context,
207
+ tool_config={"prefix": "TestPrefix: "},
208
+ )
209
+ print(f"Text tool result 1: {text_result1}")
210
+
211
+ text_result2 = await example_text_processor_tool(
212
+ "another test", tool_context=mock_context
213
+ )
214
+ print(f"Text tool result 2: {text_result2}")
215
+
216
+ print("\n--- Testing example_text_file_creator_tool ---")
217
+ file_result = await example_text_file_creator_tool(
218
+ "my_example_file.txt",
219
+ "This is the content of the example file created by the plugin template.",
220
+ tool_context=mock_context, # Using the mock context with a mock artifact service
221
+ )
222
+ print(f"File tool result: {file_result}")
223
+
224
+ asyncio.run(run_tests())
@@ -0,0 +1,66 @@
1
+ shared_config:
2
+ - broker_connection: &broker_connection
3
+ dev_mode: ${SOLACE_DEV_MODE, false}
4
+ broker_url: ${SOLACE_BROKER_URL, ws://localhost:8080}
5
+ broker_username: ${SOLACE_BROKER_USERNAME, default}
6
+ broker_password: ${SOLACE_BROKER_PASSWORD, default}
7
+ broker_vpn: ${SOLACE_BROKER_VPN, default}
8
+ temporary_queue: ${USE_TEMPORARY_QUEUES, true}
9
+
10
+ - models:
11
+ planning: &planning_model
12
+ # This dictionary structure tells ADK to use the LiteLlm wrapper.
13
+ # 'model' uses the specific model identifier your endpoint expects.
14
+ model: ${LLM_SERVICE_PLANNING_MODEL_NAME} # Use env var for model name
15
+ # 'api_base' tells LiteLLM where to send the request.
16
+ api_base: ${LLM_SERVICE_ENDPOINT} # Use env var for endpoint URL
17
+ # 'api_key' provides authentication.
18
+ api_key: ${LLM_SERVICE_API_KEY} # Use env var for API key
19
+
20
+ general: &general_model
21
+ # This dictionary structure tells ADK to use the LiteLlm wrapper.
22
+ # 'model' uses the specific model identifier your endpoint expects.
23
+ model: ${LLM_SERVICE_GENERAL_MODEL_NAME} # Use env var for model name
24
+ # 'api_base' tells LiteLLM where to send the request.
25
+ api_base: ${LLM_SERVICE_ENDPOINT} # Use env var for endpoint URL
26
+ # 'api_key' provides authentication.
27
+ api_key: ${LLM_SERVICE_API_KEY} # Use env var for API key
28
+
29
+ image_gen: &image_generation_model
30
+ # This dictionary structure tells ADK to use the LiteLlm wrapper.
31
+ # 'model' uses the specific model identifier your endpoint expects.
32
+ model: ${IMAGE_MODEL_NAME} # Use env var for model name
33
+ # 'api_base' tells LiteLLM where to send the request.
34
+ api_base: ${IMAGE_SERVICE_ENDPOINT} # Use env var for endpoint URL
35
+ # 'api_key' provides authentication.
36
+ api_key: ${IMAGE_SERVICE_API_KEY} # Use env var for API key
37
+
38
+ report_gen: &report_generation_model
39
+ # This dictionary structure tells ADK to use the LiteLlm wrapper.
40
+ # 'model' uses the specific model identifier your endpoint expects.
41
+ model: ${LLM_REPORT_MODEL_NAME} # Use env var for model name
42
+ # 'api_base' tells LiteLLM where to send the request.
43
+ api_base: ${LLM_SERVICE_ENDPOINT} # Use env var for endpoint URL
44
+ # 'api_key' provides authentication.
45
+ api_key: ${LLM_SERVICE_API_KEY} # Use env var for API key
46
+
47
+ multimodal: &multimodal_model "gemini-2.5-flash-preview-04-17"
48
+ gemini_pro: &gemini_pro_model "gemini-2.5-pro-exp-03-25"
49
+
50
+ - services:
51
+ # Default session service configuration
52
+ session_service: &default_session_service
53
+ type: "__DEFAULT_SESSION_SERVICE_TYPE__"
54
+ default_behavior: "__DEFAULT_SESSION_SERVICE_BEHAVIOR__"
55
+
56
+ # Default artifact service configuration
57
+ artifact_service: &default_artifact_service
58
+ type: "__DEFAULT_ARTIFACT_SERVICE_TYPE__"
59
+ __DEFAULT_ARTIFACT_SERVICE_BASE_PATH_LINE__
60
+ artifact_scope: __DEFAULT_ARTIFACT_SERVICE_SCOPE__
61
+
62
+ # Default data tools configuration
63
+ data_tools_config: &default_data_tools_config
64
+ sqlite_memory_threshold_mb: 100
65
+ max_result_preview_rows: 50
66
+ max_result_preview_bytes: 4096