diff --git a/CHANGELOG.md b/CHANGELOG.md index a7ad209e..a7dd4421 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [4.0.4] - 2026-01-13 + +### Fixed + +- Bug where streaming failures would not properly fallback to non-streaming response delivery. + +### Security + +- Upgraded urllib3 to `2.6.3` to mitigate [CVE-2026-21441](https://avd.aquasec.com/nvd/cve-2026-21441/) +- Upgraded react-router to `7.12.0` to mitigate [CVE-2025-59057](https://avd.aquasec.com/nvd/cve-2025-59057), [CVE-2025-68470](https://avd.aquasec.com/nvd/cve-2025-68470), [CVE-2026-21884](https://avd.aquasec.com/nvd/cve-2026-21884), [CVE-2026-22029](https://avd.aquasec.com/nvd/cve-2026-22029) and [CVE-2026-22030](https://avd.aquasec.com/nvd/cve-2026-22030) +- Upgrade werkzeug to `3.1.5` to mitigate [CVE-2026-21860](https://avd.aquasec.com/nvd/cve-2026-21860) + ## [4.0.3] - 2025-12-31 ### Security diff --git a/deployment/ecr/gaab-strands-agent/pyproject.toml b/deployment/ecr/gaab-strands-agent/pyproject.toml index e09e6fc5..b0728346 100644 --- a/deployment/ecr/gaab-strands-agent/pyproject.toml +++ b/deployment/ecr/gaab-strands-agent/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "gaab-strands-agent" -version = "4.0.3" +version = "4.0.4" description = "GAAB Strands Agent Runtime for Amazon Bedrock AgentCore" readme = "README.md" requires-python = ">=3.13" diff --git a/deployment/ecr/gaab-strands-agent/uv.lock b/deployment/ecr/gaab-strands-agent/uv.lock index 8eb64fe1..b004412e 100644 --- a/deployment/ecr/gaab-strands-agent/uv.lock +++ b/deployment/ecr/gaab-strands-agent/uv.lock @@ -627,7 +627,7 @@ wheels = [ [[package]] name = "gaab-strands-agent" -version = "4.0.3" +version = "4.0.4" source = { editable = "." } dependencies = [ { name = "aws-opentelemetry-distro" }, @@ -2795,11 +2795,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5e/1d/0f3a93cca1ac5e8287842ed4eebbd0f7a991315089b1a0b01c7788aa7b63/urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f", size = 432678, upload-time = "2025-12-08T15:25:26.773Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/56/190ceb8cb10511b730b564fb1e0293fa468363dbad26145c34928a60cb0c/urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b", size = 131138, upload-time = "2025-12-08T15:25:25.51Z" }, + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, ] [[package]] @@ -2847,14 +2847,14 @@ wheels = [ [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/45/ea/b0f8eeb287f8df9066e56e831c7824ac6bab645dd6c7a8f4b2d767944f9b/werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e", size = 864687, upload-time = "2025-11-29T02:15:22.841Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/70/1469ef1d3542ae7c2c7b72bd5e3a4e6ee69d7978fa8a3af05a38eca5becf/werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67", size = 864754, upload-time = "2026-01-08T17:49:23.247Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/f9/9e082990c2585c744734f85bec79b5dae5df9c974ffee58fe421652c8e91/werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905", size = 224960, upload-time = "2025-11-29T02:15:21.13Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e4/8d97cca767bcc1be76d16fb76951608305561c6e056811587f36cb1316a8/werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc", size = 225025, upload-time = "2026-01-08T17:49:21.859Z" }, ] [[package]] diff --git a/deployment/ecr/gaab-strands-common/uv.lock b/deployment/ecr/gaab-strands-common/uv.lock index fd318baf..78f01c98 100644 --- a/deployment/ecr/gaab-strands-common/uv.lock +++ b/deployment/ecr/gaab-strands-common/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.13" [[package]] @@ -1154,11 +1154,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5e/1d/0f3a93cca1ac5e8287842ed4eebbd0f7a991315089b1a0b01c7788aa7b63/urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f", size = 432678, upload-time = "2025-12-08T15:25:26.773Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/56/190ceb8cb10511b730b564fb1e0293fa468363dbad26145c34928a60cb0c/urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b", size = 131138, upload-time = "2025-12-08T15:25:25.51Z" }, + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, ] [[package]] @@ -1197,14 +1197,14 @@ wheels = [ [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/45/ea/b0f8eeb287f8df9066e56e831c7824ac6bab645dd6c7a8f4b2d767944f9b/werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e", size = 864687, upload-time = "2025-11-29T02:15:22.841Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/70/1469ef1d3542ae7c2c7b72bd5e3a4e6ee69d7978fa8a3af05a38eca5becf/werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67", size = 864754, upload-time = "2026-01-08T17:49:23.247Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/f9/9e082990c2585c744734f85bec79b5dae5df9c974ffee58fe421652c8e91/werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905", size = 224960, upload-time = "2025-11-29T02:15:21.13Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e4/8d97cca767bcc1be76d16fb76951608305561c6e056811587f36cb1316a8/werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc", size = 225025, upload-time = "2026-01-08T17:49:21.859Z" }, ] [[package]] diff --git a/deployment/ecr/gaab-strands-workflow-agent/pyproject.toml b/deployment/ecr/gaab-strands-workflow-agent/pyproject.toml index a1aa0d43..fcc6d766 100644 --- a/deployment/ecr/gaab-strands-workflow-agent/pyproject.toml +++ b/deployment/ecr/gaab-strands-workflow-agent/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "gaab-strands-workflow-agent" -version = "1.0.0" +version = "4.0.4" description = "GAAB Strands Workflow Agent Runtime for Amazon Bedrock AgentCore" readme = "README.md" requires-python = ">=3.13" diff --git a/deployment/ecr/gaab-strands-workflow-agent/uv.lock b/deployment/ecr/gaab-strands-workflow-agent/uv.lock index 3b09fdfc..ebe547d0 100644 --- a/deployment/ecr/gaab-strands-workflow-agent/uv.lock +++ b/deployment/ecr/gaab-strands-workflow-agent/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.13" [[package]] @@ -656,7 +656,7 @@ dev = [ [[package]] name = "gaab-strands-workflow-agent" -version = "1.0.0" +version = "4.0.4" source = { editable = "." } dependencies = [ { name = "aws-opentelemetry-distro" }, @@ -2780,11 +2780,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5e/1d/0f3a93cca1ac5e8287842ed4eebbd0f7a991315089b1a0b01c7788aa7b63/urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f", size = 432678, upload-time = "2025-12-08T15:25:26.773Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/56/190ceb8cb10511b730b564fb1e0293fa468363dbad26145c34928a60cb0c/urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b", size = 131138, upload-time = "2025-12-08T15:25:25.51Z" }, + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, ] [[package]] @@ -2832,14 +2832,14 @@ wheels = [ [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/45/ea/b0f8eeb287f8df9066e56e831c7824ac6bab645dd6c7a8f4b2d767944f9b/werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e", size = 864687, upload-time = "2025-11-29T02:15:22.841Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/70/1469ef1d3542ae7c2c7b72bd5e3a4e6ee69d7978fa8a3af05a38eca5becf/werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67", size = 864754, upload-time = "2026-01-08T17:49:23.247Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/f9/9e082990c2585c744734f85bec79b5dae5df9c974ffee58fe421652c8e91/werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905", size = 224960, upload-time = "2025-11-29T02:15:21.13Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e4/8d97cca767bcc1be76d16fb76951608305561c6e056811587f36cb1316a8/werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc", size = 225025, upload-time = "2026-01-08T17:49:21.859Z" }, ] [[package]] diff --git a/source/infrastructure/cdk.json b/source/infrastructure/cdk.json index 5e90018a..40b5e1dd 100644 --- a/source/infrastructure/cdk.json +++ b/source/infrastructure/cdk.json @@ -64,7 +64,7 @@ "@custom-bundler/unit-test": false, "solution_id": "SO0276", "solution_name": "generative-ai-application-builder-on-aws", - "solution_version": "v4.0.3", + "solution_version": "v4.0.4", "app_registry_name": "GAAB", "application_type": "AWS-Solutions", "application_trademark_name": "Generative AI Application Builder on AWS", diff --git a/source/infrastructure/package-lock.json b/source/infrastructure/package-lock.json index e9db13d0..f7e7c1c5 100644 --- a/source/infrastructure/package-lock.json +++ b/source/infrastructure/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/gen-ai-app-builder-on-aws-infrastructure", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/gen-ai-app-builder-on-aws-infrastructure", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "dependencies": { "@aws-solutions-constructs/aws-apigateway-lambda": "^2.74.0", diff --git a/source/infrastructure/package.json b/source/infrastructure/package.json index 99186db3..55dfb99a 100644 --- a/source/infrastructure/package.json +++ b/source/infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/gen-ai-app-builder-on-aws-infrastructure", - "version": "4.0.3", + "version": "4.0.4", "bin": { "infrastructure": "bin/gen-ai-app-builder.js" }, diff --git a/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json b/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json index 2614cb5b..a062e4ae 100644 --- a/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json +++ b/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/node-lambda", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@amzn/node-lambda", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0" } } diff --git a/source/infrastructure/test/mock-lambda-func/node-lambda/package.json b/source/infrastructure/test/mock-lambda-func/node-lambda/package.json index e8f262d2..d8819c7c 100644 --- a/source/infrastructure/test/mock-lambda-func/node-lambda/package.json +++ b/source/infrastructure/test/mock-lambda-func/node-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/node-lambda", - "version": "4.0.3", + "version": "4.0.4", "description": "A mock lambda implementation for CDK infrastructure unit", "main": "index.js", "scripts": { diff --git a/source/infrastructure/test/mock-lambda-func/python-lambda/pyproject.toml b/source/infrastructure/test/mock-lambda-func/python-lambda/pyproject.toml index c8b7fa58..73f01ac2 100644 --- a/source/infrastructure/test/mock-lambda-func/python-lambda/pyproject.toml +++ b/source/infrastructure/test/mock-lambda-func/python-lambda/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "mock-lambda-function" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Mock lambda implementation to unit test infrastructure code" packages = [ diff --git a/source/infrastructure/test/mock-lambda-func/typescript-lambda/package-lock.json b/source/infrastructure/test/mock-lambda-func/typescript-lambda/package-lock.json index fce0e44c..8cb8e066 100644 --- a/source/infrastructure/test/mock-lambda-func/typescript-lambda/package-lock.json +++ b/source/infrastructure/test/mock-lambda-func/typescript-lambda/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/mock-typescript-lambda", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@amzn/mock-typescript-lambda", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "dependencies": { "@types/aws-lambda": "^8.10.138", diff --git a/source/infrastructure/test/mock-lambda-func/typescript-lambda/package.json b/source/infrastructure/test/mock-lambda-func/typescript-lambda/package.json index 12a6183c..038c8ef7 100644 --- a/source/infrastructure/test/mock-lambda-func/typescript-lambda/package.json +++ b/source/infrastructure/test/mock-lambda-func/typescript-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/mock-typescript-lambda", - "version": "4.0.3", + "version": "4.0.4", "description": "A mock lambda implementation for CDK infrastructure unit", "main": "index.ts", "scripts": { diff --git a/source/infrastructure/test/mock-ui/package-lock.json b/source/infrastructure/test/mock-ui/package-lock.json index dc2dc731..660da61b 100644 --- a/source/infrastructure/test/mock-ui/package-lock.json +++ b/source/infrastructure/test/mock-ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/mock-react-app", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/mock-react-app", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", diff --git a/source/infrastructure/test/mock-ui/package.json b/source/infrastructure/test/mock-ui/package.json index 0be99ea9..bd95d032 100644 --- a/source/infrastructure/test/mock-ui/package.json +++ b/source/infrastructure/test/mock-ui/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/mock-react-app", - "version": "4.0.3", + "version": "4.0.4", "description": "Mock Reactjs app used for unit testing constructs", "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "^7.21.11", diff --git a/source/lambda/agentcore-invocation/poetry.lock b/source/lambda/agentcore-invocation/poetry.lock index aa9145a6..87cc43a0 100644 --- a/source/lambda/agentcore-invocation/poetry.lock +++ b/source/lambda/agentcore-invocation/poetry.lock @@ -67,7 +67,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-layer" -version = "4.0.3" +version = "4.0.4" description = "Layer for AWS Boto3 python SDK" optional = false python-versions = "^3.13" @@ -78,7 +78,7 @@ develop = true [package.dependencies] boto3 = "1.40.53" botocore = "1.40.53" -urllib3 = "2.6.1" +urllib3 = "2.6.3" [package.source] type = "directory" @@ -479,7 +479,7 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "custom-boto3-init" -version = "4.0.3" +version = "4.0.4" description = "Initialize boto config for AWS Python SDK with custom configuration" optional = false python-versions = "^3.13" @@ -1005,14 +1005,14 @@ files = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main", "test"] files = [ - {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"}, - {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] @@ -1023,14 +1023,14 @@ zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905"}, - {file = "werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e"}, + {file = "werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc"}, + {file = "werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67"}, ] [package.dependencies] @@ -1145,4 +1145,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "f59fe1a624f9c846062c42ca4b1521e50b50e2bd300b71a93d64cdf3411fc662" +content-hash = "76b5bf219a095de646fd1b1fb865ced9ba96681017c2408ed695cc1d091970a7" diff --git a/source/lambda/agentcore-invocation/pyproject.toml b/source/lambda/agentcore-invocation/pyproject.toml index 4d47320a..d7006ff0 100644 --- a/source/lambda/agentcore-invocation/pyproject.toml +++ b/source/lambda/agentcore-invocation/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "agent-invocation" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Lambda implementation for agent invocation feature" packages = [ @@ -31,7 +31,7 @@ pytest-env = "1.1.5" PyYAML = "6.0.2" setuptools = "80.8.0" requests = "2.32.4" -urllib3 = "2.6.1" +urllib3 = "2.6.3" boto3-layer = { path = "../layers/aws_boto3/", develop = true } custom_boto3_init = { path = "../layers/custom_boto3_init", develop = true } diff --git a/source/lambda/chat/handlers/use_case_handler.py b/source/lambda/chat/handlers/use_case_handler.py index 162fdadd..5503fcdc 100644 --- a/source/lambda/chat/handlers/use_case_handler.py +++ b/source/lambda/chat/handlers/use_case_handler.py @@ -38,6 +38,20 @@ class UseCaseHandler: def __init__(self, llm_client_type: LLMChatClient.__class__): self.llm_client_type = llm_client_type + def check_streaming_failed(self, callbacks) -> bool: + """ + Check if streaming failed by examining callbacks for has_streamed attribute. + + :param callbacks: List of callback objects to check + :return: True if streaming was attempted but failed, False otherwise + """ + streaming_failed = any( + hasattr(callback, "has_streamed") and not callback.has_streamed for callback in callbacks + ) + if streaming_failed: + logger.info("Streaming was enabled but failed - using fallback") + return streaming_failed + def handle_event(self, event: Dict[str, Any], context: LambdaContext) -> Dict: """ Create a LLMChatClient concrete object type based on the configuration in `event` and @@ -85,8 +99,13 @@ def handle_event(self, event: Dict[str, Any], context: LambdaContext) -> Dict: conversation_id=conversation_id, message_id=llm_client.builder.message_id, ) - if not llm_client.builder.is_streaming: + + # Send response via WebSocket if streaming is disabled OR if streaming failed + streaming_failed = self.check_streaming_failed(llm_client.builder.callbacks) + + if not llm_client.builder.is_streaming or streaming_failed: socket_handler.post_response_to_connection(ai_response) + socket_handler.post_token_to_connection(END_CONVERSATION_TOKEN) loop_index = loop_index + 1 diff --git a/source/lambda/chat/poetry.lock b/source/lambda/chat/poetry.lock index 4851f66d..37693b45 100644 --- a/source/lambda/chat/poetry.lock +++ b/source/lambda/chat/poetry.lock @@ -98,7 +98,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-layer" -version = "4.0.3" +version = "4.0.4" description = "Layer for AWS Boto3 python SDK" optional = false python-versions = "^3.13" @@ -109,7 +109,7 @@ develop = true [package.dependencies] boto3 = "1.40.53" botocore = "1.40.53" -urllib3 = "2.6.1" +urllib3 = "2.6.3" [package.source] type = "directory" @@ -493,7 +493,7 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "custom-boto3-init" -version = "4.0.3" +version = "4.0.4" description = "Initialize boto config for AWS Python SDK with custom configuration" optional = false python-versions = "^3.13" @@ -853,7 +853,7 @@ typing-extensions = ">=4.7.0,<5.0.0" [[package]] name = "langchain-layer" -version = "4.0.3" +version = "4.0.4" description = "Layer for LangChain libraries" optional = false python-versions = "^3.13" @@ -868,7 +868,7 @@ langchain-core = "0.3.81" numpy = "2.2.2" pydantic = "2.11.0" requests = "2.32.4" -urllib3 = "2.6.1" +urllib3 = "2.6.3" [package.source] type = "directory" @@ -1833,14 +1833,14 @@ typing-extensions = ">=4.12.0" [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"}, - {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] @@ -1851,14 +1851,14 @@ zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905"}, - {file = "werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e"}, + {file = "werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc"}, + {file = "werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67"}, ] [package.dependencies] @@ -2085,4 +2085,4 @@ cffi = ["cffi (>=1.17) ; python_version >= \"3.13\" and platform_python_implemen [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "39df50616e8ea97c68abf7ac883961100f8582bb75b0914b79e1542bbc254ef2" +content-hash = "70d163f0111cb1d93ea22ee5be0863dae327b4c34510902f928a7d5110a2f07c" diff --git a/source/lambda/chat/pyproject.toml b/source/lambda/chat/pyproject.toml index 35c1268c..55ddf780 100644 --- a/source/lambda/chat/pyproject.toml +++ b/source/lambda/chat/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "llm-chat-lambda" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Lambda implementation for chat feature" packages = [ @@ -28,7 +28,7 @@ pytest-env = "1.1.5" PyYAML = "6.0.2" setuptools = "80.8.0" requests="2.32.4" -urllib3="2.6.1" +urllib3="2.6.3" pytest-xdist = "^3.8.0" boto3-layer = { path = "../layers/aws_boto3/", develop = true } custom_boto3_init = { path = "../layers/custom_boto3_init", develop = true } diff --git a/source/lambda/chat/test/handlers/test_bedrock_handler.py b/source/lambda/chat/test/handlers/test_bedrock_handler.py index 2f6ce13b..2fc7ba30 100644 --- a/source/lambda/chat/test/handlers/test_bedrock_handler.py +++ b/source/lambda/chat/test/handlers/test_bedrock_handler.py @@ -25,7 +25,7 @@ ) from utils.enum_types import KnowledgeBaseTypes -from . import bedrock_source_doc_responses, kendra_source_doc_responses, mocked_kendra_docs +from . import bedrock_source_doc_responses, kendra_source_doc_responses, mocked_kendra_docs, mocked_bedrock_docs TEST_AMAZON_MODEL_ID = "amazon.test-model-id" BEDROCK_PROMPT = """\n\n{history}\n\n{input}""" @@ -137,7 +137,7 @@ ), AddableDict( { - CONTEXT_KEY: mocked_kendra_docs, + CONTEXT_KEY: mocked_bedrock_docs, REPHRASED_QUERY_KEY: MOCK_REPHRASED_QUERY, } ), @@ -202,6 +202,62 @@ def test_bedrock_chat_handler( "Data": json.dumps(payload), }, ) + else: + # For streaming tests, expect fallback response when streaming fails + apigateway_stubber.add_response( + "post_to_connection", + {}, + expected_params={ + "ConnectionId": MOCK_CONNECTION_ID, + "Data": json.dumps( + { + "data": MOCK_AI_RESPONSE, + CONVERSATION_ID_EVENT_KEY: MOCK_CONVERSATION_ID, + MESSAGE_ID_EVENT_KEY: MOCK_MESSAGE_ID, + } + ), + }, + ) + + # For streaming RAG tests with source docs, expect source document responses + if rag_enabled and return_source_docs: + source_doc_responses = ( + kendra_source_doc_responses(MOCK_CONVERSATION_ID, MOCK_MESSAGE_ID) + if knowledge_base_type == KnowledgeBaseTypes.KENDRA.value + else [] + ) + source_doc_responses += ( + bedrock_source_doc_responses(MOCK_CONVERSATION_ID, MOCK_MESSAGE_ID) + if knowledge_base_type == KnowledgeBaseTypes.BEDROCK.value + else [] + ) + + for payload in source_doc_responses: + apigateway_stubber.add_response( + "post_to_connection", + {}, + expected_params={ + "ConnectionId": MOCK_CONNECTION_ID, + "Data": json.dumps(payload), + }, + ) + + # For streaming RAG tests, expect rephrased query response + if rag_enabled: + apigateway_stubber.add_response( + "post_to_connection", + {}, + expected_params={ + "ConnectionId": MOCK_CONNECTION_ID, + "Data": json.dumps( + { + REPHRASED_QUERY_KEY: MOCK_REPHRASED_QUERY, + "conversationId": MOCK_CONVERSATION_ID, + MESSAGE_ID_EVENT_KEY: MOCK_MESSAGE_ID, + } + ), + }, + ) if not is_streaming and rag_enabled: apigateway_stubber.add_response( @@ -347,7 +403,7 @@ def test_bedrock_chat_handler( ), AddableDict( { - CONTEXT_KEY: mocked_kendra_docs, + CONTEXT_KEY: mocked_bedrock_docs, REPHRASED_QUERY_KEY: MOCK_REPHRASED_QUERY, } ), @@ -415,6 +471,62 @@ def test_bedrock_chat_handler_empty_conversation( "Data": json.dumps(payload), }, ) + else: + # For streaming tests, expect fallback response when streaming fails + apigateway_stubber.add_response( + "post_to_connection", + {}, + expected_params={ + "ConnectionId": MOCK_CONNECTION_ID, + "Data": json.dumps( + { + "data": MOCK_AI_RESPONSE, + CONVERSATION_ID_EVENT_KEY: MOCK_CONVERSATION_ID, + MESSAGE_ID_EVENT_KEY: MOCK_MESSAGE_ID, + } + ), + }, + ) + + # For streaming RAG tests with source docs, expect source document responses + if rag_enabled and return_source_docs: + source_doc_responses = ( + kendra_source_doc_responses(MOCK_CONVERSATION_ID, MOCK_MESSAGE_ID) + if knowledge_base_type == KnowledgeBaseTypes.KENDRA.value + else [] + ) + source_doc_responses += ( + bedrock_source_doc_responses(MOCK_CONVERSATION_ID, MOCK_MESSAGE_ID) + if knowledge_base_type == KnowledgeBaseTypes.BEDROCK.value + else [] + ) + + for payload in source_doc_responses: + apigateway_stubber.add_response( + "post_to_connection", + {}, + expected_params={ + "ConnectionId": MOCK_CONNECTION_ID, + "Data": json.dumps(payload), + }, + ) + + # For streaming RAG tests, expect rephrased query response + if rag_enabled: + apigateway_stubber.add_response( + "post_to_connection", + {}, + expected_params={ + "ConnectionId": MOCK_CONNECTION_ID, + "Data": json.dumps( + { + REPHRASED_QUERY_KEY: MOCK_REPHRASED_QUERY, + "conversationId": MOCK_CONVERSATION_ID, + MESSAGE_ID_EVENT_KEY: MOCK_MESSAGE_ID, + } + ), + }, + ) if not is_streaming and rag_enabled: apigateway_stubber.add_response( diff --git a/source/lambda/chat/test/handlers/test_llm_handler.py b/source/lambda/chat/test/handlers/test_llm_handler.py index a4fd0202..5c45c5fd 100644 --- a/source/lambda/chat/test/handlers/test_llm_handler.py +++ b/source/lambda/chat/test/handlers/test_llm_handler.py @@ -330,6 +330,62 @@ def test_lambda_timeout_behavior( "Data": json.dumps(payload), }, ) + else: + # For streaming tests, expect fallback response when streaming fails + apigateway_stubber.add_response( + "post_to_connection", + {}, + expected_params={ + "ConnectionId": MOCK_CONNECTION_ID, + "Data": json.dumps( + { + "data": MOCK_AI_RESPONSE, + CONVERSATION_ID_EVENT_KEY: MOCK_CONVERSATION_ID, + MESSAGE_ID_EVENT_KEY: MOCK_MESSAGE_ID, + } + ), + }, + ) + + # For streaming RAG tests with source docs, expect source document responses + if rag_enabled and return_source_docs: + source_doc_responses = ( + kendra_source_doc_responses(MOCK_CONVERSATION_ID, MOCK_MESSAGE_ID) + if knowledge_base_type == KnowledgeBaseTypes.KENDRA.value + else [] + ) + source_doc_responses += ( + bedrock_source_doc_responses(MOCK_CONVERSATION_ID, MOCK_MESSAGE_ID) + if knowledge_base_type == KnowledgeBaseTypes.BEDROCK.value + else [] + ) + + for payload in source_doc_responses: + apigateway_stubber.add_response( + "post_to_connection", + {}, + expected_params={ + "ConnectionId": MOCK_CONNECTION_ID, + "Data": json.dumps(payload), + }, + ) + + # For streaming RAG tests, expect rephrased query response + if rag_enabled: + apigateway_stubber.add_response( + "post_to_connection", + {}, + expected_params={ + "ConnectionId": MOCK_CONNECTION_ID, + "Data": json.dumps( + { + REPHRASED_QUERY_KEY: MOCK_REPHRASED_QUERY, + "conversationId": MOCK_CONVERSATION_ID, + MESSAGE_ID_EVENT_KEY: MOCK_MESSAGE_ID, + } + ), + }, + ) if not is_streaming and rag_enabled: apigateway_stubber.add_response( diff --git a/source/lambda/custom-authorizer/package-lock.json b/source/lambda/custom-authorizer/package-lock.json index ef63c08d..2229294f 100644 --- a/source/lambda/custom-authorizer/package-lock.json +++ b/source/lambda/custom-authorizer/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/custom-authorizer", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@amzn/custom-authorizer", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "dependencies": { "aws-jwt-verify": "^4.0.1", diff --git a/source/lambda/custom-authorizer/package.json b/source/lambda/custom-authorizer/package.json index d6c7f44d..9e3c4f81 100644 --- a/source/lambda/custom-authorizer/package.json +++ b/source/lambda/custom-authorizer/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/custom-authorizer", - "version": "4.0.3", + "version": "4.0.4", "description": "This lambda function is used as a custom REQUEST authorizer for APIs", "main": "rest-handler.ts", "scripts": { diff --git a/source/lambda/custom-resource/poetry.lock b/source/lambda/custom-resource/poetry.lock index 20b9f675..eda991e7 100644 --- a/source/lambda/custom-resource/poetry.lock +++ b/source/lambda/custom-resource/poetry.lock @@ -67,7 +67,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-layer" -version = "4.0.3" +version = "4.0.4" description = "Layer for AWS Boto3 python SDK" optional = false python-versions = "^3.13" @@ -78,7 +78,7 @@ develop = true [package.dependencies] boto3 = "1.40.53" botocore = "1.40.53" -urllib3 = "2.6.1" +urllib3 = "2.6.3" [package.source] type = "directory" @@ -495,7 +495,7 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "custom-boto3-init" -version = "4.0.3" +version = "4.0.4" description = "Initialize boto config for AWS Python SDK with custom configuration" optional = false python-versions = "^3.13" @@ -1103,14 +1103,14 @@ files = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"}, - {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] @@ -1121,14 +1121,14 @@ zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905"}, - {file = "werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e"}, + {file = "werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc"}, + {file = "werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67"}, ] [package.dependencies] @@ -1246,4 +1246,4 @@ test = ["pytest", "pytest-cov"] [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "f84862a4839a3347512010f35d4bd4119bdeed1fba51fbee3fb8dedfb29f0e20" +content-hash = "f42e83d4083b8c3aa5e52979359ddc635fea4093cb823463497f4ffd48bbb57d" diff --git a/source/lambda/custom-resource/pyproject.toml b/source/lambda/custom-resource/pyproject.toml index caa84977..2463b384 100644 --- a/source/lambda/custom-resource/pyproject.toml +++ b/source/lambda/custom-resource/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "custom-resource" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Perform specific operations triggered by AWS CloudFormation events" packages = [ @@ -29,7 +29,7 @@ PyYAML = "6.0.2" pytest-xdist = "^3.8.0" setuptools = "80.8.0" pyjwt = "^2.10.1" -urllib3="2.6.1" +urllib3="2.6.3" boto3-layer = { path = "../layers/aws_boto3/", develop = true } custom_boto3_init = { path = "../layers/custom_boto3_init", develop = true } diff --git a/source/lambda/ext-idp-group-mapper/poetry.lock b/source/lambda/ext-idp-group-mapper/poetry.lock index 9c080340..255129d2 100644 --- a/source/lambda/ext-idp-group-mapper/poetry.lock +++ b/source/lambda/ext-idp-group-mapper/poetry.lock @@ -67,7 +67,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-layer" -version = "4.0.3" +version = "4.0.4" description = "Layer for AWS Boto3 python SDK" optional = false python-versions = "^3.13" @@ -78,7 +78,7 @@ develop = true [package.dependencies] boto3 = "1.40.53" botocore = "1.40.53" -urllib3 = "2.6.1" +urllib3 = "2.6.3" [package.source] type = "directory" @@ -462,7 +462,7 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "custom-boto3-init" -version = "4.0.3" +version = "4.0.4" description = "Initialize boto config for AWS Python SDK with custom configuration" optional = false python-versions = "^3.13" @@ -973,14 +973,14 @@ files = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"}, - {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] @@ -991,14 +991,14 @@ zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905"}, - {file = "werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e"}, + {file = "werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc"}, + {file = "werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67"}, ] [package.dependencies] @@ -1113,4 +1113,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "2e7292ec7f78db6a637417ccfe802ce43acc5121ed2f43c2c5e8a83351ee6986" +content-hash = "6d1212edea1011ac4a9c7c4dc1374a26a9de2fb0208ca1ef8382c614f908d6d9" diff --git a/source/lambda/ext-idp-group-mapper/pyproject.toml b/source/lambda/ext-idp-group-mapper/pyproject.toml index 44cbfe72..a68d4332 100644 --- a/source/lambda/ext-idp-group-mapper/pyproject.toml +++ b/source/lambda/ext-idp-group-mapper/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ext-idp-group-mapper" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Lambda implementation to change Cognito user groups to External Identity Provider groups in the JWT token" packages = [ @@ -27,7 +27,7 @@ pytest-env = "1.1.5" PyYAML = "6.0.2" setuptools = "80.8.0" requests="2.32.4" -urllib3="2.6.1" +urllib3="2.6.3" boto3-layer = { path = "../layers/aws_boto3/", develop = true } custom_boto3_init = { path = "../layers/custom_boto3_init", develop = true } diff --git a/source/lambda/feedback-management/package-lock.json b/source/lambda/feedback-management/package-lock.json index 15f71041..f9603134 100644 --- a/source/lambda/feedback-management/package-lock.json +++ b/source/lambda/feedback-management/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/feedback-management", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/feedback-management", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "dependencies": { "jsonpath-plus": "^10.3.0", diff --git a/source/lambda/feedback-management/package.json b/source/lambda/feedback-management/package.json index 48aff128..03c3565b 100644 --- a/source/lambda/feedback-management/package.json +++ b/source/lambda/feedback-management/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/feedback-management", - "version": "4.0.3", + "version": "4.0.4", "description": "This lambda supports backs the API to process chat response feedbacks", "main": "index.ts", "scripts": { diff --git a/source/lambda/files-management/package-lock.json b/source/lambda/files-management/package-lock.json index 217ecdad..e46313cc 100644 --- a/source/lambda/files-management/package-lock.json +++ b/source/lambda/files-management/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/files-handler", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/files-handler", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "devDependencies": { "@types/jest": "^29.5.14", diff --git a/source/lambda/files-management/package.json b/source/lambda/files-management/package.json index c552b972..27888ea3 100644 --- a/source/lambda/files-management/package.json +++ b/source/lambda/files-management/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/files-handler", - "version": "4.0.3", + "version": "4.0.4", "description": "This lambda supports APIs that provide export functionality for use cases", "main": "index.ts", "scripts": { diff --git a/source/lambda/files-metadata-management/package-lock.json b/source/lambda/files-metadata-management/package-lock.json index b3ee06fd..8abdb8cb 100644 --- a/source/lambda/files-metadata-management/package-lock.json +++ b/source/lambda/files-metadata-management/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/files-metadata", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/files-metadata", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "dependencies": { "file-type": "^16.5.4" diff --git a/source/lambda/files-metadata-management/package.json b/source/lambda/files-metadata-management/package.json index 329a6ec1..ebf0fc4e 100644 --- a/source/lambda/files-metadata-management/package.json +++ b/source/lambda/files-metadata-management/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/files-metadata", - "version": "4.0.3", + "version": "4.0.4", "description": "This lambda supports APIs that provide export functionality for use cases", "main": "index.ts", "scripts": { diff --git a/source/lambda/invoke-agent/poetry.lock b/source/lambda/invoke-agent/poetry.lock index 77410a7c..159284ff 100644 --- a/source/lambda/invoke-agent/poetry.lock +++ b/source/lambda/invoke-agent/poetry.lock @@ -67,7 +67,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-layer" -version = "4.0.3" +version = "4.0.4" description = "Layer for AWS Boto3 python SDK" optional = false python-versions = "^3.13" @@ -78,7 +78,7 @@ develop = true [package.dependencies] boto3 = "1.40.53" botocore = "1.40.53" -urllib3 = "2.6.1" +urllib3 = "2.6.3" [package.source] type = "directory" @@ -462,7 +462,7 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "custom-boto3-init" -version = "4.0.3" +version = "4.0.4" description = "Initialize boto config for AWS Python SDK with custom configuration" optional = false python-versions = "^3.13" @@ -1016,14 +1016,14 @@ files = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"}, - {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] @@ -1034,14 +1034,14 @@ zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905"}, - {file = "werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e"}, + {file = "werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc"}, + {file = "werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67"}, ] [package.dependencies] @@ -1156,4 +1156,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "4b81490a1eff6ead8874642436fa6751fb260efc5683763becc67262d382228a" +content-hash = "f92bb83a895c98f9eb15830550e49b8897dcefe030a84bb18d587528d0fa1a79" diff --git a/source/lambda/invoke-agent/pyproject.toml b/source/lambda/invoke-agent/pyproject.toml index b647421e..64bb300b 100644 --- a/source/lambda/invoke-agent/pyproject.toml +++ b/source/lambda/invoke-agent/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "invoke-agent" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Lambda implementation for chat feature" packages = [ @@ -29,7 +29,7 @@ pytest-env = "1.1.5" PyYAML = "6.0.2" setuptools = "80.8.0" requests="2.32.4" -urllib3="2.6.1" +urllib3="2.6.3" boto3-layer = { path = "../layers/aws_boto3/", develop = true } custom_boto3_init = { path = "../layers/custom_boto3_init", develop = true } diff --git a/source/lambda/layers/aws-node-user-agent-config/package-lock.json b/source/lambda/layers/aws-node-user-agent-config/package-lock.json index 53be36d8..955f2659 100644 --- a/source/lambda/layers/aws-node-user-agent-config/package-lock.json +++ b/source/lambda/layers/aws-node-user-agent-config/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/aws-node-user-agent-config", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@amzn/aws-node-user-agent-config", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "dependencies": { "@aws-lambda-powertools/logger": "^2.11.0", diff --git a/source/lambda/layers/aws-node-user-agent-config/package.json b/source/lambda/layers/aws-node-user-agent-config/package.json index b550b32f..72b51a99 100644 --- a/source/lambda/layers/aws-node-user-agent-config/package.json +++ b/source/lambda/layers/aws-node-user-agent-config/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/aws-node-user-agent-config", - "version": "4.0.3", + "version": "4.0.4", "description": "AWS Nodejs SDK Config initialization layer", "main": "index.js", "scripts": { diff --git a/source/lambda/layers/aws-sdk-lib/package-lock.json b/source/lambda/layers/aws-sdk-lib/package-lock.json index 43713d28..95d76c41 100644 --- a/source/lambda/layers/aws-sdk-lib/package-lock.json +++ b/source/lambda/layers/aws-sdk-lib/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/aws-sdk-layer", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/aws-sdk-layer", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "dependencies": { "@aws-sdk/client-api-gateway": "^3.875.0", diff --git a/source/lambda/layers/aws-sdk-lib/package.json b/source/lambda/layers/aws-sdk-lib/package.json index d51d60d3..98ca57c8 100644 --- a/source/lambda/layers/aws-sdk-lib/package.json +++ b/source/lambda/layers/aws-sdk-lib/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/aws-sdk-layer", - "version": "4.0.3", + "version": "4.0.4", "description": "AWS Javascript SDK v3 layer", "main": "index.js", "scripts": { diff --git a/source/lambda/layers/aws_boto3/poetry.lock b/source/lambda/layers/aws_boto3/poetry.lock index 4837da60..845a5555 100644 --- a/source/lambda/layers/aws_boto3/poetry.lock +++ b/source/lambda/layers/aws_boto3/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "boto3" @@ -99,14 +99,14 @@ files = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"}, - {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] @@ -118,4 +118,4 @@ zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "358893da7e060e7045d7699c1a403b9d75ea6568a289479ba22a874b1308399d" +content-hash = "cc2a8e46cc2161ecfb9bd71f24a9e4029aca5d7c54b7c3e98afee694eabaeba1" diff --git a/source/lambda/layers/aws_boto3/pyproject.toml b/source/lambda/layers/aws_boto3/pyproject.toml index bfbc8daf..229d0ae2 100644 --- a/source/lambda/layers/aws_boto3/pyproject.toml +++ b/source/lambda/layers/aws_boto3/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "boto3-layer" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Layer for AWS Boto3 python SDK" packages = [ @@ -17,7 +17,7 @@ license = "Apache-2.0" botocore = "1.40.53" boto3 = "1.40.53" python = "^3.13" -urllib3="2.6.1" +urllib3="2.6.3" [build-system] requires = [ "poetry-core>=1.9.0" ] diff --git a/source/lambda/layers/custom_boto3_init/poetry.lock b/source/lambda/layers/custom_boto3_init/poetry.lock index 5daf02dc..4233051f 100644 --- a/source/lambda/layers/custom_boto3_init/poetry.lock +++ b/source/lambda/layers/custom_boto3_init/poetry.lock @@ -67,7 +67,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-layer" -version = "4.0.3" +version = "4.0.4" description = "Layer for AWS Boto3 python SDK" optional = false python-versions = "^3.13" @@ -78,7 +78,7 @@ develop = true [package.dependencies] boto3 = "1.40.53" botocore = "1.40.53" -urllib3 = "2.6.1" +urllib3 = "2.6.3" [package.source] type = "directory" @@ -533,14 +533,14 @@ files = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main", "test"] files = [ - {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"}, - {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] @@ -643,4 +643,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "0296495bc14a1c54f173bcdc921c1d1d056f3cffd3a088881eaf6b6536bbca65" +content-hash = "cde7a9a69e332d543604b9a60fccef96f12fa6f2eba246069603fcbefd56b9f7" diff --git a/source/lambda/layers/custom_boto3_init/pyproject.toml b/source/lambda/layers/custom_boto3_init/pyproject.toml index d20fe489..359b11b1 100644 --- a/source/lambda/layers/custom_boto3_init/pyproject.toml +++ b/source/lambda/layers/custom_boto3_init/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "custom_boto3_init" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Initialize boto config for AWS Python SDK with custom configuration" packages = [ @@ -26,7 +26,7 @@ coverage = "7.6.4" pytest = "8.3.4" pytest-cov = "6.0.0" mock = "5.1.0" -urllib3="2.6.1" +urllib3="2.6.3" boto3-layer = { path = "../aws_boto3/", develop = true } [tool.black] diff --git a/source/lambda/layers/langchain/poetry.lock b/source/lambda/layers/langchain/poetry.lock index 25f890c6..7f018b10 100644 --- a/source/lambda/layers/langchain/poetry.lock +++ b/source/lambda/layers/langchain/poetry.lock @@ -1082,14 +1082,14 @@ typing-extensions = ">=4.12.0" [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"}, - {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] @@ -1213,4 +1213,4 @@ cffi = ["cffi (>=1.17) ; python_version >= \"3.13\" and platform_python_implemen [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "6bbc01cd5660787900aa7f3c56e120365d21a4db40b34238944b07500d4e304b" +content-hash = "25107cb039b802a2c649636bf21ad2298d17e20401232fc70edd0a89dd468af5" diff --git a/source/lambda/layers/langchain/pyproject.toml b/source/lambda/layers/langchain/pyproject.toml index 3cd50032..038c9c20 100644 --- a/source/lambda/layers/langchain/pyproject.toml +++ b/source/lambda/layers/langchain/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "langchain-layer" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Layer for LangChain libraries" packages = [ @@ -21,7 +21,7 @@ langchain-core = "0.3.81" langchain-aws = "0.2.31" pydantic = "2.11.0" requests="2.32.4" -urllib3="2.6.1" +urllib3="2.6.3" [build-system] requires = [ "poetry-core>=1.9.0" ] diff --git a/source/lambda/model-info/package-lock.json b/source/lambda/model-info/package-lock.json index 9ffd5efa..716d0985 100644 --- a/source/lambda/model-info/package-lock.json +++ b/source/lambda/model-info/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/model-info", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/model-info", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "devDependencies": { "@types/jest": "^29.5.12", diff --git a/source/lambda/model-info/package.json b/source/lambda/model-info/package.json index ca4f25d5..5330d6c4 100644 --- a/source/lambda/model-info/package.json +++ b/source/lambda/model-info/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/model-info", - "version": "4.0.3", + "version": "4.0.4", "description": "This lambda supports APIs that provide the capability to deploy GenAI use cases", "main": "index.ts", "scripts": { diff --git a/source/lambda/use-case-details/package-lock.json b/source/lambda/use-case-details/package-lock.json index bcdf7cad..d9dca928 100644 --- a/source/lambda/use-case-details/package-lock.json +++ b/source/lambda/use-case-details/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/use-case-details", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/use-case-details", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "devDependencies": { "@types/jest": "^29.5.14", diff --git a/source/lambda/use-case-details/package.json b/source/lambda/use-case-details/package.json index 8066627f..4e08000b 100644 --- a/source/lambda/use-case-details/package.json +++ b/source/lambda/use-case-details/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/use-case-details", - "version": "4.0.3", + "version": "4.0.4", "description": "This lambda supports APIs that provide details about a deployed use case", "main": "index.ts", "scripts": { diff --git a/source/lambda/use-case-management/package-lock.json b/source/lambda/use-case-management/package-lock.json index 0700ffcf..c30ec685 100644 --- a/source/lambda/use-case-management/package-lock.json +++ b/source/lambda/use-case-management/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/use-case-management", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/use-case-management", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "dependencies": { "aws-jwt-verify": "^5.0.0" diff --git a/source/lambda/use-case-management/package.json b/source/lambda/use-case-management/package.json index bbe6e4d7..edb8cb9c 100644 --- a/source/lambda/use-case-management/package.json +++ b/source/lambda/use-case-management/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/use-case-management", - "version": "4.0.3", + "version": "4.0.4", "description": "This lambda supports APIs that provide the capability to deploy GenAI use cases", "main": "index.ts", "scripts": { diff --git a/source/lambda/websocket-connectors/package-lock.json b/source/lambda/websocket-connectors/package-lock.json index d1d0020e..3ad79645 100644 --- a/source/lambda/websocket-connectors/package-lock.json +++ b/source/lambda/websocket-connectors/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/websocket-connectors", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@amzn/websocket-connectors", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "devDependencies": { "@types/jest": "^29.5.14", diff --git a/source/lambda/websocket-connectors/package.json b/source/lambda/websocket-connectors/package.json index e6ba9908..5d5e610b 100644 --- a/source/lambda/websocket-connectors/package.json +++ b/source/lambda/websocket-connectors/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/websocket-connectors", - "version": "4.0.3", + "version": "4.0.4", "description": "This lambda function is used to handle connect and disconnect requests", "main": "connect-handler.js", "scripts": { diff --git a/source/scripts/v2_migration/poetry.lock b/source/scripts/v2_migration/poetry.lock index c0093612..8b9cd1a3 100644 --- a/source/scripts/v2_migration/poetry.lock +++ b/source/scripts/v2_migration/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "boto3" @@ -807,14 +807,14 @@ files = [ [[package]] name = "urllib3" -version = "2.6.1" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main", "test"] files = [ - {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"}, - {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] @@ -825,14 +825,14 @@ zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.9" groups = ["test"] files = [ - {file = "werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905"}, - {file = "werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e"}, + {file = "werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc"}, + {file = "werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67"}, ] [package.dependencies] @@ -856,4 +856,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = "^3.13" -content-hash = "093fee8183c55d7e25bfaff569861b813ba70b1aa52edc12452f96ef66947ed0" +content-hash = "e8bce81b833cb3ac5231ddade3a89e733c941dcadf227f9e45449ddfbfd64ae8" diff --git a/source/scripts/v2_migration/pyproject.toml b/source/scripts/v2_migration/pyproject.toml index ef2e2767..ef38cc07 100644 --- a/source/scripts/v2_migration/pyproject.toml +++ b/source/scripts/v2_migration/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "gaab-v2-migration" -version = "4.0.3" +version = "4.0.4" authors = [ "Amazon Web Services" ] description = "Migration script to convert v1.X use cases to v2.X" packages = [ @@ -24,7 +24,7 @@ pytest = "8.3.4" pytest-cov = "6.0.0" pytest-env = "1.1.5" requests="2.32.4" -urllib3="2.6.1" +urllib3="2.6.3" [tool.black] line-length = 120 diff --git a/source/ui-chat/package-lock.json b/source/ui-chat/package-lock.json index 48a438b7..c894caec 100644 --- a/source/ui-chat/package-lock.json +++ b/source/ui-chat/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/gen-ai-app-builder-on-aws-ui-chat", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/gen-ai-app-builder-on-aws-ui-chat", - "version": "4.0.3", + "version": "4.0.4", "dependencies": { "@aws-amplify/core": "^6.10.0", "@aws-amplify/ui-react": "^6.9.1", @@ -25,7 +25,7 @@ "react-i18next": "^15.4.1", "react-markdown": "^9.0.3", "react-redux": "^9.2.0", - "react-router-dom": "^7.2.0", + "react-router-dom": "^7.12.0", "react-use-websocket": "^4.13.0", "remark-gfm": "^4.0.1", "remark-math": "^6.0.0", @@ -12774,14 +12774,13 @@ } }, "node_modules/react-router": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.5.2.tgz", - "integrity": "sha512-9Rw8r199klMnlGZ8VAsV/I8WrIF6IyJ90JQUdboupx1cdkgYqwnrYjH+I/nY/7cA1X5zia4mDJqH36npP7sxGQ==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.12.0.tgz", + "integrity": "sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" + "set-cookie-parser": "^2.6.0" }, "engines": { "node": ">=20.0.0" @@ -12797,12 +12796,12 @@ } }, "node_modules/react-router-dom": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.5.2.tgz", - "integrity": "sha512-yk1XW8Fj7gK7flpYBXF3yzd2NbX6P7Kxjvs2b5nu1M04rb5pg/Zc4fGdBNTeT4eDYL2bvzWNyKaIMJX/RKHTTg==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.12.0.tgz", + "integrity": "sha512-pfO9fiBcpEfX4Tx+iTYKDtPbrSLLCbwJ5EqP+SPYQu1VYCXdy79GSj0wttR0U4cikVdlImZuEZ/9ZNCgoaxwBA==", "license": "MIT", "dependencies": { - "react-router": "7.5.2" + "react-router": "7.12.0" }, "engines": { "node": ">=20.0.0" @@ -12813,12 +12812,16 @@ } }, "node_modules/react-router/node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", "license": "MIT", "engines": { "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/react-style-singleton": { @@ -13447,9 +13450,9 @@ "license": "ISC" }, "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", "license": "MIT" }, "node_modules/set-function-length": { @@ -14212,12 +14215,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/source/ui-chat/package.json b/source/ui-chat/package.json index eed24fd5..5cbca00a 100644 --- a/source/ui-chat/package.json +++ b/source/ui-chat/package.json @@ -1,7 +1,7 @@ { "name": "@amzn/gen-ai-app-builder-on-aws-ui-chat", "private": true, - "version": "4.0.3", + "version": "4.0.4", "type": "module", "author": { "name": "Amazon Web Services", @@ -36,7 +36,7 @@ "react-i18next": "^15.4.1", "react-markdown": "^9.0.3", "react-redux": "^9.2.0", - "react-router-dom": "^7.2.0", + "react-router-dom": "^7.12.0", "react-use-websocket": "^4.13.0", "remark-gfm": "^4.0.1", "remark-math": "^6.0.0", diff --git a/source/ui-deployment/package-lock.json b/source/ui-deployment/package-lock.json index 8871c7cf..20877630 100644 --- a/source/ui-deployment/package-lock.json +++ b/source/ui-deployment/package-lock.json @@ -1,12 +1,12 @@ { "name": "@amzn/gen-ai-app-builder-on-aws-ui-deployment", - "version": "4.0.3", + "version": "4.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@amzn/gen-ai-app-builder-on-aws-ui-deployment", - "version": "4.0.3", + "version": "4.0.4", "license": "Apache-2.0", "dependencies": { "@aws-amplify/ui-react": "^5.3.3", @@ -23,7 +23,7 @@ "react": "^18.3.1", "react-bootstrap": "^2.10.4", "react-dom": "^18.3.1", - "react-router-dom": "^6.25.1", + "react-router-dom": "^7.12.0", "uuid": "^9.0.1" }, "devDependencies": { @@ -11094,14 +11094,6 @@ } } }, - "node_modules/@remix-run/router": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.1.tgz", - "integrity": "sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@restart/hooks": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz", @@ -13675,7 +13667,6 @@ "version": "0.7.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "peer": true, "engines": { "node": ">= 0.6" } @@ -19080,33 +19071,41 @@ } }, "node_modules/react-router": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.1.tgz", - "integrity": "sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.12.0.tgz", + "integrity": "sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==", + "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.1" + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" }, "peerDependencies": { - "react": ">=16.8" + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } } }, "node_modules/react-router-dom": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.1.tgz", - "integrity": "sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.12.0.tgz", + "integrity": "sha512-pfO9fiBcpEfX4Tx+iTYKDtPbrSLLCbwJ5EqP+SPYQu1VYCXdy79GSj0wttR0U4cikVdlImZuEZ/9ZNCgoaxwBA==", + "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.1", - "react-router": "6.26.1" + "react-router": "7.12.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" }, "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" + "react": ">=18", + "react-dom": ">=18" } }, "node_modules/react-shallow-renderer": { @@ -19678,6 +19677,12 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", diff --git a/source/ui-deployment/package.json b/source/ui-deployment/package.json index 83e04c53..87e54160 100644 --- a/source/ui-deployment/package.json +++ b/source/ui-deployment/package.json @@ -1,6 +1,6 @@ { "name": "@amzn/gen-ai-app-builder-on-aws-ui-deployment", - "version": "4.0.3", + "version": "4.0.4", "dependencies": { "@aws-amplify/ui-react": "^5.3.3", "@aws-sdk/util-arn-parser": "^3.893.0", @@ -16,7 +16,7 @@ "react": "^18.3.1", "react-bootstrap": "^2.10.4", "react-dom": "^18.3.1", - "react-router-dom": "^6.25.1", + "react-router-dom": "^7.12.0", "uuid": "^9.0.1" }, "devDependencies": {