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.
- solace_agent_mesh/agent/adk/runner.py +24 -8
- solace_agent_mesh/agent/sac/component.py +14 -1
- solace_agent_mesh/assets/docs/404.html +3 -3
- solace_agent_mesh/assets/docs/assets/js/166ab619.bdddc63a.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{1c6e87d2.43771adc.js → 1c6e87d2.e056b7e0.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/483cef9a.4736f2d8.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{4c2787c2.fc6804f2.js → 4c2787c2.c1290a40.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/{5b4258a4.dff11eca.js → 5b4258a4.fdfd2325.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/{75384d09.abdf9cf9.js → 75384d09.1e7d7cb7.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/85387663.be2bc838.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/945fb41e.16e00776.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a12a4955.25fbed32.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/a3a92b25.6def8980.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/ae0e903d.5fe5203f.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/bac0be12.bf0181cf.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/beecea0d.ce915979.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/cee5d587.47904f5e.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/f284c35a.525933db.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/f897a61a.126663fe.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{fbfa3e75.aca209c9.js → fbfa3e75.e144b16c.js} +1 -1
- solace_agent_mesh/assets/docs/assets/js/main.11f9f9f3.js +2 -0
- solace_agent_mesh/assets/docs/assets/js/runtime~main.5922bcf0.js +1 -0
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/rbac-setup-guilde/index.html +201 -0
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html +4 -4
- 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
- solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +6 -6
- solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +6 -6
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +6 -6
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +4 -4
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-python-tools/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +5 -5
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +6 -6
- solace_agent_mesh/assets/docs/lunr-index-1759151175744.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -1
- solace_agent_mesh/assets/docs/search-doc-1759151175744.json +1 -0
- solace_agent_mesh/assets/docs/search-doc.json +1 -1
- solace_agent_mesh/assets/docs/sitemap.xml +1 -1
- solace_agent_mesh/cli/__init__.py +1 -1
- solace_agent_mesh/gateway/http_sse/alembic/versions/20250916_f6e7d8c9b0a1_convert_timestamps_to_epoch_and_align_columns.py +112 -42
- solace_agent_mesh/gateway/http_sse/app.py +0 -28
- solace_agent_mesh/gateway/http_sse/main.py +29 -13
- {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/METADATA +1 -1
- {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/RECORD +76 -74
- solace_agent_mesh/assets/docs/assets/js/166ab619.e8f3a7c7.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/483cef9a.8d318c2f.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/85387663.6bf41934.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/945fb41e.abf2be91.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/a3a92b25.1d029b81.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/ae0e903d.c786e887.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/bac0be12.27ee2c26.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/beecea0d.8bbd852c.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/cee5d587.f1e1ca86.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/f284c35a.2b2f5048.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/f897a61a.bc634a3e.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/main.72d74e33.js +0 -2
- solace_agent_mesh/assets/docs/assets/js/runtime~main.3dcfaf51.js +0 -1
- solace_agent_mesh/assets/docs/lunr-index-1758893005563.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1758893005563.json +0 -1
- /solace_agent_mesh/assets/docs/assets/js/{main.72d74e33.js.LICENSE.txt → main.11f9f9f3.js.LICENSE.txt} +0 -0
- {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/WHEEL +0 -0
- {solace_agent_mesh-1.4.6.dist-info → solace_agent_mesh-1.4.7.dist-info}/entry_points.txt +0 -0
- {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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
254
|
-
solace_agent_mesh/assets/docs/lunr-index-
|
|
255
|
-
solace_agent_mesh/assets/docs/lunr-index.json,sha256=
|
|
256
|
-
solace_agent_mesh/assets/docs/search-doc-
|
|
257
|
-
solace_agent_mesh/assets/docs/search-doc.json,sha256=
|
|
258
|
-
solace_agent_mesh/assets/docs/sitemap.xml,sha256=
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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/
|
|
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.
|
|
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.
|
|
345
|
-
solace_agent_mesh/assets/docs/assets/js/beecea0d.
|
|
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.
|
|
352
|
-
solace_agent_mesh/assets/docs/assets/js/f284c35a.
|
|
353
|
-
solace_agent_mesh/assets/docs/assets/js/f897a61a.
|
|
354
|
-
solace_agent_mesh/assets/docs/assets/js/fbfa3e75.
|
|
355
|
-
solace_agent_mesh/assets/docs/assets/js/main.
|
|
356
|
-
solace_agent_mesh/assets/docs/assets/js/main.
|
|
357
|
-
solace_agent_mesh/assets/docs/assets/js/runtime~main.
|
|
358
|
-
solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html,sha256=
|
|
359
|
-
solace_agent_mesh/assets/docs/docs/documentation/Enterprise/
|
|
360
|
-
solace_agent_mesh/assets/docs/docs/documentation/
|
|
361
|
-
solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-
|
|
362
|
-
solace_agent_mesh/assets/docs/docs/documentation/
|
|
363
|
-
solace_agent_mesh/assets/docs/docs/documentation/concepts/
|
|
364
|
-
solace_agent_mesh/assets/docs/docs/documentation/concepts/
|
|
365
|
-
solace_agent_mesh/assets/docs/docs/documentation/concepts/
|
|
366
|
-
solace_agent_mesh/assets/docs/docs/documentation/concepts/
|
|
367
|
-
solace_agent_mesh/assets/docs/docs/documentation/concepts/
|
|
368
|
-
solace_agent_mesh/assets/docs/docs/documentation/
|
|
369
|
-
solace_agent_mesh/assets/docs/docs/documentation/deployment/
|
|
370
|
-
solace_agent_mesh/assets/docs/docs/documentation/deployment/
|
|
371
|
-
solace_agent_mesh/assets/docs/docs/documentation/
|
|
372
|
-
solace_agent_mesh/assets/docs/docs/documentation/getting-started/
|
|
373
|
-
solace_agent_mesh/assets/docs/docs/documentation/getting-started/
|
|
374
|
-
solace_agent_mesh/assets/docs/docs/documentation/getting-started/
|
|
375
|
-
solace_agent_mesh/assets/docs/docs/documentation/getting-started/
|
|
376
|
-
solace_agent_mesh/assets/docs/docs/documentation/
|
|
377
|
-
solace_agent_mesh/assets/docs/docs/documentation/tutorials/
|
|
378
|
-
solace_agent_mesh/assets/docs/docs/documentation/tutorials/
|
|
379
|
-
solace_agent_mesh/assets/docs/docs/documentation/tutorials/
|
|
380
|
-
solace_agent_mesh/assets/docs/docs/documentation/tutorials/
|
|
381
|
-
solace_agent_mesh/assets/docs/docs/documentation/tutorials/
|
|
382
|
-
solace_agent_mesh/assets/docs/docs/documentation/tutorials/
|
|
383
|
-
solace_agent_mesh/assets/docs/docs/documentation/tutorials/
|
|
384
|
-
solace_agent_mesh/assets/docs/docs/documentation/tutorials/
|
|
385
|
-
solace_agent_mesh/assets/docs/docs/documentation/
|
|
386
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/
|
|
387
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/
|
|
388
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/
|
|
389
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/
|
|
390
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/
|
|
391
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-
|
|
392
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/
|
|
393
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-
|
|
394
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/
|
|
395
|
-
solace_agent_mesh/assets/docs/docs/documentation/user-guide/
|
|
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.
|
|
432
|
-
solace_agent_mesh-1.4.
|
|
433
|
-
solace_agent_mesh-1.4.
|
|
434
|
-
solace_agent_mesh-1.4.
|
|
435
|
-
solace_agent_mesh-1.4.
|
|
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)}}}]);
|