solace-agent-mesh 1.4.11__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/artifacts/s3_artifact_service.py +1 -0
- 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/adk/services.py +30 -15
- solace_agent_mesh/agent/adk/setup.py +4 -0
- 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/0e682baa.d54b8668.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/483cef9a.bf9398af.js +1 -0
- solace_agent_mesh/assets/docs/assets/js/{main.dc155742.js → main.0c149855.js} +2 -2
- solace_agent_mesh/assets/docs/assets/js/{runtime~main.0d2ff2b6.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 +7 -4
- 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/identity_service.py +7 -4
- solace_agent_mesh/common/services/providers/local_file_identity_service.py +4 -2
- 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/base/component.py +1 -1
- 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.11.dist-info → solace_agent_mesh-1.5.0.dist-info}/METADATA +1 -1
- {solace_agent_mesh-1.4.11.dist-info → solace_agent_mesh-1.5.0.dist-info}/RECORD +179 -131
- solace_agent_mesh/agent/adk/invocation_monitor.py +0 -295
- solace_agent_mesh/assets/docs/assets/js/0e682baa.d054e1d8.js +0 -1
- solace_agent_mesh/assets/docs/assets/js/483cef9a.4736f2d8.js +0 -1
- solace_agent_mesh/assets/docs/lunr-index-1759514789087.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1759514789087.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.dc155742.js.LICENSE.txt → main.0c149855.js.LICENSE.txt} +0 -0
- {solace_agent_mesh-1.4.11.dist-info → solace_agent_mesh-1.5.0.dist-info}/WHEEL +0 -0
- {solace_agent_mesh-1.4.11.dist-info → solace_agent_mesh-1.5.0.dist-info}/entry_points.txt +0 -0
- {solace_agent_mesh-1.4.11.dist-info → solace_agent_mesh-1.5.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1405,6 +1405,12 @@ def solace_llm_invocation_callback(
|
|
|
1405
1405
|
logical_task_id = a2a_context.get("logical_task_id")
|
|
1406
1406
|
context_id = a2a_context.get("contextId")
|
|
1407
1407
|
|
|
1408
|
+
# Store model name in callback state for later use in response callback
|
|
1409
|
+
model_name = host_component.model_config
|
|
1410
|
+
if isinstance(model_name, dict):
|
|
1411
|
+
model_name = model_name.get("model", "unknown")
|
|
1412
|
+
callback_context.state["model_name"] = model_name
|
|
1413
|
+
|
|
1408
1414
|
llm_data = LlmInvocationData(request=llm_request.model_dump(exclude_none=True))
|
|
1409
1415
|
status_update_event = a2a.create_data_signal_event(
|
|
1410
1416
|
task_id=logical_task_id,
|
|
@@ -1447,8 +1453,8 @@ def solace_llm_response_callback(
|
|
|
1447
1453
|
host_component: "SamAgentComponent",
|
|
1448
1454
|
) -> Optional[LlmResponse]:
|
|
1449
1455
|
"""
|
|
1450
|
-
ADK after_model_callback to send a Solace message with the LLM's response
|
|
1451
|
-
|
|
1456
|
+
ADK after_model_callback to send a Solace message with the LLM's response
|
|
1457
|
+
and token usage information.
|
|
1452
1458
|
"""
|
|
1453
1459
|
log_identifier = "[Callback:SolaceLLMResponse]"
|
|
1454
1460
|
if llm_response.partial: # Don't send partial responses for this notification
|
|
@@ -1478,6 +1484,49 @@ def solace_llm_response_callback(
|
|
|
1478
1484
|
"type": "llm_response",
|
|
1479
1485
|
"data": llm_response.model_dump(exclude_none=True),
|
|
1480
1486
|
}
|
|
1487
|
+
|
|
1488
|
+
# Extract and record token usage
|
|
1489
|
+
if llm_response.usage_metadata:
|
|
1490
|
+
usage = llm_response.usage_metadata
|
|
1491
|
+
model_name = callback_context.state.get("model_name", "unknown")
|
|
1492
|
+
|
|
1493
|
+
usage_dict = {
|
|
1494
|
+
"input_tokens": usage.prompt_token_count,
|
|
1495
|
+
"output_tokens": usage.candidates_token_count,
|
|
1496
|
+
"model": model_name,
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
# Check for cached tokens (provider-specific)
|
|
1500
|
+
cached_tokens = 0
|
|
1501
|
+
if hasattr(usage, 'prompt_tokens_details') and usage.prompt_tokens_details:
|
|
1502
|
+
cached_tokens = getattr(usage.prompt_tokens_details, 'cached_tokens', 0)
|
|
1503
|
+
if cached_tokens > 0:
|
|
1504
|
+
usage_dict["cached_input_tokens"] = cached_tokens
|
|
1505
|
+
|
|
1506
|
+
# Add to response data
|
|
1507
|
+
llm_response_data["usage"] = usage_dict
|
|
1508
|
+
|
|
1509
|
+
# Record in task context for aggregation
|
|
1510
|
+
with host_component.active_tasks_lock:
|
|
1511
|
+
task_context = host_component.active_tasks.get(logical_task_id)
|
|
1512
|
+
|
|
1513
|
+
if task_context:
|
|
1514
|
+
task_context.record_token_usage(
|
|
1515
|
+
input_tokens=usage.prompt_token_count,
|
|
1516
|
+
output_tokens=usage.candidates_token_count,
|
|
1517
|
+
model=model_name,
|
|
1518
|
+
source="agent",
|
|
1519
|
+
cached_input_tokens=cached_tokens,
|
|
1520
|
+
)
|
|
1521
|
+
log.debug(
|
|
1522
|
+
"%s Recorded token usage: input=%d, output=%d, cached=%d, model=%s",
|
|
1523
|
+
log_identifier,
|
|
1524
|
+
usage.prompt_token_count,
|
|
1525
|
+
usage.candidates_token_count,
|
|
1526
|
+
cached_tokens,
|
|
1527
|
+
model_name,
|
|
1528
|
+
)
|
|
1529
|
+
|
|
1481
1530
|
# This signal doesn't have a dedicated Pydantic model, so we create the
|
|
1482
1531
|
# DataPart directly and use the lower-level helpers.
|
|
1483
1532
|
data_part = a2a.create_data_part(data=llm_response_data)
|
|
@@ -5,7 +5,6 @@ This directory contains concrete implementations of the `BaseLlm` interface, pro
|
|
|
5
5
|
|
|
6
6
|
## Files Overview
|
|
7
7
|
- `lite_llm.py` - LLM client using the `litellm` library to support hundreds of models from different providers
|
|
8
|
-
- `models_llm.txt` - Documentation file containing developer guide content
|
|
9
8
|
|
|
10
9
|
## Developer API Reference
|
|
11
10
|
|
|
@@ -140,4 +139,4 @@ if __name__ == "__main__":
|
|
|
140
139
|
# asyncio.run(function_calling_example())
|
|
141
140
|
```
|
|
142
141
|
|
|
143
|
-
# content_hash:
|
|
142
|
+
# content_hash: 97abaea0097e0d6fe18f1d747ed54ced092c0a96829dc5be8448b087ac5f7c20
|
|
@@ -271,28 +271,43 @@ def initialize_artifact_service(component) -> BaseArtifactService:
|
|
|
271
271
|
try:
|
|
272
272
|
from .artifacts.s3_artifact_service import S3ArtifactService
|
|
273
273
|
|
|
274
|
+
# Whitelist of valid parameters for the boto3 S3 client.
|
|
274
275
|
valid_boto3_params = [
|
|
275
276
|
"aws_access_key_id",
|
|
276
277
|
"aws_secret_access_key",
|
|
277
278
|
"aws_session_token",
|
|
278
279
|
"region_name",
|
|
279
|
-
"
|
|
280
|
+
"endpoint_url",
|
|
281
|
+
"config",
|
|
280
282
|
]
|
|
281
283
|
|
|
282
|
-
s3_config = {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
284
|
+
s3_config = {}
|
|
285
|
+
|
|
286
|
+
# Explicitly map the 'region' from our config to 'region_name' for boto3.
|
|
287
|
+
if config.get("region"):
|
|
288
|
+
s3_config["region_name"] = config.get("region")
|
|
289
|
+
|
|
290
|
+
# Copy any other valid parameters from the config.
|
|
291
|
+
for key in valid_boto3_params:
|
|
292
|
+
if key in config and config[key] is not None:
|
|
293
|
+
s3_config[key] = config[key]
|
|
294
|
+
|
|
295
|
+
# Set credentials from environment variables as a fallback.
|
|
296
|
+
if "endpoint_url" not in s3_config:
|
|
297
|
+
s3_config["endpoint_url"] = os.environ.get("S3_ENDPOINT_URL")
|
|
298
|
+
if "aws_access_key_id" not in s3_config:
|
|
299
|
+
env_access_key = os.environ.get("AWS_ACCESS_KEY_ID")
|
|
300
|
+
if env_access_key is not None:
|
|
301
|
+
s3_config["aws_access_key_id"] = env_access_key
|
|
302
|
+
if "aws_secret_access_key" not in s3_config:
|
|
303
|
+
env_secret_key = os.environ.get("AWS_SECRET_ACCESS_KEY")
|
|
304
|
+
if env_secret_key is not None:
|
|
305
|
+
s3_config["aws_secret_access_key"] = env_secret_key
|
|
306
|
+
|
|
307
|
+
# Filter out any keys that ended up with a None value.
|
|
308
|
+
s3_config_cleaned = {k: v for k, v in s3_config.items() if v is not None}
|
|
309
|
+
|
|
310
|
+
concrete_service = S3ArtifactService(bucket_name=bucket_name, **s3_config_cleaned)
|
|
296
311
|
except ImportError as e:
|
|
297
312
|
log.error(
|
|
298
313
|
"%s S3 dependencies not available: %s",
|
|
@@ -22,6 +22,8 @@ from google.adk.models.llm_response import LlmResponse
|
|
|
22
22
|
from google.adk.tools.mcp_tool.mcp_session_manager import (
|
|
23
23
|
SseServerParams,
|
|
24
24
|
StdioConnectionParams,
|
|
25
|
+
StreamableHTTPServerParams,
|
|
26
|
+
|
|
25
27
|
)
|
|
26
28
|
|
|
27
29
|
from mcp import StdioServerParameters
|
|
@@ -566,6 +568,8 @@ async def _load_mcp_tool(component: "SamAgentComponent", tool_config: Dict) -> T
|
|
|
566
568
|
|
|
567
569
|
elif connection_type == "sse":
|
|
568
570
|
connection_params = SseServerParams(**connection_args)
|
|
571
|
+
elif connection_type == "streamable-http":
|
|
572
|
+
connection_params = StreamableHTTPServerParams(**connection_args)
|
|
569
573
|
else:
|
|
570
574
|
raise ValueError(f"Unsupported MCP connection type: {connection_type}")
|
|
571
575
|
|