solace-agent-mesh 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of solace-agent-mesh might be problematic. Click here for more details.
- solace_agent_mesh/assets/web-visualizer/assets/index-C5awueeJ.js +109 -0
- solace_agent_mesh/assets/web-visualizer/assets/index-D0qORgkg.css +1 -0
- solace_agent_mesh/assets/web-visualizer/index.html +14 -0
- solace_agent_mesh/assets/web-visualizer/vite.svg +1 -0
- solace_agent_mesh/cli/__init__.py +1 -1
- solace_agent_mesh/cli/commands/build.py +27 -2
- solace_agent_mesh/gateway/components/gateway_input.py +11 -1
- solace_agent_mesh/orchestrator/orchestrator_prompt.py +5 -0
- solace_agent_mesh/templates/gateway-config-template.yaml +1 -2
- solace_agent_mesh/templates/gateway-default-config.yaml +2 -2
- solace_agent_mesh/templates/gateway-flows.yaml +1 -4
- solace_agent_mesh/templates/rest-api-default-config.yaml +5 -0
- solace_agent_mesh/templates/rest-api-flows.yaml +1 -0
- solace_agent_mesh/templates/slack-default-config.yaml +7 -0
- solace_agent_mesh/templates/slack-flows.yaml +1 -10
- solace_agent_mesh/templates/web-default-config.yaml +2 -0
- solace_agent_mesh/templates/web-flows.yaml +2 -12
- {solace_agent_mesh-0.1.0.dist-info → solace_agent_mesh-0.1.2.dist-info}/METADATA +9 -9
- {solace_agent_mesh-0.1.0.dist-info → solace_agent_mesh-0.1.2.dist-info}/RECORD +22 -18
- {solace_agent_mesh-0.1.0.dist-info → solace_agent_mesh-0.1.2.dist-info}/WHEEL +0 -0
- {solace_agent_mesh-0.1.0.dist-info → solace_agent_mesh-0.1.2.dist-info}/entry_points.txt +0 -0
- {solace_agent_mesh-0.1.0.dist-info → solace_agent_mesh-0.1.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--primary-color: #3498db;--secondary-color: #2c3e50;--background-color: #ecf0f1;--text-color: #34495e;--border-color: #bdc3c7;--hover-color: #e0f7fa;--selected-color: #b3e5fc;--header-height: 80px;--min-width: 1200px;--max-width: 1200px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Arial,sans-serif;background-color:var(--background-color);color:var(--text-color);display:flex;justify-content:center;min-height:100vh}.app-container{display:flex;flex-direction:column;width:100%;max-width:var(--max-width);height:100vh;background-color:#fff;color:#000;box-shadow:0 0 10px #0000001a;overflow:hidden}:root{--header-height: 60px;--page-header-height: 60px}.header{height:var(--header-height);background-color:var(--primary-color);padding:0 1rem;box-shadow:0 2px 4px #0000001a}.top-menu{display:flex;align-items:flex-end;height:100%;padding:1rem}.nav-links{display:flex;list-style-type:none;margin:0;padding:0}.nav-links li{margin-right:1rem}.nav-links a{color:#fff;text-decoration:none;font-weight:700;padding:.5rem 0;position:relative}.nav-links a.active{font-weight:bolder}.nav-links a.active:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#fff}.connection-controls{margin-left:auto;display:flex;align-items:center}.connection-controls .button{margin-left:1rem;background-color:#fff;color:var(--primary-color);border:1px solid white}.connection-controls .button:hover{background-color:var(--hover-color);border-color:var(--hover-color)}.nav-links a:hover{color:var(--hover-color)}.page-header{height:var(--page-header-height);background-color:var(--background-color);padding:0 1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color)}.page-header h2{margin:0}.content{padding:1rem}.stimuli-page,.capabilities-page{display:flex;flex-direction:column;height:calc(100vh - var(--header-height));overflow:hidden}.stimuli-content{flex:1;overflow:hidden;display:flex}.stimuli-content{display:flex;flex:1;overflow:hidden}.capability-item{background-color:#fff;border:1px solid var(--border-color);border-radius:4px;padding:1rem;margin-bottom:1rem}.capability-item h3{margin-top:0}.capability-item ul{padding-left:1.5rem}.app-title{color:#fff;margin:0;margin-right:4rem;font-size:1.5rem}.button{background-color:var(--secondary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background-color .3s ease}.button:hover{background-color:#34495e}.button-info{background-color:var(--primary-color);border:1px solid var(--primary-color);color:#000}.button-info:hover{background-color:var(--selected-color)}.content{display:flex;flex:1;overflow:hidden}.stimulus-list{width:40%;min-width:400px;overflow-y:auto;border-right:1px solid var(--border-color);background-color:#fff}.stimulus-item{padding:1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s ease}.stimulus-item:hover{background-color:var(--hover-color)}.stimulus-item.selected{background-color:var(--selected-color)}.stimulus-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.user-email{font-weight:700;color:var(--secondary-color)}.timestamp{font-size:.8em;color:var(--text-color);opacity:.7}.stimulus-text{font-family:monospace;white-space:pre-wrap;word-break:break-word;font-size:.9em;margin:0}.stimulus-details{flex:1;padding:1rem;overflow-y:auto;background-color:#fff}.stimulus-details pre{white-space:pre-wrap;word-wrap:break-word;background-color:var(--background-color);padding:1rem;border-radius:4px;font-size:.9rem}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;color:#fff;font-size:1.5rem;z-index:1000}.no-stimuli{padding:1rem;text-align:center;color:var(--text-color)}@media (max-width: 768px){.content{flex-direction:column}.stimulus-list{width:100%;max-height:40vh;border-right:none;border-bottom:1px solid var(--border-color)}}@media (max-width: 480px){.header{text-align:center}.button{width:100%}.stimulus-item{padding:.75rem}.user-email,.stimulus-text{font-size:.9rem}}.message-flow{display:flex;flex-direction:column;gap:1rem;padding:1rem;overflow-y:auto;width:60%}.message-box{border:1px solid var(--border-color);border-radius:4px;padding:1rem;background-color:#fff}.message-header{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.9rem;color:var(--secondary-color)}.message-type{font-weight:700}.elapsed-time{font-style:italic}.message-content{font-size:.95rem;white-space:pre-wrap;word-break:break-word;position:relative;overflow:auto;padding-bottom:20px}.more-button{position:absolute;bottom:5px;right:5px;background-color:var(--primary-color);color:#fff;border:none;padding:2px 8px;border-radius:4px;cursor:pointer;font-size:.8rem;transition:background-color .3s ease}.more-button:hover{background-color:var(--secondary-color)}.file-list,.action-params{margin-top:1rem}.file-list h4,.action-params h4{margin-bottom:.5rem}.file-list ul,.action-params ul{list-style-type:none;padding-left:1rem}.stimulus{background-color:#e3f2fd}.response{background-color:#e8f5e9}.response.streaming{background-color:#fff9c4}.response.complete{background-color:#c8e6c9}.action-request{background-color:#fff3e0}.action-header{display:flex;align-items:center;gap:10px}.action-request-label{font-size:.9em;font-weight:700}.agent-name,.action-name{font-size:1.1em;padding:2px 8px;border-radius:12px;background-color:#e9ecef}.agent-name{color:#495057}.action-name{color:#0056b3}.action-params{margin-top:1rem}.action-params ul{list-style-type:none;padding-left:1rem}.action-response{margin-top:1rem;padding:1rem;background-color:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.file-list{margin-top:1rem}.file-list h4{margin-bottom:.5rem}.file-list ul{list-style-type:none;padding-left:1rem}.file-list li{margin-bottom:.25rem}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.9rem;color:var(--secondary-color);flex-wrap:wrap}.message-type{font-weight:700;margin-right:.5rem}.elapsed-time{font-style:italic;white-space:nowrap}.placeholder-message{padding:1rem;text-align:center;color:var(--text-color)}.orchestrator-reinvoke{background-color:#fff9c4}.llm-service-request{background-color:#e8eaf6}.llm-service-response{background-color:#e0f2f1}@media (max-width: 1200px){.app-container{min-width:100%}}@media (min-width: 1220px){.app-container{min-width:1200px}}.app-wrapper{display:flex;justify-content:center}.config-dialog,.connection-selector{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;width:min(400px,70%);background-color:#fff;color:#000;border-radius:10px;border:1px solid var(--border-color);box-shadow:0 0 10px #00000080;display:flex;flex-direction:column;padding:.5rem}.config-dialog-content,.connection-selector{padding:1rem;display:flex;flex-direction:column;gap:1rem}.connection-selector label{font-weight:700;margin-bottom:.5rem}.connection-selector select{width:100%;padding:.5rem;margin-bottom:1rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;background-color:#fff;color:#000}.connection-selector .button-group{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.connection-selector .button-group button{flex:1}.connection-selector .button-group.secondary{margin-top:1rem}.config-dialog-content label,.connection-selector label{display:block}.config-dialog-content input,.config-dialog-content select,.connection-selector button{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;background-color:#fff;color:#000;transition:border-color .3s,box-shadow .3s}.config-dialog-content select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right .7rem top 50%;background-size:.65rem auto;padding-right:2rem}.config-dialog-content input:focus,.config-dialog-content select:focus,.connection-selector button:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3498db33}.config-dialog-content label,.connection-selector h2{display:block;margin-bottom:.5rem;font-weight:700;color:var(--secondary-color)}.config-dialog-buttons,.connection-selector{display:flex;justify-content:flex-end;gap:1rem;padding:1.2rem}.connection-selector button{background-color:var(--primary-color);color:#fff;border:none;cursor:pointer;transition:background-color .3s}.connection-selector button:hover{background-color:var(--secondary-color)}.capabilities-page{display:flex;flex-direction:column;height:calc(100vh - var(--header-height));overflow:hidden}.capabilities-content{display:flex;overflow:hidden;padding:1rem;gap:1rem;height:calc(100vh - var(--header-height) - var(--page-header-height))}.search-input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;width:300px;font-size:1rem}.agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-auto-rows:250px;gap:1rem;overflow-y:auto;align-content:start;flex:1}.agent-card{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s ease;height:250px;display:grid;grid-template-rows:35px 100px 1fr;gap:3px;overflow:hidden}.agent-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}.agent-card.selected{border-color:var(--primary-color);background-color:var(--selected-color)}.agent-card h3{margin:0 0 .5rem;color:var(--secondary-color)}.agent-card p{margin:0;font-size:.9rem;color:var(--text-color);height:90px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.agent-card-footer{display:flex;flex-direction:column;gap:.5rem;font-size:.8rem}.actions-count{color:var(--secondary-color)}.actions-preview{display:flex;flex-wrap:wrap;gap:.3rem;max-height:3.2rem;overflow:hidden;position:relative}.action-name-preview{background-color:var(--background-color);padding:.1rem .4rem;border-radius:4px;font-size:.75rem;color:var(--secondary-color)}.more-actions{color:var(--primary-color);font-style:italic;font-size:.75rem;position:absolute;bottom:0;right:0;background:linear-gradient(to left,#fff,#ffffffe6 20%,#fff0);padding-left:20px}.agent-details{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;width:40%;min-width:400px;overflow-y:auto}.agent-description{color:var(--text-color);margin:1rem 0}.actions-list{margin-top:1.5rem}.action-details{border:1px solid var(--border-color);border-radius:4px;margin:.5rem 0}.action-details summary{padding:.75rem;cursor:pointer;font-weight:700;background-color:var(--background-color)}.action-details summary:hover{background-color:var(--hover-color)}.action-content{padding:1rem}.action-content h4{margin:1rem 0 .5rem;color:var(--secondary-color)}.action-content ul{margin:0;padding-left:1.5rem}.action-content li{margin:.25rem 0}.scopes-list li{font-family:monospace;background-color:var(--background-color);padding:.2rem .5rem;border-radius:4px;margin:.25rem .5rem .25rem 0;display:inline-block}.no-agents{grid-column:1 / -1;text-align:center;padding:2rem;color:var(--text-color)}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;min-width:320px;height:100vh;display:flex;flex-direction:column}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<!-- <link rel="icon" type="image/svg+xml" href="/vite.svg" /> -->
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>Solace Agent Mesh Visualizer</title>
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-C5awueeJ.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-D0qORgkg.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<div id="root"></div>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.1.
|
|
1
|
+
__version__ = "0.1.2"
|
|
@@ -187,6 +187,17 @@ def build_specific_gateway(
|
|
|
187
187
|
gateway_config_file = os.path.join(subdir_path, "gateway.yaml")
|
|
188
188
|
with open(gateway_config_file, "r", encoding="utf-8") as g:
|
|
189
189
|
gateway_config_content = g.read()
|
|
190
|
+
|
|
191
|
+
# Define config aliases to check for so that if they are missing we can add defaults
|
|
192
|
+
config_aliases = {
|
|
193
|
+
"response_format_prompt": "- response_format_prompt: &response_format_prompt \"\""
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
# Check which aliases are already in the gateway config
|
|
197
|
+
gateway_found_aliases = set()
|
|
198
|
+
for alias in config_aliases:
|
|
199
|
+
if f"&{alias}" in gateway_config_content:
|
|
200
|
+
gateway_found_aliases.add(alias)
|
|
190
201
|
|
|
191
202
|
click.echo("Getting interface types.")
|
|
192
203
|
known_interfaces = ["slack", "web", "rest-api"]
|
|
@@ -225,8 +236,22 @@ def build_specific_gateway(
|
|
|
225
236
|
interface_config_file = os.path.join(subdir_path, interface_file)
|
|
226
237
|
with open(interface_config_file, "r", encoding="utf-8") as g:
|
|
227
238
|
file_content = g.read()
|
|
228
|
-
|
|
229
|
-
|
|
239
|
+
|
|
240
|
+
# Check which aliases are in the interface config
|
|
241
|
+
interface_found_aliases = set()
|
|
242
|
+
for alias in config_aliases:
|
|
243
|
+
if f"&{alias}" in file_content:
|
|
244
|
+
interface_found_aliases.add(alias)
|
|
245
|
+
|
|
246
|
+
reindented_file_content = normalize_and_reindent_yaml(complete_interface_gateway, file_content)
|
|
247
|
+
complete_interface_gateway += reindented_file_content
|
|
248
|
+
|
|
249
|
+
# Add any missing config aliases
|
|
250
|
+
missing_aliases = set(config_aliases.keys()) - gateway_found_aliases - interface_found_aliases
|
|
251
|
+
if missing_aliases:
|
|
252
|
+
complete_interface_gateway += "\n# Default configurations\nshared_config_defaults:\n"
|
|
253
|
+
for alias in missing_aliases:
|
|
254
|
+
complete_interface_gateway += f"{config_aliases[alias]}\n"
|
|
230
255
|
|
|
231
256
|
# Write interface specific flows
|
|
232
257
|
complete_interface_gateway += "\nflows:\n"
|
|
@@ -38,6 +38,12 @@ info = {
|
|
|
38
38
|
},
|
|
39
39
|
"description": "Gateway configuration including originators and their configurations.",
|
|
40
40
|
},
|
|
41
|
+
{
|
|
42
|
+
"name": "response_format_prompt",
|
|
43
|
+
"type": "string",
|
|
44
|
+
"description": "Format instructions for the response that will be passed to the model",
|
|
45
|
+
"default": ""
|
|
46
|
+
}
|
|
41
47
|
],
|
|
42
48
|
"input_schema": {
|
|
43
49
|
"type": "object",
|
|
@@ -129,6 +135,7 @@ class GatewayInput(GatewayBase):
|
|
|
129
135
|
"interaction_type", DEFAULT_INTERACTION_TYPE
|
|
130
136
|
)
|
|
131
137
|
self.identity_component = self._initialize_identity_component()
|
|
138
|
+
self.response_format_prompt = self.get_config("response_format_prompt", "")
|
|
132
139
|
|
|
133
140
|
def _authenticate_user(self, _user_properties: Dict[str, Any]) -> bool:
|
|
134
141
|
# Implement actual authentication logic here
|
|
@@ -164,7 +171,6 @@ class GatewayInput(GatewayBase):
|
|
|
164
171
|
top_level_user_properties = {
|
|
165
172
|
"input_type",
|
|
166
173
|
"session_id",
|
|
167
|
-
"response_format_prompt",
|
|
168
174
|
}
|
|
169
175
|
self.demote_interface_properties(user_properties, top_level_user_properties)
|
|
170
176
|
|
|
@@ -222,6 +228,10 @@ class GatewayInput(GatewayBase):
|
|
|
222
228
|
|
|
223
229
|
stimulus_uuid = self.gateway_id + str(uuid4())
|
|
224
230
|
|
|
231
|
+
# Add response format prompt from config if available
|
|
232
|
+
if self.response_format_prompt:
|
|
233
|
+
user_properties["response_format_prompt"] = self.response_format_prompt
|
|
234
|
+
|
|
225
235
|
user_properties.update(
|
|
226
236
|
{
|
|
227
237
|
"gateway_id": self.gateway_id,
|
|
@@ -214,6 +214,11 @@ The assistant's behavior aligns with the system purpose specified below:
|
|
|
214
214
|
3. After opening agents, the assistant will be reinvoked with an updated list of open agents and their actions.
|
|
215
215
|
4. When opening an agent, provide only a brief status update without detailed explanations.
|
|
216
216
|
5. Do not perform any other actions besides opening the required agents in this step.
|
|
217
|
+
- Report generation:
|
|
218
|
+
1. If a report is requested and no format is specified, create the report in an HTML file.
|
|
219
|
+
2. Generate each section of the report independently and store it in the file service with create_file action. When finishing the report, combine the sections using amfs urls with the resolve=true query parameter to insert the sections into the main document. When generating HTML, create the header first with all the necessary CSS and JS links so that it is clear what css the rest of the document will use.
|
|
220
|
+
3. Images are always very useful in reports, so the assistant will add them when appropriate. If images are embedded in html, they must be resolved and converted to datauri format or they won't render in the final document. This can be done by using the encoding=datauri&resolve=true in the amfs link. For example, <img src="amfs://xxxxxx.png?encoding=datauri&resolve=true". The assistant will take care of the rest. Images can be created in parallel
|
|
221
|
+
4. During report generation in interactive sessions, the assistant will send lots of status messages to indicate what is happening.
|
|
217
222
|
- Handling stimuli with open agents:
|
|
218
223
|
1. Use agents' actions to break down the stimulus into smaller, manageable tasks.
|
|
219
224
|
2. Prioritize using available actions to fulfill the stimulus whenever possible.
|
|
@@ -2,5 +2,4 @@
|
|
|
2
2
|
key: "value" # Add your configuration here
|
|
3
3
|
|
|
4
4
|
- response_format_prompt: &response_format_prompt >
|
|
5
|
-
|
|
6
|
-
**bold**, _italic_, and `code` where necessary.
|
|
5
|
+
Return all responses in markdown format and if the response contains a file or image, return it with the <file> tags and not as a link.
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
- gateway_config: &gateway_config
|
|
17
17
|
gateway_id: {{GATEWAY_ID}}
|
|
18
18
|
system_purpose: >
|
|
19
|
-
The system is an AI Chatbot
|
|
20
|
-
|
|
19
|
+
The system is an AI Chatbot with agentic capabilities. It will use the agents available to provide information, reasoning and general assistance for the users in this system.
|
|
20
|
+
|
|
21
21
|
interaction_type: "interactive"
|
|
22
22
|
|
|
23
23
|
identity:
|
|
@@ -13,12 +13,9 @@
|
|
|
13
13
|
component_config:
|
|
14
14
|
identity_key_field: identity
|
|
15
15
|
<<: *gateway_config
|
|
16
|
+
response_format_prompt: *response_format_prompt
|
|
16
17
|
component_input:
|
|
17
18
|
source_expression: previous
|
|
18
|
-
input_transforms:
|
|
19
|
-
- type: copy
|
|
20
|
-
source_value: *response_format_prompt
|
|
21
|
-
dest_expression: input.user_properties:response_format_prompt
|
|
22
19
|
- component_name: broker_output
|
|
23
20
|
component_module: broker_output
|
|
24
21
|
component_config:
|
|
@@ -18,6 +18,11 @@
|
|
|
18
18
|
frontend_use_authorization: ${WEBUI_FRONTEND_USE_AUTHORIZATION}
|
|
19
19
|
frontend_auth_login_url: ${WEBUI_FRONTEND_AUTH_LOGIN_URL}
|
|
20
20
|
frontend_welcome_message: ${WEBUI_FRONTEND_WELCOME_MESSAGE}
|
|
21
|
+
frontend_bot_name: ${WEBUI_FRONTEND_BOT_NAME}
|
|
21
22
|
frontend_collect_feedback: ${WEBUI_FRONTEND_COLLECT_FEEDBACK}
|
|
22
23
|
frontend_url: ${WEBUI_FRONTEND_URL}
|
|
23
24
|
local_dev : ${WEBUI_LOCAL_DEV}
|
|
25
|
+
|
|
26
|
+
- response_format_prompt: &response_format_prompt >
|
|
27
|
+
Return all responses in markdown format and if the response contains a file or image, return it with the <file> tags and not as a link.
|
|
28
|
+
|
|
@@ -7,3 +7,10 @@
|
|
|
7
7
|
acknowledgement_message: "Chatbot is thinking... :hourglass_flowing_sand:"
|
|
8
8
|
max_total_file_size: 2000 # 2GB
|
|
9
9
|
max_file_size: 500 # 500MB
|
|
10
|
+
|
|
11
|
+
- response_format_prompt: &response_format_prompt >
|
|
12
|
+
- Format the response as a Slack message, using appropriate
|
|
13
|
+
formatting such as *bold*, _italic_, and `code` where necessary.
|
|
14
|
+
- Use bullet points or numbered lists for multiple items.
|
|
15
|
+
- If the response contains a file or image, return it with the <file> tags and not as a link.
|
|
16
|
+
- If including hyperlinks, use the format <url|text>.
|
|
@@ -13,21 +13,13 @@
|
|
|
13
13
|
component_config:
|
|
14
14
|
identity_key_field: user_email
|
|
15
15
|
<<: *gateway_config
|
|
16
|
+
response_format_prompt: *response_format_prompt
|
|
16
17
|
component_input:
|
|
17
18
|
source_expression: previous
|
|
18
19
|
input_transforms:
|
|
19
20
|
- type: copy
|
|
20
21
|
source_expression: input.payload:thread_id
|
|
21
22
|
dest_expression: input.user_properties:session_id
|
|
22
|
-
- type: copy
|
|
23
|
-
source_value: >
|
|
24
|
-
- Format the response as a Slack message, using appropriate
|
|
25
|
-
formatting such as *bold*, _italic_, and `code` where necessary.
|
|
26
|
-
|
|
27
|
-
- Use bullet points or numbered lists for multiple items.
|
|
28
|
-
|
|
29
|
-
- If including links, use the format <url|text>.
|
|
30
|
-
dest_expression: input.user_properties:response_format_prompt
|
|
31
23
|
- component_name: broker_output
|
|
32
24
|
component_module: broker_output
|
|
33
25
|
component_config:
|
|
@@ -87,4 +79,3 @@
|
|
|
87
79
|
dest_expression: user_data.component_input:content
|
|
88
80
|
component_input:
|
|
89
81
|
source_expression: user_data.component_input
|
|
90
|
-
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
- name: start_web_app
|
|
3
|
-
trace_level: ERROR
|
|
4
|
-
components:
|
|
5
|
-
- component_name: start_web_app
|
|
6
|
-
component_package: solace_ai_connector_web
|
|
7
|
-
component_module: solace_ai_connector_web.components.start_web_app
|
|
1
|
+
|
|
8
2
|
# Web to Gateway to Solace
|
|
9
3
|
- name: web_gateway_input_flow
|
|
10
4
|
trace_level: ERROR
|
|
@@ -20,13 +14,9 @@
|
|
|
20
14
|
component_config:
|
|
21
15
|
identity_key_field: user_email
|
|
22
16
|
<<: *gateway_config
|
|
17
|
+
response_format_prompt: *response_format_prompt
|
|
23
18
|
component_input:
|
|
24
19
|
source_expression: previous
|
|
25
|
-
input_transforms:
|
|
26
|
-
- type: copy
|
|
27
|
-
source_value: >
|
|
28
|
-
- Format the response as markdown.
|
|
29
|
-
dest_expression: input.user_properties:response_format_prompt
|
|
30
20
|
- component_name: broker_output
|
|
31
21
|
component_module: broker_output
|
|
32
22
|
component_config:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: solace-agent-mesh
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Solace Agent Mesh is an EDA AI-first platform powered by Solace
|
|
5
5
|
Project-URL: homepage, https://github.com/SolaceLabs/solace-agent-mesh
|
|
6
6
|
Project-URL: repository, https://github.com/SolaceLabs/solace-agent-mesh
|
|
@@ -129,9 +129,9 @@ To get started with Solace Agent Mesh, follow these steps:
|
|
|
129
129
|
--form 'stream="false"'
|
|
130
130
|
```
|
|
131
131
|
|
|
132
|
-
Learn about [Agents](
|
|
132
|
+
Learn about [Agents](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/agents) and [Gateways](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/gateways) to add more functionalities to your project.
|
|
133
133
|
|
|
134
|
-
For full details, see the [Quick Start Guide](
|
|
134
|
+
For full details, see the [Quick Start Guide](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/quick-start).
|
|
135
135
|
|
|
136
136
|
## Why Use Solace Agent Mesh?
|
|
137
137
|
|
|
@@ -148,15 +148,15 @@ Building production-ready AI applications presents unique challenges. While it's
|
|
|
148
148
|
|
|
149
149
|
## Next Steps
|
|
150
150
|
|
|
151
|
-
Check [Solace Agent Mesh Documentation](
|
|
151
|
+
Check [Solace Agent Mesh Documentation](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/introduction) to learn more about the Solace Agent Mesh.
|
|
152
152
|
|
|
153
153
|
| | |
|
|
154
154
|
| ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------- |
|
|
155
|
-
| [Components Overview](
|
|
156
|
-
| [Gateways](
|
|
157
|
-
| [Agents](
|
|
158
|
-
| [Services](
|
|
159
|
-
| [Plugins](
|
|
155
|
+
| [Components Overview](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/getting-started/component-overview) | Learn about the components that make up the Solace Agent Mesh. |
|
|
156
|
+
| [Gateways](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/gateways) | Understand how gateways provide interfaces to the Solace Agent Mesh. |
|
|
157
|
+
| [Agents](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/agents) | Explore the agents that provide specialized capabilities in the Solace Agent Mesh. |
|
|
158
|
+
| [Services](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/services) | Learn about the services that facilitate interaction within the Solace Agent Mesh. |
|
|
159
|
+
| [Plugins](https://solacelabs.github.io/solace-agent-mesh/docs/documentation/concepts/plugins) | Discover the plugins that extend the functionality of the Solace Agent Mesh. |
|
|
160
160
|
|
|
161
161
|
## Contributing
|
|
162
162
|
|
|
@@ -44,7 +44,7 @@ solace_agent_mesh/common/utils.py,sha256=X7SzLj8Zr-uxZmkLgSIBiePpfJaLsX6zZjY0dgf
|
|
|
44
44
|
solace_agent_mesh/gateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
45
|
solace_agent_mesh/gateway/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
46
|
solace_agent_mesh/gateway/components/gateway_base.py,sha256=6A1UNHxPnCk4ZLjllTsiE0nIHDUWODsJviIUdKfrQow,1574
|
|
47
|
-
solace_agent_mesh/gateway/components/gateway_input.py,sha256=
|
|
47
|
+
solace_agent_mesh/gateway/components/gateway_input.py,sha256=YqXZmmTikhzNjWklinlyRbGOvBL92ram03lYO8ELE1U,10591
|
|
48
48
|
solace_agent_mesh/gateway/components/gateway_output.py,sha256=pjoNWoSSy1Y4ticVXA70Jry0XmTDTxx9RfhF2LFCyuw,11044
|
|
49
49
|
solace_agent_mesh/gateway/identity/bamboohr_identity.py,sha256=875pguj7vDx5Tij7YCvfqJQIC0HD_pnU5AtqCUuv7Cs,621
|
|
50
50
|
solace_agent_mesh/gateway/identity/identity_base.py,sha256=2oaqSPYNwMj4kOyokPAvfHPYW2_uUH85nTh2RogzQD8,271
|
|
@@ -57,7 +57,7 @@ solace_agent_mesh/monitors/stim_and_errors/stim_and_error_monitor.py,sha256=jMM1
|
|
|
57
57
|
solace_agent_mesh/orchestrator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
58
|
solace_agent_mesh/orchestrator/action_manager.py,sha256=2Fmy8AUY1YihI90ba1sJv_1TcOPFzX0w0x3EXi25EaI,8551
|
|
59
59
|
solace_agent_mesh/orchestrator/orchestrator_main.py,sha256=wHLCaIqwzDrnpWM97lnrUwrk_bS9nmjy4R_dDRn24iU,5983
|
|
60
|
-
solace_agent_mesh/orchestrator/orchestrator_prompt.py,sha256=
|
|
60
|
+
solace_agent_mesh/orchestrator/orchestrator_prompt.py,sha256=lCSrSy_Kn5GkEihvN_sKxWewv8W7ABxh0Sbl_qt3qPY,24238
|
|
61
61
|
solace_agent_mesh/orchestrator/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
62
|
solace_agent_mesh/orchestrator/components/orchestrator_action_manager_timeout_component.py,sha256=w-rZBLMJPz8sLkxgOCH4Mc5Yk8jI0wKG-TZ27cQP-sU,1976
|
|
63
63
|
solace_agent_mesh/orchestrator/components/orchestrator_action_response_component.py,sha256=Wo2Qd6CU4bcllc_jy6XXdza1jewcV1SGXh1osdWI4Zc,7140
|
|
@@ -97,12 +97,12 @@ solace_agent_mesh/tools/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
|
|
|
97
97
|
solace_agent_mesh/tools/components/conversation_formatter.py,sha256=_C60LepjhxPzQYCwjIAp8nQD3XdVpvZdxNO4cLBXXrY,4202
|
|
98
98
|
solace_agent_mesh/tools/components/file_resolver_component.py,sha256=MOKFuIBpxsQuSQF7ogdhtm2E1w8LDMs_giaNKfkx2pY,1965
|
|
99
99
|
solace_agent_mesh/tools/config/runtime_config.py,sha256=9-sCi2W5RSyN8WUHdSv6YVzKWORzK1akM-C19tDSCUo,860
|
|
100
|
-
solace_agent_mesh/cli/__init__.py,sha256=
|
|
100
|
+
solace_agent_mesh/cli/__init__.py,sha256=YvuYzWnKtqBb-IqG8HAu-nhIYAsgj9Vmc_b9o7vO-js,22
|
|
101
101
|
solace_agent_mesh/cli/config.py,sha256=sGcJE9zNNGme3n6Q4wOM5Vn2TQSTWHRXPZUBnNEwV40,2841
|
|
102
102
|
solace_agent_mesh/cli/main.py,sha256=faei8XGbAaexbIfmZBnuo7eqyo5pBm7Rh1pn-Ybjv6M,7127
|
|
103
103
|
solace_agent_mesh/cli/utils.py,sha256=TYNDr8IweOtGT11X-ZNPVC6WPgMrcVyAeAa9NvVV5Oo,7632
|
|
104
104
|
solace_agent_mesh/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
105
|
-
solace_agent_mesh/cli/commands/build.py,sha256=
|
|
105
|
+
solace_agent_mesh/cli/commands/build.py,sha256=8jO7BK21lYaIh6UNiE41bYEZbahYoAlorQfZV5pZ3jw,25441
|
|
106
106
|
solace_agent_mesh/cli/commands/config.py,sha256=_9Sw3TbTUgAVsEUrbTn72e4lABIchjpKS_JhSIF2EZ0,772
|
|
107
107
|
solace_agent_mesh/cli/commands/run.py,sha256=sx82i75mQgHduJBcMvSCbdQsAZdTVD0NWGNqtCUQEnE,2066
|
|
108
108
|
solace_agent_mesh/cli/commands/visualizer.py,sha256=FhqEMQRQGrNnkkSihuEKE9rFBATQKjTXLwOUJZIsAH0,4646
|
|
@@ -147,24 +147,28 @@ solace_agent_mesh/configs/visualize_websocket.yaml,sha256=5RlUyqjI2-nOKYUbwoFqfO
|
|
|
147
147
|
solace_agent_mesh/templates/action.py,sha256=9U2lfncOa4CPRcgbXbz_BpCGak1ZZVR4UVNELNV-uiI,1401
|
|
148
148
|
solace_agent_mesh/templates/agent.py,sha256=eZb4ZhVkhDdLLUubbHd8obaIyGd610A4bNvoYzkjKqs,771
|
|
149
149
|
solace_agent_mesh/templates/agent.yaml,sha256=wBpBMY-8c_YdwF8RGGVzgizCHxPGhJrKCb4poMnOK1g,2865
|
|
150
|
-
solace_agent_mesh/templates/gateway-config-template.yaml,sha256=
|
|
151
|
-
solace_agent_mesh/templates/gateway-default-config.yaml,sha256=
|
|
152
|
-
solace_agent_mesh/templates/gateway-flows.yaml,sha256=
|
|
150
|
+
solace_agent_mesh/templates/gateway-config-template.yaml,sha256=TxJEzqud6bMsJjbi8VlYXQoiBl8SB8Z3HF9b1Kf6uok,296
|
|
151
|
+
solace_agent_mesh/templates/gateway-default-config.yaml,sha256=qzuMsrZzg5uPUCLeB5Kcv8vp8BZfQFu95SbkaRY4Lvk,1121
|
|
152
|
+
solace_agent_mesh/templates/gateway-flows.yaml,sha256=6KufsvEkMitBSZVeu4lPEoqILSN_I5Hh3_LvBusCQRM,3046
|
|
153
153
|
solace_agent_mesh/templates/gateway-header.yaml,sha256=PjwSOjYrYt8lLo8PYo1AQdZkN5M7HxMNJer2CTpP6mc,472
|
|
154
154
|
solace_agent_mesh/templates/gateway_base.py,sha256=vgiNrcIzJYTli2UMPJyFwDCx1IOGW_oOFpZtTcBdHaE,457
|
|
155
155
|
solace_agent_mesh/templates/gateway_input.py,sha256=gkjTYjgpOxMWU_k0EnB0BU_6q3vOAh9IN-fmxu_jW6k,3097
|
|
156
156
|
solace_agent_mesh/templates/gateway_output.py,sha256=fGM2HnYf9RXkOsLcuDD3HR4ozcxHX9UppxBPCUmtSKk,2191
|
|
157
157
|
solace_agent_mesh/templates/plugin-pyproject.toml,sha256=pD146TDV9DYbt6O8pE9O5KdX_CNqGGuy9BYf8TqmGJI,676
|
|
158
|
-
solace_agent_mesh/templates/rest-api-default-config.yaml,sha256=
|
|
159
|
-
solace_agent_mesh/templates/rest-api-flows.yaml,sha256=
|
|
160
|
-
solace_agent_mesh/templates/slack-default-config.yaml,sha256
|
|
161
|
-
solace_agent_mesh/templates/slack-flows.yaml,sha256=
|
|
158
|
+
solace_agent_mesh/templates/rest-api-default-config.yaml,sha256=DmUIZMmuzyptrnYgM4wVHqdUX9y0seGgU4UcPTWaTu4,1266
|
|
159
|
+
solace_agent_mesh/templates/rest-api-flows.yaml,sha256=OVU9QPKlZMzla-G1HnqtKCFaYxgXF7pP1aFUR8LwWDQ,3150
|
|
160
|
+
solace_agent_mesh/templates/slack-default-config.yaml,sha256=-C5r61O4UZ7JGA0l_wxQIc5DbfqnZFm20-OU6nBIf-s,754
|
|
161
|
+
solace_agent_mesh/templates/slack-flows.yaml,sha256=nzLS67tT4Xh_NFynB4XJlr6pomgG5EkatsLBnGS3fBo,3201
|
|
162
162
|
solace_agent_mesh/templates/solace-agent-mesh-default.yaml,sha256=R1xm_uPJqWSrjWRhLlVc2VY-YaFzM92L0sPoAfA45iI,3042
|
|
163
163
|
solace_agent_mesh/templates/solace-agent-mesh-plugin-default.yaml,sha256=T0GgQGHJc8uMNH8mlCqxAH3Zm4Yc-rCPiW1UVY6KcdA,331
|
|
164
|
-
solace_agent_mesh/templates/web-default-config.yaml,sha256=
|
|
165
|
-
solace_agent_mesh/templates/web-flows.yaml,sha256=
|
|
166
|
-
solace_agent_mesh-
|
|
167
|
-
solace_agent_mesh-
|
|
168
|
-
solace_agent_mesh-
|
|
169
|
-
solace_agent_mesh-
|
|
170
|
-
solace_agent_mesh-0.1.
|
|
164
|
+
solace_agent_mesh/templates/web-default-config.yaml,sha256=8gsiV2ar1ZPEL6w-ofWTGb3gzC0IRlETGk_fBVWxcwo,341
|
|
165
|
+
solace_agent_mesh/templates/web-flows.yaml,sha256=dzy7BvQDNEsvzVb_O38LvdYbKn2XJmtIU2ExhPIRI2k,3028
|
|
166
|
+
solace_agent_mesh/assets/web-visualizer/index.html,sha256=Bn-hrNXJvapfRG-L_hs5K5ezKf53gw_H4x93rIdeAQw,484
|
|
167
|
+
solace_agent_mesh/assets/web-visualizer/vite.svg,sha256=SnSK_UQ5GLsWWRyDTEAdrjPoeGGrXbrQgRw6O0qSFPs,1497
|
|
168
|
+
solace_agent_mesh/assets/web-visualizer/assets/index-C5awueeJ.js,sha256=tlhSEqOgFpMuwd7X73mdRAxUCxQ8H7TiCfk4oHh6qXY,752048
|
|
169
|
+
solace_agent_mesh/assets/web-visualizer/assets/index-D0qORgkg.css,sha256=sR-djfZhg7oOrDkv7deFLKVioHOSGFA0ZCDPvK8jzYI,12678
|
|
170
|
+
solace_agent_mesh-0.1.2.dist-info/METADATA,sha256=jESq2kEL6MR8C2i2VrAnamf5QqOKsy9PXiVGdpVV2D8,9996
|
|
171
|
+
solace_agent_mesh-0.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
172
|
+
solace_agent_mesh-0.1.2.dist-info/entry_points.txt,sha256=VDI4Kkhc1jy9ajf8Qd08v3lpV4n7zoWBAo6fopQrXL8,108
|
|
173
|
+
solace_agent_mesh-0.1.2.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
174
|
+
solace_agent_mesh-0.1.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|