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,736 +0,0 @@
1
- # LLM Summary Detail File
2
-
3
- This file is a concatenation of all individual *llm.txt files found in the 'a2a_spec' directory tree. Each section below corresponds to a specific directory's summary file.
4
-
5
- ================================================================================
6
-
7
- ## Section 1: solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt
8
-
9
- **Source file:** `solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt`
10
-
11
- # DEVELOPER GUIDE: a2a_spec
12
-
13
- ## Quick Summary
14
- The `a2a_spec` directory contains the complete Agent-to-Agent (A2A) communication specification for the Solace Agent Mesh. It includes the main JSON schema definition (`a2a.json`) that defines all data structures, request/response types, and error codes for agent communication, plus a `schemas/` subdirectory containing specialized validation schemas for various agent signals and progress updates. Together, these provide a comprehensive framework for validating and implementing compliant agent-to-agent communication.
15
-
16
- ## Files and Subdirectories Overview
17
- - **Direct files:**
18
- - `a2a.json` - Complete JSON Schema specification for A2A protocol including all data types, requests, responses, and error definitions
19
- - `a2a_spec_llm.txt` - Developer guide documentation for the A2A specification
20
- - **Subdirectories:**
21
- - `schemas/` - JSON Schema definitions for agent communication signals (progress updates, tool invocations, LLM calls, artifact creation)
22
-
23
- ## Developer API Reference
24
-
25
- ### Direct Files
26
-
27
- #### a2a.json
28
- **Purpose:** Complete JSON Schema specification defining the Agent-to-Agent communication protocol
29
- **Import:** This is a JSON Schema file, typically loaded for validation purposes
30
-
31
- **Key Schema Definitions:**
32
- - **AgentCard** - Self-describing manifest for agents with capabilities, skills, and endpoints
33
- - **Message** - Individual messages in agent conversations with parts (text, files, data)
34
- - **Task** - Stateful operations/conversations between clients and agents
35
- - **A2ARequest/A2AResponse** - All supported JSON-RPC request and response types
36
- - **Security Schemes** - OAuth2, API Key, mTLS, and other authentication methods
37
- - **Error Types** - Standard JSON-RPC and A2A-specific error definitions
38
-
39
- **Core Data Structures:**
40
- ```typescript
41
- // Agent Card - describes agent capabilities
42
- AgentCard {
43
- name: string
44
- description: string
45
- url: string
46
- skills: AgentSkill[]
47
- capabilities: AgentCapabilities
48
- security: SecurityRequirement[]
49
- // ... additional fields
50
- }
51
-
52
- // Message - conversation content
53
- Message {
54
- messageId: string
55
- role: "user" | "agent"
56
- parts: Part[] // TextPart | FilePart | DataPart
57
- taskId?: string
58
- contextId?: string
59
- }
60
-
61
- // Task - stateful operation
62
- Task {
63
- id: string
64
- contextId: string
65
- status: TaskStatus
66
- history?: Message[]
67
- artifacts?: Artifact[]
68
- }
69
- ```
70
-
71
- #### a2a_spec_llm.txt
72
- **Purpose:** Developer documentation and usage guide for the A2A specification
73
- **Import:** Documentation file for reference
74
-
75
- ### Subdirectory APIs
76
-
77
- #### schemas/
78
- **Purpose:** Provides JSON Schema definitions for agent communication signals and progress updates
79
- **Key Exports:** Schema definitions for progress tracking, tool invocations, LLM calls, and artifact creation
80
- **Import Examples:**
81
- ```python
82
- import json
83
- from jsonschema import validate
84
-
85
- # Load and use schemas for validation
86
- with open('solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json') as f:
87
- progress_schema = json.load(f)
88
- ```
89
-
90
- **Available Schemas:**
91
- - `agent_progress_update.json` - General progress status messages
92
- - `artifact_creation_progress.json` - File/artifact creation tracking with chunked data
93
- - `llm_invocation.json` - LLM model invocation signals
94
- - `tool_invocation_start.json` - Tool execution start notifications
95
- - `tool_result.json` - Tool execution completion results
96
-
97
- ## Complete Usage Guide
98
-
99
- ### 1. Loading and Using the A2A Schema
100
-
101
- ```python
102
- import json
103
- from jsonschema import validate, Draft7Validator
104
-
105
- # Load the main A2A schema
106
- with open('solace_agent_mesh/common/a2a_spec/a2a.json') as f:
107
- a2a_schema = json.load(f)
108
-
109
- # Create validator for specific types
110
- def validate_agent_card(card_data):
111
- """Validate an AgentCard against the schema"""
112
- card_schema = a2a_schema['definitions']['AgentCard']
113
- validate(instance=card_data, schema=card_schema)
114
-
115
- def validate_message(message_data):
116
- """Validate a Message against the schema"""
117
- message_schema = a2a_schema['definitions']['Message']
118
- validate(instance=message_data, schema=message_schema)
119
-
120
- def validate_request(request_data):
121
- """Validate an A2A request"""
122
- request_schema = a2a_schema['definitions']['A2ARequest']
123
- validate(instance=request_data, schema=request_schema)
124
- ```
125
-
126
- ### 2. Creating Valid A2A Data Structures
127
-
128
- ```python
129
- # Create a valid Message
130
- message = {
131
- "kind": "message",
132
- "messageId": "msg-123",
133
- "role": "user",
134
- "parts": [
135
- {
136
- "kind": "text",
137
- "text": "Hello, can you help me with a task?"
138
- }
139
- ]
140
- }
141
-
142
- # Create a SendMessage request
143
- send_request = {
144
- "jsonrpc": "2.0",
145
- "id": "req-456",
146
- "method": "message/send",
147
- "params": {
148
- "message": message
149
- }
150
- }
151
-
152
- # Validate the request
153
- validate_request(send_request)
154
- ```
155
-
156
- ### 3. Using Agent Communication Schemas
157
-
158
- ```python
159
- import json
160
- from jsonschema import validate
161
-
162
- # Load and validate progress update
163
- with open('solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json') as f:
164
- progress_schema = json.load(f)
165
-
166
- progress_update = {
167
- "type": "agent_progress_update",
168
- "status_text": "Processing your request..."
169
- }
170
- validate(instance=progress_update, schema=progress_schema)
171
-
172
- # Load and validate tool invocation
173
- with open('solace_agent_mesh/common/a2a_spec/schemas/tool_invocation_start.json') as f:
174
- tool_schema = json.load(f)
175
-
176
- tool_invocation = {
177
- "type": "tool_invocation_start",
178
- "tool_name": "file_reader",
179
- "tool_args": {"filepath": "/data/file.txt"},
180
- "function_call_id": "call_123"
181
- }
182
- validate(instance=tool_invocation, schema=tool_schema)
183
-
184
- # Load and validate tool result
185
- with open('solace_agent_mesh/common/a2a_spec/schemas/tool_result.json') as f:
186
- result_schema = json.load(f)
187
-
188
- tool_result = {
189
- "type": "tool_result",
190
- "tool_name": "file_reader",
191
- "result_data": {"content": "File contents...", "size": 1024},
192
- "function_call_id": "call_123"
193
- }
194
- validate(instance=tool_result, schema=result_schema)
195
- ```
196
-
197
- ### 4. Working with Agent Cards
198
-
199
- ```python
200
- # Create a complete AgentCard
201
- agent_card = {
202
- "name": "Document Processor",
203
- "description": "Agent that processes and analyzes documents",
204
- "url": "https://api.example.com/agent",
205
- "version": "1.0.0",
206
- "protocolVersion": "0.3.0",
207
- "capabilities": {
208
- "streaming": True,
209
- "pushNotifications": False,
210
- "stateTransitionHistory": True
211
- },
212
- "defaultInputModes": ["text/plain", "application/pdf"],
213
- "defaultOutputModes": ["text/plain", "application/json"],
214
- "skills": [
215
- {
216
- "id": "document-analysis",
217
- "name": "Document Analysis",
218
- "description": "Analyze and extract information from documents",
219
- "tags": ["document", "analysis", "extraction"]
220
- }
221
- ]
222
- }
223
-
224
- # Validate the agent card
225
- validate_agent_card(agent_card)
226
- ```
227
-
228
- ### 5. Artifact Creation Progress Tracking
229
-
230
- ```python
231
- # Load artifact creation schema
232
- with open('solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json') as f:
233
- artifact_schema = json.load(f)
234
-
235
- # Track artifact creation with chunked data
236
- artifact_progress = {
237
- "type": "artifact_creation_progress",
238
- "filename": "report.pdf",
239
- "bytes_saved": 1024,
240
- "artifact_chunk": "JVBERi0xLjQKJcOkw7zDtsO..." # Base64 encoded chunk
241
- }
242
- validate(instance=artifact_progress, schema=artifact_schema)
243
- ```
244
-
245
- ### 6. LLM Invocation Tracking
246
-
247
- ```python
248
- # Load LLM invocation schema
249
- with open('solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json') as f:
250
- llm_schema = json.load(f)
251
-
252
- # Track LLM calls
253
- llm_invocation = {
254
- "type": "llm_invocation",
255
- "request": {
256
- "model": "gpt-4",
257
- "messages": [{"role": "user", "content": "Analyze this data"}],
258
- "temperature": 0.7
259
- }
260
- }
261
- validate(instance=llm_invocation, schema=llm_schema)
262
- ```
263
-
264
- ### 7. Complete Request/Response Flow with Progress Tracking
265
-
266
- ```python
267
- # 1. Create and send a message
268
- message = {
269
- "kind": "message",
270
- "messageId": "msg-001",
271
- "role": "user",
272
- "parts": [{"kind": "text", "text": "Analyze this document"}]
273
- }
274
-
275
- request = {
276
- "jsonrpc": "2.0",
277
- "id": "req-001",
278
- "method": "message/send",
279
- "params": {
280
- "message": message,
281
- "configuration": {
282
- "blocking": False,
283
- "acceptedOutputModes": ["text/plain", "application/json"]
284
- }
285
- }
286
- }
287
-
288
- # 2. Send progress updates during processing
289
- def send_progress_update(status_text):
290
- progress = {
291
- "type": "agent_progress_update",
292
- "status_text": status_text
293
- }
294
- # Validate and send progress update
295
- validate(instance=progress, schema=progress_schema)
296
- return progress
297
-
298
- # 3. Track tool invocations
299
- def track_tool_invocation(tool_name, args, call_id):
300
- invocation = {
301
- "type": "tool_invocation_start",
302
- "tool_name": tool_name,
303
- "tool_args": args,
304
- "function_call_id": call_id
305
- }
306
- validate(instance=invocation, schema=tool_schema)
307
- return invocation
308
-
309
- # 4. Track tool results
310
- def track_tool_result(tool_name, result_data, call_id):
311
- result = {
312
- "type": "tool_result",
313
- "tool_name": tool_name,
314
- "result_data": result_data,
315
- "function_call_id": call_id
316
- }
317
- validate(instance=result, schema=result_schema)
318
- return result
319
- ```
320
-
321
- ### 8. Comprehensive Schema Validation Utilities
322
-
323
- ```python
324
- class A2AValidator:
325
- """Utility class for A2A schema validation"""
326
-
327
- def __init__(self, schema_dir='solace_agent_mesh/common/a2a_spec'):
328
- self.schema_dir = schema_dir
329
- self.main_schema = self._load_main_schema()
330
- self.signal_schemas = self._load_signal_schemas()
331
-
332
- def _load_main_schema(self):
333
- with open(f'{self.schema_dir}/a2a.json') as f:
334
- return json.load(f)
335
-
336
- def _load_signal_schemas(self):
337
- schemas = {}
338
- schema_files = [
339
- 'agent_progress_update.json',
340
- 'artifact_creation_progress.json',
341
- 'llm_invocation.json',
342
- 'tool_invocation_start.json',
343
- 'tool_result.json'
344
- ]
345
- for filename in schema_files:
346
- with open(f'{self.schema_dir}/schemas/{filename}') as f:
347
- schema_name = filename.replace('.json', '')
348
- schemas[schema_name] = json.load(f)
349
- return schemas
350
-
351
- def validate_definition(self, data, definition_name):
352
- """Validate data against a specific A2A definition"""
353
- schema = self.main_schema['definitions'][definition_name]
354
- validate(instance=data, schema=schema)
355
-
356
- def validate_signal(self, data, signal_type):
357
- """Validate agent communication signal"""
358
- schema = self.signal_schemas[signal_type]
359
- validate(instance=data, schema=schema)
360
-
361
- def validate_a2a_message(self, message_data):
362
- """Validate a complete A2A message"""
363
- self.validate_definition(message_data, 'Message')
364
-
365
- def validate_agent_card(self, card_data):
366
- """Validate an agent card"""
367
- self.validate_definition(card_data, 'AgentCard')
368
-
369
- def validate_task(self, task_data):
370
- """Validate a task object"""
371
- self.validate_definition(task_data, 'Task')
372
-
373
- # Usage example
374
- validator = A2AValidator()
375
-
376
- # Validate main A2A objects
377
- validator.validate_agent_card(agent_card)
378
- validator.validate_a2a_message(message)
379
-
380
- # Validate communication signals
381
- validator.validate_signal(progress_update, 'agent_progress_update')
382
- validator.validate_signal(tool_invocation, 'tool_invocation_start')
383
- validator.validate_signal(tool_result, 'tool_result')
384
- validator.validate_signal(artifact_progress, 'artifact_creation_progress')
385
- validator.validate_signal(llm_invocation, 'llm_invocation')
386
- ```
387
-
388
- ### 9. Error Handling with A2A Error Types
389
-
390
- ```python
391
- # Create A2A-specific errors using the schema definitions
392
- task_not_found_error = {
393
- "code": -32001,
394
- "message": "Task not found",
395
- "data": {"taskId": "task-123"}
396
- }
397
-
398
- content_type_error = {
399
- "code": -32005,
400
- "message": "Incompatible content types",
401
- "data": {"requested": "image/png", "supported": ["text/plain", "application/json"]}
402
- }
403
-
404
- # Create error response
405
- error_response = {
406
- "jsonrpc": "2.0",
407
- "id": "req-456",
408
- "error": task_not_found_error
409
- }
410
-
411
- # Validate error response
412
- validator.validate_definition(error_response, 'JSONRPCErrorResponse')
413
- ```
414
-
415
- This comprehensive guide shows how to use both the main A2A specification and the specialized signal schemas together to build compliant agent-to-agent communication systems in the Solace Agent Mesh, including progress tracking, tool invocation monitoring, LLM call tracking, and artifact creation progress.
416
-
417
- ================================================================================
418
-
419
- ## Section 2: solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt
420
-
421
- **Source file:** `solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt`
422
-
423
- # DEVELOPER GUIDE: schemas
424
-
425
- ## Quick Summary
426
- 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.
427
-
428
- ## Files Overview
429
- - `agent_progress_update.json` - Schema for general agent progress status messages
430
- - `artifact_creation_progress.json` - Schema for tracking file/artifact creation progress with chunked data
431
- - `llm_invocation.json` - Schema for LLM model invocation signals with usage tracking
432
- - `tool_invocation_start.json` - Schema for tool execution start notifications
433
- - `tool_result.json` - Schema for tool execution completion results with optional LLM usage
434
- - `schemas_llm.txt` - Previous developer guide (legacy documentation)
435
-
436
- ## Developer API Reference
437
-
438
- ### agent_progress_update.json
439
- **Purpose:** Defines the schema for agent progress update signals that communicate human-readable status messages between agents.
440
-
441
- **Import:** Load as JSON schema for validation
442
- ```python
443
- import json
444
- from jsonschema import validate
445
- ```
446
-
447
- **Schema Structure:**
448
- ```json
449
- {
450
- "type": "agent_progress_update",
451
- "status_text": "string"
452
- }
453
- ```
454
-
455
- **Properties:**
456
- - `type: "agent_progress_update"` - Constant identifier for this signal type (required)
457
- - `status_text: string` - Human-readable progress message (required)
458
-
459
- **Usage Examples:**
460
- ```python
461
- import json
462
- from jsonschema import validate
463
-
464
- # Load and use schema
465
- with open('solace_agent_mesh/common/a2a_spec/schemas/agent_progress_update.json') as f:
466
- schema = json.load(f)
467
-
468
- # Valid data example
469
- data = {
470
- "type": "agent_progress_update",
471
- "status_text": "Analyzing the report..."
472
- }
473
- validate(instance=data, schema=schema)
474
- ```
475
-
476
- ### artifact_creation_progress.json
477
- **Purpose:** Defines the schema for tracking progress during file or artifact creation operations with chunked data transfer.
478
-
479
- **Import:** Load as JSON schema for validation
480
- ```python
481
- import json
482
- from jsonschema import validate
483
- ```
484
-
485
- **Schema Structure:**
486
- ```json
487
- {
488
- "type": "artifact_creation_progress",
489
- "filename": "string",
490
- "bytes_saved": "integer",
491
- "artifact_chunk": "string"
492
- }
493
- ```
494
-
495
- **Properties:**
496
- - `type: "artifact_creation_progress"` - Constant identifier for this signal type (required)
497
- - `filename: string` - Name of the artifact being created (required)
498
- - `bytes_saved: integer` - Number of bytes saved so far (required)
499
- - `artifact_chunk: string` - The chunk of artifact data that was saved in this update (required)
500
-
501
- **Usage Examples:**
502
- ```python
503
- import json
504
- from jsonschema import validate
505
-
506
- # Load and use schema
507
- with open('solace_agent_mesh/common/a2a_spec/schemas/artifact_creation_progress.json') as f:
508
- schema = json.load(f)
509
-
510
- # Valid data example
511
- data = {
512
- "type": "artifact_creation_progress",
513
- "filename": "report.pdf",
514
- "bytes_saved": 1024,
515
- "artifact_chunk": "JVBERi0xLjQKJcOkw7zDtsO..."
516
- }
517
- validate(instance=data, schema=schema)
518
- ```
519
-
520
- ### llm_invocation.json
521
- **Purpose:** Defines the schema for LLM invocation signals that communicate when an agent is calling a language model, including token usage tracking.
522
-
523
- **Import:** Load as JSON schema for validation
524
- ```python
525
- import json
526
- from jsonschema import validate
527
- ```
528
-
529
- **Schema Structure:**
530
- ```json
531
- {
532
- "type": "llm_invocation",
533
- "request": "object",
534
- "usage": {
535
- "input_tokens": "integer",
536
- "output_tokens": "integer",
537
- "cached_input_tokens": "integer",
538
- "model": "string"
539
- }
540
- }
541
- ```
542
-
543
- **Properties:**
544
- - `type: "llm_invocation"` - Constant identifier for this signal type (required)
545
- - `request: object` - Sanitized representation of the LlmRequest object sent to the model (required)
546
- - `usage: object` - Token usage information for this LLM call (optional)
547
- - `input_tokens: integer` - Number of input/prompt tokens (required in usage)
548
- - `output_tokens: integer` - Number of output/completion tokens (required in usage)
549
- - `cached_input_tokens: integer` - Number of cached input tokens (optional)
550
- - `model: string` - Model identifier used for this call (required in usage)
551
-
552
- **Usage Examples:**
553
- ```python
554
- import json
555
- from jsonschema import validate
556
-
557
- # Load and use schema
558
- with open('solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json') as f:
559
- schema = json.load(f)
560
-
561
- # Valid data example with usage tracking
562
- data = {
563
- "type": "llm_invocation",
564
- "request": {
565
- "model": "gpt-4",
566
- "messages": [{"role": "user", "content": "Analyze this data"}],
567
- "temperature": 0.7
568
- },
569
- "usage": {
570
- "input_tokens": 150,
571
- "output_tokens": 75,
572
- "cached_input_tokens": 50,
573
- "model": "gpt-4"
574
- }
575
- }
576
- validate(instance=data, schema=schema)
577
- ```
578
-
579
- ### tool_invocation_start.json
580
- **Purpose:** Defines the schema for tool invocation start signals that notify when an agent begins executing a tool.
581
-
582
- **Import:** Load as JSON schema for validation
583
- ```python
584
- import json
585
- from jsonschema import validate
586
- ```
587
-
588
- **Schema Structure:**
589
- ```json
590
- {
591
- "type": "tool_invocation_start",
592
- "tool_name": "string",
593
- "tool_args": "object",
594
- "function_call_id": "string"
595
- }
596
- ```
597
-
598
- **Properties:**
599
- - `type: "tool_invocation_start"` - Constant identifier for this signal type (required)
600
- - `tool_name: string` - Name of the tool being called (required)
601
- - `tool_args: object` - Arguments passed to the tool (required)
602
- - `function_call_id: string` - ID from the LLM's function call (required)
603
-
604
- **Usage Examples:**
605
- ```python
606
- import json
607
- from jsonschema import validate
608
-
609
- # Load and use schema
610
- with open('solace_agent_mesh/common/a2a_spec/schemas/tool_invocation_start.json') as f:
611
- schema = json.load(f)
612
-
613
- # Valid data example
614
- data = {
615
- "type": "tool_invocation_start",
616
- "tool_name": "file_reader",
617
- "tool_args": {
618
- "filepath": "/path/to/file.txt",
619
- "encoding": "utf-8"
620
- },
621
- "function_call_id": "call_abc123"
622
- }
623
- validate(instance=data, schema=schema)
624
- ```
625
-
626
- ### tool_result.json
627
- **Purpose:** Defines the schema for tool execution result signals that communicate the completion and results of tool invocations, with optional LLM usage tracking.
628
-
629
- **Import:** Load as JSON schema for validation
630
- ```python
631
- import json
632
- from jsonschema import validate
633
- ```
634
-
635
- **Schema Structure:**
636
- ```json
637
- {
638
- "type": "tool_result",
639
- "tool_name": "string",
640
- "result_data": "any",
641
- "function_call_id": "string",
642
- "llm_usage": {
643
- "input_tokens": "integer",
644
- "output_tokens": "integer",
645
- "cached_input_tokens": "integer",
646
- "model": "string"
647
- }
648
- }
649
- ```
650
-
651
- **Properties:**
652
- - `type: "tool_result"` - Constant identifier for this signal type (required)
653
- - `tool_name: string` - Name of the tool that was called (required)
654
- - `result_data: any` - The data returned by the tool (required, can be any type)
655
- - `function_call_id: string` - ID from the LLM's function call that this result corresponds to (required)
656
- - `llm_usage: object` - Token usage if this tool made LLM calls (optional)
657
- - `input_tokens: integer` - Total input tokens used by tool's LLM calls (required in llm_usage)
658
- - `output_tokens: integer` - Total output tokens used by tool's LLM calls (required in llm_usage)
659
- - `cached_input_tokens: integer` - Number of cached input tokens (optional)
660
- - `model: string` - Model identifier(s) used by the tool (required in llm_usage)
661
-
662
- **Usage Examples:**
663
- ```python
664
- import json
665
- from jsonschema import validate
666
-
667
- # Load and use schema
668
- with open('solace_agent_mesh/common/a2a_spec/schemas/tool_result.json') as f:
669
- schema = json.load(f)
670
-
671
- # Valid data example with LLM usage
672
- data = {
673
- "type": "tool_result",
674
- "tool_name": "web_search",
675
- "result_data": {
676
- "results": ["Result 1", "Result 2"],
677
- "count": 2
678
- },
679
- "function_call_id": "call_abc123",
680
- "llm_usage": {
681
- "input_tokens": 200,
682
- "output_tokens": 100,
683
- "model": "gpt-4"
684
- }
685
- }
686
- validate(instance=data, schema=schema)
687
- ```
688
-
689
- **Common Usage Pattern:**
690
- ```python
691
- import json
692
- from jsonschema import validate
693
- from pathlib import Path
694
- from typing import Dict, Any
695
-
696
- def validate_a2a_signal(signal_data: Dict[str, Any], schema_name: str) -> bool:
697
- """Validate A2A signal data against its schema."""
698
- schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
699
-
700
- with open(schema_path) as f:
701
- schema = json.load(f)
702
-
703
- try:
704
- validate(instance=signal_data, schema=schema)
705
- return True
706
- except Exception as e:
707
- print(f"Validation failed: {e}")
708
- return False
709
-
710
- def load_schema(schema_name: str) -> Dict[str, Any]:
711
- """Load a specific A2A signal schema."""
712
- schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
713
- with open(schema_path) as f:
714
- return json.load(f)
715
-
716
- # Example usage
717
- progress_data = {
718
- "type": "agent_progress_update",
719
- "status_text": "Processing request..."
720
- }
721
-
722
- if validate_a2a_signal(progress_data, "agent_progress_update"):
723
- print("Signal is valid!")
724
-
725
- # Load all schemas for batch validation
726
- schemas = {
727
- "agent_progress": load_schema("agent_progress_update"),
728
- "artifact_progress": load_schema("artifact_creation_progress"),
729
- "llm_invocation": load_schema("llm_invocation"),
730
- "tool_start": load_schema("tool_invocation_start"),
731
- "tool_result": load_schema("tool_result")
732
- }
733
- ```
734
-
735
- ================================================================================
736
-