Skip to content

Commit 6fee68d

Browse files
authored
Update to version v4.1.0
### Added - MCP Server target configuration support in MCP Server use case. ### Changed - Upgraded langchain-aws and dependent packages with migration from deprecated modules to langchain_core and langchain_classic. - Refactored info panel content for all use case types in view details page. ### Fixed - Bug where removing already deleted MCP servers from an Agent Builder usecase would cause errors. - Issue with workflow review page not displaying system prompt formatting correctly. - Bug where failed memory creation would also cause deletion to fail. ### Security - Upgraded python-multipart to `0.0.22` to mitigate [CVE-2024-53981](https://avd.aquasec.com/nvd/cve-2024-53981/) - Upgraded lodash to `4.17.23` to mitigate [CVE-2025-13465](https://avd.aquasec.com/nvd/cve-2025-13465/) - Upgraded diff to `4.0.4` and `5.2.2` to mitigate [CVE-2026-24001](https://avd.aquasec.com/nvd/cve-2026-24001/) - Upgraded @smithy/config-resolver to `4.4.6` to mitigate [GHSA-6475-r3vj-m8vf](GHSA-6475-r3vj-m8vf) - Upgraded wheel to `0.46.3` to mitigate [GHSA-8rrh-rw8j-w5fx](GHSA-8rrh-rw8j-w5fx)
2 parents 4f05752 + 57834e3 commit 6fee68d

File tree

128 files changed

+4944
-1902
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+4944
-1902
lines changed

.viperlightignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Empty .viperlightignore created - none existed

.viperlightrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"failOn":"low","all":true}

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [4.1.0] - 2026-01-29
9+
10+
### Added
11+
12+
- MCP Server target configuration support in MCP Server use case.
13+
14+
### Changed
15+
16+
- Upgraded langchain-aws and dependent packages with migration from deprecated modules to langchain_core and langchain_classic.
17+
- Refactored info panel content for all use case types in view details page.
18+
19+
### Fixed
20+
21+
- Bug where removing already deleted MCP servers from an Agent Builder usecase would cause errors.
22+
- Issue with workflow review page not displaying system prompt formatting correctly.
23+
- Bug where failed memory creation would also cause deletion to fail.
24+
25+
### Security
26+
27+
- Upgraded python-multipart to `0.0.22` to mitigate [CVE-2024-53981](https://avd.aquasec.com/nvd/cve-2024-53981/)
28+
- Upgraded lodash to `4.17.23` to mitigate [CVE-2025-13465](https://avd.aquasec.com/nvd/cve-2025-13465/)
29+
- Upgraded diff to `4.0.4` and `5.2.2` to mitigate [CVE-2026-24001](https://avd.aquasec.com/nvd/cve-2026-24001/)
30+
- Upgraded @smithy/config-resolver to `4.4.6` to mitigate [GHSA-6475-r3vj-m8vf](https://github.com/advisories/GHSA-6475-r3vj-m8vf)
31+
- Upgraded wheel to `0.46.3` to mitigate [GHSA-8rrh-rw8j-w5fx](https://github.com/advisories/GHSA-8rrh-rw8j-w5fx)
32+
833
## [4.0.4] - 2026-01-13
934

1035
### Fixed

NOTICE.txt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1303,9 +1303,17 @@ klaw-sync under the MIT license.
13031303
kleur under the MIT license.
13041304
langchain under the MIT license.
13051305
langchain-aws under the MIT license.
1306+
langchain-classic under the MIT license.
13061307
langchain-core under the MIT license.
13071308
langchain-text-splitters under the MIT license.
13081309
langsmith under the MIT license.
1310+
langgraph under the MIT license.
1311+
langgraph-checkpoint under the MIT license.
1312+
langgraph-prebuilt under the MIT license.
1313+
langgraph-sdk under the MIT license.
1314+
ormsgpack under the Apache-2.0 license.
1315+
uuid-utils under the MIT license.
1316+
xxhash under the BSD-2-Clause license.
13091317
launch-editor under the MIT license.
13101318
lazy-ass under the MIT license.
13111319
leven under the MIT license.
@@ -1548,7 +1556,7 @@ pump under the MIT license.
15481556
punycode under the MIT license.
15491557
pure-rand under the MIT license.
15501558
pyasn1 under the BSD-2-Clause license.
1551-
pycparser under the 0BSD license.
1559+
pycparser under the BSD-3-Clause license.
15521560
pydantic under the MIT license.
15531561
pydantic-core under the MIT license.
15541562
pyjwt under the MIT license.

deployment/cdk-solution-helper/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"name": "@amzn/cdk-solution-helper",
3-
"version": "0.1.0",
3+
"version": "4.1.0",
44
"description": "This script performs token replacement as part of the build pipeline",
55
"license": "Apache-2.0",
66
"author": {
77
"name": "Amazon Web Services",
88
"url": "https://aws.amazon.com/solutions"
99
}
10-
}
10+
}

deployment/ecr/gaab-strands-agent/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "gaab-strands-agent"
3-
version = "4.0.4"
3+
version = "4.1.0"
44
description = "GAAB Strands Agent Runtime for Amazon Bedrock AgentCore"
55
readme = "README.md"
66
requires-python = ">=3.13"
@@ -14,7 +14,7 @@ classifiers = [
1414
dependencies = [
1515
"setuptools>=70.0.0",
1616
"pip>=25.0",
17-
"wheel>=0.42.0",
17+
"wheel>=0.46.2",
1818

1919
# AWS SDK
2020
"boto3>=1.35.0",

deployment/ecr/gaab-strands-agent/uv.lock

Lines changed: 12 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deployment/ecr/gaab-strands-common/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "gaab-strands-common"
3-
version = "0.1.0"
3+
version = "4.1.0"
44
description = "Shared library for GAAB Strands agents"
55
readme = "README.md"
66
requires-python = ">=3.13"

deployment/ecr/gaab-strands-common/src/gaab_strands_common/custom_tools/s3_file_reader.py

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def __init__(self, config: Dict[str, Any], region: str):
5959
logger.debug(f"Initialized S3FileReaderTool for bucket: {self.bucket_name}")
6060

6161
@tool
62-
def s3_file_reader(self, tool_input: ToolUse) -> ToolResult:
62+
def s3_file_reader(self, s3_key: str) -> ToolResult:
6363
"""
6464
Read files from S3 and return content in model-readable format.
6565
@@ -69,28 +69,24 @@ def s3_file_reader(self, tool_input: ToolUse) -> ToolResult:
6969
automatically detects file type and formats content appropriately for processing.
7070
7171
Args:
72-
tool_input: ToolUse object containing:
73-
- s3_key (str, required): S3 object key/path (e.g., 'uploads/document.pdf')
74-
72+
s3_key (str, required): S3 object key/path (e.g., 'uploads/document.pdf')
7573
7674
Returns:
7775
ToolResult with status "success" or "error":
7876
- Success: Returns image or document block with format and binary content
7977
- Error: Returns descriptive error message for invalid input, unsupported format,
8078
file not found, or S3 access issues
8179
"""
82-
# Initialize variables with defaults
83-
tool_use_id = "unknown"
84-
s3_key = "unknown"
85-
8680
try:
87-
tool_use_id = tool_input["toolUseId"]
88-
tool_use_input = tool_input["input"]
89-
90-
if "s3_key" not in tool_use_input:
81+
if not isinstance(s3_key, str):
82+
tool_use_id = "s3_file_reader_invalid"
83+
return self._create_error_result(tool_use_id, "S3 key must be a string")
84+
85+
if not s3_key or not s3_key.strip():
86+
tool_use_id = "s3_file_reader_empty"
9187
return self._create_error_result(tool_use_id, "S3 key is required")
92-
93-
s3_key = tool_use_input["s3_key"]
88+
89+
tool_use_id = f"s3_file_reader_{hash(s3_key) % 10000}"
9490

9591
# Validate and normalize the S3 key
9692
validation_result = self._validate_and_normalize_s3_key(s3_key)

0 commit comments

Comments
 (0)