solace-agent-mesh 1.4.6__py3-none-any.whl → 1.4.7__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 (91) hide show
  1. solace_agent_mesh/agent/adk/runner.py +24 -8
  2. solace_agent_mesh/agent/sac/component.py +14 -1
  3. solace_agent_mesh/assets/docs/404.html +3 -3
  4. solace_agent_mesh/assets/docs/assets/js/166ab619.bdddc63a.js +1 -0
  5. solace_agent_mesh/assets/docs/assets/js/{1c6e87d2.43771adc.js → 1c6e87d2.e056b7e0.js} +1 -1
  6. solace_agent_mesh/assets/docs/assets/js/483cef9a.4736f2d8.js +1 -0
  7. solace_agent_mesh/assets/docs/assets/js/{4c2787c2.fc6804f2.js → 4c2787c2.c1290a40.js} +1 -1
  8. solace_agent_mesh/assets/docs/assets/js/{5b4258a4.dff11eca.js → 5b4258a4.fdfd2325.js} +1 -1
  9. solace_agent_mesh/assets/docs/assets/js/{75384d09.abdf9cf9.js → 75384d09.1e7d7cb7.js} +1 -1
  10. solace_agent_mesh/assets/docs/assets/js/85387663.be2bc838.js +1 -0
  11. solace_agent_mesh/assets/docs/assets/js/945fb41e.16e00776.js +1 -0
  12. solace_agent_mesh/assets/docs/assets/js/a12a4955.25fbed32.js +1 -0
  13. solace_agent_mesh/assets/docs/assets/js/a3a92b25.6def8980.js +1 -0
  14. solace_agent_mesh/assets/docs/assets/js/ae0e903d.5fe5203f.js +1 -0
  15. solace_agent_mesh/assets/docs/assets/js/bac0be12.bf0181cf.js +1 -0
  16. solace_agent_mesh/assets/docs/assets/js/beecea0d.ce915979.js +1 -0
  17. solace_agent_mesh/assets/docs/assets/js/cee5d587.47904f5e.js +1 -0
  18. solace_agent_mesh/assets/docs/assets/js/f284c35a.525933db.js +1 -0
  19. solace_agent_mesh/assets/docs/assets/js/f897a61a.126663fe.js +1 -0
  20. solace_agent_mesh/assets/docs/assets/js/{fbfa3e75.aca209c9.js → fbfa3e75.e144b16c.js} +1 -1
  21. solace_agent_mesh/assets/docs/assets/js/main.11f9f9f3.js +2 -0
  22. solace_agent_mesh/assets/docs/assets/js/runtime~main.5922bcf0.js +1 -0
  23. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html +4 -4
  24. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/rbac-setup-guilde/index.html +201 -0
  25. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html +4 -4
  26. solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html +3 -3
  27. solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html +3 -3
  28. solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +3 -3
  29. solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +6 -6
  30. solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +3 -3
  31. solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +3 -3
  32. solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +3 -3
  33. solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +3 -3
  34. solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +4 -4
  35. solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +4 -4
  36. solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +5 -5
  37. solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +6 -6
  38. solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html +4 -4
  39. solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +3 -3
  40. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +5 -5
  41. solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +5 -5
  42. solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +3 -3
  43. solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +3 -3
  44. solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +6 -6
  45. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +3 -3
  46. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +3 -3
  47. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html +4 -4
  48. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +4 -4
  49. solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +3 -3
  50. solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +3 -3
  51. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +3 -3
  52. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +3 -3
  53. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +3 -3
  54. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +3 -3
  55. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +3 -3
  56. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +3 -3
  57. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +3 -3
  58. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-python-tools/index.html +3 -3
  59. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +3 -3
  60. solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +5 -5
  61. solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +6 -6
  62. solace_agent_mesh/assets/docs/lunr-index-1759151175744.json +1 -0
  63. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  64. solace_agent_mesh/assets/docs/search-doc-1759151175744.json +1 -0
  65. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  66. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  67. solace_agent_mesh/cli/__init__.py +1 -1
  68. solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py +112 -42
  69. solace_agent_mesh/gateway/http_sse/app.py +0 -28
  70. solace_agent_mesh/gateway/http_sse/main.py +29 -13
  71. {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/METADATA +1 -1
  72. {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/RECORD +76 -74
  73. solace_agent_mesh/assets/docs/assets/js/166ab619.e8f3a7c7.js +0 -1
  74. solace_agent_mesh/assets/docs/assets/js/483cef9a.8d318c2f.js +0 -1
  75. solace_agent_mesh/assets/docs/assets/js/85387663.6bf41934.js +0 -1
  76. solace_agent_mesh/assets/docs/assets/js/945fb41e.abf2be91.js +0 -1
  77. solace_agent_mesh/assets/docs/assets/js/a3a92b25.1d029b81.js +0 -1
  78. solace_agent_mesh/assets/docs/assets/js/ae0e903d.c786e887.js +0 -1
  79. solace_agent_mesh/assets/docs/assets/js/bac0be12.27ee2c26.js +0 -1
  80. solace_agent_mesh/assets/docs/assets/js/beecea0d.8bbd852c.js +0 -1
  81. solace_agent_mesh/assets/docs/assets/js/cee5d587.f1e1ca86.js +0 -1
  82. solace_agent_mesh/assets/docs/assets/js/f284c35a.2b2f5048.js +0 -1
  83. solace_agent_mesh/assets/docs/assets/js/f897a61a.bc634a3e.js +0 -1
  84. solace_agent_mesh/assets/docs/assets/js/main.72d74e33.js +0 -2
  85. solace_agent_mesh/assets/docs/assets/js/runtime~main.3dcfaf51.js +0 -1
  86. solace_agent_mesh/assets/docs/lunr-index-1758893005563.json +0 -1
  87. solace_agent_mesh/assets/docs/search-doc-1758893005563.json +0 -1
  88. /solace_agent_mesh/assets/docs/assets/js/{main.72d74e33.js.LICENSE.txt → main.11f9f9f3.js.LICENSE.txt} +0 -0
  89. {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/WHEEL +0 -0
  90. {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/entry_points.txt +0 -0
  91. {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/licenses/LICENSE +0 -0
@@ -12,7 +12,7 @@ solace_agent_mesh/agent/adk/embed_resolving_mcp_toolset.py,sha256=KXr9zY8GBt8FzY
12
12
  solace_agent_mesh/agent/adk/intelligent_mcp_callbacks.py,sha256=4h2riXiw6DqFi3VVRZ92w_YuQQJ_Du6iUgx3PRuzrb8,15839
13
13
  solace_agent_mesh/agent/adk/invocation_monitor.py,sha256=_20-nQXVjGlAEyw9PLFTTvgti-WgqyNE58LPUELUWnA,11671
14
14
  solace_agent_mesh/agent/adk/mcp_content_processor.py,sha256=8s3ytZ8qrKZCUt_u8aE_EHH1_01yewPoekkllCuz9ME,23850
15
- solace_agent_mesh/agent/adk/runner.py,sha256=CFpnWaNwpXBTZATBWDhmw4xJsMaFnjucqGbr0_HmqeE,12977
15
+ solace_agent_mesh/agent/adk/runner.py,sha256=Sw4gg0LBrsEjqAOGl0D3Zdars7SGrlgDtlZ5w4HK2q8,13430
16
16
  solace_agent_mesh/agent/adk/services.py,sha256=ZE53EHq1MhOwsaiR0nU9Zn-5qcPiovved5M2rpdJKaY,13089
17
17
  solace_agent_mesh/agent/adk/setup.py,sha256=xBu1lCcBLf6OV0GpJuEM1znO1o-0rWgUNFf36PkmFas,42588
18
18
  solace_agent_mesh/agent/adk/stream_parser.py,sha256=3i5rFN7dDVgjLvK4GG0PKYmxgIdtqKABfM9oTCouSZ0,8278
@@ -28,7 +28,7 @@ solace_agent_mesh/agent/protocol/event_handlers.py,sha256=qLpQoGsB_8ZazrFmGdPmmC
28
28
  solace_agent_mesh/agent/protocol/protocol_llm.txt,sha256=3-ojfRlRtmmr6RuiAx_r1ib3LzSaRWjJdDaUpM9mZ5E,3929
29
29
  solace_agent_mesh/agent/sac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  solace_agent_mesh/agent/sac/app.py,sha256=XWfkemxu5KA3NAidJLOO-w9XxuGN8nU05ADQAaJX-Tw,18453
31
- solace_agent_mesh/agent/sac/component.py,sha256=kiKM2nZiZ3EDWdyq5XUjMwlACasodnfJfssUfig5INw,132226
31
+ solace_agent_mesh/agent/sac/component.py,sha256=AvHe8jajjPpNOoX6d45mT8ot8nXeWQIJA10G9a9ce_U,132625
32
32
  solace_agent_mesh/agent/sac/patch_adk.py,sha256=LQhPvwpEVeeDVUgZD-p8CTxft-jRv_OadMR-gR1uTXk,4266
33
33
  solace_agent_mesh/agent/sac/sac_llm.txt,sha256=KcnVBK8oBuyguMkrCzG773GOQyPqscGxK7VdK2RYYco,9101
34
34
  solace_agent_mesh/agent/sac/task_execution_context.py,sha256=EpX6IWUtlv9ot9aW4_5bjEctJXd-O5Ozmq-FsJE9MBU,7663
@@ -125,11 +125,11 @@ solace_agent_mesh/gateway/base/component.py,sha256=chHk4h13XLhOOGjEBIu3b7Ksr_ALc
125
125
  solace_agent_mesh/gateway/base/task_context.py,sha256=sFRRHyvBij-xms1f_VFc8om8-xIpRZawIctWtdmi6QY,2446
126
126
  solace_agent_mesh/gateway/http_sse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
127
  solace_agent_mesh/gateway/http_sse/alembic.ini,sha256=jPWjnjnvk5tr691YUcCv-jo7ZApFEgqS01Iz70U93Mc,4650
128
- solace_agent_mesh/gateway/http_sse/app.py,sha256=YZbba5iZL0BnPr4ux_rtF3VmpKVjMLWOYMzjzSt1hvA,7695
128
+ solace_agent_mesh/gateway/http_sse/app.py,sha256=T9fHBRy5HyiG31lrV44q-VxEzHn_aAh2fjddHc6sm-I,6476
129
129
  solace_agent_mesh/gateway/http_sse/component.py,sha256=v5uD7Ih2bzfHy8QxQrEfPL7w6Bj-IIAfG5F4G728XKg,74087
130
130
  solace_agent_mesh/gateway/http_sse/dependencies.py,sha256=vj8ByzbhTAnd_oiKvERaO48ieo_37ZwAS6CycKo4LpA,17752
131
131
  solace_agent_mesh/gateway/http_sse/http_sse_llm.txt,sha256=Jx6IJWYFl48LmW-xDuCtjpubs0iPY54bt6bLWF_SNUw,14271
132
- solace_agent_mesh/gateway/http_sse/main.py,sha256=aOXAl8yP2rG5WcD4HDDiV9A0b2eb1qoF3Ij9r-yjNuI,23789
132
+ solace_agent_mesh/gateway/http_sse/main.py,sha256=3Iw_Dk0eAvI7dK5tAxDrgoyw76uH2dsnU-YVpSyeHfk,24669
133
133
  solace_agent_mesh/gateway/http_sse/session_manager.py,sha256=4AReeS6-p-2MqE0AOlBrHSoU-ADC4W7dJ28aVtZbDp0,8538
134
134
  solace_agent_mesh/gateway/http_sse/sse_event_buffer.py,sha256=GsC-kh2D5Fd3A3SZUU0zeGk74FB8617u-YsYMSNLPCI,3210
135
135
  solace_agent_mesh/gateway/http_sse/sse_manager.py,sha256=qCfh9aYwR-nX7Ps8DnumKTmh5bO-QwS4E7AlWjS113o,14638
@@ -137,7 +137,7 @@ solace_agent_mesh/gateway/http_sse/alembic/env.py,sha256=ZoZB47NxagV8iQ6BaiIQVXw
137
137
  solace_agent_mesh/gateway/http_sse/alembic/script.py.mako,sha256=84_5EHZF90Ak58GV4R5YUwxvvzsaI6N9LxIHC8X7N1w,703
138
138
  solace_agent_mesh/gateway/http_sse/alembic/versions/20250910_d5b3f8f2e9a0_create_initial_database.py,sha256=1n-kACCNTIjF9VagyZDf2Z7CXLB7yUuN4CnHpG0hdqk,1926
139
139
  solace_agent_mesh/gateway/http_sse/alembic/versions/20250911_b1c2d3e4f5g6_add_database_indexes.py,sha256=HZbxw5PrpneWIwMFteu-LGsoef8GD1F43vLiFfvBTaw,2408
140
- solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py,sha256=BX8eY0jkblKIBff7TN1xwybPMDh5LUxd_0Hxyz_Trdw,13032
140
+ solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py,sha256=pU9e_X0X4ggjyg8rhSsuutTD0EKi-jrez8n16xWIy00,15682
141
141
  solace_agent_mesh/gateway/http_sse/components/__init__.py,sha256=zSidQziYjSrjX5XXXbyBAJ7pgKr0Efy6RXiJiufdq0Q,186
142
142
  solace_agent_mesh/gateway/http_sse/components/components_llm.txt,sha256=DF-kLoVXikA0-R_7-xA3gsf6vFq8av4CAvbgJUplSVg,3183
143
143
  solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py,sha256=oHVnv4DK-nP9Mbp6i6CSJ63Ch6lx4epE3Cn0dn3BndQ,3941
@@ -182,7 +182,7 @@ solace_agent_mesh/gateway/http_sse/shared/auth_utils.py,sha256=F0kpTg5HYadRAEVNS
182
182
  solace_agent_mesh/gateway/http_sse/shared/enums.py,sha256=gcU_hApRkWcBy0JykqGXSESGyglLXN3FzkimITmwnnE,802
183
183
  solace_agent_mesh/gateway/http_sse/shared/timestamp_utils.py,sha256=o3pJKPR6DA8sbOgflnmcotFp4H-I-Hij3lA-7F-yUAM,2380
184
184
  solace_agent_mesh/gateway/http_sse/shared/types.py,sha256=ISN1jjxOOLcak_o-Gm0W7yVW2dWcVmiHQ2wXzttOwPg,1291
185
- solace_agent_mesh/cli/__init__.py,sha256=0optyte4cOxIRRV4Vdh_XYGrxTLJSuPWvhUDQkXvb4U,22
185
+ solace_agent_mesh/cli/__init__.py,sha256=pHClr_RD94RdAO4nIJOBug2vXKKjcRzEGxsyrQcqnHY,22
186
186
  solace_agent_mesh/cli/main.py,sha256=yFbF4ijz7P6nxj26d-mTC8BnK6NKVnfqPh3y4pDBZqo,831
187
187
  solace_agent_mesh/cli/utils.py,sha256=7zntmVuvWbaWEhViSF2uw484-79a5I1XTUt-0eGQWY4,8036
188
188
  solace_agent_mesh/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -250,12 +250,12 @@ solace_agent_mesh/templates/plugin_tools_template.py,sha256=GUVw556CtBYE6sHbpXnF
250
250
  solace_agent_mesh/templates/shared_config.yaml,sha256=_-ytR25HSAfwjN6drkdUQgGeV_om6RSeM4BUCMxQ3vQ,3310
251
251
  solace_agent_mesh/templates/templates_llm.txt,sha256=T3h8CcIowTbyBedlfRk7FZww8_xGmnY5fEqGhhdI3JU,9234
252
252
  solace_agent_mesh/templates/webui.yaml,sha256=4cEkPXLRhpATVD3A0UuJuo5aG0ApEseiADGtY3-W5qw,1784
253
- solace_agent_mesh/assets/docs/404.html,sha256=e67miPAZYtUuAJu4bqPDNyFuCRzl07ojUTExMk8YH5A,11749
254
- solace_agent_mesh/assets/docs/lunr-index-1758893005563.json,sha256=j2JLkb_MxULFMtEgfM8UA2cZ_OomtxTPxDBXh968RCs,1146062
255
- solace_agent_mesh/assets/docs/lunr-index.json,sha256=j2JLkb_MxULFMtEgfM8UA2cZ_OomtxTPxDBXh968RCs,1146062
256
- solace_agent_mesh/assets/docs/search-doc-1758893005563.json,sha256=XffU461E4TTWO5jiZW5g5r26Wqp-yQwM_K4iCPUo0gw,404162
257
- solace_agent_mesh/assets/docs/search-doc.json,sha256=XffU461E4TTWO5jiZW5g5r26Wqp-yQwM_K4iCPUo0gw,404162
258
- solace_agent_mesh/assets/docs/sitemap.xml,sha256=MeU4E6b7O7RjK1CdC9W4zjle-yridFsVnyDf2HtnzyY,6830
253
+ solace_agent_mesh/assets/docs/404.html,sha256=rDpbpAhG-PFn5cZhFOh2Z8f19FKCNseTRm-qScoIi7s,11749
254
+ solace_agent_mesh/assets/docs/lunr-index-1759151175744.json,sha256=6yRFlD4D0TiPPhnnZZA_efqbt13kFRpOdWKxFBvvTP0,1189636
255
+ solace_agent_mesh/assets/docs/lunr-index.json,sha256=6yRFlD4D0TiPPhnnZZA_efqbt13kFRpOdWKxFBvvTP0,1189636
256
+ solace_agent_mesh/assets/docs/search-doc-1759151175744.json,sha256=AiyGTRmtLL4Cvcyl8luTT7HY-Am6S7n6h0qV_0RfbIo,421011
257
+ solace_agent_mesh/assets/docs/search-doc.json,sha256=AiyGTRmtLL4Cvcyl8luTT7HY-Am6S7n6h0qV_0RfbIo,421011
258
+ solace_agent_mesh/assets/docs/sitemap.xml,sha256=9qanseWlSrGziSYlVwrAZyAsTJ31u1OSowWQAjMD5Nc,7001
259
259
  solace_agent_mesh/assets/docs/assets/css/styles.906a1503.css,sha256=gQj16ydMLPiq6y-t8Ovto65hsvPbQX6coyIFOja-2eY,83293
260
260
  solace_agent_mesh/assets/docs/assets/images/Solace_AI_Framework_With_Broker-85f0a306a9bcdd20b390b7a949f6d862.png,sha256=e6MbZpxlY1xJ8U01zQogm8vWgokQqDfhsyPyNxtuS00,447393
261
261
  solace_agent_mesh/assets/docs/assets/images/sac-flows-80d5b603c6aafd33e87945680ce0abf3.png,sha256=868GgNJGPxn2G6c1Md_0umhg3xuAo7t6HEx8hOKbUJY,21098
@@ -270,10 +270,10 @@ solace_agent_mesh/assets/docs/assets/js/149.b797a808.js,sha256=BZRazTFuXMaIQkDiX
270
270
  solace_agent_mesh/assets/docs/assets/js/1523c6b4.2645ef68.js,sha256=nHm7VzEAuw_CKJ-B-IXdco_vp8x76ebI5isys9orJsU,16498
271
271
  solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js,sha256=LbpDL4NSduNRTSI3RUIg5dLdMd4wawHU4Qta2vf8ryg,428812
272
272
  solace_agent_mesh/assets/docs/assets/js/165.6a39807d.js.LICENSE.txt,sha256=QX5NnNHHE912JA-8rhkyT6_OOM9KmKb6eM5ZwZ_m0fk,485
273
- solace_agent_mesh/assets/docs/assets/js/166ab619.e8f3a7c7.js,sha256=yWTbpgGD-v6K2Qr4a0Sxo9uXorbQOiZee9kErIz7ZAw,17641
273
+ solace_agent_mesh/assets/docs/assets/js/166ab619.bdddc63a.js,sha256=LNPA9NY1-5TcqlOdRKOKA0gMziWi2e1WRJ4d1I8dpVw,17587
274
274
  solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js,sha256=tVREW18iBlO-P7JNPvgX1-RR8tnFAoLarHSSTNAYfTw,568073
275
275
  solace_agent_mesh/assets/docs/assets/js/17896441.a5e82f9b.js.LICENSE.txt,sha256=WX8R_ZUDUISsiSypR5LNXXo_QEtn2JZPIpsBgCIh88Y,322
276
- solace_agent_mesh/assets/docs/assets/js/1c6e87d2.43771adc.js,sha256=sxUU82V3QWzqShRwNW2ByytMMASQRhgvIt-47J-zZFA,11806
276
+ solace_agent_mesh/assets/docs/assets/js/1c6e87d2.e056b7e0.js,sha256=Hi4YrLubQHI05HkHUWxJLtZ-GenxweIzK4a-6ZgwPIc,11805
277
277
  solace_agent_mesh/assets/docs/assets/js/2130.ab9fd314.js,sha256=t_AtyiW0eu0qFLk4hnlJEofpadh7m6lgEqDgP46V4D0,274059
278
278
  solace_agent_mesh/assets/docs/assets/js/21ceee5f.3bf39250.js,sha256=efuLvEKIaarHSWvaas0YzzHT_b5fMwPL3BcNO7kw-UY,5543
279
279
  solace_agent_mesh/assets/docs/assets/js/2237.5e477fc6.js,sha256=zW8HJtjPXRUHEgvhkLqqI6USE-FyQKRQlozKw4eDVec,1309
@@ -292,16 +292,16 @@ solace_agent_mesh/assets/docs/assets/js/442a8107.b5c2532a.js,sha256=LivKRCvxmyUQ
292
292
  solace_agent_mesh/assets/docs/assets/js/4458.518e66fa.js,sha256=oUPDT1LqnbeRts2CudqNueI-OQHML5gg9dWEvP6PiE4,25886
293
293
  solace_agent_mesh/assets/docs/assets/js/4488.c7cc3442.js,sha256=r1GHmJIWPPQ07T92TAs1H59eHcs-e87AFDqi_0VK48A,435
294
294
  solace_agent_mesh/assets/docs/assets/js/4494.6ee23046.js,sha256=UrwgwbJNRAZiY6UtdzHrpggUpkNGlIh9vHiSXdv5DDI,61052
295
- solace_agent_mesh/assets/docs/assets/js/483cef9a.8d318c2f.js,sha256=NsHK4Zz9hgCo_DzUecbECAsFSpjv1uB4Fs9soxAASXA,14196
295
+ solace_agent_mesh/assets/docs/assets/js/483cef9a.4736f2d8.js,sha256=-oDaPe690zIvbABUVR17sMsaExdwEsWt2f4Vi-YI5mQ,14205
296
296
  solace_agent_mesh/assets/docs/assets/js/4855.fc4444b6.js,sha256=Rbhzs2AM-6i8Wyppb8a2Ws8kpNE8Pr5QMgx0sxAozxs,11494
297
297
  solace_agent_mesh/assets/docs/assets/js/4866.22daefc0.js,sha256=bQRnSAwf0FIrdrYQLeyXv6f4utbEoi4nSU-kKchB4sw,3876
298
298
  solace_agent_mesh/assets/docs/assets/js/4950.ca4caeda.js,sha256=Kq5gqn-p3ozVcUY7fWZnY4_35_sNcFN8z4bNY6Cqt-s,146409
299
- solace_agent_mesh/assets/docs/assets/js/4c2787c2.fc6804f2.js,sha256=0IwIlLMkZe9HpIf5wa-lMgNTy4_6ZH0iusQJV5G2HZI,7849
299
+ solace_agent_mesh/assets/docs/assets/js/4c2787c2.c1290a40.js,sha256=aqQTwln1igHGN5A5RKwlcGfB6BAPdCPTfnTv3IhRZLQ,7839
300
300
  solace_agent_mesh/assets/docs/assets/js/5388.7a136447.js,sha256=F9mKVkGI0I-fmfKn3kADJdVlVAe4lD7LQKjZ_kE7_cY,25022
301
301
  solace_agent_mesh/assets/docs/assets/js/55f47984.bcd00a86.js,sha256=kI7AeZQs9PeqepeLnp2-I2ifVCiKLCrJPt1jyjhfN7A,52819
302
302
  solace_agent_mesh/assets/docs/assets/js/5607.081356f8.js,sha256=82P_IlhzwOSMkBDBTXHJsjSx0s1dFbcojWnOC-Vp7qU,194
303
303
  solace_agent_mesh/assets/docs/assets/js/5864.b0d0e9de.js,sha256=XRxc9MFKvCVwmU2KY3io24cVMqk_dK8koh1B2rEQINQ,33926
304
- solace_agent_mesh/assets/docs/assets/js/5b4258a4.dff11eca.js,sha256=KVmZOfBcXBXHxzKxTIm6xMWkPvm4ztX9SflfZfqSa_E,10779
304
+ solace_agent_mesh/assets/docs/assets/js/5b4258a4.fdfd2325.js,sha256=EXR3GvINZbRvZTytBvHn6lB0HaGoZ7IECAUnsmolcpU,10769
305
305
  solace_agent_mesh/assets/docs/assets/js/5e95c892.558d5167.js,sha256=LrlOoFsc_wTcyuzay3WDxkpYtVGn2kUIWCosBvg_z8I,377
306
306
  solace_agent_mesh/assets/docs/assets/js/6143.0a1464c9.js,sha256=N9VlCMIQjWkazDtcal5eC7xe1YvOVCMRx119JzMQl1k,39122
307
307
  solace_agent_mesh/assets/docs/assets/js/6395.e9c73649.js,sha256=-v8U5XdxnXthhTAYmuTbvDQRKDPxzQQS-Lew81sPN-8,440
@@ -312,12 +312,12 @@ solace_agent_mesh/assets/docs/assets/js/6978.ee0b945c.js,sha256=Fabb2n81BbNegY_9
312
312
  solace_agent_mesh/assets/docs/assets/js/7040.cb436723.js,sha256=cmW7CCISvRnJNljTDg4jGJtG6rjSp0nWfZvchAKSdf4,36638
313
313
  solace_agent_mesh/assets/docs/assets/js/7195.412f418a.js,sha256=8VHuob7jbA49epJL54bEU-mtOdSeUFXzqbgThE4walo,46219
314
314
  solace_agent_mesh/assets/docs/assets/js/7280.3fb73bdb.js,sha256=XlDQpYplGuVoEqfXCt8Yzocd9uBTu64VUrNp4LQDyIY,659
315
- solace_agent_mesh/assets/docs/assets/js/75384d09.abdf9cf9.js,sha256=e6LcdpJb_zFxHQp5Ug5YdZaOgnVgcABXe7q75MPcp0k,21859
315
+ solace_agent_mesh/assets/docs/assets/js/75384d09.1e7d7cb7.js,sha256=1bxZO3YmVKK2YKW2QGHQMiUxJ5cSFFX4-MUv0YJ57EQ,21864
316
316
  solace_agent_mesh/assets/docs/assets/js/768e31b0.9abcdc48.js,sha256=UkbCT6QjuavRsdzU6WlionAa1M2BqeGIW_LE4YkjMEM,12938
317
317
  solace_agent_mesh/assets/docs/assets/js/7845.e33e7c4c.js,sha256=sNEWPWBTnV-BmKI7vkcgRpTYeErGBXRbtH_X5YRnr-c,11143
318
318
  solace_agent_mesh/assets/docs/assets/js/7900.69516146.js,sha256=MWXxfpYNV5CORkPa0r6EyyynbVJrNENknNv0Zb7TqS8,43021
319
319
  solace_agent_mesh/assets/docs/assets/js/8356.8a379c04.js,sha256=bj4ozR1V-6vmmty5Dr_1CCAup1i4lWAgRfY-ZHrMH-U,197
320
- solace_agent_mesh/assets/docs/assets/js/85387663.6bf41934.js,sha256=-vVGh-uPBxj-ofm7VXg3X6uxkZUzdd7MmquNMA3UdD4,7123
320
+ solace_agent_mesh/assets/docs/assets/js/85387663.be2bc838.js,sha256=sNOG1TIGpnM9_idd_ltQn1arDPY06PWUH84AtxnPxE8,7135
321
321
  solace_agent_mesh/assets/docs/assets/js/8567.4732c6b7.js,sha256=JoI5LkqEMfpMaY5opquTz48lEtn-vjgQEVi9M-NhbGU,202
322
322
  solace_agent_mesh/assets/docs/assets/js/8573.cb04eda5.js,sha256=La8XWUKn0u0X0gv6WqRnfUhFoV7hEW9xDVlhIvnbgbk,24045
323
323
  solace_agent_mesh/assets/docs/assets/js/8577.1d54e766.js,sha256=hxSTtN4jpsbGCBqv7ocfmWRPJmnjIwkPyk7yYN-nw3M,188
@@ -328,71 +328,73 @@ solace_agent_mesh/assets/docs/assets/js/8731.49e930c2.js,sha256=ecg70IZRPAH8EOZx
328
328
  solace_agent_mesh/assets/docs/assets/js/8908.f9d1b506.js,sha256=LrKHDjwNk1bPFNWpwTeQmTNlC47BvAhr-S3I-AcB_FQ,30883
329
329
  solace_agent_mesh/assets/docs/assets/js/9157.b4093d07.js,sha256=-LWKw3jEtKdkEjap1b0NI7tJLVEPj8SyTRq5cJvL0TA,22109
330
330
  solace_agent_mesh/assets/docs/assets/js/9278.a4fd875d.js,sha256=Nm7cJgq11XXaYA3WxmU_H5Yk2S8L1fgF6RC9lX7eepU,143
331
- solace_agent_mesh/assets/docs/assets/js/945fb41e.abf2be91.js,sha256=agrUerMLSTW1lY0Jx5FAYQvlzqPeu-UWQ-MX-nly8QE,15060
331
+ solace_agent_mesh/assets/docs/assets/js/945fb41e.16e00776.js,sha256=jRZIjFQzx1dvfEKwIJTG0XsEd9X4SRm6bpCcGylFDDo,15061
332
332
  solace_agent_mesh/assets/docs/assets/js/9616.b75c2f6d.js,sha256=Ry0lLDd8HQzYAHmCKcXJ4iQ-9utISMjqcWk_iURtf1A,20576
333
333
  solace_agent_mesh/assets/docs/assets/js/9793.c6d16376.js,sha256=-Xm7Yt1AJvEcfoYlQ04O5Douk4bsO4mgo_UJN8TVIUY,100459
334
334
  solace_agent_mesh/assets/docs/assets/js/9a09e75d.92de8cf5.js,sha256=tZRusy1HbEgsV-VhErB4zpnz0ncfP0lTYhxyLZfA-xc,33827
335
335
  solace_agent_mesh/assets/docs/assets/js/9eff14a2.d62aad71.js,sha256=iR2JsabRjQemymeBxgOq8WQFkWjTQQ7mHjfgN5a2e14,10569
336
- solace_agent_mesh/assets/docs/assets/js/a3a92b25.1d029b81.js,sha256=h54GrYlzw7X-lkS8Oc_TnNsFwJ6jkMJkG45xGj9JdSU,5797
336
+ solace_agent_mesh/assets/docs/assets/js/a12a4955.25fbed32.js,sha256=xN8C0NdfKNMjfB5AQ2zRwapl-iOQATmLfPcr_ElkveE,25800
337
+ solace_agent_mesh/assets/docs/assets/js/a3a92b25.6def8980.js,sha256=59BU0hGXFauN5vGuF-cjgq-3RNJ72L5oSAjrWaMrZIM,5802
337
338
  solace_agent_mesh/assets/docs/assets/js/a7bd4aaa.2204d2f7.js,sha256=v9wa2Q1Mt7cayLyMjyDTUT8J_kILQ2idmxDhgyBHlpE,756
338
339
  solace_agent_mesh/assets/docs/assets/js/a94703ab.0438dbc2.js,sha256=drinuntIgk0lUv1Wc_WlHu5I8d5ZDszh329V_5WQrD4,11251
339
340
  solace_agent_mesh/assets/docs/assets/js/aba21aa0.c42a534c.js,sha256=e8uMq6LJqDkt4o-uIbKH2CIw_7cQ4Kthlh4O9UqwWdw,211
340
341
  solace_agent_mesh/assets/docs/assets/js/aba87c2f.4ddf32f2.js,sha256=uPt4W5mjlBoYrNo2AHFUvtRgLNnjMT0aEYgZwpP4TP0,17379
341
- solace_agent_mesh/assets/docs/assets/js/ae0e903d.c786e887.js,sha256=tUU6o6CCfRZs-ul8HOuxPmYV_PMCzc7D4NWelRHv9VY,8664
342
+ solace_agent_mesh/assets/docs/assets/js/ae0e903d.5fe5203f.js,sha256=ExrqXGaWwiuUGA7fgqsdbZ5m8LaJv2qb6pcLRjBw7cg,8680
342
343
  solace_agent_mesh/assets/docs/assets/js/ae4415af.16cc58d3.js,sha256=3RlFYeEWrwn6u4JADZ7eTYfVJ9pzMZYGcTZheq9LSZs,31053
343
344
  solace_agent_mesh/assets/docs/assets/js/b7006a3a.73a79653.js,sha256=YYjvDTjQytUxcimeJinuha5T7SdUyHTYjRz7kLFOGOQ,12973
344
- solace_agent_mesh/assets/docs/assets/js/bac0be12.27ee2c26.js,sha256=wY-AhWl_w5LnF9-JtfyxIbCv0Oz1R3RprqE3FGeeSIo,18006
345
- solace_agent_mesh/assets/docs/assets/js/beecea0d.8bbd852c.js,sha256=ApddSl_DTPuPpeR5GLECkPtndN56IsXgVUuSRbbJ2B8,28748
345
+ solace_agent_mesh/assets/docs/assets/js/bac0be12.bf0181cf.js,sha256=KBpNC74gMZHJeVQ1eMoevq8gKlXszvy5rFpIbZjg2wo,17983
346
+ solace_agent_mesh/assets/docs/assets/js/beecea0d.ce915979.js,sha256=LHnucpILFsiRTq8L73-gRwPpCv0snvul-6_8lXdWRgs,28740
346
347
  solace_agent_mesh/assets/docs/assets/js/c2c06897.87cb1f47.js,sha256=JodGkXjuFPEBSlBMpaPOOIuj_Tut0AbwolDniGVPuZE,15020
347
348
  solace_agent_mesh/assets/docs/assets/js/c835a94d.ce21f0bf.js,sha256=JdrkXlYTQYJgKwVH5yCN7S3NSlsBnTS3MkNFpdoxark,22108
348
349
  solace_agent_mesh/assets/docs/assets/js/cc969b05.feef7dcc.js,sha256=gsMm5-DPoDd6MNJOJE3tNJRkTry1Lu3eSIos4De64RI,23141
349
350
  solace_agent_mesh/assets/docs/assets/js/cd3d4052.a19e7d78.js,sha256=LcU10wDKu9Ax9XbTc0fyQff_7QikR6sEc4SXyP4lpLg,9791
350
351
  solace_agent_mesh/assets/docs/assets/js/ced92a13.fb92e7ca.js,sha256=96enCMQqnD-_WrFda13oJ3gPLYxmy93LXDFxDuxA5JY,25255
351
- solace_agent_mesh/assets/docs/assets/js/cee5d587.f1e1ca86.js,sha256=WHSNG7Q7fO5_x9k74DybsbewxIoJMwQJ_AtxzbenlWI,9522
352
- solace_agent_mesh/assets/docs/assets/js/f284c35a.2b2f5048.js,sha256=YnmZK_sDA6xcVNPSMhShRbluTiJBWSnhDT5NE7x5zmM,21410
353
- solace_agent_mesh/assets/docs/assets/js/f897a61a.bc634a3e.js,sha256=6JytHKyBrOGJH33efELGM9KVq6x0tvSbqvvkg53gV2w,17047
354
- solace_agent_mesh/assets/docs/assets/js/fbfa3e75.aca209c9.js,sha256=vmq7isB22h2J_2cVIt1h6D2OhwU6wTBEnk1-CNZv9Wk,7314
355
- solace_agent_mesh/assets/docs/assets/js/main.72d74e33.js,sha256=nFJhlXhSxPoR9wi4i3i2yOumq6C_nHwO6-jwE599ACQ,482726
356
- solace_agent_mesh/assets/docs/assets/js/main.72d74e33.js.LICENSE.txt,sha256=3Jia5o7yaxOtbxuy9khs-thK96m55yCiPaUA-IkWh0A,2069
357
- solace_agent_mesh/assets/docs/assets/js/runtime~main.3dcfaf51.js,sha256=r9cAKF2F9-VX8aVbaoGSAIXtIWu8J4Vo_XZUjRy9ypY,6233
358
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html,sha256=a-KhntcyKdbcp-25kTYQzgZYxS6oM8mlGOOOYyoETSo,33548
359
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html,sha256=ExTJhppjLGkMbcgBTbE9nMUrZNEpEsW3i5fkkiZOY3o,69622
360
- solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html,sha256=RGZJ7RSgZ3G9nLpbbDoLr7FYwsNKCKQjZ02oS4rIDhc,84925
361
- solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html,sha256=BXG1xcej_PE3-NJb19I9XlvdLlBJpc19refnt36aC8I,87760
362
- solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html,sha256=sgzZAT0DJwcmo6nRojlRdqOWXmcSWlNwH3wl-smv4Ts,39841
363
- solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html,sha256=myJcVDePOL-CGlfUXT_VIgJLn5rmULAPte6_S0iIoLI,32769
364
- solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html,sha256=ak2G8y0oOX9nNoxHjHBq-sKedkQ39K1onNB1K5BvMVE,52656
365
- solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html,sha256=ODQ8TYTQ4HxkIabyWtJScRoY_UFIMhhisirvqZgp8KY,30152
366
- solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html,sha256=bfjJPaFpPCb1dCSQCYDo7jFZXYHCddblRBuFGbNE_hM,23853
367
- solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html,sha256=JDxbIhKWtASd7eWv1e_Zz0FjEn1W7YLbkUnmrJDdFcs,40029
368
- solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html,sha256=dfjQWgLd7qrvOiXa9i-KiFTCcM5dnDMcb-BU2EtEI5s,45631
369
- solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html,sha256=MfeIeBxwGsgFW79QWnwB3r4FKei7b0NNp5O1gE504Zo,42547
370
- solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html,sha256=4KQPkx7bWlSJFbgFp7d-kZ3IOwjXTXYlCYW3ml8zbbc,26091
371
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html,sha256=rfA1V-XrFnduzTFR-W-PWdCEHjhg5N33xNXSs5wEmvg,21734
372
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html,sha256=KOKKPL1QMXESUFIgss94B8sQBDX0elzIDWMMDSfhQmA,58323
373
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html,sha256=j3pQKeSM5cWK4dnQCGMWzBDALrHok4h2sbSw08WLTB4,32597
374
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html,sha256=G-1qDF-pLJ8-0P_hZgVZKmkYiRWc9yAiuydtcBQPEi0,30497
375
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html,sha256=qO5KQeBWZjXDbC8qI1HBR59ptyl-ZHgjvwLukmUcxIA,42680
376
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html,sha256=n8FYc9t-XaZACLB8fvWpOH5nZGhUZSUsOF3Fci7pC_c,75786
377
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html,sha256=V1MbUIFEf-inPs0vYAAqwvEkTpmp4OHEkqQgK-py1ks,383395
378
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html,sha256=Ul5aJSWrTeFvTBh49qNMr49h6pQpBqRr18hN0xVfgws,69278
379
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html,sha256=EvGXoDBPMrraIkE2a2Fx3L1SW86skbQVWozgcx1RXkE,65048
380
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html,sha256=3Mo_nYp49WNeExWL379MfOYqTRHpFxK-Gzk6OUtp3fY,87666
381
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html,sha256=bzdNAGGEUydQr9ZAGnt0mR_Dti9TFFU4rRsDDlAUQ0E,80471
382
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html,sha256=ST_bTyRmvzDIezV6EBZBR-guroGzNl3G5_PbfYXaO88,46767
383
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html,sha256=OzhnzlwCpTwGJ4k1xV53s46nY1_TWGaEpYbeJmTlpMg,49986
384
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html,sha256=xrZQbMZ21E4s4Slf8VA9IjySJuBpYQc7w4akzXcPxFA,69371
385
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html,sha256=AcyAJlStbgQ7vabQYBMo-BNAtIRQEAFAG1tEzq9RB0k,44846
386
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html,sha256=DI3QayYPv5_Uf_5Ew0JbsP5byPRb8wnHJQ7IFc7u4zo,34816
387
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html,sha256=o0wpDZY6PLdxEFD_gKuWCwc9qkNxc8LOkHwaub34KwQ,58253
388
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html,sha256=eIWNEo-ag0eGEe1415LV94GsrBfOsbWOUmSoFJWDz2s,37802
389
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html,sha256=XtR_mAOxisbKjSaD-j0SpkSG8r2LKVqGDAeTLL1HOnw,50700
390
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html,sha256=8fR-bIKfp8-BXb6cQ_0R5scJ8Ga0YHlc69glSx55cq4,163552
391
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html,sha256=LKISJ0svObq8iEyUXTP2NuAKJxUxdfMUBKgOBKnmlng,402951
392
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-python-tools/index.html,sha256=Y8jC4DilV5ZLwsOTMax83u_IURdyfo08TGHALLOiL4A,175658
393
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html,sha256=_JQzpa0YedPH7ijgX2Pp8HdBabjwQpzg97hRExlRQyM,59738
394
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html,sha256=4eR4Qcswvdz881VxASpn9SERGspjKVJbRkbKuxDeqy8,25835
395
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html,sha256=mDEOsFoiIzoHuH_d9fJISejK8aDlFJ5jHSX7gcLa5w4,29857
352
+ solace_agent_mesh/assets/docs/assets/js/cee5d587.47904f5e.js,sha256=H05aPZ-oQ3RAdKEsPyNYwy097BU6KJo5fuMQOpYiTBk,9520
353
+ solace_agent_mesh/assets/docs/assets/js/f284c35a.525933db.js,sha256=T76oBobITL24oKWYJYbYauZwHcIDYsdCH9Hc1rFj35c,22038
354
+ solace_agent_mesh/assets/docs/assets/js/f897a61a.126663fe.js,sha256=hY5NvBKRQIFTHG_WQJ_B0ek3PAGTcq_zBSS0M7Gi7bM,17031
355
+ solace_agent_mesh/assets/docs/assets/js/fbfa3e75.e144b16c.js,sha256=Li4QOuQnso5c1xJULcdtVFYVy3WeK5CRzYBVukX25s8,7312
356
+ solace_agent_mesh/assets/docs/assets/js/main.11f9f9f3.js,sha256=yqc6W0ixiOWbqlaw9Y-urSsORCC6oJSbyX-UqT3jlSY,483297
357
+ solace_agent_mesh/assets/docs/assets/js/main.11f9f9f3.js.LICENSE.txt,sha256=3Jia5o7yaxOtbxuy9khs-thK96m55yCiPaUA-IkWh0A,2069
358
+ solace_agent_mesh/assets/docs/assets/js/runtime~main.5922bcf0.js,sha256=5DoxmLhVc_drjAjI8-yjAStx6MLzGf2MJaBbpmpG6RU,6281
359
+ solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html,sha256=3HR4bz0B-oNCpMOyxE6u4KXQl_OUM8dlBJw-w4eysAY,33790
360
+ solace_agent_mesh/assets/docs/docs/documentation/Enterprise/rbac-setup-guilde/index.html,sha256=4GwKFd594XMYQcvtZWerGGBZG4O5jcnTInLTM8IBMMs,84357
361
+ solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html,sha256=8-mVK-jT9u-xz-dn9ET1AlfZuz4yGvujHhgUFWBoFzg,69857
362
+ solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html,sha256=c4lhLJ5h6bh_-VYB08s3ynaqb1W2kOVPeO8-goXHoVQ,84925
363
+ solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html,sha256=8sYaFn2zr3mkIxYPxOf5hdoIfNuQoAW93EPQCDKdCCU,87760
364
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html,sha256=YzDdE0ZK9ffqtf5vOgGhmTBrAfthCB4ZWR7_1Dn4Ib4,39841
365
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html,sha256=xD6Cd-EKQZonlGc21eRBzlpShu-4KJuQ0_-Nvmx4itM,32700
366
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html,sha256=QuLKOYY2NdDkzLbyEI2U_X0TfpkyYT40CgVbYlpJqrQ,52656
367
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html,sha256=NB7fTyhMpxsqfUc5hwF5oXrWoCKBsiOHxgL8bPcgn2s,30152
368
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html,sha256=-dqCPn323sBvpfN0oHXt_K1gZqA-3b9h8Kdcyp2iWsg,23853
369
+ solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html,sha256=5m0-eGge3rDHcaMajib-dVvnEOKrE-yVAnrxeSxD5Ws,40029
370
+ solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html,sha256=H4BH2_7nUhI6E1u6RK9JEGii0MxeoBY__OXtpuwIxRQ,45630
371
+ solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html,sha256=U1NqfsZe4Qe2cjBYxeufJGnCF9YedcgyQiC8Q1mn_-Q,42537
372
+ solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html,sha256=3f0eK38RVuieicYvuV3UTQzrePVvHR5szpFsQcj13fg,26089
373
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html,sha256=h72LYb9FYGgKU5BzHnqRRpHPGZkJyVt4Clg2ziOP_kA,21742
374
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html,sha256=ygdZXJLv71S_9fYQMKC5M078jVmZEx9b0_t_HM3JPJ4,58315
375
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html,sha256=E4aowAK6_pvFQhK2nKlwlPT-eH472NMjOAACCB44TqE,32597
376
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html,sha256=kXUEofI0aeKiVxRlS8kUnU7eQ18lrHS89gVR24SdQJs,30498
377
+ solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html,sha256=LqH4RW57bZNIXEpQVKrfW2sINI_ikS-Si7M3Q0m3XI8,42664
378
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html,sha256=fNGA-h83YQ1feAgA8vwIzJU6t8IM81nv_iIZ4DhBCVQ,75786
379
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html,sha256=3eYNXbx6SrgdjFFlKCNkHymCr4JcxqUUeZATE1Huey4,383395
380
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html,sha256=jioalGZDNoNroXjOkgbZmE4c3o0m5gW5SFMdSofwsJU,69244
381
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html,sha256=qJ5D5Tmh22394-wgvziT7ddQo1sLbyHwAWlT_hLXMyQ,65048
382
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html,sha256=Il7tqaCFgg5Q4pwhOakxsN1n9wYWQXwlXibd9sDs38U,87666
383
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html,sha256=3UvksAthejXPoG6H-vK0H_3fgCbpUto99V1RDko3TQ0,80476
384
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html,sha256=lzqfPd1rH51R5AIDIFnYa-JdNHcMJcGnX7yB2bt14GQ,46757
385
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html,sha256=lrtnD-el6jx9tHVx6ityrKOeHMHl547g6ylgtuXjygM,49986
386
+ solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html,sha256=n3B5aOk7-B2cOo1PSykCofTCKpMJvAdaM9m00QIgrfA,69371
387
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html,sha256=PxOqQyu5tWDu7UeyoHynhG9aws9ILn6xau1n_raaxpc,44846
388
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html,sha256=vU98eW18XGPuICSU0G07prDTW5CQTUyCyPsgCRp-RY0,34816
389
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html,sha256=t3EpAzl8dVmSNaD2x8VHUl9PXO2OYcIm-HFnwxWSVM4,58253
390
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html,sha256=pPXcaZUuvHHSEOdqbgT79OAxPTTlEhmL-ZAuuR6DCD0,37802
391
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html,sha256=Wmi-vvjhiOpjUe-AEgSy_rza_DF-az82k76iwMFgxII,50700
392
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html,sha256=UOp94gRMCVe3hg-jKKGBUED41RSXWemb5P1btqFsxRQ,163552
393
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html,sha256=Yj_9WbyYLzyhWXAhF6tbx2V5IU53-y81rTBJEK3lc9M,402951
394
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-python-tools/index.html,sha256=wfATpo_nUWMMG38_R5KGGRp15BgOBHglaiewZMbrOdc,175658
395
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html,sha256=KhFTuCLI180z4zEmpuKvAJr2H0AisSlMVqVTmAx2Zzg,59738
396
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html,sha256=YeL0nBnRV56R_lMPYY6KVABPq7h_da-58E1heTiaWgs,25853
397
+ solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html,sha256=TfCaOFLWACoO4cg2CYnHOApk-penqR8lnOzp6V-AdL0,29858
396
398
  solace_agent_mesh/assets/docs/img/Solace_AI_Framework_With_Broker.png,sha256=e6MbZpxlY1xJ8U01zQogm8vWgokQqDfhsyPyNxtuS00,447393
397
399
  solace_agent_mesh/assets/docs/img/logo.png,sha256=TdXZ2wnkSkaFrGO-5fy2WcmjGXaGzwE29dM83raxoTg,45439
398
400
  solace_agent_mesh/assets/docs/img/sac-flows.png,sha256=868GgNJGPxn2G6c1Md_0umhg3xuAo7t6HEx8hOKbUJY,21098
@@ -428,8 +430,8 @@ solace_agent_mesh/client/webui/frontend/static/assets/favicon-BLgzUch9.ico,sha25
428
430
  solace_agent_mesh/client/webui/frontend/static/assets/main-BKIoiLSu.js,sha256=d5UHRDlx0z1gXgKa2ITntebaW_j7WUS7haMyYW9cNXU,422079
429
431
  solace_agent_mesh/client/webui/frontend/static/assets/main-ChRwcV89.css,sha256=eWc7an60oiobwKiH4LOAhC77AAE50q95HRc3xh8CdB0,119934
430
432
  solace_agent_mesh/client/webui/frontend/static/assets/vendor-CS5YMf8a.js,sha256=pySecfbg42jjmh23Z4dRsbST36DQM8SCo4X7_o7nhIs,340916
431
- solace_agent_mesh-1.4.6.dist-info/METADATA,sha256=6Yh7Kh3beGHlK3evG0E9Jmp2u6EU5n7fIwubHu7w9Bw,24921
432
- solace_agent_mesh-1.4.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
433
- solace_agent_mesh-1.4.6.dist-info/entry_points.txt,sha256=5pLVH8d8bd4sxUwBh7VTni8gTTSzTqGfY14zgdQZm1I,106
434
- solace_agent_mesh-1.4.6.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
435
- solace_agent_mesh-1.4.6.dist-info/RECORD,,
433
+ solace_agent_mesh-1.4.7.dist-info/METADATA,sha256=Z7V1VO8bc6a1pdByt_DcH8PAHdffXSAC1ww8rGnri8w,24921
434
+ solace_agent_mesh-1.4.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
435
+ solace_agent_mesh-1.4.7.dist-info/entry_points.txt,sha256=5pLVH8d8bd4sxUwBh7VTni8gTTSzTqGfY14zgdQZm1I,106
436
+ solace_agent_mesh-1.4.7.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
437
+ solace_agent_mesh-1.4.7.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[515],{644:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"documentation/concepts/architecture","title":"Architecture","description":"Overview","source":"@site/docs/documentation/concepts/architecture.md","sourceDirName":"documentation/concepts","slug":"/documentation/concepts/architecture","permalink":"/solace-agent-mesh/docs/documentation/concepts/architecture","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/concepts/architecture.md","tags":[],"version":"current","sidebarPosition":4,"frontMatter":{"title":"Architecture","sidebar_position":4},"sidebar":"docSidebar","previous":{"title":"Configurations","permalink":"/solace-agent-mesh/docs/documentation/getting-started/configurations"},"next":{"title":"Solace Agent Mesh CLI","permalink":"/solace-agent-mesh/docs/documentation/concepts/cli"}}');var i=t(4848),r=t(8453);const o={title:"Architecture",sidebar_position:4},a="Solace Agent Mesh Architecture",c={},l=[{value:"Overview",id:"overview",level:2},{value:"Architectural Principles",id:"architectural-principles",level:2},{value:"System Components",id:"system-components",level:2},{value:"Solace PubSub+ Event Broker",id:"solace-pubsub-event-broker",level:3},{value:"Gateways",id:"gateways",level:3},{value:"Agent Hosts",id:"agent-hosts",level:3},{value:"Agents",id:"agents",level:3},{value:"Key Architectural Flows",id:"key-architectural-flows",level:2},{value:"User Task Processing Flow",id:"user-task-processing-flow",level:3},{value:"Agent-to-Agent Delegation Flow",id:"agent-to-agent-delegation-flow",level:3},{value:"Agent Discovery Flow",id:"agent-discovery-flow",level:3},{value:"A2A Protocol and Topic Structure",id:"a2a-protocol-and-topic-structure",level:2}];function d(e){const s={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",mermaid:"mermaid",ol:"ol",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.header,{children:(0,i.jsx)(s.h1,{id:"solace-agent-mesh-architecture",children:"Solace Agent Mesh Architecture"})}),"\n",(0,i.jsx)(s.h2,{id:"overview",children:"Overview"}),"\n",(0,i.jsx)(s.p,{children:"Solace Agent Mesh is an event-driven framework for creating a distributed ecosystem of collaborative AI agents. The architecture is designed to decouple agent logic from communication and orchestration, enabling scalability, resilience, and modularity."}),"\n",(0,i.jsx)(s.p,{children:"It integrates three primary technologies:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Solace PubSub+ Event Broker"}),": Provides the messaging fabric for all asynchronous communication, utilizing topic-based routing for the Agent-to-Agent (A2A) protocol."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Solace AI Connector (SAC)"}),": Serves as the runtime environment for hosting and managing the lifecycle of all system components (Agents and Gateways)."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Google Agent Development Kit (ADK)"}),": Provides the core logic for individual agents, including LLM interaction, tool execution, and state management."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"architectural-principles",children:"Architectural Principles"}),"\n",(0,i.jsx)(s.p,{children:"The design of Solace Agent Mesh is founded on several key architectural principles:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Event-Driven Architecture (EDA)"}),": All interactions between major components are asynchronous and mediated by the event broker. This eliminates direct dependencies, allowing components to be developed, deployed, and scaled independently."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Component Decoupling"}),": Gateways, Agent Hosts, and other services communicate through standardized A2A protocol messages over the event mesh. They do not require knowledge of each other's network location, implementation language, or internal logic."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Scalability and Resilience"}),": The architecture supports horizontal scaling of Agent Hosts and Gateways. The event broker provides fault tolerance and guaranteed message delivery, ensuring system resilience even if individual components fail or are restarted."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"system-components",children:"System Components"}),"\n",(0,i.jsx)(s.p,{children:"The architecture comprises several distinct types of components that interact through the Solace PubSub+ broker."}),"\n",(0,i.jsx)(s.mermaid,{value:'graph TD\n subgraph External Systems\n direction TB\n UserInterfaces["User Interfaces<br/>(Web UI, Slack, CLI)"]\n APIs["External Systems & APIs"]\n end\n\n subgraph SolaceAgentMesh [Solace Agent Mesh]\n direction TB\n subgraph Gateways\n WebUIGateway["Web UI Gateway"]\n CustomGateway["Custom Gateway"]\n end\n\n Broker["Solace PubSub+ Broker<br/>(A2A Protocol over Topics)"]\n\n subgraph AgentHosts ["Agent Hosts (SAC Applications)"]\n AgentHost1["Agent Host<br/>(Runs Agent A)"]\n AgentHost2["Agent Host<br/>(Runs Agent B)"]\n AgentHostN["..."]\n end\n end\n\n subgraph BackendServices [Backend Services & Tools]\n LLM["Large Language Models"]\n CustomTools["Custom Tools<br/>(Python, MCP)"]\n DataStores["Databases & Vector Stores"]\n ArtifactService["Artifact Service<br/>(Filesystem, Cloud Storage)"]\n end\n\n %% Connections\n UserInterfaces -- Interacts with --\x3e Gateways\n APIs -- Interacts with --\x3e Gateways\n\n Gateways -- Pub/Sub --\x3e Broker\n AgentHosts -- Pub/Sub --\x3e Broker\n\n AgentHost1 -- Uses --\x3e LLM\n AgentHost1 -- Uses --\x3e CustomTools\n AgentHost1 -- Uses --\x3e DataStores\n AgentHost1 -- Uses --\x3e ArtifactService\n\n AgentHost2 -- Uses --\x3e LLM\n AgentHost2 -- Uses --\x3e CustomTools\n AgentHost2 -- Uses --\x3e DataStores\n AgentHost2 -- Uses --\x3e ArtifactService\n\n %% Styling\n classDef external fill:#E3F2FD,stroke:#1976D2,stroke-width:2px,color:#0D47A1;\n classDef gateway fill:#E8F5E8,stroke:#388E3C,stroke-width:2px,color:#1B5E20;\n classDef mesh fill:#FFF8E1,stroke:#F57C00,stroke-width:2px,color:#E65100;\n classDef agent fill:#FFF3E0,stroke:#FF9800,stroke-width:2px,color:#E65100;\n classDef service fill:#F3E5F5,stroke:#7B1FA2,stroke-width:2px,color:#4A148C;\n\n class UserInterfaces,APIs external;\n class WebUIGateway,CustomGateway gateway;\n class Broker,SolaceAgentMesh mesh;\n class AgentHosts,AgentHost1,AgentHost2,AgentHostN agent;\n class LLM,CustomTools,DataStores,ArtifactService service;'}),"\n",(0,i.jsx)(s.h3,{id:"solace-pubsub-event-broker",children:"Solace PubSub+ Event Broker"}),"\n",(0,i.jsx)(s.p,{children:"The broker is the central messaging fabric. It is responsible for routing all A2A protocol messages between components using a hierarchical topic structure. This enables patterns like request/reply, streaming updates, and publish/subscribe for discovery."}),"\n",(0,i.jsx)(s.h3,{id:"gateways",children:"Gateways"}),"\n",(0,i.jsx)(s.p,{children:"Gateways are SAC applications that act as bridges between external systems and the agent mesh. Their primary responsibilities are:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Protocol Translation"}),": Convert external protocols (for example, HTTP, WebSockets, Slack RTM) into the standardized A2A protocol, and vice-versa."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Authentication and Authorization"}),": Authenticate incoming requests and, using a pluggable ",(0,i.jsx)(s.code,{children:"AuthorizationService"}),", retrieve the user's permission scopes."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Session Management"}),": Manage external user sessions and map them to A2A task lifecycles."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Response Handling"}),": Receive asynchronous A2A responses and status updates from agents and deliver them to the external client."]}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["The ",(0,i.jsx)(s.strong,{children:"Gateway Development Kit (GDK)"})," provides ",(0,i.jsx)(s.code,{children:"BaseGatewayApp"})," and ",(0,i.jsx)(s.code,{children:"BaseGatewayComponent"})," classes to abstract common gateway logic, such as A2A protocol handling, agent discovery, and late-stage embed resolution, simplifying the creation of new gateways."]}),"\n",(0,i.jsx)(s.h3,{id:"agent-hosts",children:"Agent Hosts"}),"\n",(0,i.jsxs)(s.p,{children:["An Agent Host is a SAC application (",(0,i.jsx)(s.code,{children:"SamAgentApp"}),") that hosts a single ADK-based agent. Its key architectural functions include:"]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Hosting the ADK Runtime"}),": It manages the lifecycle of the ADK ",(0,i.jsx)(s.code,{children:"Runner"})," and ",(0,i.jsx)(s.code,{children:"LlmAgent"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"A2A Protocol Handling"}),": The internal ",(0,i.jsx)(s.code,{children:"SamAgentComponent"})," translates incoming A2A requests into ADK ",(0,i.jsx)(s.code,{children:"Task"})," objects and converts ADK ",(0,i.jsx)(s.code,{children:"Event"})," objects into outgoing A2A ",(0,i.jsx)(s.code,{children:"TaskStatusUpdateEvent"}),", ",(0,i.jsx)(s.code,{children:"TaskArtifactUpdateEvent"}),", or final response messages."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Scope Enforcement"}),": It extracts permission scopes from incoming message properties and filters the agent's available tools accordingly."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Service Initialization"}),": It initializes ADK services like the ",(0,i.jsx)(s.code,{children:"ArtifactService"})," and ",(0,i.jsx)(s.code,{children:"MemoryService"})," based on its configuration."]}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"agents",children:"Agents"}),"\n",(0,i.jsx)(s.p,{children:"An agent is the logical entity within an Agent Host that performs tasks. It is defined by its configuration, which includes:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Instructions"}),": The base prompt that defines its persona, capabilities, and constraints."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"LLM Configuration"}),": The specific large language model to use."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Toolset"}),": A collection of available tools, which can be built-in, custom Python functions, or MCP Toolsets."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"key-architectural-flows",children:"Key Architectural Flows"}),"\n",(0,i.jsx)(s.h3,{id:"user-task-processing-flow",children:"User Task Processing Flow"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["An external client sends a request to a ",(0,i.jsx)(s.strong,{children:"Gateway"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["The Gateway authenticates the request, retrieves the user's permission scopes via its ",(0,i.jsx)(s.code,{children:"AuthorizationService"}),", and translates the request into an A2A task message. It includes the scopes in the Solace message's user properties."]}),"\n",(0,i.jsxs)(s.li,{children:["The Gateway publishes the message to the target agent's request topic on the ",(0,i.jsx)(s.strong,{children:"Solace Broker"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["The corresponding ",(0,i.jsx)(s.strong,{children:"Agent Host"})," receives the message. The ",(0,i.jsx)(s.code,{children:"SamAgentComponent"})," extracts the scopes and initiates an ADK task."]}),"\n",(0,i.jsxs)(s.li,{children:["The ADK ",(0,i.jsx)(s.code,{children:"LlmAgent"})," processes the task. Before invoking the LLM, a ",(0,i.jsx)(s.code,{children:"before_model_callback"})," filters the available tools based on the user's scopes."]}),"\n",(0,i.jsxs)(s.li,{children:["As the agent executes, the ",(0,i.jsx)(s.code,{children:"SamAgentComponent"})," translates ADK events into A2A status and artifact update messages, publishing them to the originating Gateway's status topic."]}),"\n",(0,i.jsxs)(s.li,{children:["The Gateway receives these streaming updates, performs any necessary late-stage processing (like resolving ",(0,i.jsx)(s.code,{children:"artifact_content"})," embeds), and forwards them to the client."]}),"\n",(0,i.jsx)(s.li,{children:"Upon completion, the Agent Host sends a final A2A response message to the Gateway, which delivers it to the client."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"agent-to-agent-delegation-flow",children:"Agent-to-Agent Delegation Flow"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Agent A"}),", while processing a task, determines a sub-task should be delegated to ",(0,i.jsx)(s.strong,{children:"Agent B"}),"."]}),"\n",(0,i.jsxs)(s.li,{children:["Agent A uses its ",(0,i.jsx)(s.code,{children:"PeerAgentTool"})," to construct a new A2A task request for Agent B. It propagates the original user's permission scopes to maintain the security context."]}),"\n",(0,i.jsx)(s.li,{children:"The request is published to Agent B's request topic."}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Agent B's Host"})," receives and processes the sub-task, enforcing the propagated scopes on its own toolset."]}),"\n",(0,i.jsx)(s.li,{children:"Agent B sends status updates and a final response to topics designated by Agent A."}),"\n",(0,i.jsx)(s.li,{children:"Agent A receives the results and incorporates them into its ongoing task."}),"\n"]}),"\n",(0,i.jsx)(s.h3,{id:"agent-discovery-flow",children:"Agent Discovery Flow"}),"\n",(0,i.jsxs)(s.ol,{children:["\n",(0,i.jsxs)(s.li,{children:["On startup and periodically, each ",(0,i.jsx)(s.strong,{children:"Agent Host"})," publishes an ",(0,i.jsx)(s.code,{children:"AgentCard"})," (a JSON document describing its agent's capabilities) to a well-known discovery topic (for example, ",(0,i.jsx)(s.code,{children:"{namespace}/a2a/v1/discovery/agentcards"}),")."]}),"\n",(0,i.jsxs)(s.li,{children:[(0,i.jsx)(s.strong,{children:"Gateways"})," and other ",(0,i.jsx)(s.strong,{children:"Agent Hosts"})," subscribe to this topic."]}),"\n",(0,i.jsxs)(s.li,{children:["Upon receiving an ",(0,i.jsx)(s.code,{children:"AgentCard"}),", components update their local ",(0,i.jsx)(s.code,{children:"AgentRegistry"}),", making them aware of available agents for user selection (at the Gateway) or peer delegation (at the Agent)."]}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"a2a-protocol-and-topic-structure",children:"A2A Protocol and Topic Structure"}),"\n",(0,i.jsx)(s.p,{children:"The A2A protocol is based on JSON-RPC 2.0 and defines the message formats for all interactions. Communication is routed via a hierarchical topic structure on the Solace broker."}),"\n",(0,i.jsxs)(s.table,{children:[(0,i.jsx)(s.thead,{children:(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.th,{children:"Purpose"}),(0,i.jsx)(s.th,{children:"Topic Pattern"})]})}),(0,i.jsxs)(s.tbody,{children:[(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Agent Discovery"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"{namespace}/a2a/v1/discovery/agentcards"})})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Task Requests"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"{namespace}/a2a/v1/agent/request/{target_agent_name}"})})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Status Updates"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"{namespace}/a2a/v1/gateway/status/{gateway_id}/{task_id}"})})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Final Responses"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"{namespace}/a2a/v1/gateway/response/{gateway_id}/{task_id}"})})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Peer Delegation Status"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"{namespace}/a2a/v1/agent/status/{delegating_agent_name}/{sub_task_id}"})})]}),(0,i.jsxs)(s.tr,{children:[(0,i.jsx)(s.td,{children:(0,i.jsx)(s.strong,{children:"Peer Delegation Response"})}),(0,i.jsx)(s.td,{children:(0,i.jsx)(s.code,{children:"{namespace}/a2a/v1/agent/response/{delegating_agent_name}/{sub_task_id}"})})]})]})]}),"\n",(0,i.jsx)(s.p,{children:"This topic structure allows for precise, point-to-point routing in a decoupled, asynchronous environment."})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>o,x:()=>a});var n=t(6540);const i={},r=n.createContext(i);function o(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[2274],{4700:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>x,frontMatter:()=>r,metadata:()=>o,toc:()=>l});const o=JSON.parse('{"id":"documentation/Enterprise/single-sign-on","title":"SSO","description":"How to enable SSO","source":"@site/docs/documentation/Enterprise/single-sign-on.md","sourceDirName":"documentation/Enterprise","slug":"/documentation/Enterprise/single-sign-on","permalink":"/solace-agent-mesh/docs/documentation/Enterprise/single-sign-on","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/Enterprise/single-sign-on.md","tags":[],"version":"current","sidebarPosition":10,"frontMatter":{"title":"SSO","sidebar_position":10},"sidebar":"docSidebar","previous":{"title":"Installation","permalink":"/solace-agent-mesh/docs/documentation/Enterprise/installation"}}');var i=t(4848),s=t(8453);const r={title:"SSO",sidebar_position:10},a=void 0,c={},l=[{value:"How to enable SSO",id:"how-to-enable-sso",level:2},{value:"Running Solace Agent Mesh Enterprise with SSO enabled",id:"running-solace-agent-mesh-enterprise-with-sso-enabled",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,s.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"how-to-enable-sso",children:"How to enable SSO"}),"\n",(0,i.jsx)(n.p,{children:"Before running the Docker container, create two configuration files for SSO under the root directory in your Named Docker Volume. Use the content provided below for each file:"}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"Configuration files for SSO"}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"oauth2_server.yaml"})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:'---\n# Example gateway configuration with OAuth2 service integration\n# This shows how to configure a gateway to use the OAuth2 authentication service\n\nlog:\n stdout_log_level: INFO\n log_file_level: DEBUG\n log_file: oauth_server.log\n\n!include ../shared_config.yaml\n\nshared_config:\n # OAuth2 service configuration\n - oauth2_config: &oauth2_config\n enabled: true\n config_file: "config/sso_vol/oauth2_config.yaml"\n host: ${OAUTH2_HOST, localhost}\n port: ${OAUTH2_PORT, 9000}\n ssl_cert: "" # Optional: path to SSL certificate\n ssl_key: "" # Optional: path to SSL private key\n\nflows:\n # Initialize OAuth2 service\n - name: oauth2_service\n components:\n - component_name: oauth2_auth_service\n component_module: src.components.oauth2_component\n component_config:\n <<: *oauth2_config\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"oauth2_config.yaml"})}),(0,i.jsx)(n.p,{children:"In the oauth2_config.yaml file, uncomment the authentication provider you want to use.\nNote that the Azure provider is configured as the default option."}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-yaml",children:'---\n# OAuth2 Service Configuration\n# This file configures the OAuth2 authentication service that supports multiple providers\n# All providers now use the unified OIDC approach with automatic endpoint discovery\n\n# Enable or disable the OAuth2 service\nenabled: ${OAUTH2_ENABLED:false}\n\n# Development mode - enables insecure transport and relaxed token scope for local development\n# Set OAUTH2_DEV_MODE=true for local development (NEVER use in production!)\ndevelopment_mode: ${OAUTH2_DEV_MODE:false}\n\n# OAuth2 providers configuration\n# All providers now use the unified OIDCProvider with automatic endpoint discovery\nproviders:\n # Google OAuth2 provider\n # google:\n # # OIDC issuer URL - endpoints will be discovered automatically\n # issuer: "https://accounts.google.com"\n # client_id: ${GOOGLE_CLIENT_ID}\n # client_secret: ${GOOGLE_CLIENT_SECRET}\n # redirect_uri: ${GOOGLE_REDIRECT_URI:http://localhost:8080/callback}\n # scope: "openid email profile"\n\n # Azure/Microsoft OAuth2 provider\n azure:\n # Azure OIDC issuer URL includes tenant ID\n issuer: https://login.microsoftonline.com/${AZURE_TENANT_ID}/v2.0\n client_id: ${AZURE_CLIENT_ID}\n client_secret: ${AZURE_CLIENT_SECRET}\n redirect_uri: ${AZURE_REDIRECT_URI:http://localhost:8080/callback}\n scope: "openid email profile offline_access"\n\n # Auth0 OAuth2 provider\n # auth0:\n # # Auth0 issuer URL\n # issuer: ${AUTH0_ISSUER:https://your-domain.auth0.com/}\n # client_id: ${AUTH0_CLIENT_ID}\n # client_secret: ${AUTH0_CLIENT_SECRET}\n # redirect_uri: ${AUTH0_REDIRECT_URI:http://localhost:8080/callback}\n # scope: "openid email profile"\n # # Optional: Auth0 audience for API access\n # audience: ${AUTH0_AUDIENCE:}\n\n # # Okta OAuth2 provider (example)\n # okta:\n # issuer: ${OKTA_ISSUER:https://your-okta-domain.okta.com/oauth2/default}\n # client_id: ${OKTA_CLIENT_ID}\n # client_secret: ${OKTA_CLIENT_SECRET}\n # redirect_uri: ${OKTA_REDIRECT_URI:http://localhost:8080/callback}\n # scope: "openid email profile"\n\n # # Keycloak OAuth2 provider (example)\n # keycloak:\n # issuer: ${KEYCLOAK_ISSUER:https://your-keycloak.com/auth/realms/your-realm}\n # client_id: ${KEYCLOAK_CLIENT_ID}\n # client_secret: ${KEYCLOAK_CLIENT_SECRET}\n # redirect_uri: ${KEYCLOAK_REDIRECT_URI:http://localhost:8080/callback}\n # scope: "openid email profile"\n\n # # Generic OIDC provider (for any standard OIDC-compliant provider)\n # custom_oidc:\n # # Just provide the issuer URL and the service will discover all endpoints\n # issuer: ${CUSTOM_OIDC_ISSUER:https://your-provider.com}\n # client_id: ${CUSTOM_OIDC_CLIENT_ID}\n # client_secret: ${CUSTOM_OIDC_CLIENT_SECRET}\n # redirect_uri: ${CUSTOM_OIDC_REDIRECT_URI:http://localhost:8080/callback}\n # scope: "openid email profile"\n\n# Logging configuration\nlogging:\n level: ${OAUTH2_LOG_LEVEL:INFO}\n\n# Session configuration\nsession:\n # Session timeout in seconds (default: 1 hour)\n timeout: ${OAUTH2_SESSION_TIMEOUT:3600}\n\n# Security configuration\nsecurity:\n # CORS settings\n cors:\n enabled: ${OAUTH2_CORS_ENABLED:true}\n origins: ${OAUTH2_CORS_ORIGINS:*}\n\n # Rate limiting\n rate_limit:\n enabled: ${OAUTH2_RATE_LIMIT_ENABLED:true}\n requests_per_minute: ${OAUTH2_RATE_LIMIT_RPM:60}\n'})})]}),"\n",(0,i.jsx)(n.h2,{id:"running-solace-agent-mesh-enterprise-with-sso-enabled",children:"Running Solace Agent Mesh Enterprise with SSO enabled"}),"\n",(0,i.jsx)(n.p,{children:"Here is an example of Docker run command with Azure SSO provider for production use case:"}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["You may need to include ",(0,i.jsx)(n.code,{children:"--platform linux/amd64"})," depending on the host machine you\u2019re using."]})}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'docker run -itd -p 8000:8000 -p 9000:9000 \\\n -e LLM_SERVICE_API_KEY="<YOUR_LLM_TOKEN>" \\\n -e LLM_SERVICE_ENDPOINT="<YOUR_LLM_SERVICE_ENDPOINT>" \\\n -e LLM_SERVICE_PLANNING_MODEL_NAME="<YOUR_MODEL_NAME>" \\\n -e LLM_SERVICE_GENERAL_MODEL_NAME="<YOUR_MODEL_NAME>" \\\n -e NAMESPACE="<YOUR_NAMESPACE>" \\\n -e SOLACE_DEV_MODE="false" \\\n -e SOLACE_BROKER_URL="<YOUR_BROKER_URL>" \\\n -e SOLACE_BROKER_VPN="<YOUR_BROKER_VPN>" \\\n -e SOLACE_BROKER_USERNAME="<YOUR_BROKER_USERNAME>" \\\n -e SOLACE_BROKER_PASSWORD="<YOUR_BROKER_PASSWORD>" \\\n -e FASTAPI_HOST="0.0.0.0" \\\n -e FASTAPI_PORT="8000" \\\n -e AZURE_TENANT_ID="xxxxxxxxx-xxxxxx-xxxxxxxx-xxxxxxxxxx" \\\n -e AZURE_CLIENT_ID="xxxxxxxxx-xxxxxx-xxxxxxxx-xxxxxxxxxx" \\\n -e AZURE_CLIENT_SECRET="xxxxxxxxx-xxxxxx-xxxxxxxx-xxxxxxxxxx" \\\n -e OAUTH2_ENABLED="true" \\\n -e OAUTH2_LOG_LEVEL="DEBUG" \\\n -e OAUTH2_DEV_MODE="true" \\\n -e OAUTH2_HOST="0.0.0.0" \\\n -e OAUTH2_PORT="9000" \\\n -e FRONTEND_USE_AUTHORIZATION="true" \\\n -e FRONTEND_REDIRECT_URL="http://localhost:8000" \\\n -e FRONTEND_AUTH_LOGIN_URL="http://localhost:8000/api/v1/auth/login" \\\n -e EXTERNAL_AUTH_SERVICE_URL="http://localhost:9000" \\\n -e EXTERNAL_AUTH_PROVIDER="azure" \\\n -e EXTERNAL_AUTH_CALLBACK="http://localhost:8000/api/v1/auth/callback" \\\n -v <YOUR_NAMED_DOCKER_VOLUME>:/app/config/sso_vol/ \\\n --name sam-ent-prod-sso \\\nsolace-agent-mesh-enterprise:<tag> run config/sso_vol/oauth2_server.yaml config/webui_backend.yaml config/a2a_orchestrator.yaml config/a2a_agents.yaml\n'})}),"\n",(0,i.jsxs)(n.p,{children:["You can then access Solace Agent Mesh Enterprise UI through ",(0,i.jsx)(n.a,{href:"http://localhost:8000",children:"http://localhost:8000"})]}),"\n",(0,i.jsxs)(t,{children:[(0,i.jsx)("summary",{children:"Configuration Options"}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Specify the hostname and port for the UI running in the docker container. The main UI runs on port 8000 by default. Using 0.0.0.0 as the host allows external access to the container."})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e FASTAPI_HOST="0.0.0.0" \\\n-e FASTAPI_PORT="8000" \\ \n'})}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Enable single sign-on processing on the frontend."})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e FRONTEND_USE_AUTHORIZATION="true" \\\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsxs)(n.strong,{children:["Specify the main URL of the UI. For instance, this could be ",(0,i.jsx)(n.a,{href:"https://www.example.com",children:"https://www.example.com"})]})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e FRONTEND_REDIRECT_URL="http://localhost:8000" \\\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsxs)(n.strong,{children:["Set the login URL used by the main UI. For instance, this could be ",(0,i.jsx)(n.a,{href:"https://www.example.com/api/v1/auth/login",children:"https://www.example.com/api/v1/auth/login"})]})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e FRONTEND_AUTH_LOGIN_URL="http://localhost:8000/api/v1/auth/login" \\\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Enable the OAUTH2 server and set the log level"})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e OAUTH2_ENABLED="true" \\\n-e OAUTH2_LOG_LEVEL="DEBUG" \\\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Specify the hostname and port for the authorization server running in the docker container. Using 0.0.0.0 as the host allows external access to the container."})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e OAUTH2_HOST="0.0.0.0" \\\n-e OAUTH2_PORT="9000" \\\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Specify whether the Oauth2 checks use dev mode. When dev mode is true the following environment variables are added to allow http access and relax the token scope. This MUST be set false in a production environment."})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e OAUTH2_DEV_MODE="true" \\\n'})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'OAUTHLIB_RELAX_TOKEN_SCOPE="1"\nOAUTHLIB_INSECURE_TRANSPORT="1"\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Configure the environment variables for your chosen authentication provider. Refer to the oauth2_config.yaml file to identify the required variables. For example, with Azure set the following"})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e AZURE_TENANT_ID="xxxxxxxxx-xxxxxx-xxxxxxxx-xxxxxxxxxx" \\\n-e AZURE_CLIENT_ID="xxxxxxxxx-xxxxxx-xxxxxxxx-xxxxxxxxxx" \\\n-e AZURE_CLIENT_SECRET="xxxxxxxxx-xxxxxx-xxxxxxxx-xxxxxxxxxx" \\\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Configure the authorization server's public URL (accessible from outside the Docker container) and specify the OAuth2 provider\u2019s name from oauth2_config.yaml (this example uses the azure profile):"})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e EXTERNAL_AUTH_SERVICE_URL="http://localhost:9000" \\\n-e EXTERNAL_AUTH_PROVIDER="azure" \\\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsxs)(n.strong,{children:["Lastly, set the callback URL that your auth provider will use to redirect with the auth code. For instance, this could be ",(0,i.jsx)(n.a,{href:"https://www.example.com/api/v1/auth/callback",children:"https://www.example.com/api/v1/auth/callback"})]})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'-e EXTERNAL_AUTH_CALLBACK="http://localhost:8000/api/v1/auth/callback" \\\n'})}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Note that both the main UI and authorization server ports must be mapped to the host machine, as shown in the Docker run command above:"})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"-p 8000:8000 -p 9000:9000 \\\n"})}),(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"The oauth 2 configuration files must be mounted inside the container:"})}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"-v <YOUR_NAMED_DOCKER_VOLUME>:/app/config/sso_vol/ \\\n"})})]})]})}function x(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>a});var o=t(6540);const i={},s=o.createContext(i);function r(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[665],{6433:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>a});const t=JSON.parse('{"id":"documentation/user-guide/solace-ai-connector","title":"Solace AI Event Connector","description":"The Solace AI Event Connector is an important part of Solace Agent Mesh. It is a powerful tool designed to seamlessly integrate AI capabilities into your event-driven architecture. It enables you to create efficient pipelines that can process events from PubSub+ event brokers, using AI and other types of components, and then publish the results back to PubSub+ event brokers.","source":"@site/docs/documentation/user-guide/solace-ai-connector.md","sourceDirName":"documentation/user-guide","slug":"/documentation/user-guide/solace-ai-connector","permalink":"/solace-agent-mesh/docs/documentation/user-guide/solace-ai-connector","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/user-guide/solace-ai-connector.md","tags":[],"version":"current","sidebarPosition":10,"frontMatter":{"title":"Solace AI Event Connector","sidebar_position":10},"sidebar":"docSidebar","previous":{"title":"Plugins","permalink":"/solace-agent-mesh/docs/documentation/concepts/plugins"},"next":{"title":"Structure","permalink":"/solace-agent-mesh/docs/documentation/user-guide/structure"}}');var o=s(4848),i=s(8453);const r={title:"Solace AI Event Connector",sidebar_position:10},c="Solace AI Event Connector",l={},a=[{value:"Key Features",id:"key-features",level:2},{value:"How It Works",id:"how-it-works",level:2},{value:"Configuration",id:"configuration",level:2}];function d(e){const n={a:"a",admonition:"admonition",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.header,{children:(0,o.jsx)(n.h1,{id:"solace-ai-event-connector",children:"Solace AI Event Connector"})}),"\n",(0,o.jsx)(n.p,{children:"The Solace AI Event Connector is an important part of Solace Agent Mesh. It is a powerful tool designed to seamlessly integrate AI capabilities into your event-driven architecture. It enables you to create efficient pipelines that can process events from PubSub+ event brokers, using AI and other types of components, and then publish the results back to PubSub+ event brokers."}),"\n",(0,o.jsx)(n.admonition,{title:"GitHub",type:"info",children:(0,o.jsxs)(n.p,{children:["For more information, see ",(0,o.jsx)(n.a,{href:"https://github.com/SolaceLabs/solace-ai-connector",children:"Solace AI Event Connector Github"}),"."]})}),"\n",(0,o.jsx)(n.h2,{id:"key-features",children:"Key Features"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Event Processing Pipeline"}),": Creates flows consisting of input components, processing components, and output components."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"AI Model Integration"}),": Built on LangChain and LiteLLM supporting various AI models and providers."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Extensible Architecture"}),": Supports custom plugins and components for specialized processing needs."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Resilient Processing"}),": Ensures reliable event handling with acknowledgment-based processing."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.strong,{children:"Scalable Design"}),": Supports parallel processing and multiple component instances."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"how-it-works",children:"How It Works"}),"\n",(0,o.jsx)(n.p,{children:"Solace AI Event Connector operates through a series of interconnected components:"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"SAC Flow Diagram",src:s(248).A+"",width:"896",height:"299"})}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.strong,{children:"Flow Structure"})}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Each flow has one input component"}),"\n",(0,o.jsx)(n.li,{children:"Multiple processing components"}),"\n",(0,o.jsx)(n.li,{children:"One output component"}),"\n",(0,o.jsx)(n.li,{children:"Components are connected via queues for buffering"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.strong,{children:"Component Processing"})}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Each component runs in its own thread"}),"\n",(0,o.jsx)(n.li,{children:"Processes one message at a time"}),"\n",(0,o.jsx)(n.li,{children:"Supports input transforms and selections"}),"\n",(0,o.jsx)(n.li,{children:"Can be scaled with multiple instances for parallel processing"}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"SAC Component Diagram",src:s(1683).A+"",width:"723",height:"292"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.strong,{children:"Event Management"})}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Tracks events throughout the processing pipeline"}),"\n",(0,o.jsx)(n.li,{children:"Uses acknowledgment system for reliable delivery"}),"\n",(0,o.jsx)(n.li,{children:"Ensures no event loss during processing"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"configuration",children:"Configuration"}),"\n",(0,o.jsx)(n.p,{children:"The Solace AI Event Connector is configured through YAML files that allow you to:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Define flow components and their sequence"}),"\n",(0,o.jsx)(n.li,{children:"Set queue depths between components"}),"\n",(0,o.jsx)(n.li,{children:"Configure the number of parallel instances"}),"\n",(0,o.jsx)(n.li,{children:"Specify input/output parameters"}),"\n",(0,o.jsx)(n.li,{children:"Define processing logic and transformations"}),"\n",(0,o.jsx)(n.li,{children:"Pass the source path for the custom python components"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["For more information about the connector, see ",(0,o.jsx)(n.a,{href:"https://github.com/SolaceLabs/solace-ai-connector/blob/main/docs/index.md",children:"Solace AI Event Connector"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},248:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/sac-flows-80d5b603c6aafd33e87945680ce0abf3.png"},1683:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/sac_parts_of_a_component-cb3d0424b1d0c17734c5435cca6b4082.png"},8453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>c});var t=s(6540);const o={},i=t.createContext(o);function r(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[1721],{3878:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>s,toc:()=>c});const s=JSON.parse('{"id":"documentation/getting-started/introduction","title":"Introduction","description":"Solace Agent Mesh","source":"@site/docs/documentation/getting-started/introduction.md","sourceDirName":"documentation/getting-started","slug":"/documentation/getting-started/introduction","permalink":"/solace-agent-mesh/docs/documentation/getting-started/introduction","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/getting-started/introduction.md","tags":[],"version":"current","sidebarPosition":10,"frontMatter":{"title":"Introduction","sidebar_position":10},"sidebar":"docSidebar","next":{"title":"Installation","permalink":"/solace-agent-mesh/docs/documentation/getting-started/installation"}}');var i=t(4848),r=t(8453);const a={title:"Introduction",sidebar_position:10},o=void 0,l={},c=[{value:"Solace Agent Mesh",id:"solace-agent-mesh",level:2},{value:"What Problems Does the Mesh Solve?",id:"what-problems-does-the-mesh-solve",level:3},{value:"Why Choose Solace Agent Mesh?",id:"why-choose-solace-agent-mesh",level:3},{value:"Real-World Applications",id:"real-world-applications",level:2},{value:"Evolution Through Usage",id:"evolution-through-usage",level:3},{value:"For Developers",id:"for-developers",level:2},{value:"Getting Started",id:"getting-started",level:2}];function d(e){const n={a:"a",br:"br",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"solace-agent-mesh",children:"Solace Agent Mesh"}),"\n",(0,i.jsx)(n.p,{children:"Modern AI development faces a fundamental challenge: while powerful AI models are readily available, the real complexity lies in connecting them to the data and systems where they can provide value. Data exists in isolated silos - spread across databases, SaaS platforms, APIs, and legacy systems - making it difficult to build AI applications that can work across these boundaries."}),"\n",(0,i.jsx)(n.p,{children:'Solace Agent Mesh is an open-source framework that tackles this challenge head-on by integrating the Google Agent Development Kit (ADK) with the Solace AI Connector (SAC) to provide a "Universal A2A Agent Host" that enables scalable, distributed AI agent communication through Solace PubSub+. Whether you\'re an AI enthusiast experimenting with new models, or an enterprise developer building production systems, Solace Agent Mesh gives you the tools to:'}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"connect AI agents to real-world data sources and systems through a standardized A2A (Agent-to-Agent) protocol"}),"\n",(0,i.jsx)(n.li,{children:"add gateways to provide event-based integrations or interactive UI connections"}),"\n",(0,i.jsx)(n.li,{children:"monitor and debug AI interactions in real-time through comprehensive observability"}),"\n",(0,i.jsx)(n.li,{children:"deploy solutions that scale from prototype to production with enterprise-grade reliability"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Rather than trying to be a monolithic AI platform, Solace Agent Mesh focuses on being an excellent integration layer built on proven event-driven architecture. It brings together specialized agents - whether they're using local databases, accessing cloud APIs, or interfacing with enterprise systems - and helps them collaborate through standardized A2A communication to solve complex problems."}),"\n",(0,i.jsx)(n.p,{children:"Built on event-driven architecture technology from Solace with Google ADK integration, Solace Agent Mesh provides the robust foundation needed for both experimental and production deployments."}),"\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.img,{alt:"Solace Agent Mesh Overview",src:t(1351).A+"",width:"2558",height:"1788"})}),"\n",(0,i.jsx)(n.h3,{id:"what-problems-does-the-mesh-solve",children:"What Problems Does the Mesh Solve?"}),"\n",(0,i.jsx)(n.p,{children:"Solace Agent Mesh tackles the hardest challenges in building collaborative AI systems: agent coordination, system integration, and extensibility at scale. This section reveals the key problems it solves and shows how organizations are using it today."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Event-Driven Architecture at the Core:"}),(0,i.jsx)(n.br,{}),"\n","The beating heart of Solace Agent Mesh is its event mesh\u2014a neural network for your AI components. This architecture creates a fluid, asynchronous communication layer where messages flow naturally between agents, gateways, and external systems. By decoupling senders from receivers, the mesh dramatically simplifies agent interactions, ensures message delivery even during component failures, and lets you add, remove, or restart components on the fly without disrupting workflows."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Breaking Down AI Silos:"}),(0,i.jsx)(n.br,{}),"\n","Specialized agents operate independently yet collaborate effortlessly\u2014like expert teammates rather than isolated tools."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Orchestrating Complex Workflows:"}),(0,i.jsx)(n.br,{}),"\n","Create sophisticated multi-agent processes where tasks flow naturally between specialists, executing in sequence or parallel based on dynamic needs."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Speaking a Common Language:"}),(0,i.jsx)(n.br,{}),"\n","The A2A protocol creates a universal communication standard, ensuring all agents and gateways understand each other regardless of their internal implementation."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Unifying AI Capabilities:"}),(0,i.jsx)(n.br,{}),"\n","Blend diverse AI models, custom tools (Python functions, MCP tools), and enterprise data sources into a cohesive ecosystem."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Connecting to Your World:"}),(0,i.jsx)(n.br,{}),"\n","Purpose-built gateways bridge the gap between the agent mesh and your existing systems\u2014web interfaces, Slack workspaces, APIs, and event streams."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Handling the Unpredictable:"}),(0,i.jsx)(n.br,{}),"\n","The event-driven backbone gracefully manages long-running tasks and asynchronous patterns that are inherent in AI agent interactions."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Adding Agents to Increase Capabilities"}),":\nEach new agent adds more capabilities to the system. Adding a new agent is not additive\u2014it is exponential. With each agent being able to enhance all other agents as they collaborate for more and more complex tasks."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Adding Gateways to Increase the Supported Use Cases"}),":\nEach new gateway opens up new use cases for the system. A new gateway can provide a new interface to the system, with a different system purpose and response rules."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Enterprise-Ready"}),":\nEngineered from the ground up for production deployment, this solution leverages expertise from Solace in building mission-critical distributed systems."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"why-choose-solace-agent-mesh",children:"Why Choose Solace Agent Mesh?"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Enterprise-Grade Performance:"}),(0,i.jsx)(n.br,{}),"\n","Built on Solace PubSub+ Event Broker, the mesh delivers high-throughput, fault-tolerant messaging that scales with your needs."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Plug-and-Play Extensibility:"}),(0,i.jsx)(n.br,{}),"\n","The event-driven architecture makes adding new capabilities remarkably simple. Deploy a new agent, and it instantly publishes its capabilities to the mesh. Other components discover it automatically\u2014no manual configuration, no downtime, no integration headaches."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Modular by Design:"}),(0,i.jsx)(n.br,{}),"\n","Every component\u2014agents, gateways, tools\u2014is a self-contained module you can reuse, replace, or enhance independently."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Configuration-Driven:"}),(0,i.jsx)(n.br,{}),"\n","YAML-based configuration gives you precise control over agent behavior, service integrations, and security settings without code changes."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Security-First Approach:"}),(0,i.jsx)(n.br,{}),"\n","The built-in authorization framework provides fine-grained access control over agents and tools based on user roles and scopes."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Resilient by Nature:"}),(0,i.jsx)(n.br,{}),"\n","Event-driven design creates responsive, self-healing interactions that recover gracefully from disruptions."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"real-world-applications",children:"Real-World Applications"}),"\n",(0,i.jsx)(n.p,{children:"Organizations are using Solace Agent Mesh in diverse scenarios:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"Intelligent Enterprise Automation:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Customer service systems that route inquiries to specialized agents based on intent and context."}),"\n",(0,i.jsx)(n.li,{children:"Data processing pipelines where specialized agents transform, analyze, and enrich information from multiple sources."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsx)(n.p,{children:(0,i.jsx)(n.strong,{children:"AI Task Specialization:"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Image analysis workflows where one agent processes visual data and delegates text generation to a language specialist."}),"\n",(0,i.jsx)(n.li,{children:"Document processing systems that extract text, summarize content, and translate results\u2014each step handled by the perfect specialist."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Human-AI Collaboration:"}),(0,i.jsx)(n.br,{}),"\n","Agents that perform complex tasks while keeping humans in the loop for approvals, clarifications, or expert guidance via web or chat interfaces."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Multi-Agent Research:"}),(0,i.jsx)(n.br,{}),"\n","A production-ready platform for exploring agent collaboration patterns, delegation strategies, and distributed AI problem-solving."]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Data-Driven Intelligence:"}),(0,i.jsx)(n.br,{}),"\n","Agents that query databases, transform results, and generate visualizations based on natural language requests or system events."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"evolution-through-usage",children:"Evolution Through Usage"}),"\n",(0,i.jsx)(n.p,{children:"Solace Agent Mesh grows with your needs. For example, at Solace we started with basic agents and have continuously expanded the system's capabilities:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Added specialized agents for JIRA and Confluence integration"}),"\n",(0,i.jsx)(n.li,{children:"Implemented multiple interface options including browser-based user interfaces and REST API gateways"}),"\n",(0,i.jsx)(n.li,{children:"Integrated with various AI models and data sources"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"for-developers",children:"For Developers"}),"\n",(0,i.jsx)(n.p,{children:"Solace Agent Mesh is an agentic framework that provides several key technical advantages:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Complete Observability"}),": Because all communication flows through the event broker, you can monitor and debug the entire system in real-time"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Flexible Integration"}),": Built-in support for common enterprise systems and AI frameworks"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Plugin Architecture"}),": Easily extend the system with custom agents and gateways"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Developer Tools"}),": Comprehensive CLI and debugging utilities"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"getting-started",children:"Getting Started"}),"\n",(0,i.jsx)(n.p,{children:"Whether you're building a proof-of-concept or planning a production deployment, Solace Agent Mesh provides the foundation you need. For more information, see:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/getting-started/installation",children:"Installation"}),": For installing and setting up Solace Agent Mesh."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/getting-started/quick-start",children:"Quick Start"}),": For creating a project, build, and run Solace Agent Mesh."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/getting-started/component-overview",children:"Components Overview"}),": Understand the parts of Solace Agent Mesh."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1351:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/Solace_AI_Framework_With_Broker-85f0a306a9bcdd20b390b7a949f6d862.png"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var s=t(6540);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[6634],{1893:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>l});const o=JSON.parse('{"id":"documentation/getting-started/component-overview","title":"Component Overview","description":"Solace Agent Mesh is built on event-driven architecture principles using the A2A (Agent-to-Agent) protocol, with all components communicating through a standardized protocol over Solace PubSub+. This architectural choice enables loose coupling between components, making the system highly flexible and scalable.","source":"@site/docs/documentation/getting-started/component-overview.md","sourceDirName":"documentation/getting-started","slug":"/documentation/getting-started/component-overview","permalink":"/solace-agent-mesh/docs/documentation/getting-started/component-overview","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/getting-started/component-overview.md","tags":[],"version":"current","sidebarPosition":40,"frontMatter":{"title":"Component Overview","sidebar_position":40},"sidebar":"docSidebar","previous":{"title":"Quick Start","permalink":"/solace-agent-mesh/docs/documentation/getting-started/quick-start"},"next":{"title":"Configurations","permalink":"/solace-agent-mesh/docs/documentation/getting-started/configurations"}}');var s=n(4848),i=n(8453);const r={title:"Component Overview",sidebar_position:40},a="Component Overview",c={},l=[];function d(e){const t={a:"a",h1:"h1",header:"header",li:"li",ol:"ol",p:"p",strong:"strong",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"component-overview",children:"Component Overview"})}),"\n",(0,s.jsx)(t.p,{children:"Solace Agent Mesh is built on event-driven architecture principles using the A2A (Agent-to-Agent) protocol, with all components communicating through a standardized protocol over Solace PubSub+. This architectural choice enables loose coupling between components, making the system highly flexible and scalable."}),"\n",(0,s.jsx)(t.p,{children:'Solace Agent Mesh integrates the Google Agent Development Kit (ADK) with a Solace event mesh to provide a "Universal A2A Agent Host" that enables distributed AI agent communication. Each component is designed to perform specific roles while working together seamlessly through the A2A protocol.'}),"\n",(0,s.jsx)(t.p,{children:"The key components that make up Solace Agent Mesh are:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"PubSub+ Event Broker or Event Mesh"}),": The central nervous system of the framework, facilitating A2A protocol communication between all components. ",(0,s.jsx)(t.a,{href:"https://solace.com/products/event-broker/",children:"more \ud83d\udd17"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"A2A Protocol & Agent Registry"}),": The standardized communication protocol that enables agent discovery, task delegation, and peer-to-peer communication."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Orchestrator"}),": A specialized agent responsible for breaking down requests into tasks and managing the overall workflow. ",(0,s.jsx)(t.a,{href:"/solace-agent-mesh/docs/documentation/concepts/orchestrator",children:"more \ud83d\udd17"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Gateways"}),": The entry and exit points for the system, providing various interfaces (REST, HTTP SSE, webhooks, event mesh) that translate external requests into A2A protocol messages. ",(0,s.jsx)(t.a,{href:"/solace-agent-mesh/docs/documentation/concepts/gateways",children:"more \ud83d\udd17"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Agents"}),": ADK-powered processing units that communicate through the A2A protocol, each bringing specialized capabilities and tools. ",(0,s.jsx)(t.a,{href:"/solace-agent-mesh/docs/documentation/concepts/agents",children:"more \ud83d\udd17"})]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"ADK Runtime"}),": The Google Agent Development Kit provides the core intelligence layer with tool execution, session management, and artifact handling capabilities."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Built-in Tools"}),": Comprehensive tool ecosystem including artifact management, data analysis, web tools, and peer agent delegation capabilities."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"Real-time Monitoring and Debugging Component"}),": Enables real-time monitoring of system activities and provides interactive debugging capabilities for administrators. ",(0,s.jsx)(t.a,{href:"/solace-agent-mesh/docs/documentation/deployment/observability",children:"more \ud83d\udd17"})]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var o=n(6540);const s={},i=o.createContext(s);function r(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[3486],{3782:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"documentation/Enterprise/installation","title":"Installation","description":"Step 1: Prepare the Enterprise Image","source":"@site/docs/documentation/Enterprise/installation.md","sourceDirName":"documentation/Enterprise","slug":"/documentation/Enterprise/installation","permalink":"/solace-agent-mesh/docs/documentation/Enterprise/installation","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/Enterprise/installation.md","tags":[],"version":"current","sidebarPosition":5,"frontMatter":{"title":"Installation","sidebar_position":5},"sidebar":"docSidebar","previous":{"title":"A2A Technical Migration Map","permalink":"/solace-agent-mesh/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map"},"next":{"title":"SSO","permalink":"/solace-agent-mesh/docs/documentation/Enterprise/single-sign-on"}}');var a=s(4848),o=s(8453);const r={title:"Installation",sidebar_position:5},i=void 0,c={},l=[{value:"Step 1: Prepare the Enterprise Image",id:"step-1-prepare-the-enterprise-image",level:2},{value:"Step 2: Get Image name",id:"step-2-get-image-name",level:2},{value:"Step 3: Running Solace Agent Mesh Enterprise",id:"step-3-running-solace-agent-mesh-enterprise",level:2},{value:"Development Use Case",id:"development-use-case",level:3},{value:"Production Use Case",id:"production-use-case",level:3}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h2,{id:"step-1-prepare-the-enterprise-image",children:"Step 1: Prepare the Enterprise Image"}),"\n",(0,a.jsx)(n.admonition,{type:"tip",children:(0,a.jsxs)(n.p,{children:["All the docker commands can also be ran using any docker compatbile tool like ",(0,a.jsx)(n.a,{href:"https://podman.io/",children:"podman"})]})}),"\n",(0,a.jsxs)(n.p,{children:["Download the latest enterprise docker image tarball from the ",(0,a.jsx)(n.a,{href:"https://products.solace.com/prods/Agent_Mesh/Enterprise/",children:"Solace Product Portal"}),"."]}),"\n",(0,a.jsx)(n.p,{children:"Load the image using Docker with the following command."}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"docker load -i solace-agent-mesh-enterprise-<tag>.tar.gz\n"})}),"\n",(0,a.jsxs)(n.p,{children:["Ensure you replace ",(0,a.jsx)(n.code,{children:"<tag>"})," with the appropriate version."]}),"\n",(0,a.jsx)(n.h2,{id:"step-2-get-image-name",children:"Step 2: Get Image name"}),"\n",(0,a.jsx)(n.p,{children:"Once loaded, run the following command to verify your installation."}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"docker images\n"})}),"\n",(0,a.jsx)(n.p,{children:"Example output:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:"REPOSITORY TAG IMAGE ID CREATED SIZE\n868978040651.dkr.ecr.us-east-1.amazonaws.com/solace-agent-mesh-enterprise 1.0.37-c8890c7f31 2589d25d0917 9 days ago 5.25 GB\n"})}),"\n",(0,a.jsx)(n.p,{children:"Take note of the name and tag of the image."}),"\n",(0,a.jsxs)(n.p,{children:["In this case our image name would be: ",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(n.code,{children:"868978040651.dkr.ecr.us-east-1.amazonaws.com/solace-agent-mesh-enterprise:1.0.37-c8890c7f31"})]}),"\n",(0,a.jsxs)(n.p,{children:["Note the hashes at the beginning and end (",(0,a.jsx)(n.code,{children:"868978040651"})," and ",(0,a.jsx)(n.code,{children:"c8890c7f31"}),", respectively) could be different for each version."]}),"\n",(0,a.jsx)(n.h2,{id:"step-3-running-solace-agent-mesh-enterprise",children:"Step 3: Running Solace Agent Mesh Enterprise"}),"\n",(0,a.jsx)(n.p,{children:"Here are two examples of Docker run commands for both a development use case as well as a production use case:"}),"\n",(0,a.jsx)(n.admonition,{type:"tip",children:(0,a.jsxs)(n.p,{children:["You may need to include ",(0,a.jsx)(n.code,{children:"--platform linux/amd64"})," depending on the host machine you\u2019re using."]})}),"\n",(0,a.jsx)(n.h3,{id:"development-use-case",children:"Development Use Case"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:'docker run -itd -p 8001:8000 \\\n -e LLM_SERVICE_API_KEY="<YOUR_LLM_TOKEN>" \\\n -e LLM_SERVICE_ENDPOINT="<YOUR_LLM_SERVICE_ENDPOINT>" \\\n -e LLM_SERVICE_PLANNING_MODEL_NAME="<YOUR_MODEL_NAME>" \\\n -e LLM_SERVICE_GENERAL_MODEL_NAME="<YOUR_MODEL_NAME>" \\\n -e NAMESPACE="<YOUR_NAMESPACE>" \\\n -e SOLACE_DEV_MODE="true" \\\n --name sam-ent-dev \\\n solace-agent-mesh-enterprise:<tag>\n'})}),"\n",(0,a.jsxs)(t,{children:[(0,a.jsx)("summary",{children:"Example"}),(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:'docker run -itd -p 8001:8000 \\\n -e LLM_SERVICE_API_KEY="<YOUR_LLM_TOKEN>" \\\n -e LLM_SERVICE_ENDPOINT="https://lite-llm.mymaas.net/" \\\n -e LLM_SERVICE_PLANNING_MODEL_NAME="openai/vertex-claude-4-sonnet" \\\n -e LLM_SERVICE_GENERAL_MODEL_NAME="openai/vertex-claude-4-sonnet" \\\n -e NAMESPACE="sam-dev" \\\n -e SOLACE_DEV_MODE="true" \\\n --name sam-ent-dev \\\n 868978040651.dkr.ecr.us-east-1.amazonaws.com/solace-agent-mesh-enterprise:1.0.37-c8890c7f31\n'})})]}),"\n",(0,a.jsx)(n.h3,{id:"production-use-case",children:"Production Use Case"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-bash",children:'docker run -itd -p 8001:8000 \\\n -e LLM_SERVICE_API_KEY="<YOUR_LLM_TOKEN>" \\\n -e LLM_SERVICE_ENDPOINT="<YOUR_LLM_SERVICE_ENDPOINT>" \\\n -e LLM_SERVICE_PLANNING_MODEL_NAME="<YOUR_MODEL_NAME>" \\\n -e LLM_SERVICE_GENERAL_MODEL_NAME="<YOUR_MODEL_NAME>" \\\n -e NAMESPACE="<YOUR_NAMESPACE>" \\\n -e SOLACE_DEV_MODE="false" \\\n -e SOLACE_BROKER_URL="<YOUR_BROKER_URL>" \\\n -e SOLACE_BROKER_VPN="<YOUR_BROKER_VPN>" \\\n -e SOLACE_BROKER_USERNAME="<YOUR_BROKER_USERNAME>" \\\n -e SOLACE_BROKER_PASSWORD="<YOUR_BROKER_PASSWORD>" \\\n --name sam-ent-prod \\\n solace-agent-mesh-enterprise:<tag>\n'})}),"\n",(0,a.jsxs)(t,{children:[(0,a.jsx)("summary",{children:"How to find your credentials"}),(0,a.jsx)(n.p,{children:"Go to Solace Cloud."}),(0,a.jsx)(n.p,{children:"Cluster manager > Your Service > Connect"}),(0,a.jsx)(n.p,{children:"Switch dropdown to View by Language"}),(0,a.jsx)(n.p,{children:"Open the connect with Python dropdown"}),(0,a.jsx)(n.p,{children:"Click Solace Python with smf as the protocol."}),(0,a.jsx)(n.p,{children:"Copy:"}),(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Username for SOLACE_BROKER_USERNAME,"}),"\n",(0,a.jsx)(n.li,{children:"Password for SOLACE_BROKER_PASSWORD,"}),"\n",(0,a.jsx)(n.li,{children:"Message VPN for SOLACE_BROKER_VPN"}),"\n",(0,a.jsx)(n.li,{children:"Secured SMF URI for SOLACE_BROKER_URL"}),"\n"]}),(0,a.jsx)(n.p,{children:(0,a.jsx)(n.img,{alt:"How to get credentials",src:s(5981).A+"",width:"3456",height:"1916"})})]}),"\n",(0,a.jsxs)(n.p,{children:["You can then access Solace Agent Mesh Enterprise UI through ",(0,a.jsx)(n.a,{href:"http://localhost:8001",children:"http://localhost:8001"})]}),"\n",(0,a.jsx)(n.admonition,{type:"tip",children:(0,a.jsxs)(n.p,{children:["If you want to see logs for debugging, check ",(0,a.jsx)(n.code,{children:".log"})," files. If you want to change debug levels, see more ",(0,a.jsx)(n.a,{href:"https://solacelabs.github.io/solace-agent-mesh/docs/documentation/deployment/debugging/",children:"here"})]})})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},5981:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/sam-enterprise-credentials-b269f095349473118b2b33bdfcc40122.png"},8453:(e,n,s)=>{s.d(n,{R:()=>r,x:()=>i});var t=s(6540);const a={},o=t.createContext(a);function r(e){const n=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunksolace_agenitc_mesh_docs=self.webpackChunksolace_agenitc_mesh_docs||[]).push([[2807],{8628:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});const a=JSON.parse('{"id":"documentation/tutorials/event-mesh-gateway","title":"Event Mesh Gateway","description":"If you already have an event mesh in place, you can integrate Solace Agent Mesh into it. This allows you to leverage existing infrastructure while introducing intelligence and automation through Solace Agent Mesh.","source":"@site/docs/documentation/tutorials/event-mesh-gateway.md","sourceDirName":"documentation/tutorials","slug":"/documentation/tutorials/event-mesh-gateway","permalink":"/solace-agent-mesh/docs/documentation/tutorials/event-mesh-gateway","draft":false,"unlisted":false,"editUrl":"https://github.com/SolaceLabs/solace-agent-mesh/edit/main/docs/docs/documentation/tutorials/event-mesh-gateway.md","tags":[],"version":"current","sidebarPosition":20,"frontMatter":{"title":"Event Mesh Gateway","sidebar_position":20},"sidebar":"docSidebar","previous":{"title":"REST Gateway","permalink":"/solace-agent-mesh/docs/documentation/tutorials/rest-gateway"},"next":{"title":"Amazon Bedrock Agents","permalink":"/solace-agent-mesh/docs/documentation/tutorials/bedrock-agents"}}');var s=t(4848),i=t(8453);const r={title:"Event Mesh Gateway",sidebar_position:20},o="Event Mesh Gateway",l={},c=[{value:"Benefits of Integrating with an Event Mesh",id:"benefits-of-integrating-with-an-event-mesh",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Setting Up the Environment",id:"setting-up-the-environment",level:2},{value:"Adding the Event Mesh Gateway Plugin",id:"adding-the-event-mesh-gateway-plugin",level:2},{value:"Configuring the Event Mesh Gateway",id:"configuring-the-event-mesh-gateway",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"Gateway Configuration",id:"gateway-configuration",level:3},{value:"Event Handlers",id:"event-handlers",level:4},{value:"Output Handlers",id:"output-handlers",level:4},{value:"Complete Configuration Example",id:"complete-configuration-example",level:3},{value:"Running the Event Mesh Gateway",id:"running-the-event-mesh-gateway",level:2},{value:"Testing the Event Mesh Gateway",id:"testing-the-event-mesh-gateway",level:2},{value:"Using Solace PubSub+ Broker Manager",id:"using-solace-pubsub-broker-manager",level:3},{value:"Advanced Features",id:"advanced-features",level:2},{value:"Artifact Processing",id:"artifact-processing",level:3},{value:"Dynamic Agent Routing",id:"dynamic-agent-routing",level:3},{value:"Context Forwarding",id:"context-forwarding",level:3},{value:"Error Handling",id:"error-handling",level:3}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"event-mesh-gateway",children:"Event Mesh Gateway"})}),"\n",(0,s.jsxs)(n.p,{children:["If you already have an ",(0,s.jsx)(n.a,{href:"https://solace.com/what-is-an-event-mesh/",children:"event mesh"})," in place, you can integrate Solace Agent Mesh into it. This allows you to leverage existing infrastructure while introducing intelligence and automation through Solace Agent Mesh."]}),"\n",(0,s.jsx)(n.h2,{id:"benefits-of-integrating-with-an-event-mesh",children:"Benefits of Integrating with an Event Mesh"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Seamless Communication"}),": Solace Agent Mesh can subscribe to and publish events across the entire event mesh"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Event-Driven Automation"}),": Intelligent event processing based on patterns and AI-driven insights"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Scalability"}),": Solace Agent Mesh can dynamically participate in large-scale event-driven systems"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The Event Mesh Gateway connects Solace Agent Mesh to your existing event mesh infrastructure. Through its asynchronous interfaces, applications within your event mesh can seamlessly access and utilize Solace Agent Mesh capabilities."}),"\n",(0,s.jsx)(n.p,{children:"This tutorial shows you how to build an Event Mesh Gateway that automatically generates and adds concise summaries to Jira bug reports, making them easier to understand at a glance."}),"\n",(0,s.jsx)(n.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsx)(n.p,{children:"This tutorial assumes you have an existing Jira application integrated with your event mesh that:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:['Publishes a "jira_created" event to topic ',(0,s.jsx)(n.code,{children:"jira/issue/created/<jira_id>"})," when a new Jira issue is created"]}),"\n",(0,s.jsxs)(n.li,{children:['Listens for "jira_update" events on topic ',(0,s.jsx)(n.code,{children:"jira/issue/update"})," to update existing issues"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Create an Event Mesh Gateway that:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Monitors for new Jira issues"}),"\n",(0,s.jsx)(n.li,{children:"Automatically generates a concise summary"}),"\n",(0,s.jsx)(n.li,{children:"Creates an event to update the original Jira issue with this summary"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This creates a streamlined workflow where bug reports are automatically enhanced with clear, AI-generated summaries."}),"\n",(0,s.jsx)(n.h2,{id:"setting-up-the-environment",children:"Setting Up the Environment"}),"\n",(0,s.jsxs)(n.p,{children:["First, you need to ",(0,s.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/getting-started/installation",children:"install Solace Agent Mesh and the Solace Agent Mesh CLI"}),", and then ",(0,s.jsx)(n.a,{href:"/solace-agent-mesh/docs/documentation/getting-started/quick-start",children:"create a new Solace Agent Mesh project"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["For this tutorial, you need to create or use an existing ",(0,s.jsx)(n.a,{href:"https://solace.com/products/event-broker/",children:"Solace Event Broker"})," or ",(0,s.jsx)(n.a,{href:"https://solace.com/solutions/initiative/event-mesh/",children:"event mesh"})," created using PubSub+ event brokers."]}),"\n",(0,s.jsx)(n.h2,{id:"adding-the-event-mesh-gateway-plugin",children:"Adding the Event Mesh Gateway Plugin"}),"\n",(0,s.jsx)(n.p,{children:"Once you have your project set up, add the Event Mesh Gateway plugin:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"sam plugin add jira-event-mesh --plugin sam-event-mesh-gateway\n"})}),"\n",(0,s.jsxs)(n.p,{children:["You can use any name for your agent, in this tutorial we use ",(0,s.jsx)(n.code,{children:"jira-event-mesh"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"This command:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Installs the ",(0,s.jsx)(n.code,{children:"sam-event-mesh-gateway"})," plugin"]}),"\n",(0,s.jsxs)(n.li,{children:["Creates a new gateway configuration named ",(0,s.jsx)(n.code,{children:"jira-event-mesh"})," in your ",(0,s.jsx)(n.code,{children:"configs/gateways/"})," directory"]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"configuring-the-event-mesh-gateway",children:"Configuring the Event Mesh Gateway"}),"\n",(0,s.jsxs)(n.p,{children:["After adding the plugin, you can see a new configuration file in ",(0,s.jsx)(n.code,{children:"configs/gateways/jira-event-mesh.yaml"}),". This file contains the gateway configuration that needs to be customized for your Jira integration use case."]}),"\n",(0,s.jsx)(n.h4,{id:"environment-variables",children:"Environment Variables"}),"\n",(0,s.jsx)(n.p,{children:"First, set up the required environment variables for the data plane connection:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:'# Data plane Solace broker connection (can be same or different from control plane)\nexport JIRA_EVENT_MESH_SOLACE_BROKER_URL="ws://localhost:8080"\nexport JIRA_EVENT_MESH_SOLACE_BROKER_VPN="default"\nexport JIRA_EVENT_MESH_SOLACE_BROKER_USERNAME="default"\nexport JIRA_EVENT_MESH_SOLACE_BROKER_PASSWORD="default"\n'})}),"\n",(0,s.jsx)(n.h3,{id:"gateway-configuration",children:"Gateway Configuration"}),"\n",(0,s.jsx)(n.p,{children:"The main configuration includes several key sections:"}),"\n",(0,s.jsx)(n.h4,{id:"event-handlers",children:"Event Handlers"}),"\n",(0,s.jsx)(n.p,{children:"Configure the event handler to listen for new Jira issues and generate summaries:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'event_handlers:\n - name: "jira_issue_handler"\n subscriptions:\n - topic: "jira/issue/created/>"\n qos: 1\n input_expression: "template:Create a concise summary for the newly created Jira issue: Title: {{text://input.payload:title}}, Body: {{text://input.payload:body}}, ID: {{text://input.payload:id}}. Return a JSON object with fields \'id\', \'type\' (value should be \'summary\'), and \'summary\'."\n payload_encoding: "utf-8"\n payload_format: "json"\n target_agent_name: "OrchestratorAgent"\n on_success: "jira_summary_handler"\n on_error: "error_response_handler"\n forward_context:\n jira_id: "input.payload:id"\n correlation_id: "input.user_properties:correlation_id"\n'})}),"\n",(0,s.jsx)(n.h4,{id:"output-handlers",children:"Output Handlers"}),"\n",(0,s.jsx)(n.p,{children:"Configure output handlers to publish the summary back to the event mesh:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'output_handlers:\n - name: "jira_summary_handler"\n topic_expression: "static:jira/issue/update"\n payload_expression: "task_response:text"\n payload_encoding: "utf-8"\n payload_format: "json"\n \n - name: "error_response_handler"\n topic_expression: "template:jira/issue/error/{{text://user_data.forward_context:jira_id}}"\n payload_expression: "task_response:a2a_task_response.error"\n payload_encoding: "utf-8"\n payload_format: "json"\n'})}),"\n",(0,s.jsx)(n.h3,{id:"complete-configuration-example",children:"Complete Configuration Example"}),"\n",(0,s.jsx)(n.p,{children:"Here is a complete configuration file based on the plugin template:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:'log:\n stdout_log_level: INFO\n log_file_level: DEBUG\n log_file: jira-event-mesh.log\n\n!include ../shared_config.yaml\n\napps:\n - name: jira-event-mesh-app\n app_module: sam_event_mesh_gateway.app\n broker:\n <<: *broker_connection\n\n app_config:\n namespace: ${NAMESPACE}\n gateway_id: "jira-event-mesh-gw-01"\n artifact_service: *default_artifact_service\n authorization_service:\n type: "none" # Or "default_rbac"\n default_user_identity: "anonymous_event_mesh_user" # If no identity from event\n\n\n\n # Data plane connection\n event_mesh_broker_config:\n broker_url: ${JIRA_EVENT_MESH_SOLACE_BROKER_URL}\n broker_vpn: ${JIRA_EVENT_MESH_SOLACE_BROKER_VPN}\n broker_username: ${JIRA_EVENT_MESH_SOLACE_BROKER_USERNAME}\n broker_password: ${JIRA_EVENT_MESH_SOLACE_BROKER_PASSWORD}\n\n event_handlers:\n - name: "jira_issue_handler"\n subscriptions:\n - topic: "jira/issue/created/>"\n qos: 1\n input_expression: "template:Create a concise summary for the newly created Jira issue: Title: {{text://input.payload:title}}, Body: {{text://input.payload:body}}, ID: {{text://input.payload:id}}. Return a JSON object with fields \'id\', \'type\' (value should be \'summary\'), and \'summary\'."\n payload_encoding: "utf-8"\n payload_format: "json"\n target_agent_name: "OrchestratorAgent"\n on_success: "jira_summary_handler"\n on_error: "error_response_handler"\n forward_context:\n jira_id: "input.payload:id"\n\n output_handlers:\n - name: "jira_summary_handler"\n topic_expression: "static:jira/issue/update"\n payload_expression: "task_response:text"\n payload_encoding: "utf-8"\n payload_format: "json"\n \n - name: "error_response_handler"\n topic_expression: "template:jira/issue/error/{{text://user_data.forward_context:jira_id}}"\n payload_expression: "task_response:a2a_task_response.error"\n payload_encoding: "utf-8"\n payload_format: "json"\n'})}),"\n",(0,s.jsx)(n.h2,{id:"running-the-event-mesh-gateway",children:"Running the Event Mesh Gateway"}),"\n",(0,s.jsx)(n.p,{children:"Now you can run the Event Mesh Gateway:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"sam run configs/gateways/jira-event-mesh.yaml\n"})}),"\n",(0,s.jsx)(n.p,{children:"The gateway:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Connects to both the A2A control plane and the data plane event mesh"}),"\n",(0,s.jsx)(n.li,{children:"Subscribes to the configured topics on the data plane"}),"\n",(0,s.jsx)(n.li,{children:"Starts processing incoming events and routing them to agents"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"testing-the-event-mesh-gateway",children:"Testing the Event Mesh Gateway"}),"\n",(0,s.jsx)(n.p,{children:"Now that the system is running, let's test the Event Mesh Gateway."}),"\n",(0,s.jsx)(n.h3,{id:"using-solace-pubsub-broker-manager",children:"Using Solace PubSub+ Broker Manager"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Open the ",(0,s.jsx)(n.strong,{children:"Try Me!"})," tab of the ",(0,s.jsx)(n.a,{href:"https://docs.solace.com/Admin/Broker-Manager/PubSub-Manager-Overview.htm",children:"Solace PubSub+ Broker Manager"})]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:["Connect both the ",(0,s.jsx)(n.strong,{children:"Publisher"})," and ",(0,s.jsx)(n.strong,{children:"Subscriber"})," panels by clicking their respective ",(0,s.jsx)(n.strong,{children:"Connect"})," buttons"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"In the Subscriber panel:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Enter ",(0,s.jsx)(n.code,{children:"jira/issue/update"})," in the ",(0,s.jsx)(n.code,{children:"Topic Subscriber"})," field"]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.code,{children:"Subscribe"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsx)(n.p,{children:"In the Publisher panel:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Use the topic ",(0,s.jsx)(n.code,{children:"jira/issue/created/JIRA-143321"})]}),"\n",(0,s.jsxs)(n.li,{children:["In the ",(0,s.jsx)(n.code,{children:"Message Content"})," field, enter:"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "id": "JIRA-143321",\n "title": "Exception when reading customer record",\n "body": "I got a DatabaseReadException when trying to get the data for customer ABC. The error indicated that the customer didn\'t exist, while they are our biggest customer!"\n}\n'})}),"\n",(0,s.jsxs)(n.ol,{start:"5",children:["\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.strong,{children:"Publish"})]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["After a few seconds, you can see a new message in the ",(0,s.jsx)(n.strong,{children:"Subscriber"})," messages with the topic ",(0,s.jsx)(n.code,{children:"jira/issue/update"})," and a body similar to:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "id": "JIRA-143321",\n "type": "summary",\n "summary": "Database read error: Unable to retrieve record for key customer ABC despite confirmed existence"\n}\n'})}),"\n",(0,s.jsx)(n.h2,{id:"advanced-features",children:"Advanced Features"}),"\n",(0,s.jsx)(n.p,{children:"The Event Mesh Gateway supports several advanced features:"}),"\n",(0,s.jsx)(n.h3,{id:"artifact-processing",children:"Artifact Processing"}),"\n",(0,s.jsx)(n.p,{children:"You can configure the gateway to automatically create artifacts from incoming message payloads before sending them to agents. This is useful for processing files, images, or other binary data embedded in events."}),"\n",(0,s.jsx)(n.h3,{id:"dynamic-agent-routing",children:"Dynamic Agent Routing"}),"\n",(0,s.jsxs)(n.p,{children:["Instead of using a static ",(0,s.jsx)(n.code,{children:"target_agent_name"}),", you can use ",(0,s.jsx)(n.code,{children:"target_agent_name_expression"})," to dynamically determine which agent should process each event based on the message content."]}),"\n",(0,s.jsx)(n.h3,{id:"context-forwarding",children:"Context Forwarding"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"forward_context"})," configuration allows you to extract data from incoming messages and make it available when generating outgoing responses, enabling request-reply patterns and correlation tracking."]}),"\n",(0,s.jsx)(n.h3,{id:"error-handling",children:"Error Handling"}),"\n",(0,s.jsx)(n.p,{children:"Configure separate output handlers for success and error scenarios to ensure proper error reporting and system monitoring."})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>o});var a=t(6540);const s={},i=a.createContext(s);function r(e){const n=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),a.createElement(i.Provider,{value:n},e.children)}}}]);