solace-agent-mesh 1.5.0__py3-none-any.whl → 1.5.1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (257) hide show
  1. solace_agent_mesh/agent/adk/callbacks.py +14 -12
  2. solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py +3 -1
  3. solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py +2 -1
  4. solace_agent_mesh/agent/adk/mcp_content_processor.py +2 -1
  5. solace_agent_mesh/agent/adk/runner.py +3 -1
  6. solace_agent_mesh/agent/adk/services.py +4 -1
  7. solace_agent_mesh/agent/adk/setup.py +3 -1
  8. solace_agent_mesh/agent/adk/tool_wrapper.py +2 -2
  9. solace_agent_mesh/agent/protocol/event_handlers.py +2 -1
  10. solace_agent_mesh/agent/sac/app.py +3 -1
  11. solace_agent_mesh/agent/sac/component.py +4 -1
  12. solace_agent_mesh/agent/tools/audio_tools.py +2 -1
  13. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +3 -1
  14. solace_agent_mesh/agent/tools/builtin_data_analysis_tools.py +3 -1
  15. solace_agent_mesh/agent/tools/dynamic_tool.py +2 -1
  16. solace_agent_mesh/agent/tools/general_agent_tools.py +2 -1
  17. solace_agent_mesh/agent/tools/image_tools.py +2 -1
  18. solace_agent_mesh/agent/tools/peer_agent_tool.py +2 -1
  19. solace_agent_mesh/agent/tools/registry.py +3 -1
  20. solace_agent_mesh/agent/tools/test_tools.py +2 -1
  21. solace_agent_mesh/agent/tools/web_tools.py +2 -1
  22. solace_agent_mesh/agent/utils/artifact_helpers.py +3 -1
  23. solace_agent_mesh/agent/utils/config_parser.py +3 -1
  24. solace_agent_mesh/assets/docs/404.html +3 -3
  25. solace_agent_mesh/assets/docs/assets/js/{b7006a3a.73a79653.js → 032c2d61.f3d37824.js} +1 -1
  26. solace_agent_mesh/assets/docs/assets/js/0bcf40b7.c019ad46.js +1 -0
  27. solace_agent_mesh/assets/docs/assets/js/15ba94aa.932dd2db.js +1 -0
  28. solace_agent_mesh/assets/docs/assets/js/2131ec11.5c7a1f6e.js +1 -0
  29. solace_agent_mesh/assets/docs/assets/js/{2334.622a6395.js → 2334.1cf50a20.js} +1 -1
  30. solace_agent_mesh/assets/docs/assets/js/240a0364.7eac6021.js +1 -0
  31. solace_agent_mesh/assets/docs/assets/js/2e32b5e0.33f5d75b.js +1 -0
  32. solace_agent_mesh/assets/docs/assets/js/341393d4.0fac2613.js +1 -0
  33. solace_agent_mesh/assets/docs/assets/js/{3624.b524e433.js → 3624.0eaa1fd0.js} +1 -1
  34. solace_agent_mesh/assets/docs/assets/js/3a6c6137.f5940cfa.js +1 -0
  35. solace_agent_mesh/assets/docs/assets/js/3ac1795d.76654dd9.js +1 -0
  36. solace_agent_mesh/assets/docs/assets/js/3ff0015d.2be20244.js +1 -0
  37. solace_agent_mesh/assets/docs/assets/js/509e993c.4c7a1a6d.js +1 -0
  38. solace_agent_mesh/assets/docs/assets/js/547e15cc.2cbb060a.js +1 -0
  39. solace_agent_mesh/assets/docs/assets/js/55b7b518.f2b1d1ba.js +1 -0
  40. solace_agent_mesh/assets/docs/assets/js/5c2bd65f.e49689dd.js +1 -0
  41. solace_agent_mesh/assets/docs/assets/js/6063ff4c.ef84f702.js +1 -0
  42. solace_agent_mesh/assets/docs/assets/js/631738c7.a8b1ef8b.js +1 -0
  43. solace_agent_mesh/assets/docs/assets/js/6a520c9d.ba015d81.js +1 -0
  44. solace_agent_mesh/assets/docs/assets/js/6ad8f0bd.39d5851d.js +1 -0
  45. solace_agent_mesh/assets/docs/assets/js/6d84eae0.4a5fbf39.js +1 -0
  46. solace_agent_mesh/assets/docs/assets/js/6fdfefc7.99de744e.js +1 -0
  47. solace_agent_mesh/assets/docs/assets/js/71da7b71.804d6567.js +1 -0
  48. solace_agent_mesh/assets/docs/assets/js/722f809d.965da774.js +1 -0
  49. solace_agent_mesh/assets/docs/assets/js/742f027b.46c07808.js +1 -0
  50. solace_agent_mesh/assets/docs/assets/js/77cf947d.64c9bd6c.js +1 -0
  51. solace_agent_mesh/assets/docs/assets/js/8024126c.56e59919.js +1 -0
  52. solace_agent_mesh/assets/docs/assets/js/81a99df0.07034dd9.js +1 -0
  53. solace_agent_mesh/assets/docs/assets/js/82fbfb93.139a1a1f.js +1 -0
  54. solace_agent_mesh/assets/docs/assets/js/{8591.d7c16be6.js → 8591.5d015485.js} +2 -2
  55. solace_agent_mesh/assets/docs/assets/js/{8731.49e930c2.js → 8731.6c1dbf0c.js} +1 -1
  56. solace_agent_mesh/assets/docs/assets/js/945fb41e.6f4cdffd.js +1 -0
  57. solace_agent_mesh/assets/docs/assets/js/94e8668d.b5ddb7a1.js +1 -0
  58. solace_agent_mesh/assets/docs/assets/js/9bb13469.dd1c9b54.js +1 -0
  59. solace_agent_mesh/assets/docs/assets/js/9e9d0a82.dd810042.js +1 -0
  60. solace_agent_mesh/assets/docs/assets/js/ab9708a8.3e6dd091.js +1 -0
  61. solace_agent_mesh/assets/docs/assets/js/ad71b5ed.60668e9e.js +1 -0
  62. solace_agent_mesh/assets/docs/assets/js/c198a0dc.8f31f867.js +1 -0
  63. solace_agent_mesh/assets/docs/assets/js/c93cbaa0.eaff365e.js +1 -0
  64. solace_agent_mesh/assets/docs/assets/js/da0b5bad.9d369087.js +1 -0
  65. solace_agent_mesh/assets/docs/assets/js/db924877.cbc66f02.js +1 -0
  66. solace_agent_mesh/assets/docs/assets/js/dd817ffc.0aa9630a.js +1 -0
  67. solace_agent_mesh/assets/docs/assets/js/dd81e2b8.d590bc9e.js +1 -0
  68. solace_agent_mesh/assets/docs/assets/js/de5f4c65.e8241890.js +1 -0
  69. solace_agent_mesh/assets/docs/assets/js/de915948.139b4b9c.js +1 -0
  70. solace_agent_mesh/assets/docs/assets/js/e3d9abda.2b916f9e.js +1 -0
  71. solace_agent_mesh/assets/docs/assets/js/e6f9706b.582a78ca.js +1 -0
  72. solace_agent_mesh/assets/docs/assets/js/e92d0134.cf6d6522.js +1 -0
  73. solace_agent_mesh/assets/docs/assets/js/f284c35a.5766a13d.js +1 -0
  74. solace_agent_mesh/assets/docs/assets/js/ff4d71f2.9c0297a6.js +1 -0
  75. solace_agent_mesh/assets/docs/assets/js/main.bd3c34f3.js +2 -0
  76. solace_agent_mesh/assets/docs/assets/js/runtime~main.18dc45dd.js +1 -0
  77. solace_agent_mesh/assets/docs/docs/documentation/components/agents/index.html +143 -0
  78. solace_agent_mesh/assets/docs/docs/documentation/{user-guide → components}/builtin-tools/artifact-management/index.html +7 -7
  79. solace_agent_mesh/assets/docs/docs/documentation/{user-guide → components}/builtin-tools/audio-tools/index.html +7 -7
  80. solace_agent_mesh/assets/docs/docs/documentation/{user-guide → components}/builtin-tools/data-analysis-tools/index.html +8 -8
  81. solace_agent_mesh/assets/docs/docs/documentation/{user-guide → components}/builtin-tools/embeds/index.html +6 -6
  82. solace_agent_mesh/assets/docs/docs/documentation/{user-guide → components}/builtin-tools/index.html +11 -11
  83. solace_agent_mesh/assets/docs/docs/documentation/{concepts → components}/cli/index.html +25 -25
  84. solace_agent_mesh/assets/docs/docs/documentation/components/gateways/index.html +91 -0
  85. solace_agent_mesh/assets/docs/docs/documentation/components/index.html +29 -0
  86. solace_agent_mesh/assets/docs/docs/documentation/components/orchestrator/index.html +55 -0
  87. solace_agent_mesh/assets/docs/docs/documentation/components/plugins/index.html +110 -0
  88. solace_agent_mesh/assets/docs/docs/documentation/deploying/debugging/index.html +104 -0
  89. solace_agent_mesh/assets/docs/docs/documentation/deploying/deployment-options/index.html +57 -0
  90. solace_agent_mesh/assets/docs/docs/documentation/deploying/index.html +25 -0
  91. solace_agent_mesh/assets/docs/docs/documentation/deploying/observability/index.html +59 -0
  92. solace_agent_mesh/assets/docs/docs/documentation/{user-guide → developing}/create-agents/index.html +113 -152
  93. solace_agent_mesh/assets/docs/docs/documentation/{user-guide → developing}/create-gateways/index.html +9 -9
  94. solace_agent_mesh/assets/docs/docs/documentation/{user-guide → developing}/creating-python-tools/index.html +12 -12
  95. solace_agent_mesh/assets/docs/docs/documentation/developing/creating-service-providers/index.html +54 -0
  96. solace_agent_mesh/assets/docs/docs/documentation/developing/index.html +32 -0
  97. solace_agent_mesh/assets/docs/docs/documentation/developing/structure/index.html +55 -0
  98. solace_agent_mesh/assets/docs/docs/documentation/{tutorials → developing/tutorials}/bedrock-agents/index.html +25 -25
  99. solace_agent_mesh/assets/docs/docs/documentation/{tutorials → developing/tutorials}/custom-agent/index.html +13 -13
  100. solace_agent_mesh/assets/docs/docs/documentation/{tutorials → developing/tutorials}/event-mesh-gateway/index.html +11 -11
  101. solace_agent_mesh/assets/docs/docs/documentation/{tutorials → developing/tutorials}/mcp-integration/index.html +10 -10
  102. solace_agent_mesh/assets/docs/docs/documentation/{tutorials → developing/tutorials}/mongodb-integration/index.html +13 -13
  103. solace_agent_mesh/assets/docs/docs/documentation/{tutorials → developing/tutorials}/rag-integration/index.html +13 -13
  104. solace_agent_mesh/assets/docs/docs/documentation/{tutorials → developing/tutorials}/rest-gateway/index.html +10 -10
  105. solace_agent_mesh/assets/docs/docs/documentation/developing/tutorials/slack-integration/index.html +72 -0
  106. solace_agent_mesh/assets/docs/docs/documentation/{tutorials → developing/tutorials}/sql-database/index.html +14 -14
  107. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +33 -0
  108. solace_agent_mesh/assets/docs/docs/documentation/enterprise/installation/index.html +83 -0
  109. solace_agent_mesh/assets/docs/docs/documentation/enterprise/rbac-setup-guide/index.html +222 -0
  110. solace_agent_mesh/assets/docs/docs/documentation/enterprise/single-sign-on/index.html +161 -0
  111. solace_agent_mesh/assets/docs/docs/documentation/getting-started/architecture/index.html +75 -0
  112. solace_agent_mesh/assets/docs/docs/documentation/getting-started/index.html +53 -0
  113. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +35 -100
  114. solace_agent_mesh/assets/docs/docs/documentation/getting-started/try-agent-mesh/index.html +41 -0
  115. solace_agent_mesh/assets/docs/docs/documentation/{getting-started → installing-and-configuring}/configurations/index.html +56 -50
  116. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/index.html +25 -0
  117. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/installation/index.html +76 -0
  118. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/large_language_models/index.html +63 -0
  119. solace_agent_mesh/assets/docs/docs/documentation/installing-and-configuring/run-project/index.html +142 -0
  120. solace_agent_mesh/assets/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0/index.html +100 -0
  121. solace_agent_mesh/assets/docs/docs/documentation/{Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html → migrations/a2a-upgrade/a2a-technical-migration-map/index.html} +10 -11
  122. solace_agent_mesh/assets/docs/img/solace-logo.png +0 -0
  123. solace_agent_mesh/assets/docs/lunr-index-1760121512891.json +1 -0
  124. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  125. solace_agent_mesh/assets/docs/search-doc-1760121512891.json +1 -0
  126. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  127. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  128. solace_agent_mesh/cli/__init__.py +1 -1
  129. solace_agent_mesh/client/webui/frontend/static/assets/{main-C__uuUkB.js → main-2nd1gbaH.js} +1 -1
  130. solace_agent_mesh/client/webui/frontend/static/assets/{main-CZbpmwfA.css → main-DoKXctCM.css} +1 -1
  131. solace_agent_mesh/client/webui/frontend/static/index.html +2 -2
  132. solace_agent_mesh/common/a2a/artifact.py +2 -1
  133. solace_agent_mesh/common/a2a/protocol.py +3 -2
  134. solace_agent_mesh/common/a2a/translation.py +3 -1
  135. solace_agent_mesh/common/middleware/config_resolver.py +3 -1
  136. solace_agent_mesh/common/middleware/registry.py +3 -1
  137. solace_agent_mesh/common/sac/sam_component_base.py +2 -1
  138. solace_agent_mesh/common/sam_events/event_service.py +3 -2
  139. solace_agent_mesh/common/services/employee_service.py +3 -1
  140. solace_agent_mesh/common/services/identity_service.py +2 -1
  141. solace_agent_mesh/common/services/providers/local_file_identity_service.py +2 -1
  142. solace_agent_mesh/common/utils/artifact_utils.py +3 -1
  143. solace_agent_mesh/common/utils/asyncio_macos_fix.py +3 -1
  144. solace_agent_mesh/common/utils/embeds/converter.py +3 -1
  145. solace_agent_mesh/common/utils/embeds/evaluators.py +2 -1
  146. solace_agent_mesh/common/utils/embeds/modifiers.py +3 -2
  147. solace_agent_mesh/common/utils/embeds/resolver.py +2 -1
  148. solace_agent_mesh/common/utils/initializer.py +3 -1
  149. solace_agent_mesh/common/utils/message_utils.py +2 -1
  150. solace_agent_mesh/common/utils/push_notification_auth.py +3 -2
  151. solace_agent_mesh/core_a2a/service.py +2 -2
  152. solace_agent_mesh/gateway/base/app.py +2 -1
  153. solace_agent_mesh/gateway/base/component.py +3 -1
  154. solace_agent_mesh/gateway/base/task_context.py +2 -1
  155. solace_agent_mesh/gateway/http_sse/app.py +2 -1
  156. solace_agent_mesh/gateway/http_sse/component.py +4 -1
  157. solace_agent_mesh/gateway/http_sse/components/task_logger_forwarder.py +3 -2
  158. solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py +3 -1
  159. solace_agent_mesh/gateway/http_sse/dependencies.py +3 -1
  160. solace_agent_mesh/gateway/http_sse/main.py +3 -1
  161. solace_agent_mesh/gateway/http_sse/routers/agent_cards.py +3 -2
  162. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +2 -2
  163. solace_agent_mesh/gateway/http_sse/routers/auth.py +3 -1
  164. solace_agent_mesh/gateway/http_sse/routers/config.py +3 -2
  165. solace_agent_mesh/gateway/http_sse/routers/people.py +3 -1
  166. solace_agent_mesh/gateway/http_sse/routers/sessions.py +3 -1
  167. solace_agent_mesh/gateway/http_sse/routers/sse.py +3 -2
  168. solace_agent_mesh/gateway/http_sse/routers/tasks.py +2 -1
  169. solace_agent_mesh/gateway/http_sse/routers/users.py +3 -1
  170. solace_agent_mesh/gateway/http_sse/routers/visualization.py +2 -1
  171. solace_agent_mesh/gateway/http_sse/services/agent_card_service.py +3 -1
  172. solace_agent_mesh/gateway/http_sse/services/data_retention_service.py +2 -1
  173. solace_agent_mesh/gateway/http_sse/services/feedback_service.py +2 -1
  174. solace_agent_mesh/gateway/http_sse/services/people_service.py +2 -2
  175. solace_agent_mesh/gateway/http_sse/services/session_service.py +3 -1
  176. solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +2 -1
  177. solace_agent_mesh/gateway/http_sse/services/task_service.py +3 -2
  178. solace_agent_mesh/gateway/http_sse/session_manager.py +2 -1
  179. solace_agent_mesh/gateway/http_sse/sse_event_buffer.py +2 -1
  180. solace_agent_mesh/gateway/http_sse/sse_manager.py +2 -2
  181. solace_agent_mesh/templates/gateway_app_template.py +4 -2
  182. solace_agent_mesh/templates/gateway_component_template.py +3 -1
  183. solace_agent_mesh/templates/logging_config_template.ini +22 -45
  184. solace_agent_mesh/templates/plugin_tools_template.py +2 -2
  185. {solace_agent_mesh-1.5.0.dist-info → solace_agent_mesh-1.5.1.dist-info}/METADATA +2 -2
  186. {solace_agent_mesh-1.5.0.dist-info → solace_agent_mesh-1.5.1.dist-info}/RECORD +191 -183
  187. solace_agent_mesh/assets/docs/assets/images/sac-flows-80d5b603c6aafd33e87945680ce0abf3.png +0 -0
  188. solace_agent_mesh/assets/docs/assets/images/sac_parts_of_a_component-cb3d0424b1d0c17734c5435cca6b4082.png +0 -0
  189. solace_agent_mesh/assets/docs/assets/js/04989206.a248f00c.js +0 -1
  190. solace_agent_mesh/assets/docs/assets/js/0e682baa.d54b8668.js +0 -1
  191. solace_agent_mesh/assets/docs/assets/js/1023fc19.8a8a9309.js +0 -1
  192. solace_agent_mesh/assets/docs/assets/js/1523c6b4.2645ef68.js +0 -1
  193. solace_agent_mesh/assets/docs/assets/js/166ab619.e27886d9.js +0 -1
  194. solace_agent_mesh/assets/docs/assets/js/1c6e87d2.e056b7e0.js +0 -1
  195. solace_agent_mesh/assets/docs/assets/js/21ceee5f.3bf39250.js +0 -1
  196. solace_agent_mesh/assets/docs/assets/js/2a9cab12.2afaee76.js +0 -1
  197. solace_agent_mesh/assets/docs/assets/js/332e10b5.f7629851.js +0 -1
  198. solace_agent_mesh/assets/docs/assets/js/3d406171.5560fdf9.js +0 -1
  199. solace_agent_mesh/assets/docs/assets/js/42b3f8d8.508ae8db.js +0 -1
  200. solace_agent_mesh/assets/docs/assets/js/442a8107.b5c2532a.js +0 -1
  201. solace_agent_mesh/assets/docs/assets/js/453a82a6.3c6bb61d.js +0 -1
  202. solace_agent_mesh/assets/docs/assets/js/483cef9a.bf9398af.js +0 -1
  203. solace_agent_mesh/assets/docs/assets/js/4c2787c2.c1290a40.js +0 -1
  204. solace_agent_mesh/assets/docs/assets/js/55f47984.bcd00a86.js +0 -1
  205. solace_agent_mesh/assets/docs/assets/js/5b4258a4.fdfd2325.js +0 -1
  206. solace_agent_mesh/assets/docs/assets/js/664b740a.ba305a89.js +0 -1
  207. solace_agent_mesh/assets/docs/assets/js/75384d09.c19e8b51.js +0 -1
  208. solace_agent_mesh/assets/docs/assets/js/768e31b0.9abcdc48.js +0 -1
  209. solace_agent_mesh/assets/docs/assets/js/85387663.be2bc838.js +0 -1
  210. solace_agent_mesh/assets/docs/assets/js/945fb41e.16e00776.js +0 -1
  211. solace_agent_mesh/assets/docs/assets/js/9a09e75d.92de8cf5.js +0 -1
  212. solace_agent_mesh/assets/docs/assets/js/9eff14a2.d62aad71.js +0 -1
  213. solace_agent_mesh/assets/docs/assets/js/a12a4955.25fbed32.js +0 -1
  214. solace_agent_mesh/assets/docs/assets/js/a3a92b25.af35e313.js +0 -1
  215. solace_agent_mesh/assets/docs/assets/js/aba87c2f.4ddf32f2.js +0 -1
  216. solace_agent_mesh/assets/docs/assets/js/ae0e903d.5fe5203f.js +0 -1
  217. solace_agent_mesh/assets/docs/assets/js/ae4415af.16cc58d3.js +0 -1
  218. solace_agent_mesh/assets/docs/assets/js/bac0be12.17de4316.js +0 -1
  219. solace_agent_mesh/assets/docs/assets/js/c2c06897.87cb1f47.js +0 -1
  220. solace_agent_mesh/assets/docs/assets/js/c835a94d.ce21f0bf.js +0 -1
  221. solace_agent_mesh/assets/docs/assets/js/cc969b05.feef7dcc.js +0 -1
  222. solace_agent_mesh/assets/docs/assets/js/cd3d4052.a19e7d78.js +0 -1
  223. solace_agent_mesh/assets/docs/assets/js/ced92a13.fb92e7ca.js +0 -1
  224. solace_agent_mesh/assets/docs/assets/js/cee5d587.47904f5e.js +0 -1
  225. solace_agent_mesh/assets/docs/assets/js/d6a81ee7.829198f1.js +0 -1
  226. solace_agent_mesh/assets/docs/assets/js/f284c35a.ed8dd236.js +0 -1
  227. solace_agent_mesh/assets/docs/assets/js/f897a61a.126663fe.js +0 -1
  228. solace_agent_mesh/assets/docs/assets/js/fbfa3e75.e144b16c.js +0 -1
  229. solace_agent_mesh/assets/docs/assets/js/main.0c149855.js +0 -2
  230. solace_agent_mesh/assets/docs/assets/js/runtime~main.c66557e4.js +0 -1
  231. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html +0 -46
  232. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/rbac-setup-guilde/index.html +0 -201
  233. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html +0 -29
  234. solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html +0 -105
  235. solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +0 -144
  236. solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +0 -91
  237. solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +0 -91
  238. solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +0 -55
  239. solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +0 -111
  240. solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +0 -77
  241. solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +0 -48
  242. solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +0 -54
  243. solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +0 -45
  244. solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/litellm_models/index.html +0 -49
  245. solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +0 -76
  246. solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +0 -73
  247. solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +0 -72
  248. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +0 -54
  249. solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +0 -69
  250. solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +0 -59
  251. solace_agent_mesh/assets/docs/lunr-index-1760032255022.json +0 -1
  252. solace_agent_mesh/assets/docs/search-doc-1760032255022.json +0 -1
  253. /solace_agent_mesh/assets/docs/assets/js/{8591.d7c16be6.js.LICENSE.txt → 8591.5d015485.js.LICENSE.txt} +0 -0
  254. /solace_agent_mesh/assets/docs/assets/js/{main.0c149855.js.LICENSE.txt → main.bd3c34f3.js.LICENSE.txt} +0 -0
  255. {solace_agent_mesh-1.5.0.dist-info → solace_agent_mesh-1.5.1.dist-info}/WHEEL +0 -0
  256. {solace_agent_mesh-1.5.0.dist-info → solace_agent_mesh-1.5.1.dist-info}/entry_points.txt +0 -0
  257. {solace_agent_mesh-1.5.0.dist-info → solace_agent_mesh-1.5.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,142 @@
1
+ <!doctype html>
2
+ <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-documentation/installing-and-configuring/run-project" data-has-hydrated="false">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="generator" content="Docusaurus v3.8.1">
6
+ <title data-rh="true">Creating and Running an Agent Mesh Project | Solace Agent Mesh</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://solacelabs.github.io/solace-agent-mesh/img/logo.png"><meta data-rh="true" name="twitter:image" content="https://solacelabs.github.io/solace-agent-mesh/img/logo.png"><meta data-rh="true" property="og:url" content="https://solacelabs.github.io/solace-agent-mesh/docs/documentation/installing-and-configuring/run-project"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Creating and Running an Agent Mesh Project | Solace Agent Mesh"><meta data-rh="true" name="description" content="This guide walks you through creating and running a complete Agent Mesh project. This approach provides full control over your configuration and is suitable for development, testing, and production environments."><meta data-rh="true" property="og:description" content="This guide walks you through creating and running a complete Agent Mesh project. This approach provides full control over your configuration and is suitable for development, testing, and production environments."><link data-rh="true" rel="icon" href="/solace-agent-mesh/img/logo.png"><link data-rh="true" rel="canonical" href="https://solacelabs.github.io/solace-agent-mesh/docs/documentation/installing-and-configuring/run-project"><link data-rh="true" rel="alternate" href="https://solacelabs.github.io/solace-agent-mesh/docs/documentation/installing-and-configuring/run-project" hreflang="en"><link data-rh="true" rel="alternate" href="https://solacelabs.github.io/solace-agent-mesh/docs/documentation/installing-and-configuring/run-project" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Installing and Configuring Agent Mesh","item":"https://solacelabs.github.io/solace-agent-mesh/docs/documentation/installing-and-configuring/"},{"@type":"ListItem","position":2,"name":"Creating and Running an Agent Mesh Project","item":"https://solacelabs.github.io/solace-agent-mesh/docs/documentation/installing-and-configuring/run-project"}]}</script><link rel="stylesheet" href="/solace-agent-mesh/assets/css/styles.906a1503.css">
7
+ <script src="/solace-agent-mesh/assets/js/runtime~main.18dc45dd.js" defer="defer"></script>
8
+ <script src="/solace-agent-mesh/assets/js/main.bd3c34f3.js" defer="defer"></script>
9
+ </head>
10
+ <body class="navigation-with-keyboard">
11
+ <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
12
+ <symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
13
+ </defs></svg>
14
+ <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/solace-agent-mesh/img/logo.png"><link rel="preload" as="image" href="/solace-agent-mesh/img/solace-logo.png"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/solace-agent-mesh/docs/documentation/getting-started"><div class="navbar__logo"><img src="/solace-agent-mesh/img/logo.png" alt="Solace Agent Mesh Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/solace-agent-mesh/img/logo.png" alt="Solace Agent Mesh Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Solace Agent Mesh</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/solace-agent-mesh/docs/documentation/getting-started/">Documentation</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/SolaceLabs/solace-agent-mesh/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/getting-started/">Getting Started</a><button aria-label="Collapse sidebar category &#x27;Getting Started&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/getting-started/introduction">What is Agent Mesh?</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/getting-started/try-agent-mesh">Try Agent Mesh</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/getting-started/architecture">Architecture Overview</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/components/">Components</a><button aria-label="Expand sidebar category &#x27;Components&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" href="/solace-agent-mesh/docs/documentation/installing-and-configuring/">Installing and Configuring Agent Mesh</a><button aria-label="Collapse sidebar category &#x27;Installing and Configuring Agent Mesh&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/installing-and-configuring/installation">Installing Agent Mesh</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/solace-agent-mesh/docs/documentation/installing-and-configuring/run-project">Creating and Running an Agent Mesh Project</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/installing-and-configuring/configurations">Configuring Agent Mesh</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/installing-and-configuring/large_language_models">Configuring LLMs</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/developing/">Developing with Agent Mesh</a><button aria-label="Expand sidebar category &#x27;Developing with Agent Mesh&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/deploying/">Deploying Agent Mesh</a><button aria-label="Expand sidebar category &#x27;Deploying Agent Mesh&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0">Migrations</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/enterprise/">Agent Mesh Enterprise</a><button aria-label="Expand sidebar category &#x27;Agent Mesh Enterprise&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a class="breadcrumbs__link" href="/solace-agent-mesh/docs/documentation/installing-and-configuring/"><span>Installing and Configuring Agent Mesh</span></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Creating and Running an Agent Mesh Project</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Creating and Running an Agent Mesh Project</h1></header><p>This guide walks you through creating and running a complete Agent Mesh project. This approach provides full control over your configuration and is suitable for development, testing, and production environments.</p>
15
+ <div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>Plugins</div><div class="admonitionContent_BuS1"><p>Looking to get started with plugins? For more information, see <a href="/solace-agent-mesh/docs/documentation/components/plugins">Plugins</a>.</p></div></div>
16
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="prerequisites">Prerequisites<a href="#prerequisites" class="hash-link" aria-label="Direct link to Prerequisites" title="Direct link to Prerequisites">​</a></h2>
17
+ <p>Before you begin, ensure you have the following:</p>
18
+ <ol>
19
+ <li><strong>Agent Mesh CLI installed</strong> - If not installed, see the <a href="/solace-agent-mesh/docs/documentation/installing-and-configuring/installation">installation guide</a></li>
20
+ <li><strong>Virtual environment activated</strong> - You must have activated the virtual environment you created during installation (not required for containerized deployments)</li>
21
+ <li><strong>AI provider and API key</strong> - For best results, use a state-of-the-art AI model like Anthropic Claude Sonnet 4, Google Gemini 2.5 Pro, or OpenAI GPT-4</li>
22
+ </ol>
23
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="create-your-project">Create Your Project<a href="#create-your-project" class="hash-link" aria-label="Direct link to Create Your Project" title="Direct link to Create Your Project">​</a></h2>
24
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-1-set-up-project-directory">Step 1: Set Up Project Directory<a href="#step-1-set-up-project-directory" class="hash-link" aria-label="Direct link to Step 1: Set Up Project Directory" title="Direct link to Step 1: Set Up Project Directory">​</a></h3>
25
+ <p>Create a directory for your project and navigate to it:</p>
26
+ <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">mkdir my-agent-mesh</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">cd my-agent-mesh</span><br></span></code></pre></div></div>
27
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-2-initialize-the-project">Step 2: Initialize the Project<a href="#step-2-initialize-the-project" class="hash-link" aria-label="Direct link to Step 2: Initialize the Project" title="Direct link to Step 2: Initialize the Project">​</a></h3>
28
+ <p>Run the <a href="/solace-agent-mesh/docs/documentation/components/cli"><code>init</code></a> command and follow the prompts to create your project:</p>
29
+ <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">solace-agent-mesh init</span><br></span></code></pre></div></div>
30
+ <p>During initialization, you can choose to configure your project directly in the terminal or through a web-based interface launched at <code>http://127.0.0.1:5002</code>. You are asked for your preference when you run <a href="/solace-agent-mesh/docs/documentation/components/cli"><code>solace-agent-mesh init</code></a>.</p>
31
+ <h4 class="anchor anchorWithStickyNavbar_LWe7" id="web-based-configuration">Web-Based Configuration<a href="#web-based-configuration" class="hash-link" aria-label="Direct link to Web-Based Configuration" title="Direct link to Web-Based Configuration">​</a></h4>
32
+ <p>To skip the prompt and directly open the web-based configuration interface, use the <code>--gui</code> flag:</p>
33
+ <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">solace-agent-mesh init --gui</span><br></span></code></pre></div></div>
34
+ <p>The web-based interface provides an intuitive way to configure your project settings, including:</p>
35
+ <ul>
36
+ <li>AI model selection and configuration</li>
37
+ <li>Solace event broker setup</li>
38
+ <li>Gateway configuration</li>
39
+ <li>Environment variable management</li>
40
+ </ul>
41
+ <h4 class="anchor anchorWithStickyNavbar_LWe7" id="command-line-configuration">Command-Line Configuration<a href="#command-line-configuration" class="hash-link" aria-label="Direct link to Command-Line Configuration" title="Direct link to Command-Line Configuration">​</a></h4>
42
+ <p>For automated setups or when you prefer command-line interaction, you can run the <a href="/solace-agent-mesh/docs/documentation/components/cli"><code>init</code></a> command in non-interactive mode by passing <code>--skip</code> and all other configurations as arguments.</p>
43
+ <p>To get a list of all available options, run:</p>
44
+ <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">solace-agent-mesh init --help</span><br></span></code></pre></div></div>
45
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-3-configure-ai-models">Step 3: Configure AI Models<a href="#step-3-configure-ai-models" class="hash-link" aria-label="Direct link to Step 3: Configure AI Models" title="Direct link to Step 3: Configure AI Models">​</a></h3>
46
+ <p>Understanding the model name format is important for proper configuration:</p>
47
+ <h4 class="anchor anchorWithStickyNavbar_LWe7" id="web-based-configuration-1">Web-Based Configuration<a href="#web-based-configuration-1" class="hash-link" aria-label="Direct link to Web-Based Configuration" title="Direct link to Web-Based Configuration">​</a></h4>
48
+ <p>When using the web interface:</p>
49
+ <ol>
50
+ <li>Select the LLM Provider first</li>
51
+ <li>Supported models are populated under LLM Model Name</li>
52
+ <li>If you&#x27;re using a non-OpenAI model hosted on a custom API that follows OpenAI standards (like Ollama or LiteLLM), select the <code>OpenAI Compatible Provider</code></li>
53
+ </ol>
54
+ <h4 class="anchor anchorWithStickyNavbar_LWe7" id="command-line-configuration-1">Command-Line Configuration<a href="#command-line-configuration-1" class="hash-link" aria-label="Direct link to Command-Line Configuration" title="Direct link to Command-Line Configuration">​</a></h4>
55
+ <p>When using the CLI, you must explicitly specify the model in the format <code>provider/name</code>. For example:</p>
56
+ <ul>
57
+ <li><code>openai/gpt-4o</code></li>
58
+ <li><code>anthropic/claude-3-sonnet-20240229</code></li>
59
+ </ul>
60
+ <p>If you&#x27;re using a non-OpenAI model hosted on a custom API that follows OpenAI standards, you can still use the <code>openai</code> provider. For example: <code>openai/llama-3.3-7b</code></p>
61
+ <p>This format applies to all model types, including LLMs, image generators, and embedding models.</p>
62
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="docker-alternative-for-initialization">Docker Alternative for Initialization<a href="#docker-alternative-for-initialization" class="hash-link" aria-label="Direct link to Docker Alternative for Initialization" title="Direct link to Docker Alternative for Initialization">​</a></h3>
63
+ <p>You can also initialize your Agent Mesh project using the official Docker image. This approach is helpful if you want to avoid local Python/Agent Mesh CLI installation or prefer a containerized workflow.</p>
64
+ <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">docker run --rm -it -v &quot;$(pwd):/app&quot; --platform linux/amd64 -p 5002:5002 solace/solace-agent-mesh:latest init --gui</span><br></span></code></pre></div></div>
65
+ <p><strong>Important Considerations for Docker Initialization</strong>:</p>
66
+ <ul>
67
+ <li>If your host OS architecture is not <code>linux/amd64</code>, you must add <code>--platform linux/amd64</code> when you run the container</li>
68
+ <li>For Broker Setup, do not select the Broker Type <code>New local Solace broker container</code>. This option is incompatible with Docker deployments because the <code>Download and Run Container</code> action attempts to download a container image from within the already running container, which causes the operation to fail</li>
69
+ </ul>
70
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="running-your-project">Running Your Project<a href="#running-your-project" class="hash-link" aria-label="Direct link to Running Your Project" title="Direct link to Running Your Project">​</a></h2>
71
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="local-execution">Local Execution<a href="#local-execution" class="hash-link" aria-label="Direct link to Local Execution" title="Direct link to Local Execution">​</a></h3>
72
+ <p>To run the project locally, use the <a href="/solace-agent-mesh/docs/documentation/components/cli"><code>run</code></a> command to execute all components in a single, multi-threaded application:</p>
73
+ <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">solace-agent-mesh run</span><br></span></code></pre></div></div>
74
+ <p>This command starts all configured agents and gateways, creating a complete agent mesh system.</p>
75
+ <p><strong>Environment Variables</strong>: By default, environment variables are loaded from your configuration file (typically a <code>.env</code> file at the project root). To use system environment variables instead, use the <code>-u</code> or <code>--system-env</code> option.</p>
76
+ <p><strong>Component Separation</strong>: While the <a href="/solace-agent-mesh/docs/documentation/components/cli"><code>run</code></a> command executes all components together, it&#x27;s possible to split components into separate processes. See the <a href="/solace-agent-mesh/docs/documentation/deploying/">deployment guide</a> for more information about advanced deployment options.</p>
77
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="docker-execution">Docker Execution<a href="#docker-execution" class="hash-link" aria-label="Direct link to Docker Execution" title="Direct link to Docker Execution">​</a></h3>
78
+ <p>You can also run your Agent Mesh project using the official Docker image:</p>
79
+ <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">docker run --rm -it -v &quot;$(pwd):/app&quot; --platform linux/amd64 -p 8000:8000 solace/solace-agent-mesh:latest run</span><br></span></code></pre></div></div>
80
+ <p><strong>Platform Compatibility</strong>: If your host system architecture is not <code>linux/amd64</code>, add the <code>--platform linux/amd64</code> flag when you run the container.</p>
81
+ <h4 class="anchor anchorWithStickyNavbar_LWe7" id="docker-configuration-requirements">Docker Configuration Requirements<a href="#docker-configuration-requirements" class="hash-link" aria-label="Direct link to Docker Configuration Requirements" title="Direct link to Docker Configuration Requirements">​</a></h4>
82
+ <p>For deployments that use the official Docker image, ensure the following:</p>
83
+ <ul>
84
+ <li><strong>Do not use a local Solace event broker container</strong> - This configuration is incompatible with Docker deployments</li>
85
+ <li><strong>Set <code>FASTAPI_HOST=&quot;0.0.0.0&quot;</code></strong> in your <code>.env</code> file or system environment variables. This setting is necessary to expose the FastAPI server to the host machine</li>
86
+ </ul>
87
+ <h4 class="anchor anchorWithStickyNavbar_LWe7" id="using-custom-dependencies-with-docker">Using Custom Dependencies with Docker<a href="#using-custom-dependencies-with-docker" class="hash-link" aria-label="Direct link to Using Custom Dependencies with Docker" title="Direct link to Using Custom Dependencies with Docker">​</a></h4>
88
+ <p>If you are using third-party Python packages or Agent Mesh plugins, you need to build a custom Docker image based on the official image:</p>
89
+ <div class="language-Dockerfile language-dockerfile codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-dockerfile codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">FROM solace/solace-agent-mesh:latest</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Option 1: Install a specific package</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">RUN python3.11 -m pip install --no-cache-dir &lt;your-package&gt;</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"># Option 2: use a requirements.txt file</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">COPY requirements.txt .</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">RUN python3.11 -m pip install --no-cache-dir -r requirements.txt</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">ENTRYPOINT [&quot;solace-agent-mesh&quot;]</span><br></span></code></pre></div></div>
90
+ <p>Then build and run your custom image:</p>
91
+ <div class="language-sh codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-sh codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">docker build --platform linux/amd64 -t my-custom-image .</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">docker run --rm -it -v &quot;$(pwd):/app&quot; --platform linux/amd64 -p 8000:8000 my-custom-image run</span><br></span></code></pre></div></div>
92
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="interacting-with-your-agent-mesh">Interacting with Your Agent Mesh<a href="#interacting-with-your-agent-mesh" class="hash-link" aria-label="Direct link to Interacting with Your Agent Mesh" title="Direct link to Interacting with Your Agent Mesh">​</a></h2>
93
+ <p>Agent Mesh supports multiple gateway interfaces for communication, including REST, Web UI, Slack, MS Teams, and more. The web interface provides the most straightforward way to get started.</p>
94
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="accessing-the-web-interface">Accessing the Web Interface<a href="#accessing-the-web-interface" class="hash-link" aria-label="Direct link to Accessing the Web Interface" title="Direct link to Accessing the Web Interface">​</a></h3>
95
+ <ol>
96
+ <li><strong>Navigate to the Interface</strong>: Open <code>http://localhost:8000</code> in your web browser</li>
97
+ <li><strong>Custom Ports</strong>: If you specified a different port during initialization, use that port instead</li>
98
+ <li><strong>Docker Port Mappings</strong>: For Docker deployments with custom port mappings (using the <code>-p</code> flag), use the host port specified in your port mapping configuration</li>
99
+ </ol>
100
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="testing-your-setup">Testing Your Setup<a href="#testing-your-setup" class="hash-link" aria-label="Direct link to Testing Your Setup" title="Direct link to Testing Your Setup">​</a></h3>
101
+ <p>Try some example commands to verify your agent mesh is working correctly:</p>
102
+ <ul>
103
+ <li>&quot;Suggest some good outdoor activities in London given the season and current weather conditions&quot;</li>
104
+ <li>&quot;Help me plan a project timeline for a software development project&quot;</li>
105
+ <li>&quot;Analyze the latest trends in artificial intelligence&quot;</li>
106
+ </ul>
107
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="understanding-your-system">Understanding Your System<a href="#understanding-your-system" class="hash-link" aria-label="Direct link to Understanding Your System" title="Direct link to Understanding Your System">​</a></h2>
108
+ <p>Your Agent Mesh project consists of two main types of components:</p>
109
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="agents">Agents<a href="#agents" class="hash-link" aria-label="Direct link to Agents" title="Direct link to Agents">​</a></h3>
110
+ <p>AI-powered components that perform specific tasks and can communicate with each other. Your system includes:</p>
111
+ <ul>
112
+ <li><strong>Built-in orchestrator agent</strong>: Coordinates tasks and manages communication between other agents</li>
113
+ <li><strong>Custom agents</strong>: Any additional agents you configure for specific domains or tasks</li>
114
+ </ul>
115
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="gateways">Gateways<a href="#gateways" class="hash-link" aria-label="Direct link to Gateways" title="Direct link to Gateways">​</a></h3>
116
+ <p>Interface components that allow external systems and users to interact with the agent mesh:</p>
117
+ <ul>
118
+ <li><strong>Web user interface gateway</strong>: Provides the browser-based interface you enabled during initialization</li>
119
+ <li><strong>Additional gateways</strong>: REST APIs, Slack integrations, or other interfaces you configure</li>
120
+ </ul>
121
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="next-steps">Next Steps<a href="#next-steps" class="hash-link" aria-label="Direct link to Next Steps" title="Direct link to Next Steps">​</a></h2>
122
+ <p>Now that you have a working Agent Mesh project, you can:</p>
123
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="extend-your-system">Extend Your System<a href="#extend-your-system" class="hash-link" aria-label="Direct link to Extend Your System" title="Direct link to Extend Your System">​</a></h3>
124
+ <ul>
125
+ <li><strong>Add new agents</strong>: Learn about <a href="/solace-agent-mesh/docs/documentation/developing/create-agents">creating your own agents</a> for specific domains</li>
126
+ <li><strong>Configure additional gateways</strong>: Explore <a href="/solace-agent-mesh/docs/documentation/developing/create-gateways">creating new gateways</a> for different interfaces</li>
127
+ <li><strong>Use plugins</strong>: Discover how to <a href="/solace-agent-mesh/docs/documentation/components/plugins#use-a-plugin">use existing plugins</a> to extend functionality</li>
128
+ </ul>
129
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="learn-more">Learn More<a href="#learn-more" class="hash-link" aria-label="Direct link to Learn More" title="Direct link to Learn More">​</a></h3>
130
+ <ul>
131
+ <li><strong>Understand agents</strong>: Deep dive into <a href="/solace-agent-mesh/docs/documentation/components/agents">how agents work</a></li>
132
+ <li><strong>Explore gateways</strong>: Learn more about <a href="/solace-agent-mesh/docs/documentation/components/gateways">gateway types and configuration</a></li>
133
+ <li><strong>CLI commands</strong>: Discover additional <a href="/solace-agent-mesh/docs/documentation/components/cli">CLI capabilities</a></li>
134
+ </ul>
135
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="try-tutorials">Try Tutorials<a href="#try-tutorials" class="hash-link" aria-label="Direct link to Try Tutorials" title="Direct link to Try Tutorials">​</a></h3>
136
+ <ul>
137
+ <li><strong>SQL Database Integration</strong>: Follow the tutorial on adding an <a href="/solace-agent-mesh/docs/documentation/developing/tutorials/sql-database">SQL database agent</a></li>
138
+ <li><strong>Custom Integrations</strong>: Explore other integration tutorials in the user guide</li>
139
+ </ul>
140
+ <p>To learn more about CLI commands and advanced configuration options, see the <a href="/solace-agent-mesh/docs/documentation/components/cli">CLI documentation</a>.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/installing-and-configuring/run-project.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/solace-agent-mesh/docs/documentation/installing-and-configuring/installation"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Installing Agent Mesh</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/solace-agent-mesh/docs/documentation/installing-and-configuring/configurations"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Configuring Agent Mesh</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#create-your-project" class="table-of-contents__link toc-highlight">Create Your Project</a><ul><li><a href="#step-1-set-up-project-directory" class="table-of-contents__link toc-highlight">Step 1: Set Up Project Directory</a></li><li><a href="#step-2-initialize-the-project" class="table-of-contents__link toc-highlight">Step 2: Initialize the Project</a></li><li><a href="#step-3-configure-ai-models" class="table-of-contents__link toc-highlight">Step 3: Configure AI Models</a></li><li><a href="#docker-alternative-for-initialization" class="table-of-contents__link toc-highlight">Docker Alternative for Initialization</a></li></ul></li><li><a href="#running-your-project" class="table-of-contents__link toc-highlight">Running Your Project</a><ul><li><a href="#local-execution" class="table-of-contents__link toc-highlight">Local Execution</a></li><li><a href="#docker-execution" class="table-of-contents__link toc-highlight">Docker Execution</a></li></ul></li><li><a href="#interacting-with-your-agent-mesh" class="table-of-contents__link toc-highlight">Interacting with Your Agent Mesh</a><ul><li><a href="#accessing-the-web-interface" class="table-of-contents__link toc-highlight">Accessing the Web Interface</a></li><li><a href="#testing-your-setup" class="table-of-contents__link toc-highlight">Testing Your Setup</a></li></ul></li><li><a href="#understanding-your-system" class="table-of-contents__link toc-highlight">Understanding Your System</a><ul><li><a href="#agents" class="table-of-contents__link toc-highlight">Agents</a></li><li><a href="#gateways" class="table-of-contents__link toc-highlight">Gateways</a></li></ul></li><li><a href="#next-steps" class="table-of-contents__link toc-highlight">Next Steps</a><ul><li><a href="#extend-your-system" class="table-of-contents__link toc-highlight">Extend Your System</a></li><li><a href="#learn-more" class="table-of-contents__link toc-highlight">Learn More</a></li><li><a href="#try-tutorials" class="table-of-contents__link toc-highlight">Try Tutorials</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Solace Agent Mesh</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/solace-agent-mesh/docs/documentation/getting-started">Documentation</a></li><li class="footer__item"><a href="https://github.com/SolaceLabs/solace-agent-mesh/" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/SolaceLabs/solace-agent-mesh-core-plugins/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Official Plugins<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Company</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://solace.com/products/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Products<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://solace.com/contact/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contact<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://solace.com/support/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Support<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://solace.com/legal/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Privacy and Legal<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/company/solacedotcom/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/SolaceLabs" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://www.youtube.com/SolaceSystems" target="_blank" rel="noopener noreferrer" class="footer__link-item">YouTube<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://twitter.com/solacedotcom" target="_blank" rel="noopener noreferrer" class="footer__link-item">X<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/solace-agent-mesh/img/solace-logo.png" alt="Solace Logo" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width="10%" height="10%"><img src="/solace-agent-mesh/img/solace-logo.png" alt="Solace Logo" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width="10%" height="10%"></div><div class="footer__copyright">Solace Agent Mesh. Copyright © 2025 Solace. Version: 1.5.1</div></div></div></footer></div>
141
+ </body>
142
+ </html>
@@ -0,0 +1,100 @@
1
+ <!doctype html>
2
+ <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0" data-has-hydrated="false">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="generator" content="Docusaurus v3.8.1">
6
+ <title data-rh="true">Migration Guide: Upgrading to the A2A SDK | Solace Agent Mesh</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://solacelabs.github.io/solace-agent-mesh/img/logo.png"><meta data-rh="true" name="twitter:image" content="https://solacelabs.github.io/solace-agent-mesh/img/logo.png"><meta data-rh="true" property="og:url" content="https://solacelabs.github.io/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Migration Guide: Upgrading to the A2A SDK | Solace Agent Mesh"><meta data-rh="true" name="description" content="This guide is for developers who have built or are maintaining a custom Agent Mesh gateway. A recent architectural update has aligned Agent Mesh with the official Agent-to-Agent (A2A) protocol specification by adopting the a2a-sdk. This migration requires some changes to your gateway code to ensure compatibility."><meta data-rh="true" property="og:description" content="This guide is for developers who have built or are maintaining a custom Agent Mesh gateway. A recent architectural update has aligned Agent Mesh with the official Agent-to-Agent (A2A) protocol specification by adopting the a2a-sdk. This migration requires some changes to your gateway code to ensure compatibility."><link data-rh="true" rel="icon" href="/solace-agent-mesh/img/logo.png"><link data-rh="true" rel="canonical" href="https://solacelabs.github.io/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0"><link data-rh="true" rel="alternate" href="https://solacelabs.github.io/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0" hreflang="en"><link data-rh="true" rel="alternate" href="https://solacelabs.github.io/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Migration Guide: Upgrading to the A2A SDK","item":"https://solacelabs.github.io/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0"}]}</script><link rel="stylesheet" href="/solace-agent-mesh/assets/css/styles.906a1503.css">
7
+ <script src="/solace-agent-mesh/assets/js/runtime~main.18dc45dd.js" defer="defer"></script>
8
+ <script src="/solace-agent-mesh/assets/js/main.bd3c34f3.js" defer="defer"></script>
9
+ </head>
10
+ <body class="navigation-with-keyboard">
11
+ <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
12
+ <symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
13
+ </defs></svg>
14
+ <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/solace-agent-mesh/img/logo.png"><link rel="preload" as="image" href="/solace-agent-mesh/img/solace-logo.png"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/solace-agent-mesh/docs/documentation/getting-started"><div class="navbar__logo"><img src="/solace-agent-mesh/img/logo.png" alt="Solace Agent Mesh Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/solace-agent-mesh/img/logo.png" alt="Solace Agent Mesh Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">Solace Agent Mesh</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/solace-agent-mesh/docs/documentation/getting-started/">Documentation</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/SolaceLabs/solace-agent-mesh/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"><div class="navbar__search"><span aria-label="expand searchbar" role="button" class="search-icon" tabindex="0"></span><input id="search_input_react" type="search" placeholder="Loading..." aria-label="Search" class="navbar__search-input search-bar" disabled=""></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/getting-started/">Getting Started</a><button aria-label="Collapse sidebar category &#x27;Getting Started&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/getting-started/introduction">What is Agent Mesh?</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/getting-started/try-agent-mesh">Try Agent Mesh</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/getting-started/architecture">Architecture Overview</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/components/">Components</a><button aria-label="Expand sidebar category &#x27;Components&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/installing-and-configuring/">Installing and Configuring Agent Mesh</a><button aria-label="Expand sidebar category &#x27;Installing and Configuring Agent Mesh&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/developing/">Developing with Agent Mesh</a><button aria-label="Expand sidebar category &#x27;Developing with Agent Mesh&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/deploying/">Deploying Agent Mesh</a><button aria-label="Expand sidebar category &#x27;Deploying Agent Mesh&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" href="/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0">Migrations</a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role="button" aria-expanded="true" tabindex="0" href="/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0">A2A Upgrade to 0.3.0</a></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0">Migration Guide: Upgrading to the A2A SDK</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map">A2A Technical Migration Map</a></li></ul></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/solace-agent-mesh/docs/documentation/enterprise/">Agent Mesh Enterprise</a><button aria-label="Expand sidebar category &#x27;Agent Mesh Enterprise&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><span class="breadcrumbs__link">Migrations</span></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">A2A Upgrade to 0.3.0</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Migration Guide: Upgrading to the A2A SDK</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Migration Guide: Upgrading to the A2A SDK</h1></header><p>This guide is for developers who have built or are maintaining a custom Agent Mesh gateway. A recent architectural update has aligned Agent Mesh with the official Agent-to-Agent (A2A) protocol specification by adopting the <code>a2a-sdk</code>. This migration requires some changes to your gateway code to ensure compatibility.</p>
15
+ <p>This document provides a high-level overview of the conceptual changes and a practical checklist to guide you through the upgrade process.</p>
16
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="why-the-change">Why the Change?<a href="#why-the-change" class="hash-link" aria-label="Direct link to Why the Change?" title="Direct link to Why the Change?">​</a></h2>
17
+ <p>The migration from our legacy A2A implementation to the official <code>a2a-sdk</code> is a foundational improvement with several key benefits:</p>
18
+ <ul>
19
+ <li><strong>Protocol Compliance:</strong> Ensures your gateway is fully interoperable with any A2A-compliant agent or system.</li>
20
+ <li><strong>Standardization:</strong> Replaces bespoke code with a community-supported standard, reducing technical debt.</li>
21
+ <li><strong>Improved Maintainability:</strong> Insulates your gateway from future A2A specification changes. The <code>a2a-sdk</code> will be updated, not your core logic.</li>
22
+ <li><strong>Future-Proofing:</strong> Positions your gateway to easily adopt new features as the A2A protocol evolves.</li>
23
+ </ul>
24
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="core-conceptual-changes">Core Conceptual Changes<a href="#core-conceptual-changes" class="hash-link" aria-label="Direct link to Core Conceptual Changes" title="Direct link to Core Conceptual Changes">​</a></h2>
25
+ <p>The upgrade introduces a few key changes in how you interact with A2A objects.</p>
26
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="the-a2a-helper-layer-the-new-best-practice">The <code>a2a</code> Helper Layer: The New Best Practice<a href="#the-a2a-helper-layer-the-new-best-practice" class="hash-link" aria-label="Direct link to the-a2a-helper-layer-the-new-best-practice" title="Direct link to the-a2a-helper-layer-the-new-best-practice">​</a></h3>
27
+ <p>The most significant change is the introduction of a new abstraction layer located at <code>solace_agent_mesh.common.a2a</code>.</p>
28
+ <p>You should <strong>no longer instantiate <code>a2a.types</code> models directly</strong> or access their properties by hand. Instead, use the provided helper functions. This layer is designed to simplify development and protect your code from future SDK changes.</p>
29
+ <p><strong>Example:</strong></p>
30
+ <div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># BEFORE: Direct instantiation and property access</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> solace_agent_mesh</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">common</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">types </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> TextPart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> Task</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">my_part </span><span class="token operator">=</span><span class="token plain"> TextPart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">text</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Hello&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">task_id </span><span class="token operator">=</span><span class="token plain"> my_task</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token builtin" style="color:rgb(189, 147, 249)">id</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)"># AFTER: Using the a2a helper layer</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> solace_agent_mesh</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">common </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> a2a</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">my_part </span><span class="token operator">=</span><span class="token plain"> a2a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">create_text_part</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">text</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Hello&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">task_id </span><span class="token operator">=</span><span class="token plain"> a2a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">get_task_id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">my_task</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span></code></pre></div></div>
31
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="type-system-migration">Type System Migration<a href="#type-system-migration" class="hash-link" aria-label="Direct link to Type System Migration" title="Direct link to Type System Migration">​</a></h3>
32
+ <ul>
33
+ <li>The legacy types in <code>solace_agent_mesh.common.types</code> (like <code>A2APart</code>, <code>FileContent</code>) are deprecated.</li>
34
+ <li>All A2A models now come from the <code>a2a.types</code> library.</li>
35
+ <li>The type hint for a list of message parts has changed from <code>List[A2APart]</code> to <code>List[ContentPart]</code>. <code>ContentPart</code> is a simple alias for the union of <code>TextPart</code>, <code>DataPart</code>, and <code>FilePart</code>.</li>
36
+ </ul>
37
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="accessing-object-properties">Accessing Object Properties<a href="#accessing-object-properties" class="hash-link" aria-label="Direct link to Accessing Object Properties" title="Direct link to Accessing Object Properties">​</a></h3>
38
+ <p>Field names on many A2A objects have changed. Always use the <code>a2a</code> helper functions for safe and future-proof access.</p>
39
+ <table><thead><tr><th style="text-align:left">Action</th><th style="text-align:left">Old Pattern</th><th style="text-align:left">New Pattern (Recommended)</th></tr></thead><tbody><tr><td style="text-align:left">Get Task ID</td><td style="text-align:left"><code>task.id</code></td><td style="text-align:left"><code>a2a.get_task_id(task)</code></td></tr><tr><td style="text-align:left">Get Task Status</td><td style="text-align:left"><code>task.status.state</code></td><td style="text-align:left"><code>a2a.get_task_status(task)</code></td></tr><tr><td style="text-align:left">Get Event&#x27;s Task ID</td><td style="text-align:left"><code>event.id</code></td><td style="text-align:left"><code>event.task_id</code></td></tr><tr><td style="text-align:left">Get Message Parts</td><td style="text-align:left"><code>message.parts</code></td><td style="text-align:left"><code>a2a.get_parts_from_message(message)</code></td></tr><tr><td style="text-align:left">Get Error Message</td><td style="text-align:left"><code>error.message</code></td><td style="text-align:left"><code>a2a.get_error_message(error)</code></td></tr><tr><td style="text-align:left">Get Error Code</td><td style="text-align:left"><code>error.code</code></td><td style="text-align:left"><code>a2a.get_error_code(error)</code></td></tr><tr><td style="text-align:left">Get Error Data</td><td style="text-align:left"><code>error.data</code></td><td style="text-align:left"><code>a2a.get_error_data(error)</code></td></tr></tbody></table>
40
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="changes-to-basegatewaycomponent">Changes to <code>BaseGatewayComponent</code><a href="#changes-to-basegatewaycomponent" class="hash-link" aria-label="Direct link to changes-to-basegatewaycomponent" title="Direct link to changes-to-basegatewaycomponent">​</a></h3>
41
+ <p>The <code>BaseGatewayComponent</code> has been significantly improved. It now handles more of the A2A protocol complexity, simplifying gateway implementations.</p>
42
+ <ul>
43
+ <li><strong>Artifact Handling:</strong> The base class can now automatically handle artifact URIs, converting them to embedded bytes before sending them to your gateway&#x27;s <code>_send_...</code> methods. This is controlled by the <code>resolve_artifact_uris_in_gateway</code> parameter in the constructor.</li>
44
+ <li><strong>Message Publishing:</strong> The base class now manages the details of preparing and publishing the A2A request message in <code>submit_a2a_task</code>.</li>
45
+ <li><strong>Asynchronous Model:</strong> The underlying threading model has been removed in favor of a more direct <code>asyncio</code> implementation, simplifying the component lifecycle.</li>
46
+ </ul>
47
+ <p>It is highly recommended to review the latest <code>BaseGatewayComponent</code> and re-base your custom gateway on it to inherit these benefits and reduce boilerplate code.</p>
48
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="migration-checklist">Migration Checklist<a href="#migration-checklist" class="hash-link" aria-label="Direct link to Migration Checklist" title="Direct link to Migration Checklist">​</a></h2>
49
+ <p>Follow these steps to update your gateway code.</p>
50
+ <ol>
51
+ <li>
52
+ <p><strong>Update Imports:</strong></p>
53
+ <ul>
54
+ <li>Remove imports from <code>solace_agent_mesh.common.types</code>.</li>
55
+ <li>Add imports from <code>a2a.types</code> for specific models if needed.</li>
56
+ <li>Add <code>from solace_agent_mesh.common import a2a</code>.</li>
57
+ <li>Add <code>from solace_agent_mesh.common.a2a import ContentPart</code>.</li>
58
+ </ul>
59
+ </li>
60
+ <li>
61
+ <p><strong>Update Type Hints:</strong></p>
62
+ <ul>
63
+ <li>Find all instances of <code>List[A2APart]</code> and change them to <code>List[ContentPart]</code>.</li>
64
+ </ul>
65
+ </li>
66
+ <li>
67
+ <p><strong>Refactor Object Creation:</strong></p>
68
+ <ul>
69
+ <li>Replace direct model instantiation like <code>TextPart(...)</code> or <code>FilePart(...)</code> with their corresponding helper functions: <code>a2a.create_text_part(...)</code>, <code>a2a.create_file_part_from_uri(...)</code>, etc.</li>
70
+ </ul>
71
+ </li>
72
+ <li>
73
+ <p><strong>Refactor Property Access:</strong></p>
74
+ <ul>
75
+ <li>Replace direct property access (<code>task.id</code>, <code>error.message</code>) with calls to the <code>a2a</code> helper functions (<code>a2a.get_task_id(task)</code>, <code>a2a.get_error_message(error)</code>).</li>
76
+ </ul>
77
+ </li>
78
+ <li>
79
+ <p><strong>Review Base Class Integration:</strong></p>
80
+ <ul>
81
+ <li>If you have a custom gateway, compare it against the latest <code>BaseGatewayComponent</code>. Consider refactoring to delegate more responsibility (like artifact handling and message submission) to the base class.</li>
82
+ </ul>
83
+ </li>
84
+ <li>
85
+ <p><strong>Test Thoroughly:</strong></p>
86
+ <ul>
87
+ <li>Once refactored, run your integration tests to ensure the gateway correctly translates inputs and processes outputs in the new format.</li>
88
+ </ul>
89
+ </li>
90
+ </ol>
91
+ <h2 class="anchor anchorWithStickyNavbar_LWe7" id="code-examples-before--after">Code Examples: Before &amp; After<a href="#code-examples-before--after" class="hash-link" aria-label="Direct link to Code Examples: Before &amp; After" title="Direct link to Code Examples: Before &amp; After">​</a></h2>
92
+ <p>Here are some common patterns you will encounter during the migration.</p>
93
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="example-1-translating-external-input">Example 1: Translating External Input<a href="#example-1-translating-external-input" class="hash-link" aria-label="Direct link to Example 1: Translating External Input" title="Direct link to Example 1: Translating External Input">​</a></h3>
94
+ <p>This example shows how to create A2A parts from an external event.</p>
95
+ <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary><strong>_translate_external_input</strong></summary><div><div class="collapsibleContent_i85q"><p><strong>Before:</strong></p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> solace_agent_mesh</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">common</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">types </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> Part </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">as</span><span class="token plain"> A2APart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> TextPart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> FilePart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> FileContent</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">_translate_external_input</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> external_event</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> Any</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token plain"> Tuple</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token builtin" style="color:rgb(189, 147, 249)">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> List</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">A2APart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> Dict</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token builtin" style="color:rgb(189, 147, 249)">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> Any</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> a2a_parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> List</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">A2APart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Create a file part with a URI</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> uri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;artifact://...&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> a2a_parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">append</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> FilePart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token builtin" style="color:rgb(189, 147, 249)">file</span><span class="token operator">=</span><span class="token plain">FileContent</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">name</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;report.pdf&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> uri</span><span class="token operator">=</span><span class="token plain">uri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Create a text part</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> prompt </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Summarize the attached file.&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> a2a_parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">append</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">TextPart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">text</span><span class="token operator">=</span><span class="token plain">prompt</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;summary_agent&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> a2a_parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div><p><strong>After:</strong></p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> solace_agent_mesh</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">common </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> a2a</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> solace_agent_mesh</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">common</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">a2a </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> ContentPart</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">_translate_external_input</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> external_event</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> Any</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token plain"> Tuple</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token builtin" style="color:rgb(189, 147, 249)">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> List</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">ContentPart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> Dict</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token builtin" style="color:rgb(189, 147, 249)">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> Any</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> a2a_parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> List</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">ContentPart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> </span><span class="token operator">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Create a file part with a URI using the helper</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> uri </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;artifact://...&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> file_part </span><span class="token operator">=</span><span class="token plain"> a2a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">create_file_part_from_uri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">uri</span><span class="token operator">=</span><span class="token plain">uri</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> name</span><span class="token operator">=</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;report.pdf&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> a2a_parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">append</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">file_part</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Create a text part using the helper</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> prompt </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Summarize the attached file.&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> text_part </span><span class="token operator">=</span><span class="token plain"> a2a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">create_text_part</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">text</span><span class="token operator">=</span><span class="token plain">prompt</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> a2a_parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">append</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">text_part</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">return</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;summary_agent&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> a2a_parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><br></span></code></pre></div></div></div></div></details>
96
+ <h3 class="anchor anchorWithStickyNavbar_LWe7" id="example-2-sending-a-final-response">Example 2: Sending a Final Response<a href="#example-2-sending-a-final-response" class="hash-link" aria-label="Direct link to Example 2: Sending a Final Response" title="Direct link to Example 2: Sending a Final Response">​</a></h3>
97
+ <p>This example shows how to process a final <code>Task</code> object.</p>
98
+ <details class="details_lb9f alert alert--info details_b_Ee" data-collapsed="true"><summary><strong>_send_final_response_to_external</strong></summary><div><div class="collapsibleContent_i85q"><p><strong>Before:</strong></p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> solace_agent_mesh</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">common</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">types </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> Task</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> TaskState</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> TextPart</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">_send_final_response_to_external</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> Dict</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> Task</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> task_id </span><span class="token operator">=</span><span class="token plain"> task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token builtin" style="color:rgb(189, 147, 249)">id</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> final_status_text </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;:checkered_flag: Task complete.&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">status</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">state </span><span class="token operator">==</span><span class="token plain"> TaskState</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">FAILED</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> error_message_text </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">status</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">message </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">and</span><span class="token plain"> task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">status</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">message</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> part </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">in</span><span class="token plain"> task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">status</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">message</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">parts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> </span><span class="token builtin" style="color:rgb(189, 147, 249)">isinstance</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">part</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> TextPart</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> error_message_text </span><span class="token operator">=</span><span class="token plain"> part</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">text</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">break</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> final_status_text </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-interpolation string" style="color:rgb(255, 121, 198)">f&quot;:x: Error: Task failed. </span><span class="token string-interpolation interpolation punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string-interpolation interpolation">error_message_text</span><span class="token string-interpolation interpolation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token string-interpolation string" style="color:rgb(255, 121, 198)">&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">strip</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ... use final_status_text and task_id</span><br></span></code></pre></div></div><p><strong>After:</strong></p><div class="language-python codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-python codeBlock_bY9V thin-scrollbar" style="color:#F8F8F2;background-color:#282A36"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> solace_agent_mesh</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">common </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> a2a</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">from</span><span class="token plain"> a2a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">types </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">import</span><span class="token plain"> Task</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> TaskState</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">async</span><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">def</span><span class="token plain"> </span><span class="token function" style="color:rgb(80, 250, 123)">_send_final_response_to_external</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">self</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> context</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> Dict</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"> Task</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token plain"> </span><span class="token boolean">None</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Use helpers to safely access properties</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> task_id </span><span class="token operator">=</span><span class="token plain"> a2a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">get_task_id</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> task_status </span><span class="token operator">=</span><span class="token plain"> a2a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">get_task_status</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> final_status_text </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;:checkered_flag: Task complete.&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> task_status </span><span class="token operator">==</span><span class="token plain"> TaskState</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">failed</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> error_message_text </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">if</span><span class="token plain"> task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">status </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">and</span><span class="token plain"> task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">status</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">message</span><span class="token punctuation" style="color:rgb(248, 248, 242)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># Use helper to extract all text from the message</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> error_message_text </span><span class="token operator">=</span><span class="token plain"> a2a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">get_text_from_message</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">task_data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">status</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">message</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> final_status_text </span><span class="token operator">=</span><span class="token plain"> </span><span class="token string-interpolation string" style="color:rgb(255, 121, 198)">f&quot;:x: Error: Task failed. </span><span class="token string-interpolation interpolation punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string-interpolation interpolation">error_message_text</span><span class="token string-interpolation interpolation punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token string-interpolation string" style="color:rgb(255, 121, 198)">&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token plain">strip</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)"># ... use final_status_text and task_id</span><br></span></code></pre></div></div></div></div></details></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/migrations/a2a-upgrade/a2a-gateway-upgrade-to-0.3.0.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/solace-agent-mesh/docs/documentation/deploying/debugging"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Diagnosing and Resolving Problems</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/solace-agent-mesh/docs/documentation/migrations/a2a-upgrade/a2a-technical-migration-map"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">A2A Technical Migration Map</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#why-the-change" class="table-of-contents__link toc-highlight">Why the Change?</a></li><li><a href="#core-conceptual-changes" class="table-of-contents__link toc-highlight">Core Conceptual Changes</a><ul><li><a href="#the-a2a-helper-layer-the-new-best-practice" class="table-of-contents__link toc-highlight">The <code>a2a</code> Helper Layer: The New Best Practice</a></li><li><a href="#type-system-migration" class="table-of-contents__link toc-highlight">Type System Migration</a></li><li><a href="#accessing-object-properties" class="table-of-contents__link toc-highlight">Accessing Object Properties</a></li><li><a href="#changes-to-basegatewaycomponent" class="table-of-contents__link toc-highlight">Changes to <code>BaseGatewayComponent</code></a></li></ul></li><li><a href="#migration-checklist" class="table-of-contents__link toc-highlight">Migration Checklist</a></li><li><a href="#code-examples-before--after" class="table-of-contents__link toc-highlight">Code Examples: Before &amp; After</a><ul><li><a href="#example-1-translating-external-input" class="table-of-contents__link toc-highlight">Example 1: Translating External Input</a></li><li><a href="#example-2-sending-a-final-response" class="table-of-contents__link toc-highlight">Example 2: Sending a Final Response</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Solace Agent Mesh</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/solace-agent-mesh/docs/documentation/getting-started">Documentation</a></li><li class="footer__item"><a href="https://github.com/SolaceLabs/solace-agent-mesh/" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/SolaceLabs/solace-agent-mesh-core-plugins/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Official Plugins<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Company</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://solace.com/products/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Products<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://solace.com/contact/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Contact<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://solace.com/support/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Support<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://solace.com/legal/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Privacy and Legal<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.linkedin.com/company/solacedotcom/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/SolaceLabs" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://www.youtube.com/SolaceSystems" target="_blank" rel="noopener noreferrer" class="footer__link-item">YouTube<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://twitter.com/solacedotcom" target="_blank" rel="noopener noreferrer" class="footer__link-item">X<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><img src="/solace-agent-mesh/img/solace-logo.png" alt="Solace Logo" class="footer__logo themedComponent_mlkZ themedComponent--light_NVdE" width="10%" height="10%"><img src="/solace-agent-mesh/img/solace-logo.png" alt="Solace Logo" class="footer__logo themedComponent_mlkZ themedComponent--dark_xIcU" width="10%" height="10%"></div><div class="footer__copyright">Solace Agent Mesh. Copyright © 2025 Solace. Version: 1.5.1</div></div></div></footer></div>
99
+ </body>
100
+ </html>