solace-agent-mesh 1.4.12__py3-none-any.whl → 1.5.0__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/adk_llm.txt +3 -4
- solace_agent_mesh/agent/adk/adk_llm_detail.txt +566 -0
- solace_agent_mesh/agent/adk/artifacts/artifacts_llm.txt +1 -1
- solace_agent_mesh/agent/adk/callbacks.py +51 -2
- solace_agent_mesh/agent/adk/models/lite_llm.py +1 -0
- solace_agent_mesh/agent/adk/models/models_llm.txt +1 -2
- solace_agent_mesh/agent/agent_llm.txt +1 -1
- solace_agent_mesh/agent/agent_llm_detail.txt +1702 -0
- solace_agent_mesh/agent/protocol/event_handlers.py +2 -13
- solace_agent_mesh/agent/protocol/protocol_llm.txt +15 -2
- solace_agent_mesh/agent/protocol/protocol_llm_detail.txt +92 -0
- solace_agent_mesh/agent/sac/component.py +51 -21
- solace_agent_mesh/agent/sac/sac_llm.txt +15 -1
- solace_agent_mesh/agent/sac/sac_llm_detail.txt +200 -0
- solace_agent_mesh/agent/sac/task_execution_context.py +73 -0
- solace_agent_mesh/agent/testing/testing_llm_detail.txt +68 -0
- solace_agent_mesh/agent/tools/tools_llm.txt +148 -154
- solace_agent_mesh/agent/tools/tools_llm_detail.txt +274 -0
- solace_agent_mesh/agent/utils/utils_llm.txt +1 -1
- solace_agent_mesh/agent/utils/utils_llm_detail.txt +149 -0
- solace_agent_mesh/assets/docs/404.html +3 -3
- solace_agent_mesh/assets/docs/assets/js/483cef9a.bf9398af.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{main.f67fc9f4.js → main.0c149855.js} +2 -2
- solace_agent_mesh/assets/docs/assets/js/{runtime~main.40527046.js → runtime~main.c66557e4.js} +1 -1
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/rbac-setup-guilde/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html +8 -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 +3 -3
- 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 +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/litellm_models/index.html +3 -3
- 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 +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +3 -3
- 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 +3 -3
- 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 +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +3 -3
- 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 +3 -3
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +3 -3
- solace_agent_mesh/assets/docs/lunr-index-1760032255022.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -1
- solace_agent_mesh/assets/docs/search-doc-1760032255022.json +1 -0
- solace_agent_mesh/assets/docs/search-doc.json +1 -1
- solace_agent_mesh/cli/__init__.py +1 -1
- solace_agent_mesh/client/webui/frontend/static/assets/{authCallback-j1LW-wlq.js → authCallback-DwrxZE0E.js} +1 -1
- solace_agent_mesh/client/webui/frontend/static/assets/{client-B9p_nFNA.js → client-DarGQzyw.js} +1 -1
- solace_agent_mesh/client/webui/frontend/static/assets/main-CZbpmwfA.css +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-C__uuUkB.js +339 -0
- solace_agent_mesh/client/webui/frontend/static/assets/{vendor-CS5YMf8a.js → vendor-BKIeiHj_.js} +80 -70
- solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -3
- solace_agent_mesh/client/webui/frontend/static/index.html +4 -4
- solace_agent_mesh/common/a2a/a2a_llm.txt +1 -1
- solace_agent_mesh/common/a2a/a2a_llm_detail.txt +193 -0
- solace_agent_mesh/common/a2a_spec/a2a_spec_llm.txt +1 -1
- solace_agent_mesh/common/a2a_spec/a2a_spec_llm_detail.txt +736 -0
- solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json +23 -0
- solace_agent_mesh/common/a2a_spec/schemas/schemas_llm.txt +93 -15
- solace_agent_mesh/common/a2a_spec/schemas/tool_result.json +23 -0
- solace_agent_mesh/common/common_llm.txt +24 -39
- solace_agent_mesh/common/common_llm_detail.txt +2562 -0
- solace_agent_mesh/common/data_parts.py +9 -1
- solace_agent_mesh/common/middleware/middleware_llm_detail.txt +185 -0
- solace_agent_mesh/common/sac/sac_llm.txt +1 -1
- solace_agent_mesh/common/sac/sac_llm_detail.txt +82 -0
- solace_agent_mesh/common/sam_events/sam_events_llm.txt +104 -0
- solace_agent_mesh/common/sam_events/sam_events_llm_detail.txt +115 -0
- solace_agent_mesh/common/services/services_llm.txt +57 -6
- solace_agent_mesh/common/services/services_llm_detail.txt +459 -0
- solace_agent_mesh/common/utils/embeds/embeds_llm.txt +1 -1
- solace_agent_mesh/common/utils/utils_llm.txt +75 -87
- solace_agent_mesh/common/utils/utils_llm_detail.txt +572 -0
- solace_agent_mesh/core_a2a/core_a2a_llm_detail.txt +101 -0
- solace_agent_mesh/gateway/base/app.py +1 -1
- solace_agent_mesh/gateway/base/base_llm.txt +1 -1
- solace_agent_mesh/gateway/base/base_llm_detail.txt +235 -0
- solace_agent_mesh/gateway/gateway_llm.txt +242 -235
- solace_agent_mesh/gateway/gateway_llm_detail.txt +3885 -0
- solace_agent_mesh/gateway/http_sse/alembic/alembic_llm.txt +295 -0
- solace_agent_mesh/gateway/http_sse/alembic/env.py +10 -1
- solace_agent_mesh/gateway/http_sse/alembic/versions/20251006_98882922fa59_add_tasks_events_feedback_chat_tasks.py +190 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/versions_llm.txt +155 -0
- solace_agent_mesh/gateway/http_sse/alembic.ini +1 -1
- solace_agent_mesh/gateway/http_sse/app.py +148 -2
- solace_agent_mesh/gateway/http_sse/component.py +368 -60
- solace_agent_mesh/gateway/http_sse/components/components_llm.txt +46 -6
- solace_agent_mesh/gateway/http_sse/components/task_logger_forwarder.py +108 -0
- solace_agent_mesh/gateway/http_sse/components/visualization_forwarder_component.py +1 -1
- solace_agent_mesh/gateway/http_sse/dependencies.py +116 -26
- solace_agent_mesh/gateway/http_sse/http_sse_llm.txt +172 -172
- solace_agent_mesh/gateway/http_sse/http_sse_llm_detail.txt +3278 -0
- solace_agent_mesh/gateway/http_sse/main.py +146 -41
- solace_agent_mesh/gateway/http_sse/repository/__init__.py +3 -12
- solace_agent_mesh/gateway/http_sse/repository/chat_task_repository.py +103 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/__init__.py +5 -3
- solace_agent_mesh/gateway/http_sse/repository/entities/chat_task.py +75 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/entities_llm.txt +263 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/feedback.py +20 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/session_history.py +0 -16
- solace_agent_mesh/gateway/http_sse/repository/entities/task.py +25 -0
- solace_agent_mesh/gateway/http_sse/repository/entities/task_event.py +21 -0
- solace_agent_mesh/gateway/http_sse/repository/feedback_repository.py +81 -0
- solace_agent_mesh/gateway/http_sse/repository/interfaces.py +73 -18
- solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +9 -5
- solace_agent_mesh/gateway/http_sse/repository/models/chat_task_model.py +31 -0
- solace_agent_mesh/gateway/http_sse/repository/models/feedback_model.py +21 -0
- solace_agent_mesh/gateway/http_sse/repository/models/models_llm.txt +266 -0
- solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +3 -3
- solace_agent_mesh/gateway/http_sse/repository/models/task_event_model.py +25 -0
- solace_agent_mesh/gateway/http_sse/repository/models/task_model.py +32 -0
- solace_agent_mesh/gateway/http_sse/repository/repository_llm.txt +340 -0
- solace_agent_mesh/gateway/http_sse/repository/session_repository.py +4 -53
- solace_agent_mesh/gateway/http_sse/repository/task_repository.py +173 -0
- solace_agent_mesh/gateway/http_sse/routers/artifacts.py +1 -1
- solace_agent_mesh/gateway/http_sse/routers/config.py +26 -4
- solace_agent_mesh/gateway/http_sse/routers/dto/dto_llm.txt +346 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/__init__.py +3 -3
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/requests_llm.txt +83 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +2 -10
- solace_agent_mesh/gateway/http_sse/routers/dto/requests/task_requests.py +58 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/__init__.py +5 -3
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/responses_llm.txt +107 -0
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/session_responses.py +1 -15
- solace_agent_mesh/gateway/http_sse/routers/dto/responses/task_responses.py +30 -0
- solace_agent_mesh/gateway/http_sse/routers/feedback.py +37 -0
- solace_agent_mesh/gateway/http_sse/routers/routers_llm.txt +255 -204
- solace_agent_mesh/gateway/http_sse/routers/sessions.py +220 -40
- solace_agent_mesh/gateway/http_sse/routers/tasks.py +168 -42
- solace_agent_mesh/gateway/http_sse/services/data_retention_service.py +272 -0
- solace_agent_mesh/gateway/http_sse/services/feedback_service.py +241 -0
- solace_agent_mesh/gateway/http_sse/services/people_service.py +0 -80
- solace_agent_mesh/gateway/http_sse/services/services_llm.txt +177 -13
- solace_agent_mesh/gateway/http_sse/services/session_service.py +151 -84
- solace_agent_mesh/gateway/http_sse/services/task_logger_service.py +317 -0
- solace_agent_mesh/gateway/http_sse/shared/exception_handlers.py +25 -14
- solace_agent_mesh/gateway/http_sse/shared/shared_llm.txt +285 -0
- solace_agent_mesh/gateway/http_sse/shared/types.py +7 -0
- solace_agent_mesh/gateway/http_sse/utils/__init__.py +1 -0
- solace_agent_mesh/gateway/http_sse/utils/stim_utils.py +32 -0
- solace_agent_mesh/gateway/http_sse/utils/utils_llm.txt +47 -0
- solace_agent_mesh/solace_agent_mesh_llm.txt +1 -1
- solace_agent_mesh/solace_agent_mesh_llm_detail.txt +8599 -0
- {solace_agent_mesh-1.4.12.dist-info → solace_agent_mesh-1.5.0.dist-info}/METADATA +1 -1
- {solace_agent_mesh-1.4.12.dist-info → solace_agent_mesh-1.5.0.dist-info}/RECORD +172 -124
- solace_agent_mesh/agent/adk/invocation_monitor.py +0 -295
- solace_agent_mesh/assets/docs/assets/js/483cef9a.4736f2d8.js +0 -1
- solace_agent_mesh/assets/docs/lunr-index-1759936913198.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1759936913198.json +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/main-ChRwcV89.css +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/main-DnnE01OM.js +0 -339
- solace_agent_mesh/gateway/http_sse/repository/entities/message.py +0 -41
- solace_agent_mesh/gateway/http_sse/repository/message_repository.py +0 -84
- solace_agent_mesh/gateway/http_sse/repository/models/message_model.py +0 -45
- /solace_agent_mesh/assets/docs/assets/js/{main.f67fc9f4.js.LICENSE.txt → main.0c149855.js.LICENSE.txt} +0 -0
- {solace_agent_mesh-1.4.12.dist-info → solace_agent_mesh-1.5.0.dist-info}/WHEEL +0 -0
- {solace_agent_mesh-1.4.12.dist-info → solace_agent_mesh-1.5.0.dist-info}/entry_points.txt +0 -0
- {solace_agent_mesh-1.4.12.dist-info → solace_agent_mesh-1.5.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -12,6 +12,29 @@
|
|
|
12
12
|
"request": {
|
|
13
13
|
"type": "object",
|
|
14
14
|
"description": "A sanitized representation of the LlmRequest object sent to the model."
|
|
15
|
+
},
|
|
16
|
+
"usage": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"description": "Token usage information for this LLM call.",
|
|
19
|
+
"properties": {
|
|
20
|
+
"input_tokens": {
|
|
21
|
+
"type": "integer",
|
|
22
|
+
"description": "Number of input/prompt tokens."
|
|
23
|
+
},
|
|
24
|
+
"output_tokens": {
|
|
25
|
+
"type": "integer",
|
|
26
|
+
"description": "Number of output/completion tokens."
|
|
27
|
+
},
|
|
28
|
+
"cached_input_tokens": {
|
|
29
|
+
"type": "integer",
|
|
30
|
+
"description": "Number of cached input tokens (optional)."
|
|
31
|
+
},
|
|
32
|
+
"model": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Model identifier used for this call."
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"required": ["input_tokens", "output_tokens", "model"]
|
|
15
38
|
}
|
|
16
39
|
},
|
|
17
40
|
"required": ["type", "request"]
|
|
@@ -6,9 +6,9 @@ This directory contains JSON Schema definitions for various agent-to-agent (A2A)
|
|
|
6
6
|
## Files Overview
|
|
7
7
|
- `agent_progress_update.json` - Schema for general agent progress status messages
|
|
8
8
|
- `artifact_creation_progress.json` - Schema for tracking file/artifact creation progress with chunked data
|
|
9
|
-
- `llm_invocation.json` - Schema for LLM model invocation signals
|
|
9
|
+
- `llm_invocation.json` - Schema for LLM model invocation signals with usage tracking
|
|
10
10
|
- `tool_invocation_start.json` - Schema for tool execution start notifications
|
|
11
|
-
- `tool_result.json` - Schema for tool execution completion results
|
|
11
|
+
- `tool_result.json` - Schema for tool execution completion results with optional LLM usage
|
|
12
12
|
- `schemas_llm.txt` - Previous developer guide (legacy documentation)
|
|
13
13
|
|
|
14
14
|
## Developer API Reference
|
|
@@ -16,6 +16,12 @@ This directory contains JSON Schema definitions for various agent-to-agent (A2A)
|
|
|
16
16
|
### agent_progress_update.json
|
|
17
17
|
**Purpose:** Defines the schema for agent progress update signals that communicate human-readable status messages between agents.
|
|
18
18
|
|
|
19
|
+
**Import:** Load as JSON schema for validation
|
|
20
|
+
```python
|
|
21
|
+
import json
|
|
22
|
+
from jsonschema import validate
|
|
23
|
+
```
|
|
24
|
+
|
|
19
25
|
**Schema Structure:**
|
|
20
26
|
```json
|
|
21
27
|
{
|
|
@@ -48,6 +54,12 @@ validate(instance=data, schema=schema)
|
|
|
48
54
|
### artifact_creation_progress.json
|
|
49
55
|
**Purpose:** Defines the schema for tracking progress during file or artifact creation operations with chunked data transfer.
|
|
50
56
|
|
|
57
|
+
**Import:** Load as JSON schema for validation
|
|
58
|
+
```python
|
|
59
|
+
import json
|
|
60
|
+
from jsonschema import validate
|
|
61
|
+
```
|
|
62
|
+
|
|
51
63
|
**Schema Structure:**
|
|
52
64
|
```json
|
|
53
65
|
{
|
|
@@ -84,19 +96,36 @@ validate(instance=data, schema=schema)
|
|
|
84
96
|
```
|
|
85
97
|
|
|
86
98
|
### llm_invocation.json
|
|
87
|
-
**Purpose:** Defines the schema for LLM invocation signals that communicate when an agent is calling a language model.
|
|
99
|
+
**Purpose:** Defines the schema for LLM invocation signals that communicate when an agent is calling a language model, including token usage tracking.
|
|
100
|
+
|
|
101
|
+
**Import:** Load as JSON schema for validation
|
|
102
|
+
```python
|
|
103
|
+
import json
|
|
104
|
+
from jsonschema import validate
|
|
105
|
+
```
|
|
88
106
|
|
|
89
107
|
**Schema Structure:**
|
|
90
108
|
```json
|
|
91
109
|
{
|
|
92
110
|
"type": "llm_invocation",
|
|
93
|
-
"request": "object"
|
|
111
|
+
"request": "object",
|
|
112
|
+
"usage": {
|
|
113
|
+
"input_tokens": "integer",
|
|
114
|
+
"output_tokens": "integer",
|
|
115
|
+
"cached_input_tokens": "integer",
|
|
116
|
+
"model": "string"
|
|
117
|
+
}
|
|
94
118
|
}
|
|
95
119
|
```
|
|
96
120
|
|
|
97
121
|
**Properties:**
|
|
98
122
|
- `type: "llm_invocation"` - Constant identifier for this signal type (required)
|
|
99
123
|
- `request: object` - Sanitized representation of the LlmRequest object sent to the model (required)
|
|
124
|
+
- `usage: object` - Token usage information for this LLM call (optional)
|
|
125
|
+
- `input_tokens: integer` - Number of input/prompt tokens (required in usage)
|
|
126
|
+
- `output_tokens: integer` - Number of output/completion tokens (required in usage)
|
|
127
|
+
- `cached_input_tokens: integer` - Number of cached input tokens (optional)
|
|
128
|
+
- `model: string` - Model identifier used for this call (required in usage)
|
|
100
129
|
|
|
101
130
|
**Usage Examples:**
|
|
102
131
|
```python
|
|
@@ -107,13 +136,19 @@ from jsonschema import validate
|
|
|
107
136
|
with open('solace_agent_mesh/common/a2a_spec/schemas/llm_invocation.json') as f:
|
|
108
137
|
schema = json.load(f)
|
|
109
138
|
|
|
110
|
-
# Valid data example
|
|
139
|
+
# Valid data example with usage tracking
|
|
111
140
|
data = {
|
|
112
141
|
"type": "llm_invocation",
|
|
113
142
|
"request": {
|
|
114
143
|
"model": "gpt-4",
|
|
115
144
|
"messages": [{"role": "user", "content": "Analyze this data"}],
|
|
116
145
|
"temperature": 0.7
|
|
146
|
+
},
|
|
147
|
+
"usage": {
|
|
148
|
+
"input_tokens": 150,
|
|
149
|
+
"output_tokens": 75,
|
|
150
|
+
"cached_input_tokens": 50,
|
|
151
|
+
"model": "gpt-4"
|
|
117
152
|
}
|
|
118
153
|
}
|
|
119
154
|
validate(instance=data, schema=schema)
|
|
@@ -122,6 +157,12 @@ validate(instance=data, schema=schema)
|
|
|
122
157
|
### tool_invocation_start.json
|
|
123
158
|
**Purpose:** Defines the schema for tool invocation start signals that notify when an agent begins executing a tool.
|
|
124
159
|
|
|
160
|
+
**Import:** Load as JSON schema for validation
|
|
161
|
+
```python
|
|
162
|
+
import json
|
|
163
|
+
from jsonschema import validate
|
|
164
|
+
```
|
|
165
|
+
|
|
125
166
|
**Schema Structure:**
|
|
126
167
|
```json
|
|
127
168
|
{
|
|
@@ -161,7 +202,13 @@ validate(instance=data, schema=schema)
|
|
|
161
202
|
```
|
|
162
203
|
|
|
163
204
|
### tool_result.json
|
|
164
|
-
**Purpose:** Defines the schema for tool execution result signals that communicate the completion and results of tool invocations.
|
|
205
|
+
**Purpose:** Defines the schema for tool execution result signals that communicate the completion and results of tool invocations, with optional LLM usage tracking.
|
|
206
|
+
|
|
207
|
+
**Import:** Load as JSON schema for validation
|
|
208
|
+
```python
|
|
209
|
+
import json
|
|
210
|
+
from jsonschema import validate
|
|
211
|
+
```
|
|
165
212
|
|
|
166
213
|
**Schema Structure:**
|
|
167
214
|
```json
|
|
@@ -169,7 +216,13 @@ validate(instance=data, schema=schema)
|
|
|
169
216
|
"type": "tool_result",
|
|
170
217
|
"tool_name": "string",
|
|
171
218
|
"result_data": "any",
|
|
172
|
-
"function_call_id": "string"
|
|
219
|
+
"function_call_id": "string",
|
|
220
|
+
"llm_usage": {
|
|
221
|
+
"input_tokens": "integer",
|
|
222
|
+
"output_tokens": "integer",
|
|
223
|
+
"cached_input_tokens": "integer",
|
|
224
|
+
"model": "string"
|
|
225
|
+
}
|
|
173
226
|
}
|
|
174
227
|
```
|
|
175
228
|
|
|
@@ -178,6 +231,11 @@ validate(instance=data, schema=schema)
|
|
|
178
231
|
- `tool_name: string` - Name of the tool that was called (required)
|
|
179
232
|
- `result_data: any` - The data returned by the tool (required, can be any type)
|
|
180
233
|
- `function_call_id: string` - ID from the LLM's function call that this result corresponds to (required)
|
|
234
|
+
- `llm_usage: object` - Token usage if this tool made LLM calls (optional)
|
|
235
|
+
- `input_tokens: integer` - Total input tokens used by tool's LLM calls (required in llm_usage)
|
|
236
|
+
- `output_tokens: integer` - Total output tokens used by tool's LLM calls (required in llm_usage)
|
|
237
|
+
- `cached_input_tokens: integer` - Number of cached input tokens (optional)
|
|
238
|
+
- `model: string` - Model identifier(s) used by the tool (required in llm_usage)
|
|
181
239
|
|
|
182
240
|
**Usage Examples:**
|
|
183
241
|
```python
|
|
@@ -188,16 +246,20 @@ from jsonschema import validate
|
|
|
188
246
|
with open('solace_agent_mesh/common/a2a_spec/schemas/tool_result.json') as f:
|
|
189
247
|
schema = json.load(f)
|
|
190
248
|
|
|
191
|
-
# Valid data example
|
|
249
|
+
# Valid data example with LLM usage
|
|
192
250
|
data = {
|
|
193
251
|
"type": "tool_result",
|
|
194
|
-
"tool_name": "
|
|
252
|
+
"tool_name": "web_search",
|
|
195
253
|
"result_data": {
|
|
196
|
-
"
|
|
197
|
-
"
|
|
198
|
-
"encoding": "utf-8"
|
|
254
|
+
"results": ["Result 1", "Result 2"],
|
|
255
|
+
"count": 2
|
|
199
256
|
},
|
|
200
|
-
"function_call_id": "call_abc123"
|
|
257
|
+
"function_call_id": "call_abc123",
|
|
258
|
+
"llm_usage": {
|
|
259
|
+
"input_tokens": 200,
|
|
260
|
+
"output_tokens": 100,
|
|
261
|
+
"model": "gpt-4"
|
|
262
|
+
}
|
|
201
263
|
}
|
|
202
264
|
validate(instance=data, schema=schema)
|
|
203
265
|
```
|
|
@@ -207,8 +269,9 @@ validate(instance=data, schema=schema)
|
|
|
207
269
|
import json
|
|
208
270
|
from jsonschema import validate
|
|
209
271
|
from pathlib import Path
|
|
272
|
+
from typing import Dict, Any
|
|
210
273
|
|
|
211
|
-
def validate_a2a_signal(signal_data:
|
|
274
|
+
def validate_a2a_signal(signal_data: Dict[str, Any], schema_name: str) -> bool:
|
|
212
275
|
"""Validate A2A signal data against its schema."""
|
|
213
276
|
schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
|
|
214
277
|
|
|
@@ -222,6 +285,12 @@ def validate_a2a_signal(signal_data: dict, schema_name: str) -> bool:
|
|
|
222
285
|
print(f"Validation failed: {e}")
|
|
223
286
|
return False
|
|
224
287
|
|
|
288
|
+
def load_schema(schema_name: str) -> Dict[str, Any]:
|
|
289
|
+
"""Load a specific A2A signal schema."""
|
|
290
|
+
schema_path = Path(f"solace_agent_mesh/common/a2a_spec/schemas/{schema_name}.json")
|
|
291
|
+
with open(schema_path) as f:
|
|
292
|
+
return json.load(f)
|
|
293
|
+
|
|
225
294
|
# Example usage
|
|
226
295
|
progress_data = {
|
|
227
296
|
"type": "agent_progress_update",
|
|
@@ -230,6 +299,15 @@ progress_data = {
|
|
|
230
299
|
|
|
231
300
|
if validate_a2a_signal(progress_data, "agent_progress_update"):
|
|
232
301
|
print("Signal is valid!")
|
|
302
|
+
|
|
303
|
+
# Load all schemas for batch validation
|
|
304
|
+
schemas = {
|
|
305
|
+
"agent_progress": load_schema("agent_progress_update"),
|
|
306
|
+
"artifact_progress": load_schema("artifact_creation_progress"),
|
|
307
|
+
"llm_invocation": load_schema("llm_invocation"),
|
|
308
|
+
"tool_start": load_schema("tool_invocation_start"),
|
|
309
|
+
"tool_result": load_schema("tool_result")
|
|
310
|
+
}
|
|
233
311
|
```
|
|
234
312
|
|
|
235
|
-
# content_hash:
|
|
313
|
+
# content_hash: 8d0325636918fd8bdabc0ba61bed79ae2b2be06778893406197aebfb7c3e3a21
|
|
@@ -19,6 +19,29 @@
|
|
|
19
19
|
"function_call_id": {
|
|
20
20
|
"type": "string",
|
|
21
21
|
"description": "The ID from the LLM's function call that this result corresponds to."
|
|
22
|
+
},
|
|
23
|
+
"llm_usage": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"description": "Token usage if this tool made LLM calls.",
|
|
26
|
+
"properties": {
|
|
27
|
+
"input_tokens": {
|
|
28
|
+
"type": "integer",
|
|
29
|
+
"description": "Total input tokens used by tool's LLM calls."
|
|
30
|
+
},
|
|
31
|
+
"output_tokens": {
|
|
32
|
+
"type": "integer",
|
|
33
|
+
"description": "Total output tokens used by tool's LLM calls."
|
|
34
|
+
},
|
|
35
|
+
"cached_input_tokens": {
|
|
36
|
+
"type": "integer",
|
|
37
|
+
"description": "Number of cached input tokens (optional)."
|
|
38
|
+
},
|
|
39
|
+
"model": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Model identifier(s) used by the tool."
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"required": ["input_tokens", "output_tokens", "model"]
|
|
22
45
|
}
|
|
23
46
|
},
|
|
24
47
|
"required": ["type", "tool_name", "result_data", "function_call_id"]
|
|
@@ -31,6 +31,8 @@ Together, these components form a cohesive ecosystem, enabling developers to eit
|
|
|
31
31
|
- `a2a_spec/`: Complete JSON Schema specification for the A2A protocol.
|
|
32
32
|
- `client/`: Provides a high-level client for discovering and communicating with remote A2A agents.
|
|
33
33
|
- `middleware/`: A pluggable framework for configuration resolution and system extensibility.
|
|
34
|
+
- `sac/`: Base component framework for Solace Agent Mesh implementations in the Solace AI Connector.
|
|
35
|
+
- `sam_events/`: System-level event messaging for session lifecycle, agent health, and configuration changes.
|
|
34
36
|
- `server/`: A complete A2A server implementation with JSON-RPC support and task management.
|
|
35
37
|
- `services/`: Provides shared services like identity management using a factory pattern.
|
|
36
38
|
- `utils/`: Contains common utility functions and an embedded expression processing system.
|
|
@@ -77,6 +79,8 @@ Together, these components form a cohesive ecosystem, enabling developers to eit
|
|
|
77
79
|
|
|
78
80
|
**Classes/Functions/Constants:**
|
|
79
81
|
- `DEFAULT_COMMUNICATION_TIMEOUT: int`: Default timeout for communication operations (600 seconds / 10 minutes).
|
|
82
|
+
- `TEXT_ARTIFACT_CONTEXT_MAX_LENGTH_CAPACITY: int`: Maximum number of characters that can be loaded from a text artifact (200,000).
|
|
83
|
+
- `TEXT_ARTIFACT_CONTEXT_DEFAULT_LENGTH: int`: Default number of characters to load from a text artifact (100,000).
|
|
80
84
|
|
|
81
85
|
#### data_parts.py
|
|
82
86
|
**Purpose:** Defines Pydantic models for structured data payloads used in A2A DataPart objects, corresponding to JSON schemas for agent communication signals.
|
|
@@ -91,6 +95,7 @@ Together, these components form a cohesive ecosystem, enabling developers to eit
|
|
|
91
95
|
- **`LlmInvocationData`**: Data model for LLM invocation signals.
|
|
92
96
|
- `type: Literal["llm_invocation"]`: The constant type identifier.
|
|
93
97
|
- `request: Dict[str, Any]`: A sanitized representation of the LlmRequest object.
|
|
98
|
+
- `usage: Optional[Dict[str, Any]]`: Token usage information for this LLM call.
|
|
94
99
|
- **`AgentProgressUpdateData`**: Data model for agent progress update signals.
|
|
95
100
|
- `type: Literal["agent_progress_update"]`: The constant type identifier.
|
|
96
101
|
- `status_text: str`: A human-readable progress message.
|
|
@@ -104,6 +109,7 @@ Together, these components form a cohesive ecosystem, enabling developers to eit
|
|
|
104
109
|
- `tool_name: str`: The name of the tool that was called.
|
|
105
110
|
- `result_data: Any`: The data returned by the tool.
|
|
106
111
|
- `function_call_id: str`: The ID from the LLM's function call.
|
|
112
|
+
- `llm_usage: Optional[Dict[str, Any]]`: Token usage if this tool made LLM calls.
|
|
107
113
|
|
|
108
114
|
#### exceptions.py
|
|
109
115
|
**Purpose:** Defines custom exceptions specific to the Solace Agent Mesh system.
|
|
@@ -177,6 +183,22 @@ from solace_agent_mesh.common.client import A2AClient, A2ACardResolver
|
|
|
177
183
|
from solace_agent_mesh.common.middleware import ConfigResolver, MiddlewareRegistry
|
|
178
184
|
```
|
|
179
185
|
|
|
186
|
+
#### sac/
|
|
187
|
+
**Purpose:** Base component framework for Solace Agent Mesh implementations in the Solace AI Connector with async operations management
|
|
188
|
+
**Key Exports:** `SamComponentBase`
|
|
189
|
+
**Import Examples:**
|
|
190
|
+
```python
|
|
191
|
+
from solace_agent_mesh.common.sac.sam_component_base import SamComponentBase
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
#### sam_events/
|
|
195
|
+
**Purpose:** System-level event messaging for session lifecycle, agent health, and configuration changes separate from A2A task communication
|
|
196
|
+
**Key Exports:** `SamEventService`, `SamEvent`, `SessionDeletedEvent`
|
|
197
|
+
**Import Examples:**
|
|
198
|
+
```python
|
|
199
|
+
from solace_agent_mesh.common.sam_events import SamEventService, SamEvent, SessionDeletedEvent
|
|
200
|
+
```
|
|
201
|
+
|
|
180
202
|
#### server/
|
|
181
203
|
**Purpose:** A complete, stand-alone server for building A2A-compliant agents, handling HTTP requests, JSON-RPC, and task lifecycle management.
|
|
182
204
|
**Key Exports:** `A2AServer`, `TaskManager`, `InMemoryTaskManager`
|
|
@@ -224,43 +246,6 @@ from solace_agent_mesh.common.types import (
|
|
|
224
246
|
TaskState,
|
|
225
247
|
AgentCard
|
|
226
248
|
)
|
|
227
|
-
from
|
|
228
|
-
|
|
229
|
-
# Create a message
|
|
230
|
-
message = Message(
|
|
231
|
-
role="user",
|
|
232
|
-
parts=[TextPart(text="Hello, can you help me analyze this document?")]
|
|
233
|
-
)
|
|
234
|
-
|
|
235
|
-
# Translate to ADK format for processing
|
|
236
|
-
adk_content = translate_a2a_to_adk_content(message, "[Example]")
|
|
237
|
-
print(f"ADK Content: {adk_content}")
|
|
238
|
-
|
|
239
|
-
# Generate topic names for communication
|
|
240
|
-
namespace = "my-company/ai-agents"
|
|
241
|
-
agent_name = "document-analyzer"
|
|
242
|
-
gateway_id = "gateway-001"
|
|
243
|
-
task_id = str(uuid.uuid4())
|
|
244
|
-
|
|
245
|
-
request_topic = get_agent_request_topic(namespace, agent_name)
|
|
246
|
-
status_topic = get_gateway_status_topic(namespace, gateway_id, task_id)
|
|
247
|
-
|
|
248
|
-
print(f"Request Topic: {request_topic}")
|
|
249
|
-
print(f"Status Topic: {status_topic}")
|
|
250
|
-
|
|
251
|
-
# Use agent registry to track discovered agents
|
|
252
|
-
registry = AgentRegistry()
|
|
253
|
-
agent_card = AgentCard(
|
|
254
|
-
name="document-analyzer",
|
|
255
|
-
display_name="Document Analyzer",
|
|
256
|
-
description="Analyzes and extracts information from documents",
|
|
257
|
-
url="https://agents.company.com/document-analyzer",
|
|
258
|
-
version="1.0.0",
|
|
259
|
-
capabilities={"streaming": True, "pushNotifications": False},
|
|
260
|
-
skills=[],
|
|
261
|
-
peer_agents={}
|
|
262
|
-
)
|
|
263
|
-
|
|
264
|
-
registry.add_or_update_agent(agent_
|
|
249
|
+
from solace_
|
|
265
250
|
|
|
266
|
-
# content_hash:
|
|
251
|
+
# content_hash: 4cbf98260b5f5bef314fae44cf680520f4581948d2bfd8b08e7c6455bbcac1bc
|