solace-agent-mesh 1.7.1__py3-none-any.whl → 1.13.2__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 (447) hide show
  1. solace_agent_mesh/agent/adk/alembic/README +74 -0
  2. solace_agent_mesh/agent/adk/alembic/env.py +77 -0
  3. solace_agent_mesh/agent/adk/alembic/script.py.mako +28 -0
  4. solace_agent_mesh/agent/adk/alembic/versions/e2902798564d_adk_session_db_upgrade.py +52 -0
  5. solace_agent_mesh/agent/adk/alembic.ini +112 -0
  6. solace_agent_mesh/agent/adk/artifacts/filesystem_artifact_service.py +164 -0
  7. solace_agent_mesh/agent/adk/artifacts/s3_artifact_service.py +163 -0
  8. solace_agent_mesh/agent/adk/callbacks.py +752 -127
  9. solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +99 -7
  10. solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py +52 -5
  11. solace_agent_mesh/agent/adk/mcp_content_processor.py +1 -1
  12. solace_agent_mesh/agent/adk/models/lite_llm.py +34 -16
  13. solace_agent_mesh/agent/adk/models/oauth2_token_manager.py +24 -137
  14. solace_agent_mesh/agent/adk/runner.py +66 -8
  15. solace_agent_mesh/agent/adk/schema_migration.py +88 -0
  16. solace_agent_mesh/agent/adk/services.py +41 -1
  17. solace_agent_mesh/agent/adk/setup.py +220 -32
  18. solace_agent_mesh/agent/adk/stream_parser.py +229 -40
  19. solace_agent_mesh/agent/protocol/event_handlers.py +219 -33
  20. solace_agent_mesh/agent/proxies/a2a/component.py +572 -75
  21. solace_agent_mesh/agent/proxies/a2a/config.py +80 -4
  22. solace_agent_mesh/agent/proxies/base/component.py +188 -22
  23. solace_agent_mesh/agent/proxies/base/proxy_task_context.py +3 -1
  24. solace_agent_mesh/agent/sac/app.py +37 -12
  25. solace_agent_mesh/agent/sac/component.py +322 -52
  26. solace_agent_mesh/agent/sac/patch_adk.py +8 -16
  27. solace_agent_mesh/agent/sac/task_execution_context.py +90 -0
  28. solace_agent_mesh/agent/tools/__init__.py +3 -0
  29. solace_agent_mesh/agent/tools/audio_tools.py +3 -3
  30. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +698 -24
  31. solace_agent_mesh/agent/tools/deep_research_tools.py +2161 -0
  32. solace_agent_mesh/agent/tools/peer_agent_tool.py +82 -15
  33. solace_agent_mesh/agent/tools/time_tools.py +126 -0
  34. solace_agent_mesh/agent/tools/tool_config_types.py +54 -2
  35. solace_agent_mesh/agent/tools/web_search_tools.py +279 -0
  36. solace_agent_mesh/agent/tools/web_tools.py +125 -17
  37. solace_agent_mesh/agent/utils/artifact_helpers.py +243 -5
  38. solace_agent_mesh/agent/utils/context_helpers.py +17 -0
  39. solace_agent_mesh/assets/docs/404.html +6 -6
  40. solace_agent_mesh/assets/docs/assets/css/{styles.906a1503.css → styles.8162edfb.css} +1 -1
  41. solace_agent_mesh/assets/docs/assets/js/05749d90.19ac4f35.js +1 -0
  42. solace_agent_mesh/assets/docs/assets/js/15ba94aa.e186750d.js +1 -0
  43. solace_agent_mesh/assets/docs/assets/js/15e40e79.434bb30f.js +1 -0
  44. solace_agent_mesh/assets/docs/assets/js/17896441.e612dfb4.js +1 -0
  45. solace_agent_mesh/assets/docs/assets/js/2279.550aa580.js +2 -0
  46. solace_agent_mesh/assets/docs/assets/js/{17896441.a5e82f9b.js.LICENSE.txt → 2279.550aa580.js.LICENSE.txt} +6 -0
  47. solace_agent_mesh/assets/docs/assets/js/240a0364.83e37aa8.js +1 -0
  48. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.2f0db237.js +1 -0
  49. solace_agent_mesh/assets/docs/assets/js/3a6c6137.7e61915d.js +1 -0
  50. solace_agent_mesh/assets/docs/assets/js/3ac1795d.7f7ab1c1.js +1 -0
  51. solace_agent_mesh/assets/docs/assets/js/3ff0015d.e53c9b78.js +1 -0
  52. solace_agent_mesh/assets/docs/assets/js/41adc471.0e95b87c.js +1 -0
  53. solace_agent_mesh/assets/docs/assets/js/4667dc50.bf2ad456.js +1 -0
  54. solace_agent_mesh/assets/docs/assets/js/49eed117.493d6f99.js +1 -0
  55. solace_agent_mesh/assets/docs/assets/js/{509e993c.4c7a1a6d.js → 509e993c.a1fbf45a.js} +1 -1
  56. solace_agent_mesh/assets/docs/assets/js/547e15cc.8e6da617.js +1 -0
  57. solace_agent_mesh/assets/docs/assets/js/55b7b518.29d6e75d.js +1 -0
  58. solace_agent_mesh/assets/docs/assets/js/5b8d9c11.d4eb37b8.js +1 -0
  59. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.1ee87753.js +1 -0
  60. solace_agent_mesh/assets/docs/assets/js/60702c0e.a8bdd79b.js +1 -0
  61. solace_agent_mesh/assets/docs/assets/js/64195356.09dbd087.js +1 -0
  62. solace_agent_mesh/assets/docs/assets/js/66d4869e.30340bd3.js +1 -0
  63. solace_agent_mesh/assets/docs/assets/js/6aaedf65.7253541d.js +1 -0
  64. solace_agent_mesh/assets/docs/assets/js/6d84eae0.fd23ba4a.js +1 -0
  65. solace_agent_mesh/assets/docs/assets/js/729898df.7249e9fd.js +1 -0
  66. solace_agent_mesh/assets/docs/assets/js/7e294c01.7c5f6906.js +1 -0
  67. solace_agent_mesh/assets/docs/assets/js/8024126c.e3467286.js +1 -0
  68. solace_agent_mesh/assets/docs/assets/js/81a99df0.7ed65d45.js +1 -0
  69. solace_agent_mesh/assets/docs/assets/js/82fbfb93.161823a5.js +1 -0
  70. solace_agent_mesh/assets/docs/assets/js/924ffdeb.975e428a.js +1 -0
  71. solace_agent_mesh/assets/docs/assets/js/94e8668d.16083b3f.js +1 -0
  72. solace_agent_mesh/assets/docs/assets/js/9bb13469.4523ae20.js +1 -0
  73. solace_agent_mesh/assets/docs/assets/js/a7d42657.a956689d.js +1 -0
  74. solace_agent_mesh/assets/docs/assets/js/a94703ab.3e5fbcb3.js +1 -0
  75. solace_agent_mesh/assets/docs/assets/js/ab9708a8.3e563275.js +1 -0
  76. solace_agent_mesh/assets/docs/assets/js/c93cbaa0.0e0d8baf.js +1 -0
  77. solace_agent_mesh/assets/docs/assets/js/cab03b5b.6a073091.js +1 -0
  78. solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.07e170dd.js +1 -0
  79. solace_agent_mesh/assets/docs/assets/js/e04b235d.06d23db6.js +1 -0
  80. solace_agent_mesh/assets/docs/assets/js/e1b6eeb4.deb2b62e.js +1 -0
  81. solace_agent_mesh/assets/docs/assets/js/e3d9abda.1476f570.js +1 -0
  82. solace_agent_mesh/assets/docs/assets/js/e6f9706b.acc800d3.js +1 -0
  83. solace_agent_mesh/assets/docs/assets/js/e92d0134.c147a429.js +1 -0
  84. solace_agent_mesh/assets/docs/assets/js/ee0c2fe7.94d0a351.js +1 -0
  85. solace_agent_mesh/assets/docs/assets/js/f284c35a.cc97854c.js +1 -0
  86. solace_agent_mesh/assets/docs/assets/js/main.d634009f.js +2 -0
  87. solace_agent_mesh/assets/docs/assets/js/runtime~main.27bb82a7.js +1 -0
  88. solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +68 -68
  89. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/artifact-management/index.html +50 -50
  90. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/audio-tools/index.html +42 -42
  91. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/data-analysis-tools/index.html +55 -55
  92. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/embeds/index.html +75 -75
  93. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/image-tools/index.html +81 -0
  94. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/index.html +67 -50
  95. solace_agent_mesh/assets/docs/docs/documentation/components/builtin-tools/research-tools/index.html +136 -0
  96. solace_agent_mesh/assets/docs/docs/documentation/components/cli/index.html +178 -144
  97. solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +43 -42
  98. solace_agent_mesh/assets/docs/docs/documentation/components/index.html +20 -18
  99. solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +23 -23
  100. solace_agent_mesh/assets/docs/docs/documentation/components/platform-service/index.html +33 -0
  101. solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +45 -45
  102. solace_agent_mesh/assets/docs/docs/documentation/components/projects/index.html +98 -112
  103. solace_agent_mesh/assets/docs/docs/documentation/components/prompts/index.html +147 -0
  104. solace_agent_mesh/assets/docs/docs/documentation/components/proxies/index.html +208 -125
  105. solace_agent_mesh/assets/docs/docs/documentation/components/speech/index.html +52 -0
  106. solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +28 -28
  107. solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +29 -29
  108. solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +14 -14
  109. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/index.html +47 -0
  110. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes/kubernetes-deployment-guide/index.html +197 -0
  111. solace_agent_mesh/assets/docs/docs/documentation/deploying/logging/index.html +67 -53
  112. solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +17 -17
  113. solace_agent_mesh/assets/docs/docs/documentation/deploying/proxy_configuration/index.html +49 -0
  114. solace_agent_mesh/assets/docs/docs/documentation/developing/create-agents/index.html +38 -38
  115. solace_agent_mesh/assets/docs/docs/documentation/developing/create-gateways/index.html +87 -87
  116. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-python-tools/index.html +67 -49
  117. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +17 -17
  118. solace_agent_mesh/assets/docs/docs/documentation/developing/evaluations/index.html +51 -51
  119. solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +22 -22
  120. solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +27 -27
  121. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/bedrock-agents/index.html +135 -135
  122. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/custom-agent/index.html +66 -66
  123. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/event-mesh-gateway/index.html +51 -51
  124. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mcp-integration/index.html +50 -38
  125. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/mongodb-integration/index.html +86 -86
  126. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rag-integration/index.html +51 -51
  127. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/rest-gateway/index.html +24 -24
  128. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +30 -30
  129. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/sql-database/index.html +44 -44
  130. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/teams-integration/index.html +115 -0
  131. solace_agent_mesh/assets/docs/docs/documentation/enterprise/agent-builder/index.html +50 -23
  132. solace_agent_mesh/assets/docs/docs/documentation/enterprise/connectors/index.html +29 -24
  133. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +21 -21
  134. solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +40 -37
  135. solace_agent_mesh/assets/docs/docs/documentation/enterprise/openapi-tools/index.html +324 -0
  136. solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +96 -66
  137. solace_agent_mesh/assets/docs/docs/documentation/enterprise/secure-user-delegated-access/index.html +181 -181
  138. solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +75 -75
  139. solace_agent_mesh/assets/docs/docs/documentation/enterprise/wheel-installation/index.html +27 -27
  140. solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +44 -44
  141. solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +39 -38
  142. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +30 -30
  143. solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +18 -18
  144. solace_agent_mesh/assets/docs/docs/documentation/getting-started/vibe_coding/index.html +62 -0
  145. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/artifact-storage/index.html +135 -114
  146. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/configurations/index.html +37 -37
  147. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +14 -14
  148. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +27 -25
  149. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +69 -69
  150. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +72 -72
  151. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/session-storage/index.html +112 -112
  152. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/user-feedback/index.html +28 -28
  153. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +42 -42
  154. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map/index.html +20 -20
  155. solace_agent_mesh/assets/docs/docs/documentation/migrations/platform-service-split/index.html +85 -0
  156. solace_agent_mesh/assets/docs/lunr-index-1768329217460.json +1 -0
  157. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  158. solace_agent_mesh/assets/docs/search-doc-1768329217460.json +1 -0
  159. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  160. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  161. solace_agent_mesh/cli/__init__.py +1 -1
  162. solace_agent_mesh/cli/commands/add_cmd/__init__.py +3 -1
  163. solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +6 -1
  164. solace_agent_mesh/cli/commands/add_cmd/proxy_cmd.py +100 -0
  165. solace_agent_mesh/cli/commands/eval_cmd.py +1 -1
  166. solace_agent_mesh/cli/commands/init_cmd/__init__.py +15 -0
  167. solace_agent_mesh/cli/commands/init_cmd/directory_step.py +1 -1
  168. solace_agent_mesh/cli/commands/init_cmd/env_step.py +30 -3
  169. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +3 -4
  170. solace_agent_mesh/cli/commands/init_cmd/platform_service_step.py +85 -0
  171. solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +16 -3
  172. solace_agent_mesh/cli/commands/plugin_cmd/add_cmd.py +2 -1
  173. solace_agent_mesh/cli/commands/plugin_cmd/catalog_cmd.py +1 -0
  174. solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +3 -3
  175. solace_agent_mesh/cli/commands/run_cmd.py +64 -49
  176. solace_agent_mesh/cli/commands/tools_cmd.py +315 -0
  177. solace_agent_mesh/cli/main.py +15 -0
  178. solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-tcIFZLis.js → authCallback-KnKMP_vb.js} +1 -1
  179. solace_agent_mesh/client/webui/frontend/static/assets/client-DpBL2stg.js +25 -0
  180. solace_agent_mesh/client/webui/frontend/static/assets/main-Cd498TV2.js +435 -0
  181. solace_agent_mesh/client/webui/frontend/static/assets/main-rSf8Vu29.css +1 -0
  182. solace_agent_mesh/client/webui/frontend/static/assets/{vendor-CINwxvwV.js → vendor-CGk8Suyh.js} +189 -94
  183. solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -3
  184. solace_agent_mesh/client/webui/frontend/static/index.html +4 -4
  185. solace_agent_mesh/client/webui/frontend/static/mockServiceWorker.js +336 -0
  186. solace_agent_mesh/client/webui/frontend/static/ui-version.json +6 -0
  187. solace_agent_mesh/common/a2a/types.py +1 -1
  188. solace_agent_mesh/common/agent_registry.py +38 -11
  189. solace_agent_mesh/common/data_parts.py +124 -0
  190. solace_agent_mesh/common/error_handlers.py +83 -0
  191. solace_agent_mesh/common/exceptions.py +24 -0
  192. solace_agent_mesh/common/oauth/__init__.py +17 -0
  193. solace_agent_mesh/common/oauth/oauth_client.py +408 -0
  194. solace_agent_mesh/common/oauth/utils.py +50 -0
  195. solace_agent_mesh/common/rag_dto.py +156 -0
  196. solace_agent_mesh/common/sac/sam_component_base.py +73 -1
  197. solace_agent_mesh/common/sam_events/event_service.py +2 -2
  198. solace_agent_mesh/common/utils/embeds/converter.py +1 -8
  199. solace_agent_mesh/common/utils/embeds/modifiers.py +2 -27
  200. solace_agent_mesh/common/utils/embeds/resolver.py +94 -25
  201. solace_agent_mesh/common/utils/embeds/types.py +1 -0
  202. solace_agent_mesh/common/utils/log_formatters.py +20 -0
  203. solace_agent_mesh/common/utils/mime_helpers.py +12 -5
  204. solace_agent_mesh/common/utils/rbac_utils.py +69 -0
  205. solace_agent_mesh/common/utils/templates/__init__.py +8 -0
  206. solace_agent_mesh/common/utils/templates/liquid_renderer.py +210 -0
  207. solace_agent_mesh/common/utils/templates/template_resolver.py +161 -0
  208. solace_agent_mesh/config_portal/backend/common.py +12 -0
  209. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-CljP4_mv.js +103 -0
  210. solace_agent_mesh/config_portal/frontend/static/client/assets/{components-Rk0n-9cK.js → components-CaC6hG8d.js} +22 -22
  211. solace_agent_mesh/config_portal/frontend/static/client/assets/{entry.client-mvZjNKiz.js → entry.client-H_TM0YBt.js} +3 -3
  212. solace_agent_mesh/config_portal/frontend/static/client/assets/{index-DzNKzXrc.js → index-CnFykb2v.js} +16 -16
  213. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-f8439d40.js +1 -0
  214. solace_agent_mesh/config_portal/frontend/static/client/assets/root-BIMqslJB.css +1 -0
  215. solace_agent_mesh/config_portal/frontend/static/client/assets/root-mJmTIdIk.js +10 -0
  216. solace_agent_mesh/config_portal/frontend/static/client/index.html +3 -3
  217. solace_agent_mesh/core_a2a/service.py +3 -2
  218. solace_agent_mesh/gateway/adapter/base.py +28 -1
  219. solace_agent_mesh/gateway/adapter/types.py +9 -0
  220. solace_agent_mesh/gateway/base/app.py +10 -0
  221. solace_agent_mesh/gateway/base/auth_interface.py +103 -0
  222. solace_agent_mesh/gateway/base/component.py +451 -10
  223. solace_agent_mesh/gateway/generic/component.py +274 -30
  224. solace_agent_mesh/gateway/http_sse/alembic/env.py +0 -7
  225. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_soft_delete_and_search.py +2 -43
  226. solace_agent_mesh/gateway/http_sse/alembic/versions/20251024_add_default_agent_to_projects.py +2 -2
  227. solace_agent_mesh/gateway/http_sse/alembic/versions/20251108_create_prompt_tables_with_sharing.py +154 -0
  228. solace_agent_mesh/gateway/http_sse/alembic/versions/20251115_add_parent_task_id.py +32 -0
  229. solace_agent_mesh/gateway/http_sse/alembic/versions/20251126_add_background_task_fields.py +47 -0
  230. solace_agent_mesh/gateway/http_sse/alembic/versions/20251202_add_versioned_fields_to_prompts.py +52 -0
  231. solace_agent_mesh/gateway/http_sse/alembic.ini +0 -36
  232. solace_agent_mesh/gateway/http_sse/app.py +23 -6
  233. solace_agent_mesh/gateway/http_sse/component.py +158 -73
  234. solace_agent_mesh/gateway/http_sse/dependencies.py +50 -57
  235. solace_agent_mesh/gateway/http_sse/main.py +58 -482
  236. solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +2 -2
  237. solace_agent_mesh/gateway/http_sse/repository/entities/project.py +1 -1
  238. solace_agent_mesh/gateway/http_sse/repository/entities/project_user.py +1 -1
  239. solace_agent_mesh/gateway/http_sse/repository/entities/session.py +3 -2
  240. solace_agent_mesh/gateway/http_sse/repository/entities/task.py +7 -0
  241. solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +2 -2
  242. solace_agent_mesh/gateway/http_sse/repository/interfaces.py +2 -2
  243. solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +5 -0
  244. solace_agent_mesh/gateway/http_sse/repository/models/prompt_model.py +159 -0
  245. solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +1 -1
  246. solace_agent_mesh/gateway/http_sse/repository/models/task_model.py +8 -1
  247. solace_agent_mesh/gateway/http_sse/repository/project_repository.py +1 -1
  248. solace_agent_mesh/gateway/http_sse/repository/project_user_repository.py +1 -1
  249. solace_agent_mesh/gateway/http_sse/repository/session_repository.py +12 -107
  250. solace_agent_mesh/gateway/http_sse/repository/task_repository.py +86 -2
  251. solace_agent_mesh/gateway/http_sse/routers/agent_cards.py +38 -7
  252. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +113 -7
  253. solace_agent_mesh/gateway/http_sse/routers/auth.py +69 -132
  254. solace_agent_mesh/gateway/http_sse/routers/config.py +235 -10
  255. solace_agent_mesh/gateway/http_sse/routers/dto/project_dto.py +69 -0
  256. solace_agent_mesh/gateway/http_sse/routers/dto/prompt_dto.py +255 -0
  257. solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +1 -1
  258. solace_agent_mesh/gateway/http_sse/routers/dto/responses/base_responses.py +1 -1
  259. solace_agent_mesh/gateway/http_sse/routers/dto/responses/project_responses.py +1 -0
  260. solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +3 -2
  261. solace_agent_mesh/gateway/http_sse/routers/dto/responses/version_responses.py +31 -0
  262. solace_agent_mesh/gateway/http_sse/routers/feedback.py +2 -2
  263. solace_agent_mesh/gateway/http_sse/routers/people.py +2 -2
  264. solace_agent_mesh/gateway/http_sse/routers/projects.py +250 -24
  265. solace_agent_mesh/gateway/http_sse/routers/prompts.py +1416 -0
  266. solace_agent_mesh/gateway/http_sse/routers/sessions.py +14 -5
  267. solace_agent_mesh/gateway/http_sse/routers/speech.py +355 -0
  268. solace_agent_mesh/gateway/http_sse/routers/sse.py +117 -4
  269. solace_agent_mesh/gateway/http_sse/routers/tasks.py +509 -149
  270. solace_agent_mesh/gateway/http_sse/routers/users.py +1 -1
  271. solace_agent_mesh/gateway/http_sse/routers/version.py +343 -0
  272. solace_agent_mesh/gateway/http_sse/routers/visualization.py +2 -1
  273. solace_agent_mesh/gateway/http_sse/services/audio_service.py +1227 -0
  274. solace_agent_mesh/gateway/http_sse/services/background_task_monitor.py +186 -0
  275. solace_agent_mesh/gateway/http_sse/services/data_retention_service.py +1 -1
  276. solace_agent_mesh/gateway/http_sse/services/feedback_service.py +1 -1
  277. solace_agent_mesh/gateway/http_sse/services/project_service.py +539 -12
  278. solace_agent_mesh/gateway/http_sse/services/prompt_builder_assistant.py +303 -0
  279. solace_agent_mesh/gateway/http_sse/services/session_service.py +198 -21
  280. solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +354 -4
  281. solace_agent_mesh/gateway/http_sse/sse_manager.py +280 -169
  282. solace_agent_mesh/gateway/http_sse/utils/artifact_copy_utils.py +370 -0
  283. solace_agent_mesh/gateway/http_sse/utils/stim_utils.py +41 -1
  284. solace_agent_mesh/services/__init__.py +0 -0
  285. solace_agent_mesh/services/platform/__init__.py +29 -0
  286. solace_agent_mesh/services/platform/alembic/env.py +85 -0
  287. solace_agent_mesh/services/platform/alembic/script.py.mako +28 -0
  288. solace_agent_mesh/services/platform/alembic.ini +109 -0
  289. solace_agent_mesh/services/platform/api/__init__.py +3 -0
  290. solace_agent_mesh/services/platform/api/dependencies.py +154 -0
  291. solace_agent_mesh/services/platform/api/main.py +314 -0
  292. solace_agent_mesh/services/platform/api/middleware.py +51 -0
  293. solace_agent_mesh/services/platform/api/routers/__init__.py +33 -0
  294. solace_agent_mesh/services/platform/api/routers/health_router.py +31 -0
  295. solace_agent_mesh/services/platform/app.py +215 -0
  296. solace_agent_mesh/services/platform/component.py +777 -0
  297. solace_agent_mesh/shared/__init__.py +14 -0
  298. solace_agent_mesh/shared/api/__init__.py +42 -0
  299. solace_agent_mesh/shared/auth/__init__.py +26 -0
  300. solace_agent_mesh/shared/auth/dependencies.py +204 -0
  301. solace_agent_mesh/shared/auth/middleware.py +347 -0
  302. solace_agent_mesh/shared/database/__init__.py +20 -0
  303. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/base_repository.py +1 -1
  304. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_exceptions.py +1 -1
  305. solace_agent_mesh/{gateway/http_sse/shared → shared/database}/database_helpers.py +1 -1
  306. solace_agent_mesh/shared/exceptions/__init__.py +36 -0
  307. solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exception_handlers.py +1 -1
  308. solace_agent_mesh/shared/utils/__init__.py +21 -0
  309. solace_agent_mesh/templates/logging_config_template.yaml +48 -0
  310. solace_agent_mesh/templates/main_orchestrator.yaml +12 -1
  311. solace_agent_mesh/templates/platform.yaml +49 -0
  312. solace_agent_mesh/templates/plugin_readme_template.md +3 -25
  313. solace_agent_mesh/templates/plugin_tool_config_template.yaml +109 -0
  314. solace_agent_mesh/templates/proxy_template.yaml +62 -0
  315. solace_agent_mesh/templates/webui.yaml +148 -6
  316. solace_agent_mesh/tools/web_search/__init__.py +18 -0
  317. solace_agent_mesh/tools/web_search/base.py +84 -0
  318. solace_agent_mesh/tools/web_search/google_search.py +247 -0
  319. solace_agent_mesh/tools/web_search/models.py +99 -0
  320. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/METADATA +29 -8
  321. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/RECORD +334 -313
  322. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/WHEEL +1 -1
  323. solace_agent_mesh/agent/adk/adk_llm.txt +0 -226
  324. solace_agent_mesh/agent/adk/adk_llm_detail.txt +0 -566
  325. solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +0 -171
  326. solace_agent_mesh/agent/adk/models/models_llm.txt +0 -189
  327. solace_agent_mesh/agent/agent_llm.txt +0 -369
  328. solace_agent_mesh/agent/agent_llm_detail.txt +0 -1702
  329. solace_agent_mesh/agent/protocol/protocol_llm.txt +0 -81
  330. solace_agent_mesh/agent/protocol/protocol_llm_detail.txt +0 -92
  331. solace_agent_mesh/agent/proxies/a2a/a2a_llm.txt +0 -190
  332. solace_agent_mesh/agent/proxies/base/base_llm.txt +0 -148
  333. solace_agent_mesh/agent/proxies/proxies_llm.txt +0 -283
  334. solace_agent_mesh/agent/sac/sac_llm.txt +0 -189
  335. solace_agent_mesh/agent/sac/sac_llm_detail.txt +0 -200
  336. solace_agent_mesh/agent/testing/testing_llm.txt +0 -58
  337. solace_agent_mesh/agent/testing/testing_llm_detail.txt +0 -68
  338. solace_agent_mesh/agent/tools/tools_llm.txt +0 -276
  339. solace_agent_mesh/agent/tools/tools_llm_detail.txt +0 -275
  340. solace_agent_mesh/agent/utils/utils_llm.txt +0 -152
  341. solace_agent_mesh/agent/utils/utils_llm_detail.txt +0 -149
  342. solace_agent_mesh/assets/docs/assets/js/05749d90.c70b2be9.js +0 -1
  343. solace_agent_mesh/assets/docs/assets/js/15ba94aa.92fea363.js +0 -1
  344. solace_agent_mesh/assets/docs/assets/js/15e40e79.36003774.js +0 -1
  345. solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js +0 -2
  346. solace_agent_mesh/assets/docs/assets/js/240a0364.c39f8388.js +0 -1
  347. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.33f5d75b.js +0 -1
  348. solace_agent_mesh/assets/docs/assets/js/3a6c6137.f5940cfa.js +0 -1
  349. solace_agent_mesh/assets/docs/assets/js/3ac1795d.e4870a49.js +0 -1
  350. solace_agent_mesh/assets/docs/assets/js/3ff0015d.b63ee53a.js +0 -1
  351. solace_agent_mesh/assets/docs/assets/js/547e15cc.2f7790c1.js +0 -1
  352. solace_agent_mesh/assets/docs/assets/js/55b7b518.f2b1d1ba.js +0 -1
  353. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.45b32c2b.js +0 -1
  354. solace_agent_mesh/assets/docs/assets/js/64195356.c498c4d0.js +0 -1
  355. solace_agent_mesh/assets/docs/assets/js/66d4869e.830d443f.js +0 -1
  356. solace_agent_mesh/assets/docs/assets/js/6d84eae0.4a5fbf39.js +0 -1
  357. solace_agent_mesh/assets/docs/assets/js/8024126c.fa0e7186.js +0 -1
  358. solace_agent_mesh/assets/docs/assets/js/81a99df0.07034dd9.js +0 -1
  359. solace_agent_mesh/assets/docs/assets/js/82fbfb93.139a1a1f.js +0 -1
  360. solace_agent_mesh/assets/docs/assets/js/924ffdeb.8095e148.js +0 -1
  361. solace_agent_mesh/assets/docs/assets/js/94e8668d.09ed9234.js +0 -1
  362. solace_agent_mesh/assets/docs/assets/js/9bb13469.dd1c9b54.js +0 -1
  363. solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js +0 -1
  364. solace_agent_mesh/assets/docs/assets/js/ab9708a8.245ae0ef.js +0 -1
  365. solace_agent_mesh/assets/docs/assets/js/c93cbaa0.eaff365e.js +0 -1
  366. solace_agent_mesh/assets/docs/assets/js/cbe2e9ea.f902fad8.js +0 -1
  367. solace_agent_mesh/assets/docs/assets/js/db5d6442.3daf1696.js +0 -1
  368. solace_agent_mesh/assets/docs/assets/js/e04b235d.c9c50c7b.js +0 -1
  369. solace_agent_mesh/assets/docs/assets/js/e3d9abda.d11c67a7.js +0 -1
  370. solace_agent_mesh/assets/docs/assets/js/e6f9706b.045d0fa1.js +0 -1
  371. solace_agent_mesh/assets/docs/assets/js/e92d0134.3bda61dd.js +0 -1
  372. solace_agent_mesh/assets/docs/assets/js/f284c35a.5099c51e.js +0 -1
  373. solace_agent_mesh/assets/docs/assets/js/main.f213fe0c.js +0 -2
  374. solace_agent_mesh/assets/docs/assets/js/runtime~main.d9606d6a.js +0 -1
  375. solace_agent_mesh/assets/docs/docs/documentation/deploying/kubernetes-deployment/index.html +0 -47
  376. solace_agent_mesh/assets/docs/lunr-index-1762283454666.json +0 -1
  377. solace_agent_mesh/assets/docs/search-doc-1762283454666.json +0 -1
  378. solace_agent_mesh/cli/commands/add_cmd/add_cmd_llm.txt +0 -250
  379. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +0 -365
  380. solace_agent_mesh/cli/commands/plugin_cmd/plugin_cmd_llm.txt +0 -305
  381. solace_agent_mesh/client/webui/frontend/static/assets/client-CRYdKo2Q.js +0 -25
  382. solace_agent_mesh/client/webui/frontend/static/assets/main-CojeY_1w.css +0 -1
  383. solace_agent_mesh/client/webui/frontend/static/assets/main-ILja9MCG.js +0 -353
  384. solace_agent_mesh/common/a2a/a2a_llm.txt +0 -175
  385. solace_agent_mesh/common/a2a/a2a_llm_detail.txt +0 -193
  386. solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +0 -445
  387. solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +0 -736
  388. solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +0 -330
  389. solace_agent_mesh/common/common_llm.txt +0 -230
  390. solace_agent_mesh/common/common_llm_detail.txt +0 -2562
  391. solace_agent_mesh/common/middleware/middleware_llm.txt +0 -174
  392. solace_agent_mesh/common/middleware/middleware_llm_detail.txt +0 -185
  393. solace_agent_mesh/common/sac/sac_llm.txt +0 -71
  394. solace_agent_mesh/common/sac/sac_llm_detail.txt +0 -82
  395. solace_agent_mesh/common/sam_events/sam_events_llm.txt +0 -104
  396. solace_agent_mesh/common/sam_events/sam_events_llm_detail.txt +0 -115
  397. solace_agent_mesh/common/services/providers/providers_llm.txt +0 -81
  398. solace_agent_mesh/common/services/services_llm.txt +0 -368
  399. solace_agent_mesh/common/services/services_llm_detail.txt +0 -459
  400. solace_agent_mesh/common/utils/embeds/embeds_llm.txt +0 -220
  401. solace_agent_mesh/common/utils/utils_llm.txt +0 -335
  402. solace_agent_mesh/common/utils/utils_llm_detail.txt +0 -572
  403. solace_agent_mesh/config_portal/frontend/static/client/assets/_index-ByU1X1HD.js +0 -98
  404. solace_agent_mesh/config_portal/frontend/static/client/assets/manifest-61038fc6.js +0 -1
  405. solace_agent_mesh/config_portal/frontend/static/client/assets/root-BWvk5-gF.js +0 -10
  406. solace_agent_mesh/config_portal/frontend/static/client/assets/root-DxRwaWiE.css +0 -1
  407. solace_agent_mesh/core_a2a/core_a2a_llm.txt +0 -90
  408. solace_agent_mesh/core_a2a/core_a2a_llm_detail.txt +0 -101
  409. solace_agent_mesh/gateway/base/base_llm.txt +0 -226
  410. solace_agent_mesh/gateway/base/base_llm_detail.txt +0 -235
  411. solace_agent_mesh/gateway/gateway_llm.txt +0 -369
  412. solace_agent_mesh/gateway/gateway_llm_detail.txt +0 -3885
  413. solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +0 -345
  414. solace_agent_mesh/gateway/http_sse/alembic/versions/20251023_add_fulltext_search_indexes.py +0 -92
  415. solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +0 -161
  416. solace_agent_mesh/gateway/http_sse/components/components_llm.txt +0 -105
  417. solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +0 -299
  418. solace_agent_mesh/gateway/http_sse/http_sse_llm_detail.txt +0 -3278
  419. solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +0 -221
  420. solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +0 -257
  421. solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +0 -308
  422. solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +0 -450
  423. solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +0 -133
  424. solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +0 -123
  425. solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +0 -312
  426. solace_agent_mesh/gateway/http_sse/services/services_llm.txt +0 -303
  427. solace_agent_mesh/gateway/http_sse/shared/__init__.py +0 -146
  428. solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +0 -319
  429. solace_agent_mesh/gateway/http_sse/utils/utils_llm.txt +0 -47
  430. solace_agent_mesh/llm.txt +0 -228
  431. solace_agent_mesh/llm_detail.txt +0 -2835
  432. solace_agent_mesh/solace_agent_mesh_llm.txt +0 -362
  433. solace_agent_mesh/solace_agent_mesh_llm_detail.txt +0 -8599
  434. solace_agent_mesh/templates/logging_config_template.ini +0 -45
  435. solace_agent_mesh/templates/templates_llm.txt +0 -147
  436. /solace_agent_mesh/assets/docs/assets/js/{main.f213fe0c.js.LICENSE.txt → main.d634009f.js.LICENSE.txt} +0 -0
  437. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/auth_utils.py +0 -0
  438. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/pagination.py +0 -0
  439. /solace_agent_mesh/{gateway/http_sse/shared → shared/api}/response_utils.py +0 -0
  440. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/error_dto.py +0 -0
  441. /solace_agent_mesh/{gateway/http_sse/shared → shared/exceptions}/exceptions.py +0 -0
  442. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/enums.py +0 -0
  443. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/timestamp_utils.py +0 -0
  444. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/types.py +0 -0
  445. /solace_agent_mesh/{gateway/http_sse/shared → shared/utils}/utils.py +0 -0
  446. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/entry_points.txt +0 -0
  447. {solace_agent_mesh-1.7.1.dist-info → solace_agent_mesh-1.13.2.dist-info}/licenses/LICENSE +0 -0
@@ -1,330 +0,0 @@
1
- # DEVELOPER GUIDE: schemas
2
-
3
- ## Quick Summary
4
- This directory contains JSON Schema definitions for various agent-to-agent (A2A) communication signals in the Solace Agent Mesh. These schemas define the structure and validation rules for different types of progress updates, tool invocations, and LLM interactions that agents can send to each other.
5
-
6
- ## Files Overview
7
- - `agent_progress_update.json` - Schema for general agent progress status messages
8
- - `artifact_creation_progress.json` - Schema for tracking file/artifact creation progress with chunked data
9
- - `llm_invocation.json` - Schema for LLM model invocation signals with usage tracking
10
- - `tool_invocation_start.json` - Schema for tool execution start notifications
11
- - `tool_result.json` - Schema for tool execution completion results with optional LLM usage
12
-
13
- ## Developer API Reference
14
-
15
- ### agent_progress_update.json
16
- **Purpose:** Defines the schema for agent progress update signals that communicate human-readable status messages between agents.
17
-
18
- **Import:** Load as JSON schema for validation
19
- ```python
20
- import json
21
- from jsonschema import validate
22
- ```
23
-
24
- **Schema Structure:**
25
- ```json
26
- {
27
- "type": "agent_progress_update",
28
- "status_text": "string"
29
- }
30
- ```
31
-
32
- **Properties:**
33
- - `type: "agent_progress_update"` - Constant identifier for this signal type (required)
34
- - `status_text: string` - Human-readable progress message (required)
35
-
36
- **Usage Examples:**
37
- ```python
38
- import json
39
- from jsonschema import validate
40
-
41
- # Load and use schema
42
- with open('solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json') as f:
43
- schema = json.load(f)
44
-
45
- # Valid data example
46
- data = {
47
- "type": "agent_progress_update",
48
- "status_text": "Analyzing the report..."
49
- }
50
- validate(instance=data, schema=schema)
51
- ```
52
-
53
- ### artifact_creation_progress.json
54
- **Purpose:** Defines the schema for tracking progress during file or artifact creation operations with status tracking and chunked data transfer.
55
-
56
- **Import:** Load as JSON schema for validation
57
- ```python
58
- import json
59
- from jsonschema import validate
60
- ```
61
-
62
- **Schema Structure:**
63
- ```json
64
- {
65
- "type": "artifact_creation_progress",
66
- "filename": "string",
67
- "description": "string",
68
- "status": "in-progress|completed|failed",
69
- "bytes_transferred": "integer",
70
- "artifact_chunk": "string",
71
- "mime_type": "string"
72
- }
73
- ```
74
-
75
- **Properties:**
76
- - `type: "artifact_creation_progress"` - Constant identifier for this signal type (required)
77
- - `filename: string` - Name of the artifact being created (required)
78
- - `description: string` - Optional description of the artifact being created (optional)
79
- - `status: string` - Status of artifact creation: "in-progress", "completed", or "failed" (required)
80
- - `bytes_transferred: integer` - Number of bytes transferred so far (required)
81
- - `artifact_chunk: string` - Chunk of artifact data transferred in this update (optional, only for 'in-progress')
82
- - `mime_type: string` - MIME type of the artifact (optional, only for 'completed')
83
-
84
- **Usage Examples:**
85
- ```python
86
- import json
87
- from jsonschema import validate
88
-
89
- # Load and use schema
90
- with open('solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json') as f:
91
- schema = json.load(f)
92
-
93
- # In-progress example
94
- data = {
95
- "type": "artifact_creation_progress",
96
- "filename": "report.pdf",
97
- "description": "Monthly sales report",
98
- "status": "in-progress",
99
- "bytes_transferred": 1024,
100
- "artifact_chunk": "JVBERi0xLjQKJcOkw7zDtsO..."
101
- }
102
- validate(instance=data, schema=schema)
103
-
104
- # Completed example
105
- completed_data = {
106
- "type": "artifact_creation_progress",
107
- "filename": "report.pdf",
108
- "status": "completed",
109
- "bytes_transferred": 5120,
110
- "mime_type": "application/pdf"
111
- }
112
- validate(instance=completed_data, schema=schema)
113
- ```
114
-
115
- ### llm_invocation.json
116
- **Purpose:** Defines the schema for LLM invocation signals that communicate when an agent is calling a language model, including token usage tracking.
117
-
118
- **Import:** Load as JSON schema for validation
119
- ```python
120
- import json
121
- from jsonschema import validate
122
- ```
123
-
124
- **Schema Structure:**
125
- ```json
126
- {
127
- "type": "llm_invocation",
128
- "request": "object",
129
- "usage": {
130
- "input_tokens": "integer",
131
- "output_tokens": "integer",
132
- "cached_input_tokens": "integer",
133
- "model": "string"
134
- }
135
- }
136
- ```
137
-
138
- **Properties:**
139
- - `type: "llm_invocation"` - Constant identifier for this signal type (required)
140
- - `request: object` - Sanitized representation of the LlmRequest object sent to the model (required)
141
- - `usage: object` - Token usage information for this LLM call (optional)
142
- - `input_tokens: integer` - Number of input/prompt tokens (required in usage)
143
- - `output_tokens: integer` - Number of output/completion tokens (required in usage)
144
- - `cached_input_tokens: integer` - Number of cached input tokens (optional)
145
- - `model: string` - Model identifier used for this call (required in usage)
146
-
147
- **Usage Examples:**
148
- ```python
149
- import json
150
- from jsonschema import validate
151
-
152
- # Load and use schema
153
- with open('solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json') as f:
154
- schema = json.load(f)
155
-
156
- # Valid data example with usage tracking
157
- data = {
158
- "type": "llm_invocation",
159
- "request": {
160
- "model": "gpt-4",
161
- "messages": [{"role": "user", "content": "Analyze this data"}],
162
- "temperature": 0.7
163
- },
164
- "usage": {
165
- "input_tokens": 150,
166
- "output_tokens": 75,
167
- "cached_input_tokens": 50,
168
- "model": "gpt-4"
169
- }
170
- }
171
- validate(instance=data, schema=schema)
172
- ```
173
-
174
- ### tool_invocation_start.json
175
- **Purpose:** Defines the schema for tool invocation start signals that notify when an agent begins executing a tool.
176
-
177
- **Import:** Load as JSON schema for validation
178
- ```python
179
- import json
180
- from jsonschema import validate
181
- ```
182
-
183
- **Schema Structure:**
184
- ```json
185
- {
186
- "type": "tool_invocation_start",
187
- "tool_name": "string",
188
- "tool_args": "object",
189
- "function_call_id": "string"
190
- }
191
- ```
192
-
193
- **Properties:**
194
- - `type: "tool_invocation_start"` - Constant identifier for this signal type (required)
195
- - `tool_name: string` - Name of the tool being called (required)
196
- - `tool_args: object` - Arguments passed to the tool (required)
197
- - `function_call_id: string` - ID from the LLM's function call (required)
198
-
199
- **Usage Examples:**
200
- ```python
201
- import json
202
- from jsonschema import validate
203
-
204
- # Load and use schema
205
- with open('solace_agent_mesh/common/a2a_spec/schemas/tool_invocation_start.json') as f:
206
- schema = json.load(f)
207
-
208
- # Valid data example
209
- data = {
210
- "type": "tool_invocation_start",
211
- "tool_name": "file_reader",
212
- "tool_args": {
213
- "filepath": "/path/to/file.txt",
214
- "encoding": "utf-8"
215
- },
216
- "function_call_id": "call_abc123"
217
- }
218
- validate(instance=data, schema=schema)
219
- ```
220
-
221
- ### tool_result.json
222
- **Purpose:** Defines the schema for tool execution result signals that communicate the completion and results of tool invocations, with optional LLM usage tracking.
223
-
224
- **Import:** Load as JSON schema for validation
225
- ```python
226
- import json
227
- from jsonschema import validate
228
- ```
229
-
230
- **Schema Structure:**
231
- ```json
232
- {
233
- "type": "tool_result",
234
- "tool_name": "string",
235
- "result_data": "any",
236
- "function_call_id": "string",
237
- "llm_usage": {
238
- "input_tokens": "integer",
239
- "output_tokens": "integer",
240
- "cached_input_tokens": "integer",
241
- "model": "string"
242
- }
243
- }
244
- ```
245
-
246
- **Properties:**
247
- - `type: "tool_result"` - Constant identifier for this signal type (required)
248
- - `tool_name: string` - Name of the tool that was called (required)
249
- - `result_data: any` - The data returned by the tool (required, can be any type)
250
- - `function_call_id: string` - ID from the LLM's function call that this result corresponds to (required)
251
- - `llm_usage: object` - Token usage if this tool made LLM calls (optional)
252
- - `input_tokens: integer` - Total input tokens used by tool's LLM calls (required in llm_usage)
253
- - `output_tokens: integer` - Total output tokens used by tool's LLM calls (required in llm_usage)
254
- - `cached_input_tokens: integer` - Number of cached input tokens (optional)
255
- - `model: string` - Model identifier(s) used by the tool (required in llm_usage)
256
-
257
- **Usage Examples:**
258
- ```python
259
- import json
260
- from jsonschema import validate
261
-
262
- # Load and use schema
263
- with open('solace_agent_mesh/common/a2a_spec/schemas/tool_result.json') as f:
264
- schema = json.load(f)
265
-
266
- # Valid data example with LLM usage
267
- data = {
268
- "type": "tool_result",
269
- "tool_name": "web_search",
270
- "result_data": {
271
- "results": ["Result 1", "Result 2"],
272
- "count": 2
273
- },
274
- "function_call_id": "call_abc123",
275
- "llm_usage": {
276
- "input_tokens": 200,
277
- "output_tokens": 100,
278
- "model": "gpt-4"
279
- }
280
- }
281
- validate(instance=data, schema=schema)
282
- ```
283
-
284
- **Common Usage Pattern:**
285
- ```python
286
- import json
287
- from jsonschema import validate
288
- from pathlib import Path
289
- from typing import Dict, Any
290
-
291
- def validate_a2a_signal(signal_data: Dict[str, Any], schema_name: str) -> bool:
292
- """Validate A2A signal data against its schema."""
293
- schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
294
-
295
- with open(schema_path) as f:
296
- schema = json.load(f)
297
-
298
- try:
299
- validate(instance=signal_data, schema=schema)
300
- return True
301
- except Exception as e:
302
- print(f"Validation failed: {e}")
303
- return False
304
-
305
- def load_schema(schema_name: str) -> Dict[str, Any]:
306
- """Load a specific A2A signal schema."""
307
- schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
308
- with open(schema_path) as f:
309
- return json.load(f)
310
-
311
- # Example usage
312
- progress_data = {
313
- "type": "agent_progress_update",
314
- "status_text": "Processing request..."
315
- }
316
-
317
- if validate_a2a_signal(progress_data, "agent_progress_update"):
318
- print("Signal is valid!")
319
-
320
- # Load all schemas for batch validation
321
- schemas = {
322
- "agent_progress": load_schema("agent_progress_update"),
323
- "artifact_progress": load_schema("artifact_creation_progress"),
324
- "llm_invocation": load_schema("llm_invocation"),
325
- "tool_start": load_schema("tool_invocation_start"),
326
- "tool_result": load_schema("tool_result")
327
- }
328
- ```
329
-
330
- # content_hash: 9b18c2ba0e0aa3d52a27ecd90f45376713fe2738cee386219f988fd84da93a51
@@ -1,230 +0,0 @@
1
- # DEVELOPER GUIDE: common
2
-
3
- ## Quick Summary
4
- The `common` directory provides the foundational infrastructure for Agent-to-Agent (A2A) communication within the Solace Agent Mesh. It establishes the core protocol, data types, and message translation logic that underpins all interactions between AI agents and gateways.
5
-
6
- The architecture is designed for clarity and extensibility. Core, low-level definitions are located in **direct files**:
7
- - `types.py` defines the canonical data structures (e.g., `Message`, `Task`, `AgentCard`).
8
- - `a2a_protocol.py` handles the construction of Solace topics and the translation between A2A and Google ADK message formats.
9
- - `agent_registry.py` provides a simple, thread-safe mechanism for discovering and tracking available agents.
10
-
11
- This foundation is then leveraged by specialized **subdirectories**, which provide higher-level, ready-to-use components:
12
- - `client/`: A complete client library for discovering and interacting with remote agents.
13
- - `server/`: A stand-alone server implementation for building A2A-compliant agents.
14
- - `middleware/`: A pluggable framework for customizing configuration and feature access.
15
- - `services/`: A factory-based system for integrating identity and other external data sources.
16
- - `utils/`: A collection of cross-cutting utilities for caching, logging, and dynamic content processing.
17
-
18
- Together, these components form a cohesive ecosystem, enabling developers to either build new agents from scratch using the `server` components or interact with existing agents using the `client` library, all while relying on the same underlying protocol and types.
19
-
20
- ## Files and Subdirectories Overview
21
- - **Direct files:**
22
- - `__init__.py`: Package initialization file.
23
- - `a2a_protocol.py`: Handles A2A topic construction and translation between A2A and ADK message formats.
24
- - `agent_registry.py`: A thread-safe registry for managing discovered agent cards.
25
- - `constants.py`: Common constants used across the system.
26
- - `data_parts.py`: Pydantic models for structured data payloads used in A2A DataPart objects.
27
- - `exceptions.py`: Custom exceptions for Solace Agent Mesh.
28
- - `types.py`: Contains all Pydantic models for A2A protocol messages, tasks, and data structures.
29
- - **Subdirectories:**
30
- - `a2a/`: Comprehensive abstraction layer providing helper functions for creating, consuming, and translating A2A protocol objects.
31
- - `a2a_spec/`: Complete JSON Schema specification for the A2A protocol.
32
- - `client/`: Provides a high-level client for discovering and communicating with remote A2A agents.
33
- - `middleware/`: A pluggable framework for configuration resolution and system extensibility.
34
- - `sac/`: Base component framework for Solace Agent Mesh implementations in the Solace AI Connector.
35
- - `sam_events/`: System-level event messaging for session lifecycle, agent health, and configuration changes.
36
- - `server/`: A complete A2A server implementation with JSON-RPC support and task management.
37
- - `services/`: Provides shared services like identity management using a factory pattern.
38
- - `utils/`: Contains common utility functions and an embedded expression processing system.
39
-
40
- ## Developer API Reference
41
-
42
- ### Direct Files
43
-
44
- #### a2a_protocol.py
45
- **Purpose:** Provides the core functions for constructing Solace topics according to the A2A specification and for translating messages between the A2A format and the Google ADK format.
46
- **Import:** `from solace_agent_mesh.common.a2a_protocol import get_agent_request_topic, translate_a2a_to_adk_content`
47
-
48
- **Classes/Functions/Constants:**
49
- - **Constants**:
50
- - `A2A_VERSION: str`: The current version of the A2A protocol (e.g., "v1").
51
- - `A2A_BASE_PATH: str`: The base path used in all A2A topics (e.g., "a2a/v1").
52
- - **Topic Construction Functions**:
53
- - `get_a2a_base_topic(namespace: str) -> str`: Returns the base topic prefix for all A2A communication.
54
- - `get_discovery_topic(namespace: str) -> str`: Returns the topic for agent card discovery.
55
- - `get_agent_request_topic(namespace: str, agent_name: str) -> str`: Returns the topic for sending requests to a specific agent.
56
- - `get_gateway_status_topic(namespace: str, gateway_id: str, task_id: str) -> str`: Returns the topic for an agent to publish status updates to a gateway.
57
- - `get_gateway_response_topic(namespace: str, gateway_id: str, task_id: str) -> str`: Returns the topic for an agent to publish final responses to a gateway.
58
- - `get_client_response_topic(namespace: str, client_id: str) -> str`: Returns the topic for publishing final responses to a specific client.
59
- - `get_client_status_topic(namespace: str, client_id: str, task_id: str) -> str`: Returns the topic for publishing status updates to a specific client.
60
- - **Message Translation Functions**:
61
- - `translate_a2a_to_adk_content(a2a_message: A2AMessage, log_identifier: str) -> adk_types.Content`: Translates an A2A `Message` object into the Google ADK `Content` format.
62
- - `format_adk_event_as_a2a(...) -> Tuple[Optional[JSONRPCResponse], ...]`: Translates an ADK `Event` into an A2A `JSONRPCResponse` containing a `TaskStatusUpdateEvent`.
63
- - `format_and_route_adk_event(...) -> Tuple[Optional[Dict], Optional[str], ...]`: A higher-level wrapper that formats an ADK event and determines the correct Solace topic to publish it to.
64
-
65
- #### agent_registry.py
66
- **Purpose:** Provides a simple, thread-safe, in-memory store for discovered `AgentCard` objects. This is useful for components that need to keep track of available agents in the network.
67
- **Import:** `from solace_agent_mesh.common.agent_registry import AgentRegistry`
68
-
69
- **Classes/Functions/Constants:**
70
- - **`AgentRegistry`**: A thread-safe class for storing and managing agent cards.
71
- - `add_or_update_agent(self, agent_card: AgentCard) -> bool`: Adds a new agent or updates an existing one, returns True if new.
72
- - `get_agent(self, agent_name: str) -> Optional[AgentCard]`: Retrieves an agent card by its unique name.
73
- - `get_agent_names(self) -> List[str]`: Returns a sorted list of all discovered agent names.
74
- - `get_last_seen(self, agent_name: str) -> Optional[float]`: Returns the timestamp when the agent was last seen.
75
- - `check_ttl_expired(self, agent_name: str, ttl_seconds: int) -> Tuple[bool, int]`: Checks if an agent's TTL has expired.
76
- - `remove_agent(self, agent_name: str) -> bool`: Removes an agent from the registry.
77
- - `clear(self)`: Clears all agents from the registry.
78
-
79
- #### constants.py
80
- **Purpose:** Defines common constants used throughout the Solace Agent Mesh system.
81
- **Import:** `from solace_agent_mesh.common.constants import DEFAULT_COMMUNICATION_TIMEOUT`
82
-
83
- **Classes/Functions/Constants:**
84
- - `DEFAULT_COMMUNICATION_TIMEOUT: int`: Default timeout for communication operations (600 seconds / 10 minutes).
85
- - `HEALTH_CHECK_TTL_SECONDS: int`: Time after which a health check is considered stale (60 seconds).
86
- - `HEALTH_CHECK_INTERVAL_SECONDS: int`: Interval between health checks (10 seconds).
87
- - `TEXT_ARTIFACT_CONTEXT_MAX_LENGTH_CAPACITY: int`: Maximum number of characters that can be loaded from a text artifact (200,000).
88
- - `TEXT_ARTIFACT_CONTEXT_DEFAULT_LENGTH: int`: Default number of characters to load from a text artifact (100,000).
89
-
90
- #### data_parts.py
91
- **Purpose:** Defines Pydantic models for structured data payloads used in A2A DataPart objects, corresponding to JSON schemas for agent communication signals.
92
- **Import:** `from solace_agent_mesh.common.data_parts import ToolInvocationStartData, LlmInvocationData`
93
-
94
- **Classes/Functions/Constants:**
95
- - **`ToolInvocationStartData`**: Data model for tool invocation start signals.
96
- - `type: Literal["tool_invocation_start"]`: The constant type identifier.
97
- - `tool_name: str`: The name of the tool being called.
98
- - `tool_args: Dict[str, Any]`: The arguments passed to the tool.
99
- - `function_call_id: str`: The ID from the LLM's function call.
100
- - **`LlmInvocationData`**: Data model for LLM invocation signals.
101
- - `type: Literal["llm_invocation"]`: The constant type identifier.
102
- - `request: Dict[str, Any]`: A sanitized representation of the LlmRequest object.
103
- - `usage: Optional[Dict[str, Any]]`: Token usage information for this LLM call.
104
- - **`AgentProgressUpdateData`**: Data model for agent progress update signals.
105
- - `type: Literal["agent_progress_update"]`: The constant type identifier.
106
- - `status_text: str`: A human-readable progress message.
107
- - **`ArtifactCreationProgressData`**: Data model for artifact creation progress signals.
108
- - `type: Literal["artifact_creation_progress"]`: The constant type identifier.
109
- - `filename: str`: The name of the artifact being created.
110
- - `status: Literal["in-progress", "completed", "failed"]`: The status of the artifact creation.
111
- - `bytes_transferred: int`: The number of bytes transferred so far.
112
- - `description: Optional[str]`: An optional description of the artifact being created.
113
- - `artifact_chunk: Optional[str]`: The chunk of artifact data that was transferred in this progress update.
114
- - `mime_type: Optional[str]`: The MIME type of the artifact (for completed status).
115
- - **`ToolResultData`**: Data model for tool execution result signals.
116
- - `type: Literal["tool_result"]`: The constant type identifier.
117
- - `tool_name: str`: The name of the tool that was called.
118
- - `result_data: Any`: The data returned by the tool.
119
- - `function_call_id: str`: The ID from the LLM's function call.
120
- - `llm_usage: Optional[Dict[str, Any]]`: Token usage if this tool made LLM calls.
121
-
122
- #### exceptions.py
123
- **Purpose:** Defines custom exceptions specific to the Solace Agent Mesh system.
124
- **Import:** `from solace_agent_mesh.common.exceptions import MessageSizeExceededError`
125
-
126
- **Classes/Functions/Constants:**
127
- - **`MessageSizeExceededError(Exception)`**: Raised when a message exceeds the maximum allowed size.
128
- - `__init__(self, actual_size: int, max_size: int, message: str = None)`: Initialize with size information.
129
- - `actual_size: int`: The actual size of the message in bytes.
130
- - `max_size: int`: The maximum allowed size in bytes.
131
-
132
- #### types.py
133
- **Purpose:** Defines all the Pydantic data models that constitute the A2A protocol. These types ensure data consistency and provide validation across all components.
134
- **Import:** `from solace_agent_mesh.common.types import Message, Task, AgentCard, JSONRPCRequest, TaskState`
135
-
136
- **Classes/Functions/Constants:**
137
- - **Core Data Structures**:
138
- - `Message`: Represents a message from a user or agent, containing a list of `Part` objects.
139
- - `Part`: A discriminated union of `TextPart`, `FilePart`, and `DataPart`.
140
- - `Task`: The central object representing a complete task, including its ID, status, history, and artifacts.
141
- - `TaskStatus`: Describes the current state of a task (e.g., `WORKING`, `COMPLETED`).
142
- - `TaskState(Enum)`: An enumeration of all possible task states.
143
- - `AgentCard`: A comprehensive description of an agent's identity, capabilities, and skills.
144
- - `Artifact`: Represents a task output, such as a generated file or structured data.
145
- - **JSON-RPC Structures**:
146
- - `JSONRPCRequest`: The base model for all JSON-RPC requests.
147
- - `JSONRPCResponse`: The base model for all JSON-RPC responses.
148
- - `SendTaskRequest`, `GetTaskRequest`, etc.: Specific request types inheriting from `JSONRPCRequest`.
149
- - **Error Structures**:
150
- - `JSONRPCError`: The base model for errors.
151
- - `InternalError`, `TaskNotFoundError`, etc.: Specific error types inheriting from `JSONRPCError`.
152
-
153
- ### Subdirectory APIs
154
-
155
- #### a2a/
156
- **Purpose:** Comprehensive abstraction layer providing helper functions for creating, consuming, and translating A2A protocol objects
157
- **Key Exports:** Helper functions for messages, tasks, artifacts, events, and protocol operations
158
- **Import Examples:**
159
- ```python
160
- from solace_agent_mesh.common.a2a import create_agent_text_message, create_initial_task, translate_a2a_to_adk_content
161
- from solace_agent_mesh.common.a2a.message import create_text_part, get_text_from_message
162
- from solace_agent_mesh.common.a2a.protocol import get_agent_request_topic, create_send_message_request
163
- ```
164
-
165
- #### a2a_spec/
166
- **Purpose:** Contains the complete Agent-to-Agent (A2A) communication specification including JSON schema definitions
167
- **Key Exports:** JSON Schema specifications for A2A protocol and agent communication signals
168
- **Import Examples:**
169
- ```python
170
- import json
171
- from jsonschema import validate
172
-
173
- # Load main A2A schema
174
- with open('solace_agent_mesh/common/a2a_spec/a2a.json') as f:
175
- a2a_schema = json.load(f)
176
- ```
177
-
178
- #### client/
179
- **Purpose:** Provides a high-level, asynchronous client library for discovering and interacting with remote A2A agents.
180
- **Key Exports:** `A2AClient`, `A2ACardResolver`
181
- **Import Examples:**
182
- ```python
183
- from solace_agent_mesh.common.client import A2AClient, A2ACardResolver
184
- ```
185
-
186
- #### middleware/
187
- **Purpose:** A pluggable middleware framework for customizing system behavior, such as resolving user-specific configurations and feature flags.
188
- **Key Exports:** `ConfigResolver`, `MiddlewareRegistry`
189
- **Import Examples:**
190
- ```python
191
- from solace_agent_mesh.common.middleware import ConfigResolver, MiddlewareRegistry
192
- ```
193
-
194
- #### sac/
195
- **Purpose:** Base component framework for Solace Agent Mesh implementations in the Solace AI Connector with async operations management
196
- **Key Exports:** `SamComponentBase`
197
- **Import Examples:**
198
- ```python
199
- from solace_agent_mesh.common.sac.sam_component_base import SamComponentBase
200
- ```
201
-
202
- #### sam_events/
203
- **Purpose:** System-level event messaging for session lifecycle, agent health, and configuration changes separate from A2A task communication
204
- **Key Exports:** `SamEventService`, `SamEvent`, `SessionDeletedEvent`
205
- **Import Examples:**
206
- ```python
207
- from solace_agent_mesh.common.sam_events import SamEventService, SamEvent, SessionDeletedEvent
208
- ```
209
-
210
- #### server/
211
- **Purpose:** A complete, stand-alone server for building A2A-compliant agents, handling HTTP requests, JSON-RPC, and task lifecycle management.
212
- **Key Exports:** `A2AServer`, `TaskManager`, `InMemoryTaskManager`
213
- **Import Examples:**
214
- ```python
215
- from solace_agent_mesh.common.server import A2AServer, TaskManager, InMemoryTaskManager
216
- ```
217
-
218
- #### services/
219
- **Purpose:** A factory-based system for integrating external data sources for identity, employee information, and more.
220
- **Key Exports:** `BaseIdentityService`, `create_identity_service`
221
- **Import Examples:**
222
- ```python
223
- from solace_agent_mesh.common.services.identity_service import create_identity_service, BaseIdentityService
224
- ```
225
-
226
- #### utils/
227
- **Purpose:** A collection of cross-cutting utilities for caching, logging, MIME type handling, and dynamic content processing.
228
- **Key Exports:** `InMemoryCache`, `is_text_based_mime_type`, `resolve_emb
229
-
230
- # content_hash: 6fd3be2d2c731f45200e4f3968c7ff82a85f6d57e8269b276fd56cd4444013c9