solace-agent-mesh 1.11.2__py3-none-any.whl → 1.12.0__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.
Files changed (308) hide show
  1. solace_agent_mesh/agent/adk/callbacks.py +177 -10
  2. solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +3 -0
  3. solace_agent_mesh/agent/adk/models/lite_llm.py +34 -16
  4. solace_agent_mesh/agent/adk/runner.py +66 -8
  5. solace_agent_mesh/agent/adk/setup.py +61 -26
  6. solace_agent_mesh/agent/protocol/event_handlers.py +48 -0
  7. solace_agent_mesh/agent/proxies/a2a/component.py +27 -0
  8. solace_agent_mesh/agent/sac/component.py +84 -2
  9. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +41 -22
  10. solace_agent_mesh/agent/tools/peer_agent_tool.py +19 -12
  11. solace_agent_mesh/agent/tools/tool_config_types.py +21 -1
  12. solace_agent_mesh/agent/utils/artifact_helpers.py +54 -0
  13. solace_agent_mesh/assets/docs/404.html +3 -3
  14. solace_agent_mesh/assets/docs/assets/js/15ba94aa.e186750d.js +1 -0
  15. solace_agent_mesh/assets/docs/assets/js/240a0364.83e37aa8.js +1 -0
  16. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.2f0db237.js +1 -0
  17. solace_agent_mesh/assets/docs/assets/js/3a6c6137.7e61915d.js +1 -0
  18. solace_agent_mesh/assets/docs/assets/js/{3ac1795d.28b7c67b.js → 3ac1795d.dc006e20.js} +1 -1
  19. solace_agent_mesh/assets/docs/assets/js/3ff0015d.f08618fb.js +1 -0
  20. solace_agent_mesh/assets/docs/assets/js/4667dc50.bf2ad456.js +1 -0
  21. solace_agent_mesh/assets/docs/assets/js/547e15cc.8e6da617.js +1 -0
  22. solace_agent_mesh/assets/docs/assets/js/5b8d9c11.d4eb37b8.js +1 -0
  23. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.1ee87753.js +1 -0
  24. solace_agent_mesh/assets/docs/assets/js/64195356.09dbd087.js +1 -0
  25. solace_agent_mesh/assets/docs/assets/js/66d4869e.30340bd3.js +1 -0
  26. solace_agent_mesh/assets/docs/assets/js/729898df.7249e9fd.js +1 -0
  27. solace_agent_mesh/assets/docs/assets/js/7e294c01.7c5f6906.js +1 -0
  28. solace_agent_mesh/assets/docs/assets/js/8024126c.e3467286.js +1 -0
  29. solace_agent_mesh/assets/docs/assets/js/81a99df0.95be65d4.js +1 -0
  30. solace_agent_mesh/assets/docs/assets/js/9bb13469.4523ae20.js +1 -0
  31. solace_agent_mesh/assets/docs/assets/js/a7d42657.a956689d.js +1 -0
  32. solace_agent_mesh/assets/docs/assets/js/ab9708a8.3e563275.js +1 -0
  33. solace_agent_mesh/assets/docs/assets/js/e04b235d.06d23db6.js +1 -0
  34. solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.deb2b62e.js +1 -0
  35. solace_agent_mesh/assets/docs/assets/js/e6f9706b.acc800d3.js +1 -0
  36. solace_agent_mesh/assets/docs/assets/js/e92d0134.c147a429.js +1 -0
  37. solace_agent_mesh/assets/docs/assets/js/ee0c2fe7.94d0a351.js +1 -0
  38. solace_agent_mesh/assets/docs/assets/js/f284c35a.08fab659.js +1 -0
  39. solace_agent_mesh/assets/docs/assets/js/main.b241af3e.js +2 -0
  40. solace_agent_mesh/assets/docs/assets/js/runtime~main.4ca7d2e2.js +1 -0
  41. solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +4 -4
  42. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +4 -4
  43. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +4 -4
  44. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +4 -4
  45. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +4 -4
  46. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/image-tools/index.html +81 -0
  47. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +14 -12
  48. solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +30 -9
  49. solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +4 -4
  50. solace_agent_mesh/assets/docs/docs/documentation/components/index.html +6 -4
  51. solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +4 -4
  52. solace_agent_mesh/assets/docs/docs/documentation/components/platform-service/index.html +33 -0
  53. solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +4 -4
  54. solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +4 -4
  55. solace_agent_mesh/assets/docs/docs/documentation/components/prompts/index.html +4 -4
  56. solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +4 -4
  57. solace_agent_mesh/assets/docs/docs/documentation/components/speech/index.html +4 -4
  58. solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +4 -4
  59. solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +5 -5
  60. solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +4 -4
  61. solace_agent_mesh/assets/docs/docs/documentation/deploying/{kubernetes-deployment → kubernetes}/index.html +6 -6
  62. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/kubernetes-deployment-guide/index.html +197 -0
  63. solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +11 -6
  64. solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +4 -4
  65. solace_agent_mesh/assets/docs/docs/documentation/deploying/proxy_configuration/index.html +4 -4
  66. solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +4 -4
  67. solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +4 -4
  68. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +23 -5
  69. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +4 -4
  70. solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +4 -4
  71. solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +4 -4
  72. solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +4 -4
  73. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +4 -4
  74. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +4 -4
  75. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +4 -4
  76. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +17 -8
  77. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +4 -4
  78. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +4 -4
  79. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +4 -4
  80. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +4 -4
  81. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +4 -4
  82. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/teams-integration/index.html +4 -4
  83. solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +5 -5
  84. solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +4 -4
  85. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +4 -4
  86. solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +4 -4
  87. solace_agent_mesh/assets/docs/docs/documentation/enterprise/openapi-tools/index.html +4 -4
  88. solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +4 -4
  89. solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +4 -4
  90. solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +4 -4
  91. solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +4 -4
  92. solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +4 -4
  93. solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +6 -5
  94. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +4 -4
  95. solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +4 -4
  96. solace_agent_mesh/assets/docs/docs/documentation/getting-started/vibe_coding/index.html +62 -0
  97. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +25 -4
  98. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +4 -4
  99. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +4 -4
  100. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +4 -4
  101. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +4 -4
  102. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +4 -4
  103. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +4 -4
  104. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +4 -4
  105. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +4 -4
  106. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +4 -4
  107. solace_agent_mesh/assets/docs/docs/documentation/migrations/platform-service-split/index.html +85 -0
  108. solace_agent_mesh/assets/docs/lunr-index-1767712284328.json +1 -0
  109. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  110. solace_agent_mesh/assets/docs/search-doc-1767712284328.json +1 -0
  111. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  112. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  113. solace_agent_mesh/cli/__init__.py +1 -1
  114. solace_agent_mesh/cli/commands/init_cmd/__init__.py +15 -0
  115. solace_agent_mesh/cli/commands/init_cmd/directory_step.py +1 -1
  116. solace_agent_mesh/cli/commands/init_cmd/env_step.py +29 -2
  117. solace_agent_mesh/cli/commands/init_cmd/platform_service_step.py +85 -0
  118. solace_agent_mesh/cli/commands/tools_cmd.py +315 -0
  119. solace_agent_mesh/cli/main.py +2 -0
  120. solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-Dj3JtK42.js → authCallback-8Nihi8rv.js} +1 -1
  121. solace_agent_mesh/client/webui/frontend/static/assets/{client-ZKk9kEJ5.js → client-DYtZN8p-.js} +1 -1
  122. solace_agent_mesh/client/webui/frontend/static/assets/main-BYGUHQMk.js +435 -0
  123. solace_agent_mesh/client/webui/frontend/static/assets/main-D2CSH1bp.css +1 -0
  124. solace_agent_mesh/client/webui/frontend/static/assets/{vendor-BNV4kZN0.js → vendor-XBWAmrun.js} +106 -101
  125. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -3
  126. solace_agent_mesh/client/webui/frontend/static/index.html +4 -4
  127. solace_agent_mesh/client/webui/frontend/static/ui-version.json +1 -1
  128. solace_agent_mesh/common/a2a/types.py +1 -1
  129. solace_agent_mesh/common/agent_registry.py +38 -11
  130. solace_agent_mesh/common/data_parts.py +28 -0
  131. solace_agent_mesh/common/error_handlers.py +83 -0
  132. solace_agent_mesh/common/sam_events/event_service.py +2 -2
  133. solace_agent_mesh/config_portal/backend/common.py +2 -0
  134. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-ZV-jX48T.js +103 -0
  135. solace_agent_mesh/config_portal/frontend/static/client/assets/{manifest-ba77705e.js → manifest-ce5bc5da.js} +1 -1
  136. solace_agent_mesh/config_portal/frontend/static/client/index.html +1 -1
  137. solace_agent_mesh/core_a2a/service.py +3 -2
  138. solace_agent_mesh/gateway/adapter/base.py +28 -1
  139. solace_agent_mesh/gateway/adapter/types.py +9 -0
  140. solace_agent_mesh/gateway/base/auth_interface.py +103 -0
  141. solace_agent_mesh/gateway/base/component.py +68 -1
  142. solace_agent_mesh/gateway/generic/component.py +195 -30
  143. solace_agent_mesh/gateway/http_sse/app.py +23 -6
  144. solace_agent_mesh/gateway/http_sse/component.py +9 -61
  145. solace_agent_mesh/gateway/http_sse/dependencies.py +9 -51
  146. solace_agent_mesh/gateway/http_sse/main.py +28 -418
  147. solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +2 -2
  148. solace_agent_mesh/gateway/http_sse/repository/entities/project.py +1 -1
  149. solace_agent_mesh/gateway/http_sse/repository/entities/project_user.py +1 -1
  150. solace_agent_mesh/gateway/http_sse/repository/entities/session.py +2 -2
  151. solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +2 -2
  152. solace_agent_mesh/gateway/http_sse/repository/interfaces.py +2 -2
  153. solace_agent_mesh/gateway/http_sse/repository/models/prompt_model.py +1 -1
  154. solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +1 -1
  155. solace_agent_mesh/gateway/http_sse/repository/project_repository.py +1 -1
  156. solace_agent_mesh/gateway/http_sse/repository/project_user_repository.py +1 -1
  157. solace_agent_mesh/gateway/http_sse/repository/session_repository.py +4 -4
  158. solace_agent_mesh/gateway/http_sse/repository/task_repository.py +2 -2
  159. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +16 -15
  160. solace_agent_mesh/gateway/http_sse/routers/auth.py +61 -132
  161. solace_agent_mesh/gateway/http_sse/routers/config.py +12 -8
  162. solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +1 -1
  163. solace_agent_mesh/gateway/http_sse/routers/dto/responses/base_responses.py +1 -1
  164. solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +2 -2
  165. solace_agent_mesh/gateway/http_sse/routers/feedback.py +2 -2
  166. solace_agent_mesh/gateway/http_sse/routers/people.py +2 -2
  167. solace_agent_mesh/gateway/http_sse/routers/projects.py +2 -1
  168. solace_agent_mesh/gateway/http_sse/routers/prompts.py +2 -1
  169. solace_agent_mesh/gateway/http_sse/routers/sessions.py +3 -3
  170. solace_agent_mesh/gateway/http_sse/routers/speech.py +1 -1
  171. solace_agent_mesh/gateway/http_sse/routers/tasks.py +3 -2
  172. solace_agent_mesh/gateway/http_sse/routers/users.py +1 -1
  173. solace_agent_mesh/gateway/http_sse/routers/visualization.py +2 -1
  174. solace_agent_mesh/gateway/http_sse/services/background_task_monitor.py +1 -1
  175. solace_agent_mesh/gateway/http_sse/services/data_retention_service.py +1 -1
  176. solace_agent_mesh/gateway/http_sse/services/feedback_service.py +1 -1
  177. solace_agent_mesh/gateway/http_sse/services/session_service.py +4 -4
  178. solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +1 -1
  179. solace_agent_mesh/services/platform/__init__.py +23 -12
  180. solace_agent_mesh/services/platform/api/dependencies.py +23 -16
  181. solace_agent_mesh/services/platform/api/main.py +118 -43
  182. solace_agent_mesh/services/platform/api/routers/__init__.py +12 -3
  183. solace_agent_mesh/services/platform/api/routers/health_router.py +31 -0
  184. solace_agent_mesh/services/platform/app.py +101 -7
  185. solace_agent_mesh/services/platform/component.py +552 -33
  186. solace_agent_mesh/shared/__init__.py +14 -0
  187. solace_agent_mesh/shared/api/__init__.py +42 -0
  188. solace_agent_mesh/shared/auth/__init__.py +26 -0
  189. solace_agent_mesh/shared/auth/dependencies.py +204 -0
  190. solace_agent_mesh/shared/auth/middleware.py +291 -0
  191. solace_agent_mesh/shared/database/__init__.py +20 -0
  192. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/base_repository.py +1 -1
  193. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_exceptions.py +1 -1
  194. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_helpers.py +1 -1
  195. solace_agent_mesh/shared/exceptions/__init__.py +36 -0
  196. solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exception_handlers.py +1 -1
  197. solace_agent_mesh/shared/utils/__init__.py +21 -0
  198. solace_agent_mesh/templates/platform.yaml +49 -0
  199. solace_agent_mesh/templates/webui.yaml +12 -3
  200. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/METADATA +2 -1
  201. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/RECORD +214 -258
  202. solace_agent_mesh/agent/adk/adk_llm.txt +0 -226
  203. solace_agent_mesh/agent/adk/adk_llm_detail.txt +0 -566
  204. solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +0 -171
  205. solace_agent_mesh/agent/adk/models/models_llm.txt +0 -189
  206. solace_agent_mesh/agent/agent_llm.txt +0 -369
  207. solace_agent_mesh/agent/agent_llm_detail.txt +0 -1702
  208. solace_agent_mesh/agent/protocol/protocol_llm.txt +0 -81
  209. solace_agent_mesh/agent/protocol/protocol_llm_detail.txt +0 -92
  210. solace_agent_mesh/agent/proxies/a2a/a2a_llm.txt +0 -190
  211. solace_agent_mesh/agent/proxies/base/base_llm.txt +0 -148
  212. solace_agent_mesh/agent/proxies/proxies_llm.txt +0 -283
  213. solace_agent_mesh/agent/sac/sac_llm.txt +0 -189
  214. solace_agent_mesh/agent/sac/sac_llm_detail.txt +0 -200
  215. solace_agent_mesh/agent/testing/testing_llm.txt +0 -58
  216. solace_agent_mesh/agent/testing/testing_llm_detail.txt +0 -68
  217. solace_agent_mesh/agent/tools/tools_llm.txt +0 -276
  218. solace_agent_mesh/agent/tools/tools_llm_detail.txt +0 -275
  219. solace_agent_mesh/agent/utils/utils_llm.txt +0 -152
  220. solace_agent_mesh/agent/utils/utils_llm_detail.txt +0 -149
  221. solace_agent_mesh/assets/docs/assets/js/15ba94aa.92fea363.js +0 -1
  222. solace_agent_mesh/assets/docs/assets/js/240a0364.9ad94d1b.js +0 -1
  223. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.33f5d75b.js +0 -1
  224. solace_agent_mesh/assets/docs/assets/js/3a6c6137.f5940cfa.js +0 -1
  225. solace_agent_mesh/assets/docs/assets/js/3ff0015d.2ddc75c0.js +0 -1
  226. solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +0 -1
  227. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.90a87880.js +0 -1
  228. solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +0 -1
  229. solace_agent_mesh/assets/docs/assets/js/66d4869e.b77431fc.js +0 -1
  230. solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +0 -1
  231. solace_agent_mesh/assets/docs/assets/js/81a99df0.2484b8d9.js +0 -1
  232. solace_agent_mesh/assets/docs/assets/js/9bb13469.b2333011.js +0 -1
  233. solace_agent_mesh/assets/docs/assets/js/ab9708a8.245ae0ef.js +0 -1
  234. solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +0 -1
  235. solace_agent_mesh/assets/docs/assets/js/e04b235d.52cb25ed.js +0 -1
  236. solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.b1068f9b.js +0 -1
  237. solace_agent_mesh/assets/docs/assets/js/e6f9706b.4488e34c.js +0 -1
  238. solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +0 -1
  239. solace_agent_mesh/assets/docs/assets/js/f284c35a.250993bf.js +0 -1
  240. solace_agent_mesh/assets/docs/assets/js/main.7acf7ace.js +0 -2
  241. solace_agent_mesh/assets/docs/assets/js/runtime~main.9e0813a2.js +0 -1
  242. solace_agent_mesh/assets/docs/lunr-index-1765810064709.json +0 -1
  243. solace_agent_mesh/assets/docs/search-doc-1765810064709.json +0 -1
  244. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +0 -250
  245. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +0 -365
  246. solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +0 -305
  247. solace_agent_mesh/client/webui/frontend/static/assets/main-BcUaNZ-Q.css +0 -1
  248. solace_agent_mesh/client/webui/frontend/static/assets/main-vjch4RYc.js +0 -435
  249. solace_agent_mesh/common/a2a/a2a_llm.txt +0 -175
  250. solace_agent_mesh/common/a2a/a2a_llm_detail.txt +0 -193
  251. solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +0 -445
  252. solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +0 -736
  253. solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +0 -330
  254. solace_agent_mesh/common/common_llm.txt +0 -230
  255. solace_agent_mesh/common/common_llm_detail.txt +0 -2562
  256. solace_agent_mesh/common/middleware/middleware_llm.txt +0 -174
  257. solace_agent_mesh/common/middleware/middleware_llm_detail.txt +0 -185
  258. solace_agent_mesh/common/sac/sac_llm.txt +0 -71
  259. solace_agent_mesh/common/sac/sac_llm_detail.txt +0 -82
  260. solace_agent_mesh/common/sam_events/sam_events_llm.txt +0 -104
  261. solace_agent_mesh/common/sam_events/sam_events_llm_detail.txt +0 -115
  262. solace_agent_mesh/common/services/providers/providers_llm.txt +0 -81
  263. solace_agent_mesh/common/services/services_llm.txt +0 -368
  264. solace_agent_mesh/common/services/services_llm_detail.txt +0 -459
  265. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +0 -220
  266. solace_agent_mesh/common/utils/utils_llm.txt +0 -335
  267. solace_agent_mesh/common/utils/utils_llm_detail.txt +0 -572
  268. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-DiOiAjzL.js +0 -103
  269. solace_agent_mesh/core_a2a/core_a2a_llm.txt +0 -90
  270. solace_agent_mesh/core_a2a/core_a2a_llm_detail.txt +0 -101
  271. solace_agent_mesh/gateway/base/base_llm.txt +0 -226
  272. solace_agent_mesh/gateway/base/base_llm_detail.txt +0 -235
  273. solace_agent_mesh/gateway/gateway_llm.txt +0 -369
  274. solace_agent_mesh/gateway/gateway_llm_detail.txt +0 -3885
  275. solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +0 -345
  276. solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +0 -161
  277. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +0 -105
  278. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +0 -299
  279. solace_agent_mesh/gateway/http_sse/http_sse_llm_detail.txt +0 -3278
  280. solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +0 -221
  281. solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +0 -257
  282. solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +0 -308
  283. solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +0 -450
  284. solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +0 -133
  285. solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +0 -123
  286. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +0 -312
  287. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +0 -303
  288. solace_agent_mesh/gateway/http_sse/shared/__init__.py +0 -146
  289. solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +0 -319
  290. solace_agent_mesh/gateway/http_sse/utils/utils_llm.txt +0 -47
  291. solace_agent_mesh/llm.txt +0 -228
  292. solace_agent_mesh/llm_detail.txt +0 -2835
  293. solace_agent_mesh/solace_agent_mesh_llm.txt +0 -362
  294. solace_agent_mesh/solace_agent_mesh_llm_detail.txt +0 -8599
  295. solace_agent_mesh/templates/templates_llm.txt +0 -147
  296. /solace_agent_mesh/assets/docs/assets/js/{main.7acf7ace.js.LICENSE.txt → main.b241af3e.js.LICENSE.txt} +0 -0
  297. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/auth_utils.py +0 -0
  298. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/pagination.py +0 -0
  299. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/response_utils.py +0 -0
  300. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/error_dto.py +0 -0
  301. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exceptions.py +0 -0
  302. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/enums.py +0 -0
  303. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/timestamp_utils.py +0 -0
  304. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/types.py +0 -0
  305. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/utils.py +0 -0
  306. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/WHEEL +0 -0
  307. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/entry_points.txt +0 -0
  308. {solace_agent_mesh-1.11.2.dist-info → solace_agent_mesh-1.12.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,58 +0,0 @@
1
- ## Quick Summary
2
- The `testing` directory provides utilities for testing the A2A (Agent-to-Agent) framework, with a focus on debugging tools that help developers understand test failures by providing readable representations of agent event histories.
3
-
4
- ## Files Overview
5
- - `__init__.py` - Package initialization file marking the directory as a Python module
6
- - `debug_utils.py` - Debugging utilities including pretty-printing for A2A event history
7
- - `testing_llm.txt` - Documentation file (not a code module)
8
- - `testing_llm_detail.txt` - Concatenated documentation file (not a code module)
9
-
10
- ## Developer API Reference
11
-
12
- ### debug_utils.py
13
- **Purpose:** Provides debugging utilities for the declarative test framework, including a pretty-printer for A2A event history
14
- **Import:** `from solace_agent_mesh.agent.testing.debug_utils import pretty_print_event_history`
15
-
16
- **Functions:**
17
- - `pretty_print_event_history(event_history: List[Dict[str, Any]], max_string_length: int = 200) -> None` - Formats and prints a list of A2A event payloads for debugging, intelligently parsing different event types and truncating long strings for readability
18
-
19
- **Usage Examples:**
20
- ```python
21
- # Import the debugging utility
22
- from solace_agent_mesh.agent.testing.debug_utils import pretty_print_event_history
23
- from typing import List, Dict, Any
24
-
25
- # Example: Debug a failed test by printing event history
26
- event_history: List[Dict[str, Any]] = [
27
- {
28
- "result": {
29
- "status": {
30
- "state": "EXECUTING",
31
- "message": {
32
- "parts": [
33
- {"type": "text", "text": "Processing your request..."}
34
- ]
35
- }
36
- },
37
- "final": False
38
- }
39
- },
40
- {
41
- "error": {
42
- "code": "TIMEOUT_ERROR",
43
- "message": "Request timed out after 30 seconds"
44
- }
45
- }
46
- ]
47
-
48
- # Print formatted event history for debugging
49
- pretty_print_event_history(event_history)
50
-
51
- # Print with custom string truncation length
52
- pretty_print_event_history(event_history, max_string_length=100)
53
-
54
- # Handle empty event history (when test fails before any events)
55
- pretty_print_event_history([])
56
- ```
57
-
58
- # content_hash: 09db923206be2f0cd02c12cb97cf50f7b6364773fae328dd0570e69067cc1971
@@ -1,68 +0,0 @@
1
- # LLM Summary Detail File
2
-
3
- This file is a concatenation of all individual *llm.txt files found in the 'testing' directory tree. Each section below corresponds to a specific directory's summary file.
4
-
5
- ================================================================================
6
-
7
- ## Section 1: solace_agent_mesh/agent/testing/testing_llm.txt
8
-
9
- **Source file:** `solace_agent_mesh/agent/testing/testing_llm.txt`
10
-
11
- ## Quick Summary
12
- The `testing` directory provides utilities for testing the A2A (Agent-to-Agent) framework, with a focus on debugging tools that help developers understand test failures by providing readable representations of agent event histories.
13
-
14
- ## Files Overview
15
- - `__init__.py` - Package initialization file marking the directory as a Python module
16
- - `debug_utils.py` - Debugging utilities including pretty-printing for A2A event history
17
- - `testing_llm.txt` - Documentation file (not a code module)
18
-
19
- ## Developer API Reference
20
-
21
- ### debug_utils.py
22
- **Purpose:** Provides debugging utilities for the declarative test framework, including a pretty-printer for A2A event history
23
- **Import:** `from solace_agent_mesh.agent.testing.debug_utils import pretty_print_event_history`
24
-
25
- **Functions:**
26
- - `pretty_print_event_history(event_history: List[Dict[str, Any]], max_string_length: int = 200) -> None` - Formats and prints a list of A2A event payloads for debugging, intelligently parsing different event types and truncating long strings for readability
27
-
28
- **Usage Examples:**
29
- ```python
30
- # Import the debugging utility
31
- from solace_agent_mesh.agent.testing.debug_utils import pretty_print_event_history
32
- from typing import List, Dict, Any
33
-
34
- # Example: Debug a failed test by printing event history
35
- event_history: List[Dict[str, Any]] = [
36
- {
37
- "result": {
38
- "status": {
39
- "state": "EXECUTING",
40
- "message": {
41
- "parts": [
42
- {"type": "text", "text": "Processing your request..."}
43
- ]
44
- }
45
- },
46
- "final": False
47
- }
48
- },
49
- {
50
- "error": {
51
- "code": "TIMEOUT_ERROR",
52
- "message": "Request timed out after 30 seconds"
53
- }
54
- }
55
- ]
56
-
57
- # Print formatted event history for debugging
58
- pretty_print_event_history(event_history)
59
-
60
- # Print with custom string truncation length
61
- pretty_print_event_history(event_history, max_string_length=100)
62
-
63
- # Handle empty event history (when test fails before any events)
64
- pretty_print_event_history([])
65
- ```
66
-
67
- ================================================================================
68
-
@@ -1,276 +0,0 @@
1
- # DEVELOPER GUIDE for tools
2
-
3
- ## Quick Summary
4
- The `tools` directory contains the complete tool system for the Solace Agent Mesh, providing built-in tools for artifact management, data analysis, audio processing, image generation, web scraping, and dynamic tool creation. It includes a registry system for tool discovery and management, with support for declarative YAML-based configurations and multiple tool types including built-in, custom Python, and MCP tools.
5
-
6
- ## Files Overview
7
- - `__init__.py` - Imports all tool modules to trigger registration
8
- - `audio_tools.py` - Text-to-speech, transcription, and audio manipulation tools
9
- - `builtin_artifact_tools.py` - Core artifact management (CRUD operations, metadata handling)
10
- - `builtin_data_analysis_tools.py` - Data visualization and chart generation tools
11
- - `dynamic_tool.py` - Base classes for creating custom dynamic tools
12
- - `general_agent_tools.py` - General purpose tools (file conversion, diagram generation)
13
- - `image_tools.py` - Image generation, editing, and multimodal analysis tools
14
- - `peer_agent_tool.py` - Tool for delegating tasks to other agents
15
- - `registry.py` - Singleton registry for tool discovery and management
16
- - `test_tools.py` - Testing and debugging utilities for timeouts and error handling
17
- - `tool_config_types.py` - Pydantic models for YAML-based tool configurations
18
- - `tool_definition.py` - Base tool definition classes and structures
19
- - `web_tools.py` - Web scraping and content extraction tools
20
-
21
- ## Developer API Reference
22
-
23
- ### __init__.py
24
- **Purpose:** Ensures all tool modules are imported to trigger registration
25
- **Import:** `from solace_agent_mesh.agent.tools import *`
26
-
27
- ### audio_tools.py
28
- **Purpose:** Audio processing, text-to-speech, and transcription capabilities
29
- **Import:** `from solace_agent_mesh.agent.tools.audio_tools import select_voice, text_to_speech, multi_speaker_text_to_speech, concatenate_audio, transcribe_audio`
30
-
31
- **Functions:**
32
- - `select_voice(gender: Optional[str] = None, tone: Optional[str] = None, exclude_voices: Optional[List[str]] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Selects a suitable voice based on criteria
33
- - `text_to_speech(text: str, output_filename: Optional[str] = None, voice_name: Optional[str] = None, gender: Optional[str] = None, tone: Optional[str] = None, language: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Converts text to speech using Gemini TTS
34
- - `multi_speaker_text_to_speech(conversation_text: str, output_filename: Optional[str] = None, speaker_configs: Optional[List[Dict[str, str]]] = None, language: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Multi-speaker TTS for conversations
35
- - `concatenate_audio(clips_to_join: List[Dict[str, Any]], output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Combines multiple audio clips
36
- - `transcribe_audio(audio_filename: str, output_filename: Optional[str] = None, description: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Transcribes audio to text
37
-
38
- **Constants/Variables:**
39
- - `ALL_AVAILABLE_VOICES: List[str]` - List of all available TTS voices
40
- - `SUPPORTED_LANGUAGES: Dict[str, str]` - Mapping of language names to BCP-47 codes
41
- - `VOICE_TONE_MAPPING: Dict[str, List[str]]` - Maps tones to voice names
42
- - `GENDER_TO_VOICE_MAPPING: Dict[str, List[str]]` - Maps genders to voice names
43
-
44
- **Usage Examples:**
45
- ```python
46
- # Select a voice
47
- result = await select_voice(gender="female", tone="friendly")
48
- voice_name = result["voice_name"]
49
-
50
- # Generate speech
51
- result = await text_to_speech(
52
- text="Hello world",
53
- voice_name=voice_name,
54
- tool_context=context
55
- )
56
-
57
- # Multi-speaker conversation
58
- conversation = "Speaker1: Hello\nSpeaker2: Hi there"
59
- result = await multi_speaker_text_to_speech(
60
- conversation_text=conversation,
61
- speaker_configs=[
62
- {"name": "Speaker1", "gender": "female", "tone": "friendly"},
63
- {"name": "Speaker2", "gender": "male", "tone": "professional"}
64
- ],
65
- tool_context=context
66
- )
67
- ```
68
-
69
- ### builtin_artifact_tools.py
70
- **Purpose:** Core artifact management operations (CRUD, metadata, embeds)
71
- **Import:** `from solace_agent_mesh.agent.tools.builtin_artifact_tools import list_artifacts, load_artifact, append_to_artifact, apply_embed_and_create_artifact, extract_content_from_artifact, delete_artifact`
72
-
73
- **Functions:**
74
- - `list_artifacts(tool_context: ToolContext = None) -> Dict[str, Any]` - Lists all artifacts with metadata summaries
75
- - `load_artifact(filename: str, version: int, load_metadata_only: bool = False, max_content_length: Optional[int] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Loads artifact content or metadata
76
- - `append_to_artifact(filename: str, content_chunk: str, mime_type: str, tool_context: ToolContext = None) -> Dict[str, Any]` - Appends content to existing artifact
77
- - `apply_embed_and_create_artifact(output_filename: str, embed_directive: str, output_metadata: Optional[Dict[str, Any]] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Resolves embed directives and creates artifacts
78
- - `extract_content_from_artifact(filename: str, extraction_goal: str, version: Optional[str] = "latest", output_filename_base: Optional[str] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Uses LLM to extract/transform artifact content
79
- - `delete_artifact(filename: str, version: Optional[int] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Deletes artifact versions
80
-
81
- **Usage Examples:**
82
- ```python
83
- # List all artifacts
84
- artifacts = await list_artifacts(tool_context=context)
85
-
86
- # Load specific artifact
87
- content = await load_artifact(
88
- filename="data.json",
89
- version=1,
90
- tool_context=context
91
- )
92
-
93
- # Extract content using LLM
94
- result = await extract_content_from_artifact(
95
- filename="report.pdf",
96
- extraction_goal="Extract all financial figures and create a summary table",
97
- tool_context=context
98
- )
99
- ```
100
-
101
- ### builtin_data_analysis_tools.py
102
- **Purpose:** Data visualization and chart generation
103
- **Import:** `from solace_agent_mesh.agent.tools.builtin_data_analysis_tools import create_chart_from_plotly_config`
104
-
105
- **Functions:**
106
- - `create_chart_from_plotly_config(config_content: str, config_format: Literal["json", "yaml"], output_filename: str, output_format: Optional[str] = "png", tool_context: ToolContext = None) -> Dict[str, Any]` - Creates charts from Plotly configurations
107
-
108
- **Usage Examples:**
109
- ```python
110
- # Create chart from JSON config
111
- plotly_config = '{"data": [{"x": [1,2,3], "y": [4,5,6], "type": "scatter"}], "layout": {"title": "Sample Chart"}}'
112
- result = await create_chart_from_plotly_config(
113
- config_content=plotly_config,
114
- config_format="json",
115
- output_filename="my_chart.png",
116
- tool_context=context
117
- )
118
- ```
119
-
120
- ### dynamic_tool.py
121
- **Purpose:** Base classes for creating custom dynamic tools
122
- **Import:** `from solace_agent_mesh.agent.tools.dynamic_tool import DynamicTool, DynamicToolProvider`
123
-
124
- **Classes:**
125
- - `DynamicTool(tool_config: Optional[Union[dict, BaseModel]] = None)` - Base class for programmatic tools
126
- - `tool_name: str` - Property returning the function name
127
- - `tool_description: str` - Property returning tool description
128
- - `parameters_schema: adk_types.Schema` - Property returning parameter schema
129
- - `raw_string_args: List[str]` - Property listing args to skip embed resolution
130
- - `resolution_type: Literal["early", "all"]` - Property controlling embed resolution
131
- - `_run_async_impl(args: dict, tool_context: ToolContext, credential: Optional[str] = None) -> dict` - Abstract method to implement tool logic
132
-
133
- - `DynamicToolProvider()` - Base class for tool providers
134
- - `register_tool(func: Callable) -> Callable` - Class method decorator for registering tools
135
- - `create_tools(tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]` - Abstract method to create custom tools
136
-
137
- **Usage Examples:**
138
- ```python
139
- # Create a custom dynamic tool
140
- class MyCustomTool(DynamicTool):
141
- @property
142
- def tool_name(self) -> str:
143
- return "my_custom_tool"
144
-
145
- @property
146
- def tool_description(self) -> str:
147
- return "Does something custom"
148
-
149
- @property
150
- def parameters_schema(self) -> adk_types.Schema:
151
- return adk_types.Schema(
152
- type=adk_types.Type.OBJECT,
153
- properties={
154
- "input": adk_types.Schema(type=adk_types.Type.STRING)
155
- },
156
- required=["input"]
157
- )
158
-
159
- async def _run_async_impl(self, args: dict, tool_context: ToolContext, credential: Optional[str] = None) -> dict:
160
- return {"result": f"Processed: {args['input']}"}
161
-
162
- # Create a tool provider
163
- class MyToolProvider(DynamicToolProvider):
164
- @DynamicToolProvider.register_tool
165
- async def my_decorated_tool(self, message: str, tool_context: ToolContext = None) -> dict:
166
- """A tool created via decorator."""
167
- return {"response": f"Hello {message}"}
168
-
169
- def create_tools(self, tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]:
170
- return [MyCustomTool(tool_config)]
171
- ```
172
-
173
- ### general_agent_tools.py
174
- **Purpose:** General purpose utility tools
175
- **Import:** `from solace_agent_mesh.agent.tools.general_agent_tools import convert_file_to_markdown, mermaid_diagram_generator`
176
-
177
- **Functions:**
178
- - `convert_file_to_markdown(input_filename: str, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Converts files to Markdown using MarkItDown
179
- - `mermaid_diagram_generator(mermaid_syntax: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Generates PNG diagrams from Mermaid syntax
180
-
181
- **Usage Examples:**
182
- ```python
183
- # Convert PDF to Markdown
184
- result = await convert_file_to_markdown(
185
- input_filename="document.pdf",
186
- tool_context=context
187
- )
188
-
189
- # Generate Mermaid diagram
190
- mermaid_code = """
191
- graph TD
192
- A[Start] --> B[Process]
193
- B --> C[End]
194
- """
195
- result = await mermaid_diagram_generator(
196
- mermaid_syntax=mermaid_code,
197
- output_filename="flowchart.png",
198
- tool_context=context
199
- )
200
- ```
201
-
202
- ### image_tools.py
203
- **Purpose:** Image generation, editing, and multimodal analysis
204
- **Import:** `from solace_agent_mesh.agent.tools.image_tools import create_image_from_description, describe_image, describe_audio, edit_image_with_gemini`
205
-
206
- **Functions:**
207
- - `create_image_from_description(image_description: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Generates images from text descriptions
208
- - `describe_image(image_filename: str, prompt: str = "What is in this image?", tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Describes images using vision API
209
- - `describe_audio(audio_filename: str, prompt: str = "What is in this recording?", tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Describes audio using multimodal API
210
- - `edit_image_with_gemini(image_filename: str, edit_prompt: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Edits images using Gemini
211
-
212
- **Usage Examples:**
213
- ```python
214
- # Generate image
215
- result = await create_image_from_description(
216
- image_description="A sunset over mountains",
217
- output_filename="sunset.png",
218
- tool_context=context
219
- )
220
-
221
- # Describe image
222
- result = await describe_image(
223
- image_filename="photo.jpg",
224
- prompt="What objects are in this image?",
225
- tool_context=context
226
- )
227
-
228
- # Edit image
229
- result = await edit_image_with_gemini(
230
- image_filename="original.jpg",
231
- edit_prompt="Add a rainbow in the sky",
232
- tool_context=context
233
- )
234
- ```
235
-
236
- ### peer_agent_tool.py
237
- **Purpose:** Tool for delegating tasks to other agents in the mesh
238
- **Import:** `from solace_agent_mesh.agent.tools.peer_agent_tool import PeerAgentTool`
239
-
240
- **Classes:**
241
- - `PeerAgentTool(target_agent_name: str, host_component)` - Tool for peer agent communication
242
- - `target_agent_name: str` - Name of the target agent
243
- - `host_component` - Reference to the host component
244
- - `run_async(*, args: Dict[str, Any], tool_context: ToolContext) -> Any` - Delegates task to peer agent
245
-
246
- **Usage Examples:**
247
- ```python
248
- # Create peer tool (typically done automatically)
249
- peer_tool = PeerAgentTool("data_analyst_agent", host_component)
250
-
251
- # Use via ADK (the tool is registered automatically)
252
- # The LLM would call: peer_data_analyst_agent(task_description="Analyze sales data", artifacts=[{"filename": "sales.csv"}])
253
- ```
254
-
255
- ### registry.py
256
- **Purpose:** Singleton registry for tool discovery and management
257
- **Import:** `from solace_agent_mesh.agent.tools.registry import tool_registry`
258
-
259
- **Classes:**
260
- - `_ToolRegistry()` - Singleton registry for tools
261
- - `register(tool: BuiltinTool)` - Registers a tool
262
- - `get_tool_by_name(name: str) -> Optional[BuiltinTool]` - Gets tool by name
263
- - `get_tools_by_category(category_name: str) -> List[BuiltinTool]` - Gets tools by category
264
- - `get_all_tools() -> List[BuiltinTool]` - Gets all registered tools
265
- - `clear()` - Clears registry (testing only)
266
-
267
- **Constants/Variables:**
268
- - `tool_registry: _ToolRegistry` - Global singleton instance
269
-
270
- **Usage Examples:**
271
- ```python
272
- from solace_agent_mesh.agent.tools.registry import tool_registry
273
-
274
- # Register a tool
275
-
276
- # content_hash: b3f2b9ed392ce5771853db0564d776f20e30b7e0706d9126611eca5697e6a05e
@@ -1,275 +0,0 @@
1
- # LLM Summary Detail File
2
-
3
- This file is a concatenation of all individual *llm.txt files found in the 'tools' directory tree. Each section below corresponds to a specific directory's summary file.
4
-
5
- ================================================================================
6
-
7
- ## Section 1: solace_agent_mesh/agent/tools/tools_llm.txt
8
-
9
- **Source file:** `solace_agent_mesh/agent/tools/tools_llm.txt`
10
-
11
- # DEVELOPER GUIDE: tools
12
-
13
- ## Quick Summary
14
- The `tools` directory contains the complete tool system for the Solace Agent Mesh, providing built-in tools for artifact management, data analysis, audio/image processing, web interactions, and dynamic tool creation. It includes a registry system for tool discovery and management, with support for declarative YAML-based configurations and multiple tool types including built-in, custom Python, and MCP tools.
15
-
16
- ## Files Overview
17
- - `__init__.py` - Ensures all built-in tool modules are imported for declarative registration
18
- - `audio_tools.py` - Audio processing tools including TTS, transcription, and audio manipulation
19
- - `builtin_artifact_tools.py` - Core artifact management tools for CRUD operations and content processing
20
- - `builtin_data_analysis_tools.py` - Data analysis tools for creating charts from Plotly configurations
21
- - `dynamic_tool.py` - Base classes for creating dynamic, programmatically-defined tools
22
- - `general_agent_tools.py` - General-purpose tools for file conversion and diagram generation
23
- - `image_tools.py` - Image generation, editing, and multimodal content analysis tools
24
- - `peer_agent_tool.py` - Tool for delegating tasks to peer agents over Solace messaging
25
- - `registry.py` - Singleton registry for tool discovery and management
26
- - `test_tools.py` - Testing utilities for timeouts and error handling
27
- - `tool_config_types.py` - Pydantic models for YAML-based tool configurations
28
- - `tool_definition.py` - Base tool definition classes and structures
29
- - `web_tools.py` - Web scraping and content extraction tools
30
-
31
- ## Developer API Reference
32
-
33
- ### __init__.py
34
- **Purpose:** Triggers tool registration by importing all tool modules
35
- **Import:** `from solace_agent_mesh.agent.tools import *`
36
-
37
- No public classes or functions - this is an initialization module.
38
-
39
- ### audio_tools.py
40
- **Purpose:** Provides comprehensive audio processing capabilities
41
- **Import:** `from solace_agent_mesh.agent.tools.audio_tools import select_voice, text_to_speech, multi_speaker_text_to_speech, concatenate_audio, transcribe_audio`
42
-
43
- **Functions:**
44
- - `select_voice(gender: Optional[str] = None, tone: Optional[str] = None, exclude_voices: Optional[List[str]] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Selects a suitable voice based on gender and tone criteria
45
- - `text_to_speech(text: str, output_filename: Optional[str] = None, voice_name: Optional[str] = None, gender: Optional[str] = None, tone: Optional[str] = None, language: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Converts text to speech using Gemini TTS API
46
- - `multi_speaker_text_to_speech(conversation_text: str, output_filename: Optional[str] = None, speaker_configs: Optional[List[Dict[str, str]]] = None, language: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Creates multi-speaker audio from conversation text
47
- - `concatenate_audio(clips_to_join: List[Dict[str, Any]], output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Combines multiple audio clips with custom pause durations
48
- - `transcribe_audio(audio_filename: str, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Transcribes audio using OpenAI-compatible API
49
-
50
- **Constants/Variables:**
51
- - `VOICE_TONE_MAPPING: Dict[str, List[str]]` - Maps tone preferences to available voices
52
- - `GENDER_TO_VOICE_MAPPING: Dict[str, List[str]]` - Maps gender preferences to available voices
53
- - `ALL_AVAILABLE_VOICES: List[str]` - Complete list of available voice names
54
- - `SUPPORTED_LANGUAGES: Dict[str, str]` - Maps language names to BCP-47 codes
55
-
56
- **Usage Examples:**
57
- ```python
58
- # Basic text-to-speech
59
- result = await text_to_speech(
60
- text="Hello, world!",
61
- voice_name="Kore",
62
- tool_context=context
63
- )
64
-
65
- # Multi-speaker conversation
66
- conversation = "Speaker1: Hello there!\nSpeaker2: Hi, how are you?"
67
- result = await multi_speaker_text_to_speech(
68
- conversation_text=conversation,
69
- speaker_configs=[
70
- {"name": "Speaker1", "gender": "female", "tone": "friendly"},
71
- {"name": "Speaker2", "gender": "male", "tone": "casual"}
72
- ],
73
- tool_context=context
74
- )
75
- ```
76
-
77
- ### builtin_artifact_tools.py
78
- **Purpose:** Core artifact management and content processing tools
79
- **Import:** `from solace_agent_mesh.agent.tools.builtin_artifact_tools import list_artifacts, load_artifact, apply_embed_and_create_artifact, extract_content_from_artifact, append_to_artifact, delete_artifact`
80
-
81
- **Functions:**
82
- - `list_artifacts(tool_context: ToolContext = None) -> Dict[str, Any]` - Lists all available artifacts with metadata summaries
83
- - `load_artifact(filename: str, version: int, load_metadata_only: bool = False, max_content_length: Optional[int] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Loads artifact content or metadata
84
- - `apply_embed_and_create_artifact(output_filename: str, embed_directive: str, output_metadata: Optional[Dict[str, Any]] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Resolves embed directives and creates new artifacts
85
- - `extract_content_from_artifact(filename: str, extraction_goal: str, version: Optional[str] = "latest", output_filename_base: Optional[str] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Uses LLM to extract/transform artifact content
86
- - `append_to_artifact(filename: str, content_chunk: str, mime_type: str, tool_context: ToolContext = None) -> Dict[str, Any]` - Appends content to existing artifacts
87
- - `delete_artifact(filename: str, version: Optional[int] = None, tool_context: ToolContext = None) -> Dict[str, Any]` - Deletes artifact versions
88
-
89
- **Note:** To return artifacts to users, use the `«artifact_return:filename[:version]»` embed in your response text instead of a tool call. This is more efficient and provides a better user experience.
90
-
91
- **Usage Examples:**
92
- ```python
93
- # List all artifacts
94
- artifacts = await list_artifacts(tool_context=context)
95
-
96
- # Load specific artifact version
97
- content = await load_artifact(
98
- filename="data.csv",
99
- version=1,
100
- tool_context=context
101
- )
102
-
103
- # Extract content using LLM
104
- result = await extract_content_from_artifact(
105
- filename="report.pdf",
106
- extraction_goal="Extract all financial figures and create a summary table",
107
- tool_context=context
108
- )
109
- ```
110
-
111
- ### builtin_data_analysis_tools.py
112
- **Purpose:** Data analysis and visualization tools
113
- **Import:** `from solace_agent_mesh.agent.tools.builtin_data_analysis_tools import create_chart_from_plotly_config`
114
-
115
- **Functions:**
116
- - `create_chart_from_plotly_config(config_content: str, config_format: Literal["json", "yaml"], output_filename: str, output_format: Optional[str] = "png", tool_context: ToolContext = None) -> Dict[str, Any]` - Generates static chart images from Plotly configurations
117
-
118
- **Usage Examples:**
119
- ```python
120
- # Create chart from JSON config
121
- plotly_config = '{"data": [{"x": [1,2,3], "y": [4,5,6], "type": "scatter"}]}'
122
- result = await create_chart_from_plotly_config(
123
- config_content=plotly_config,
124
- config_format="json",
125
- output_filename="my_chart.png",
126
- tool_context=context
127
- )
128
- ```
129
-
130
- ### dynamic_tool.py
131
- **Purpose:** Base classes for creating dynamic, programmatically-defined tools
132
- **Import:** `from solace_agent_mesh.agent.tools.dynamic_tool import DynamicTool, DynamicToolProvider`
133
-
134
- **Classes:**
135
- - `DynamicTool(tool_config: Optional[Union[dict, BaseModel]] = None)` - Base class for dynamic tools with programmatic definitions
136
- - `tool_name: str` - Property returning the function name for LLM calls
137
- - `tool_description: str` - Property returning tool description
138
- - `parameters_schema: adk_types.Schema` - Property returning parameter schema
139
- - `raw_string_args: List[str]` - Property listing args that skip embed resolution
140
- - `resolution_type: Literal["early", "all"]` - Property determining embed resolution scope
141
- - `run_async(*, args: Dict[str, Any], tool_context: ToolContext) -> Dict[str, Any]` - Executes the tool with embed resolution
142
- - `_run_async_impl(args: dict, tool_context: ToolContext, credential: Optional[str] = None) -> dict` - Abstract method for tool implementation
143
-
144
- - `DynamicToolProvider()` - Base class for tool providers that generate multiple tools
145
- - `register_tool(func: Callable) -> Callable` - Class method decorator for registering functions as tools
146
- - `create_tools(tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]` - Abstract method for creating custom tools
147
- - `get_all_tools_for_framework(tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]` - Framework method combining decorated and custom tools
148
-
149
- **Usage Examples:**
150
- ```python
151
- # Create a custom dynamic tool
152
- class MyCustomTool(DynamicTool):
153
- @property
154
- def tool_name(self) -> str:
155
- return "my_custom_tool"
156
-
157
- @property
158
- def tool_description(self) -> str:
159
- return "Does something custom"
160
-
161
- @property
162
- def parameters_schema(self) -> adk_types.Schema:
163
- return adk_types.Schema(
164
- type=adk_types.Type.OBJECT,
165
- properties={
166
- "input": adk_types.Schema(type=adk_types.Type.STRING)
167
- },
168
- required=["input"]
169
- )
170
-
171
- async def _run_async_impl(self, args: dict, tool_context: ToolContext, credential: Optional[str] = None) -> dict:
172
- return {"result": f"Processed: {args['input']}"}
173
-
174
- # Create a tool provider with decorated methods
175
- class MyToolProvider(DynamicToolProvider):
176
- @DynamicToolProvider.register_tool
177
- async def my_decorated_tool(self, param1: str, tool_context: ToolContext) -> dict:
178
- """This tool does something useful."""
179
- return {"status": "success", "input": param1}
180
-
181
- def create_tools(self, tool_config: Optional[Union[dict, BaseModel]] = None) -> List[DynamicTool]:
182
- return [MyCustomTool(tool_config)]
183
- ```
184
-
185
- ### general_agent_tools.py
186
- **Purpose:** General-purpose utility tools for file conversion and diagram generation
187
- **Import:** `from solace_agent_mesh.agent.tools.general_agent_tools import convert_file_to_markdown, mermaid_diagram_generator`
188
-
189
- **Functions:**
190
- - `convert_file_to_markdown(input_filename: str, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Converts files to Markdown using MarkItDown library
191
- - `mermaid_diagram_generator(mermaid_syntax: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Generates PNG images from Mermaid diagram syntax
192
-
193
- **Usage Examples:**
194
- ```python
195
- # Convert PDF to Markdown
196
- result = await convert_file_to_markdown(
197
- input_filename="document.pdf",
198
- tool_context=context
199
- )
200
-
201
- # Generate Mermaid diagram
202
- mermaid_code = """
203
- graph TD
204
- A[Start] --> B[Process]
205
- B --> C[End]
206
- """
207
- result = await mermaid_diagram_generator(
208
- mermaid_syntax=mermaid_code,
209
- output_filename="flowchart.png",
210
- tool_context=context
211
- )
212
- ```
213
-
214
- ### image_tools.py
215
- **Purpose:** Image generation, editing, and multimodal content analysis
216
- **Import:** `from solace_agent_mesh.agent.tools.image_tools import create_image_from_description, describe_image, describe_audio, edit_image_with_gemini`
217
-
218
- **Functions:**
219
- - `create_image_from_description(image_description: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Generates images from text descriptions
220
- - `describe_image(image_filename: str, prompt: str = "What is in this image?", tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Describes images using vision APIs
221
- - `describe_audio(audio_filename: str, prompt: str = "What is in this recording?", tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Describes audio using multimodal APIs
222
- - `edit_image_with_gemini(image_filename: str, edit_prompt: str, output_filename: Optional[str] = None, tool_context: ToolContext = None, tool_config: Optional[Dict[str, Any]] = None) -> Dict[str, Any]` - Edits images using Gemini 2.0 Flash
223
-
224
- **Usage Examples:**
225
- ```python
226
- # Generate image from description
227
- result = await create_image_from_description(
228
- image_description="A sunset over mountains with a lake in the foreground",
229
- output_filename="sunset.png",
230
- tool_context=context
231
- )
232
-
233
- # Describe an existing image
234
- result = await describe_image(
235
- image_filename="photo.jpg",
236
- prompt="What objects are visible in this image?",
237
- tool_context=context
238
- )
239
-
240
- # Edit an image
241
- result = await edit_image_with_gemini(
242
- image_filename="original.jpg",
243
- edit_prompt="Add a rainbow in the sky",
244
- tool_context=context
245
- )
246
- ```
247
-
248
- ### peer_agent_tool.py
249
- **Purpose:** Enables task delegation to peer agents over Solace messaging
250
- **Import:** `from solace_agent_mesh.agent.tools.peer_agent_tool import PeerAgentTool`
251
-
252
- **Classes:**
253
- - `PeerAgentTool(target_agent_name: str, host_component)` - Tool for delegating tasks to peer agents
254
- - `target_agent_name: str` - Name of the peer agent
255
- - `host_component` - Reference to the SamAgentComponent
256
- - `is_long_running: bool` - Always True for async delegation
257
- - `run_async(*, args: Dict[str, Any], tool_context: ToolContext) -> Any` - Delegates task to peer agent
258
-
259
- **Usage Examples:**
260
- ```python
261
- # Create peer agent tool (typically done by framework)
262
- peer_tool = PeerAgentTool("data_analyst_agent", host_component)
263
-
264
- # Tool is called by LLM with these parameters:
265
- # {
266
- # "task_description": "Analyze the sales data and create a summary report",
267
- # "user_query": "What were our top performing products last quarter?",
268
- # "artifacts": [{"filename": "sales_data.csv", "version": "latest"}]
269
- # }
270
- ```
271
-
272
- ### registry.py
273
-
274
- ================================================================================
275
-