@aws/nx-plugin 0.64.1 → 0.66.0

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.
Files changed (32) hide show
  1. package/LICENSE-THIRD-PARTY +662 -187
  2. package/README.md +6 -3
  3. package/generators.json +6 -0
  4. package/package.json +14 -14
  5. package/sdk/ts.d.ts +2 -0
  6. package/sdk/ts.js +20 -17
  7. package/sdk/ts.js.map +1 -1
  8. package/src/infra/app/__snapshots__/generator.spec.ts.snap +31 -31
  9. package/src/preset/__snapshots__/generator.spec.ts.snap +5 -3
  10. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +3 -3
  11. package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +8 -8
  12. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
  13. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +1 -1
  14. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +93 -49
  15. package/src/ts/strands-agent/__snapshots__/generator.spec.ts.snap +1035 -0
  16. package/src/ts/strands-agent/files/app/agent-core-mcp-client.ts.template +132 -0
  17. package/src/ts/strands-agent/files/app/agent-core-trpc-client.ts.template +124 -0
  18. package/src/ts/strands-agent/files/app/agent.ts.template +20 -0
  19. package/src/ts/strands-agent/files/app/client.ts.template +28 -0
  20. package/src/ts/strands-agent/files/app/index.ts.template +54 -0
  21. package/src/ts/strands-agent/files/app/init.ts.template +8 -0
  22. package/src/ts/strands-agent/files/app/router.ts.template +34 -0
  23. package/src/ts/strands-agent/files/app/schema/z-async-iterable.ts.template +77 -0
  24. package/src/ts/strands-agent/files/deploy/Dockerfile.template +16 -0
  25. package/src/ts/strands-agent/generator.d.ts +10 -0
  26. package/src/ts/strands-agent/generator.js +115 -0
  27. package/src/ts/strands-agent/generator.js.map +1 -0
  28. package/src/ts/strands-agent/schema.d.ts +15 -0
  29. package/src/ts/strands-agent/schema.json +41 -0
  30. package/src/utils/versions.d.ts +62 -59
  31. package/src/utils/versions.js +61 -58
  32. package/src/utils/versions.js.map +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
- <h1>NX plugin for AWS - @aws/nx-plugin</h1>
3
- <h3>Quickly bootstrap and build AWS projects easily</h3>
2
+ <h1>Nx Plugin for AWS - @aws/nx-plugin</h1>
3
+ <h3>Rapidly scaffold and build projects on AWS</h3>
4
4
  <a href="https://opensource.org/licenses/Apache-2.0">
5
5
  <img
6
6
  src="https://img.shields.io/badge/License-Apache%202.0-yellowgreen.svg"
@@ -43,10 +43,12 @@
43
43
  ## Key Features
44
44
 
45
45
  - **Declarative**: Generate code that follows best practices for AWS cloud development.
46
+ - **End-to-end**: Generate application code and CDK/Terraform infrastructure to deploy to AWS.
46
47
  - **Component-Based**: Add components to your project as needed, from React websites to serverless APIs using either the CLI or UI.
47
48
  - **Learn Once, Use Anywhere**: Consistent patterns across different AWS services and application types.
48
49
  - **Open for modification**: All code generated is your code and can be edited as you see fit.
49
50
  - **Type safety**: Type-safety is employed to support IDE completions and reduce the number of runtime errors encountered.
51
+ - **Local-first**: Iterate quickly by developing locally before deploying to AWS.
50
52
  - **Minimal dependencies**: Getting up and running is simple and only requires langugage level global dependencies.
51
53
 
52
54
  ## Available Generators
@@ -58,13 +60,14 @@
58
60
  - `ts#trpc-api` - Generate a tRPC backend service with Amazon API Gateway/AWS Lambda integrations and [AWS Powertools](https://github.com/aws-powertools/powertools-lambda-typescript) pre-configured.
59
61
  - `ts#nx-generator` - Add an [Nx Generator](https://nx.dev/features/generate-code) to a TypeScript project.
60
62
  - `ts#mcp-server` - Add a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server to a TypeScript project.
63
+ - `ts#strands-agent` - Add a [Strands Agent](https://strandsagents.com/) to a TypeScript project.
61
64
  - `ts#lambda-function` - Generate a TypeScript lambda function with optional type-safe event sources.
62
65
  - `terraform#project` - Generate a new Terraform project.
63
66
  - `py#project` - Generate a uv based Python project.
64
67
  - `py#fast-api` - Generate a FastAPI backend service with [AWS Powertools](https://github.com/aws-powertools/powertools-lambda-python) pre-configured.
65
68
  - `py#lambda-function` - Add a lambda function to an existing python project with optional type-safe event sources.
66
69
  - `py#mcp-server` - Add a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server to a Python project.
67
- - `py#strands-agent` Add a [Strands Agent](https://strandsagents.com/) to a Python project
70
+ - `py#strands-agent` Add a [Strands Agent](https://strandsagents.com/) to a Python project.
68
71
  - `api-connection` - Connect frontend applications to backend APIs.
69
72
  - `license` - Automatically manage LICENSE files and source code headers in your workspace.
70
73
 
package/generators.json CHANGED
@@ -183,6 +183,12 @@
183
183
  "description": "Create an API using Smithy and the Smithy TypeScript Server SDK",
184
184
  "metric": "g26"
185
185
  },
186
+ "ts#strands-agent": {
187
+ "factory": "./src/ts/strands-agent/generator",
188
+ "schema": "./src/ts/strands-agent/schema.json",
189
+ "description": "Add a Strands Agent to a TypeScript project",
190
+ "metric": "g30"
191
+ },
186
192
  "ts#trpc-api": {
187
193
  "factory": "./src/trpc/backend/generator",
188
194
  "schema": "./src/trpc/backend/schema.json",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/nx-plugin",
3
- "version": "0.64.1",
3
+ "version": "0.66.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/awslabs/nx-plugin-for-aws.git",
@@ -19,21 +19,21 @@
19
19
  },
20
20
  "generators": "./generators.json",
21
21
  "peerDependencies": {
22
- "nx": "~22.1.3",
23
- "prettier": "^3.6.2"
22
+ "nx": "~22.3.3",
23
+ "prettier": "^3.7.4"
24
24
  },
25
25
  "dependencies": {
26
26
  "@apidevtools/swagger-parser": "^10.1.1",
27
27
  "@hey-api/openapi-ts": "0.64.13",
28
28
  "@iarna/toml": "^2.2.5",
29
- "@modelcontextprotocol/sdk": "^1.25.1",
30
- "@nx/devkit": "~22.1.3",
31
- "@nx/eslint": "~22.1.3",
32
- "@nx/js": "~22.1.3",
33
- "@nx/react": "~22.1.3",
34
- "@nx/vite": "~22.1.3",
35
- "@nxlv/python": "~21.2.0",
36
- "@phenomnomnominal/tsquery": "6.1.3",
29
+ "@modelcontextprotocol/sdk": "~1.25.2",
30
+ "@nx/devkit": "~22.3.3",
31
+ "@nx/eslint": "~22.3.3",
32
+ "@nx/js": "~22.3.3",
33
+ "@nx/react": "~22.3.3",
34
+ "@nx/vite": "~22.3.3",
35
+ "@nxlv/python": "~21.2.3",
36
+ "@phenomnomnominal/tsquery": "6.1.4",
37
37
  "enquirer": "^2.4.1",
38
38
  "fast-glob": "^3.3.3",
39
39
  "lodash.camelcase": "^4.3.0",
@@ -46,9 +46,9 @@
46
46
  "openapi-types": "^12.1.3",
47
47
  "pip-requirements-js": "^0.2.1",
48
48
  "typescript": "~5.9.3",
49
- "vite": "^7.2.4",
50
- "vitest": "^4.0.14",
51
- "zod": "^4.2.1"
49
+ "vite": "^7.3.1",
50
+ "vitest": "^4.0.17",
51
+ "zod": "~4.3.5"
52
52
  },
53
53
  "types": "./src/index.d.ts"
54
54
  }
package/sdk/ts.d.ts CHANGED
@@ -8,6 +8,8 @@ export { tsInfraGenerator } from '../src/infra/app/generator';
8
8
  export type { TsInfraGeneratorSchema } from '../src/infra/app/schema';
9
9
  export { tsMcpServerGenerator } from '../src/ts/mcp-server/generator';
10
10
  export type { TsMcpServerGeneratorSchema } from '../src/ts/mcp-server/schema';
11
+ export { tsStrandsAgentGenerator } from '../src/ts/strands-agent/generator';
12
+ export type { TsStrandsAgentGeneratorSchema } from '../src/ts/strands-agent/schema';
11
13
  export { tsNxGeneratorGenerator } from '../src/ts/nx-generator/generator';
12
14
  export type { TsNxGeneratorGeneratorSchema } from '../src/ts/nx-generator/schema';
13
15
  export { tsNxPluginGenerator } from '../src/ts/nx-plugin/generator';
package/sdk/ts.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.sharedConstructsGenerator = exports.tsLambdaFunctionGenerator = exports.tsSmithyApiGenerator = exports.tsTrpcApiGenerator = exports.runtimeConfigGenerator = exports.tsReactWebsiteAuthGenerator = exports.tsReactWebsiteGenerator = exports.tsNxPluginGenerator = exports.tsNxGeneratorGenerator = exports.tsMcpServerGenerator = exports.tsInfraGenerator = exports.tsProjectGenerator = void 0;
7
+ exports.sharedConstructsGenerator = exports.tsLambdaFunctionGenerator = exports.tsSmithyApiGenerator = exports.tsTrpcApiGenerator = exports.runtimeConfigGenerator = exports.tsReactWebsiteAuthGenerator = exports.tsReactWebsiteGenerator = exports.tsNxPluginGenerator = exports.tsNxGeneratorGenerator = exports.tsStrandsAgentGenerator = exports.tsMcpServerGenerator = exports.tsInfraGenerator = exports.tsProjectGenerator = void 0;
8
8
  // TypeScript Project Generator
9
9
  var generator_1 = require("../src/ts/lib/generator");
10
10
  Object.defineProperty(exports, "tsProjectGenerator", { enumerable: true, get: function () { return generator_1.tsProjectGenerator; } });
@@ -14,30 +14,33 @@ Object.defineProperty(exports, "tsInfraGenerator", { enumerable: true, get: func
14
14
  // TypeScript MCP Server Generator
15
15
  var generator_3 = require("../src/ts/mcp-server/generator");
16
16
  Object.defineProperty(exports, "tsMcpServerGenerator", { enumerable: true, get: function () { return generator_3.tsMcpServerGenerator; } });
17
+ // TypeScript Strands Agent Generator
18
+ var generator_4 = require("../src/ts/strands-agent/generator");
19
+ Object.defineProperty(exports, "tsStrandsAgentGenerator", { enumerable: true, get: function () { return generator_4.tsStrandsAgentGenerator; } });
17
20
  // TypeScript Nx Generator Generator
18
- var generator_4 = require("../src/ts/nx-generator/generator");
19
- Object.defineProperty(exports, "tsNxGeneratorGenerator", { enumerable: true, get: function () { return generator_4.tsNxGeneratorGenerator; } });
21
+ var generator_5 = require("../src/ts/nx-generator/generator");
22
+ Object.defineProperty(exports, "tsNxGeneratorGenerator", { enumerable: true, get: function () { return generator_5.tsNxGeneratorGenerator; } });
20
23
  // TypeScript Nx Plugin Generator
21
- var generator_5 = require("../src/ts/nx-plugin/generator");
22
- Object.defineProperty(exports, "tsNxPluginGenerator", { enumerable: true, get: function () { return generator_5.tsNxPluginGenerator; } });
24
+ var generator_6 = require("../src/ts/nx-plugin/generator");
25
+ Object.defineProperty(exports, "tsNxPluginGenerator", { enumerable: true, get: function () { return generator_6.tsNxPluginGenerator; } });
23
26
  // TypeScript React Website Generator
24
- var generator_6 = require("../src/ts/react-website/app/generator");
25
- Object.defineProperty(exports, "tsReactWebsiteGenerator", { enumerable: true, get: function () { return generator_6.tsReactWebsiteGenerator; } });
27
+ var generator_7 = require("../src/ts/react-website/app/generator");
28
+ Object.defineProperty(exports, "tsReactWebsiteGenerator", { enumerable: true, get: function () { return generator_7.tsReactWebsiteGenerator; } });
26
29
  // TypeScript React Website Auth Generator
27
- var generator_7 = require("../src/ts/react-website/cognito-auth/generator");
28
- Object.defineProperty(exports, "tsReactWebsiteAuthGenerator", { enumerable: true, get: function () { return generator_7.tsReactWebsiteAuthGenerator; } });
30
+ var generator_8 = require("../src/ts/react-website/cognito-auth/generator");
31
+ Object.defineProperty(exports, "tsReactWebsiteAuthGenerator", { enumerable: true, get: function () { return generator_8.tsReactWebsiteAuthGenerator; } });
29
32
  // Runtime Config
30
- var generator_8 = require("../src/ts/react-website/runtime-config/generator");
31
- Object.defineProperty(exports, "runtimeConfigGenerator", { enumerable: true, get: function () { return generator_8.runtimeConfigGenerator; } });
33
+ var generator_9 = require("../src/ts/react-website/runtime-config/generator");
34
+ Object.defineProperty(exports, "runtimeConfigGenerator", { enumerable: true, get: function () { return generator_9.runtimeConfigGenerator; } });
32
35
  // TypeScript tRPC API
33
- var generator_9 = require("../src/trpc/backend/generator");
34
- Object.defineProperty(exports, "tsTrpcApiGenerator", { enumerable: true, get: function () { return generator_9.tsTrpcApiGenerator; } });
36
+ var generator_10 = require("../src/trpc/backend/generator");
37
+ Object.defineProperty(exports, "tsTrpcApiGenerator", { enumerable: true, get: function () { return generator_10.tsTrpcApiGenerator; } });
35
38
  // TypeScript Smithy API
36
- var generator_10 = require("../src/smithy/ts/api/generator");
37
- Object.defineProperty(exports, "tsSmithyApiGenerator", { enumerable: true, get: function () { return generator_10.tsSmithyApiGenerator; } });
39
+ var generator_11 = require("../src/smithy/ts/api/generator");
40
+ Object.defineProperty(exports, "tsSmithyApiGenerator", { enumerable: true, get: function () { return generator_11.tsSmithyApiGenerator; } });
38
41
  // TypeScript Lambda Function
39
- var generator_11 = require("../src/ts/lambda-function/generator");
40
- Object.defineProperty(exports, "tsLambdaFunctionGenerator", { enumerable: true, get: function () { return generator_11.tsLambdaFunctionGenerator; } });
42
+ var generator_12 = require("../src/ts/lambda-function/generator");
43
+ Object.defineProperty(exports, "tsLambdaFunctionGenerator", { enumerable: true, get: function () { return generator_12.tsLambdaFunctionGenerator; } });
41
44
  // Shared Constructs
42
45
  var shared_constructs_1 = require("../src/utils/shared-constructs");
43
46
  Object.defineProperty(exports, "sharedConstructsGenerator", { enumerable: true, get: function () { return shared_constructs_1.sharedConstructsGenerator; } });
package/sdk/ts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ts.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/sdk/ts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAA+B;AAC/B,qDAA6D;AAApD,+GAAA,kBAAkB,OAAA;AAG3B,4BAA4B;AAC5B,wDAA8D;AAArD,6GAAA,gBAAgB,OAAA;AAGzB,kCAAkC;AAClC,4DAAsE;AAA7D,iHAAA,oBAAoB,OAAA;AAG7B,oCAAoC;AACpC,8DAA0E;AAAjE,mHAAA,sBAAsB,OAAA;AAG/B,iCAAiC;AACjC,2DAAoE;AAA3D,gHAAA,mBAAmB,OAAA;AAG5B,qCAAqC;AACrC,mEAAgF;AAAvE,oHAAA,uBAAuB,OAAA;AAGhC,0CAA0C;AAC1C,4EAA6F;AAApF,wHAAA,2BAA2B,OAAA;AAGpC,iBAAiB;AACjB,8EAA0F;AAAjF,mHAAA,sBAAsB,OAAA;AAG/B,sBAAsB;AACtB,2DAAmE;AAA1D,+GAAA,kBAAkB,OAAA;AAG3B,wBAAwB;AACxB,6DAAsE;AAA7D,kHAAA,oBAAoB,OAAA;AAG7B,6BAA6B;AAC7B,kEAAgF;AAAvE,uHAAA,yBAAyB,OAAA;AAGlC,oBAAoB;AACpB,oEAA2E;AAAlE,8HAAA,yBAAyB,OAAA"}
1
+ {"version":3,"file":"ts.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/sdk/ts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAA+B;AAC/B,qDAA6D;AAApD,+GAAA,kBAAkB,OAAA;AAG3B,4BAA4B;AAC5B,wDAA8D;AAArD,6GAAA,gBAAgB,OAAA;AAGzB,kCAAkC;AAClC,4DAAsE;AAA7D,iHAAA,oBAAoB,OAAA;AAG7B,qCAAqC;AACrC,+DAA4E;AAAnE,oHAAA,uBAAuB,OAAA;AAGhC,oCAAoC;AACpC,8DAA0E;AAAjE,mHAAA,sBAAsB,OAAA;AAG/B,iCAAiC;AACjC,2DAAoE;AAA3D,gHAAA,mBAAmB,OAAA;AAG5B,qCAAqC;AACrC,mEAAgF;AAAvE,oHAAA,uBAAuB,OAAA;AAGhC,0CAA0C;AAC1C,4EAA6F;AAApF,wHAAA,2BAA2B,OAAA;AAGpC,iBAAiB;AACjB,8EAA0F;AAAjF,mHAAA,sBAAsB,OAAA;AAG/B,sBAAsB;AACtB,4DAAmE;AAA1D,gHAAA,kBAAkB,OAAA;AAG3B,wBAAwB;AACxB,6DAAsE;AAA7D,kHAAA,oBAAoB,OAAA;AAG7B,6BAA6B;AAC7B,kEAAgF;AAAvE,uHAAA,yBAAyB,OAAA;AAGlC,oBAAoB;AACpB,oEAA2E;AAAlE,8HAAA,yBAAyB,OAAA"}
@@ -2,10 +2,10 @@
2
2
 
3
3
  exports[`infra generator > should add required dependencies to package.json > dependencies 1`] = `
4
4
  {
5
- "aws-cdk": "2.1033.0",
6
- "aws-cdk-lib": "2.230.0",
7
- "constructs": "10.4.3",
8
- "esbuild": "0.27.0",
5
+ "aws-cdk": "2.1100.3",
6
+ "aws-cdk-lib": "2.234.1",
7
+ "constructs": "10.4.4",
8
+ "esbuild": "0.27.2",
9
9
  "source-map-support": "0.5.21",
10
10
  }
11
11
  `;
@@ -13,60 +13,60 @@ exports[`infra generator > should add required dependencies to package.json > de
13
13
  exports[`infra generator > should add required dependencies to package.json > dev-dependencies 1`] = `
14
14
  {
15
15
  "@eslint/js": "^9.8.0",
16
- "@nx/eslint": "22.1.3",
17
- "@nx/eslint-plugin": "22.1.3",
18
- "@nx/js": "22.1.3",
19
- "@nx/vitest": "22.1.3",
16
+ "@nx/eslint": "22.3.3",
17
+ "@nx/eslint-plugin": "22.3.3",
18
+ "@nx/js": "22.3.3",
19
+ "@nx/vitest": "22.3.3",
20
20
  "@swc-node/register": "~1.9.1",
21
21
  "@swc/core": "~1.5.7",
22
22
  "@swc/helpers": "~0.5.11",
23
- "@types/node": "22.19.1",
23
+ "@types/node": "22.19.6",
24
24
  "@vitest/coverage-v8": "^4.0.0",
25
25
  "eslint": "^9.8.0",
26
26
  "eslint-config-prettier": "^10.0.0",
27
27
  "eslint-plugin-prettier": "5.5.4",
28
- "jsdom": "~22.1.0",
29
- "jsonc-eslint-parser": "2.4.1",
30
- "prettier": "3.6.2",
31
- "tsx": "4.20.6",
28
+ "jsdom": "^27.1.0",
29
+ "jsonc-eslint-parser": "2.4.2",
30
+ "prettier": "3.7.4",
31
+ "tsx": "4.21.0",
32
32
  "typescript": "~5.9.2",
33
33
  "typescript-eslint": "^8.40.0",
34
34
  "vite": "^7.0.0",
35
- "vitest": "^4.0.0",
35
+ "vitest": "^4.0.8",
36
36
  }
37
37
  `;
38
38
 
39
39
  exports[`infra generator > should add required dependencies to package.json > package-json 1`] = `
40
40
  {
41
41
  "dependencies": {
42
- "aws-cdk": "2.1033.0",
43
- "aws-cdk-lib": "2.230.0",
44
- "constructs": "10.4.3",
45
- "esbuild": "0.27.0",
42
+ "aws-cdk": "2.1100.3",
43
+ "aws-cdk-lib": "2.234.1",
44
+ "constructs": "10.4.4",
45
+ "esbuild": "0.27.2",
46
46
  "source-map-support": "0.5.21",
47
47
  },
48
48
  "devDependencies": {
49
49
  "@eslint/js": "^9.8.0",
50
- "@nx/eslint": "22.1.3",
51
- "@nx/eslint-plugin": "22.1.3",
52
- "@nx/js": "22.1.3",
53
- "@nx/vitest": "22.1.3",
50
+ "@nx/eslint": "22.3.3",
51
+ "@nx/eslint-plugin": "22.3.3",
52
+ "@nx/js": "22.3.3",
53
+ "@nx/vitest": "22.3.3",
54
54
  "@swc-node/register": "~1.9.1",
55
55
  "@swc/core": "~1.5.7",
56
56
  "@swc/helpers": "~0.5.11",
57
- "@types/node": "22.19.1",
57
+ "@types/node": "22.19.6",
58
58
  "@vitest/coverage-v8": "^4.0.0",
59
59
  "eslint": "^9.8.0",
60
60
  "eslint-config-prettier": "^10.0.0",
61
61
  "eslint-plugin-prettier": "5.5.4",
62
- "jsdom": "~22.1.0",
63
- "jsonc-eslint-parser": "2.4.1",
64
- "prettier": "3.6.2",
65
- "tsx": "4.20.6",
62
+ "jsdom": "^27.1.0",
63
+ "jsonc-eslint-parser": "2.4.2",
64
+ "prettier": "3.7.4",
65
+ "tsx": "4.21.0",
66
66
  "typescript": "~5.9.2",
67
67
  "typescript-eslint": "^8.40.0",
68
68
  "vite": "^7.0.0",
69
- "vitest": "^4.0.0",
69
+ "vitest": "^4.0.8",
70
70
  },
71
71
  "name": "@proj/source",
72
72
  "type": "module",
@@ -84,7 +84,7 @@ exports[`infra generator > should configure Checkov target correctly > checkov-t
84
84
  "{workspaceRoot}/dist/{projectRoot}/cdk.out",
85
85
  ],
86
86
  "options": {
87
- "command": "uvx --with pycares==4.11.0 checkov==3.2.495 --config-file packages/test/checkov.yml --file dist/packages/test/cdk.out/**/*.template.json",
87
+ "command": "uvx --with pycares==4.11.0 checkov==3.2.497 --config-file packages/test/checkov.yml --file dist/packages/test/cdk.out/**/*.template.json",
88
88
  },
89
89
  "outputs": [
90
90
  "{workspaceRoot}/dist/{projectRoot}/checkov",
@@ -177,7 +177,7 @@ exports[`infra generator > should configure project.json with correct targets >
177
177
  "{workspaceRoot}/dist/{projectRoot}/cdk.out",
178
178
  ],
179
179
  "options": {
180
- "command": "uvx --with pycares==4.11.0 checkov==3.2.495 --config-file packages/test/checkov.yml --file dist/packages/test/cdk.out/**/*.template.json",
180
+ "command": "uvx --with pycares==4.11.0 checkov==3.2.497 --config-file packages/test/checkov.yml --file dist/packages/test/cdk.out/**/*.template.json",
181
181
  },
182
182
  "outputs": [
183
183
  "{workspaceRoot}/dist/{projectRoot}/checkov",
@@ -724,7 +724,7 @@ exports[`infra generator > should handle custom project names correctly > custom
724
724
  "{workspaceRoot}/dist/{projectRoot}/cdk.out",
725
725
  ],
726
726
  "options": {
727
- "command": "uvx --with pycares==4.11.0 checkov==3.2.495 --config-file packages/custom-infra/checkov.yml --file dist/packages/custom-infra/cdk.out/**/*.template.json",
727
+ "command": "uvx --with pycares==4.11.0 checkov==3.2.497 --config-file packages/custom-infra/checkov.yml --file dist/packages/custom-infra/cdk.out/**/*.template.json",
728
728
  },
729
729
  "outputs": [
730
730
  "{workspaceRoot}/dist/{projectRoot}/checkov",
@@ -64,6 +64,8 @@ The following list of generators are what is currently available in the \`@aws/n
64
64
 
65
65
  - **ts#smithy-api**: Create an API using Smithy and the Smithy TypeScript Server SDK
66
66
 
67
+ - **ts#strands-agent**: Add a Strands Agent to a TypeScript project
68
+
67
69
  - **ts#trpc-api**: creates a trpc backend
68
70
 
69
71
  You also have the option of using additional [commmunity plugins](https://nx.dev/plugin-registry) as needed.
@@ -189,12 +191,12 @@ exports[`preset generator > should run successfully > package.json 1`] = `
189
191
  "name": "@proj/source",
190
192
  "dependencies": {},
191
193
  "devDependencies": {
192
- "@nx/js": "22.1.3",
193
- "@nx/workspace": "22.1.3",
194
+ "@nx/js": "22.3.3",
195
+ "@nx/workspace": "22.3.3",
194
196
  "@swc-node/register": "~1.9.1",
195
197
  "@swc/core": "~1.5.7",
196
198
  "@swc/helpers": "~0.5.11",
197
- "prettier": "^2.6.2",
199
+ "prettier": "~3.6.2",
198
200
  "typescript": "~5.9.2"
199
201
  },
200
202
  "workspaces": [
@@ -545,9 +545,9 @@ exports[`py#mcp-server generator > should match snapshot for generated files > u
545
545
  name = "proj.test_project"
546
546
  version = "0.1.0"
547
547
  dependencies = [
548
- "mcp==1.22.0",
549
- "boto3==1.42.0",
550
- "aws-opentelemetry-distro==0.14.0"
548
+ "mcp==1.25.0",
549
+ "boto3==1.42.30",
550
+ "aws-opentelemetry-distro==0.14.1"
551
551
  ]
552
552
 
553
553
  [dependency-groups]
@@ -587,18 +587,18 @@ exports[`py#strands-agent generator > should match snapshot for generated files
587
587
  name = "proj.test_project"
588
588
  version = "0.1.0"
589
589
  dependencies = [
590
- "aws-opentelemetry-distro==0.14.0",
590
+ "aws-opentelemetry-distro==0.14.1",
591
591
  "bedrock-agentcore==0.1.7",
592
- "fastapi==0.123.0",
593
- "boto3==1.42.0",
594
- "mcp==1.22.0",
595
- "strands-agents==1.18.0",
596
- "strands-agents-tools==0.2.16",
597
- "uvicorn==0.38.0"
592
+ "fastapi==0.128.0",
593
+ "boto3==1.42.30",
594
+ "mcp==1.25.0",
595
+ "strands-agents==1.22.0",
596
+ "strands-agents-tools==0.2.19",
597
+ "uvicorn==0.40.0"
598
598
  ]
599
599
 
600
600
  [dependency-groups]
601
- dev = [ "fastapi[standard]==0.123.0" ]
601
+ dev = [ "fastapi[standard]==0.128.0" ]
602
602
 
603
603
  [tool.uv]
604
604
  dev-dependencies = [ ]
@@ -640,14 +640,14 @@ exports[`ts#mcp-server generator > should match snapshot for generated files > u
640
640
  "snapshot-server": "./src/snapshot-server/stdio.js"
641
641
  },
642
642
  "dependencies": {
643
- "@modelcontextprotocol/sdk": "1.25.1",
644
- "express": "5.1.0",
645
- "zod": "4.2.1"
643
+ "@modelcontextprotocol/sdk": "1.25.2",
644
+ "express": "5.2.1",
645
+ "zod": "4.3.5"
646
646
  },
647
647
  "devDependencies": {
648
648
  "@modelcontextprotocol/inspector": "0.18.0",
649
- "@types/express": "5.0.5",
650
- "tsx": "4.20.6"
649
+ "@types/express": "5.0.6",
650
+ "tsx": "4.21.0"
651
651
  }
652
652
  }
653
653
  "
@@ -248,7 +248,7 @@ export const registerCreateWorkspaceCommandTool = (server: McpServer) => {
248
248
  text: \`Run the following command to create a workspace:
249
249
 
250
250
  \\\`\\\`\\\`bash
251
- npx create-nx-workspace@22.1.3 \${workspaceName} --pm=\${packageManager} --preset=@aws/nx-plugin --ci=skip --aiAgents
251
+ npx create-nx-workspace@22.3.3 \${workspaceName} --pm=\${packageManager} --preset=@aws/nx-plugin --ci=skip --aiAgents
252
252
  \\\`\\\`\\\`
253
253
 
254
254
  This will create a new workspace within the \${workspaceName} directory.
@@ -1874,32 +1874,32 @@ exports[`react-website generator > Tanstack router integration > should generate
1874
1874
  "{
1875
1875
  "name": "@proj/source",
1876
1876
  "dependencies": {
1877
- "@cloudscape-design/board-components": "3.0.130",
1878
- "@cloudscape-design/components": "3.0.1144",
1877
+ "@cloudscape-design/board-components": "3.0.140",
1878
+ "@cloudscape-design/components": "3.0.1173",
1879
1879
  "@cloudscape-design/global-styles": "1.0.49",
1880
- "aws-cdk-lib": "2.230.0",
1881
- "constructs": "10.4.3",
1882
- "react": "19.2.0",
1883
- "react-dom": "19.2.0",
1884
- "tailwindcss": "4.1.17"
1880
+ "aws-cdk-lib": "2.234.1",
1881
+ "constructs": "10.4.4",
1882
+ "react": "19.2.3",
1883
+ "react-dom": "19.2.3",
1884
+ "tailwindcss": "4.1.18"
1885
1885
  },
1886
1886
  "devDependencies": {
1887
1887
  "@eslint/js": "^9.8.0",
1888
- "@nx/eslint": "22.1.3",
1889
- "@nx/eslint-plugin": "22.1.3",
1890
- "@nx/js": "22.1.3",
1891
- "@nx/react": "22.1.3",
1892
- "@nx/vite": "22.1.3",
1893
- "@nx/vitest": "22.1.3",
1894
- "@nx/web": "22.1.3",
1888
+ "@nx/eslint": "22.3.3",
1889
+ "@nx/eslint-plugin": "22.3.3",
1890
+ "@nx/js": "22.3.3",
1891
+ "@nx/react": "22.3.3",
1892
+ "@nx/vite": "22.3.3",
1893
+ "@nx/vitest": "22.3.3",
1894
+ "@nx/web": "22.3.3",
1895
1895
  "@swc-node/register": "~1.9.1",
1896
1896
  "@swc/cli": "~0.6.0",
1897
1897
  "@swc/core": "~1.5.7",
1898
1898
  "@swc/helpers": "~0.5.11",
1899
- "@tailwindcss/vite": "4.1.17",
1899
+ "@tailwindcss/vite": "4.1.18",
1900
1900
  "@testing-library/dom": "10.4.0",
1901
1901
  "@testing-library/react": "16.3.0",
1902
- "@types/node": "22.19.1",
1902
+ "@types/node": "22.19.6",
1903
1903
  "@types/react": "^19.0.0",
1904
1904
  "@types/react-dom": "^19.0.0",
1905
1905
  "@vitejs/plugin-react": "^4.2.0",
@@ -1914,8 +1914,8 @@ exports[`react-website generator > Tanstack router integration > should generate
1914
1914
  "eslint-plugin-react-hooks": "5.0.0",
1915
1915
  "jiti": "2.4.2",
1916
1916
  "jsdom": "~22.1.0",
1917
- "jsonc-eslint-parser": "2.4.1",
1918
- "prettier": "3.6.2",
1917
+ "jsonc-eslint-parser": "2.4.2",
1918
+ "prettier": "3.7.4",
1919
1919
  "typescript": "~5.9.2",
1920
1920
  "typescript-eslint": "^8.40.0",
1921
1921
  "vite": "^7.0.0",
@@ -2538,6 +2538,28 @@ export default defineConfig(() => ({
2538
2538
  "
2539
2539
  `;
2540
2540
 
2541
+ exports[`react-website generator > Tanstack router integration > should generate website with no router correctly > packages/common/constructs/vitest.config.mts 1`] = `
2542
+ "import { defineConfig } from 'vitest/config';
2543
+
2544
+ export default defineConfig(() => ({
2545
+ root: __dirname,
2546
+ cacheDir: '../../../node_modules/.vite/packages/common/constructs',
2547
+ test: {
2548
+ name: '@proj/common-constructs',
2549
+ watch: false,
2550
+ globals: true,
2551
+ environment: 'jsdom',
2552
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
2553
+ reporters: ['default'],
2554
+ coverage: {
2555
+ reportsDirectory: './test-output/vitest/coverage',
2556
+ provider: 'v8' as const,
2557
+ },
2558
+ },
2559
+ }));
2560
+ "
2561
+ `;
2562
+
2541
2563
  exports[`react-website generator > Tanstack router integration > should generate website with no router correctly > pnpm-workspace.yaml 1`] = `
2542
2564
  "packages:
2543
2565
  - 'packages/*'
@@ -3294,37 +3316,37 @@ exports[`react-website generator > Tanstack router integration > should generate
3294
3316
  "{
3295
3317
  "name": "@proj/source",
3296
3318
  "dependencies": {
3297
- "@cloudscape-design/board-components": "3.0.130",
3298
- "@cloudscape-design/components": "3.0.1144",
3319
+ "@cloudscape-design/board-components": "3.0.140",
3320
+ "@cloudscape-design/components": "3.0.1173",
3299
3321
  "@cloudscape-design/global-styles": "1.0.49",
3300
- "@tanstack/react-router": "1.139.7",
3301
- "aws-cdk-lib": "2.230.0",
3302
- "constructs": "10.4.3",
3303
- "react": "19.2.0",
3304
- "react-dom": "19.2.0",
3305
- "tailwindcss": "4.1.17"
3322
+ "@tanstack/react-router": "1.149.3",
3323
+ "aws-cdk-lib": "2.234.1",
3324
+ "constructs": "10.4.4",
3325
+ "react": "19.2.3",
3326
+ "react-dom": "19.2.3",
3327
+ "tailwindcss": "4.1.18"
3306
3328
  },
3307
3329
  "devDependencies": {
3308
3330
  "@eslint/js": "^9.8.0",
3309
- "@nx/eslint": "22.1.3",
3310
- "@nx/eslint-plugin": "22.1.3",
3311
- "@nx/js": "22.1.3",
3312
- "@nx/react": "22.1.3",
3313
- "@nx/vite": "22.1.3",
3314
- "@nx/vitest": "22.1.3",
3315
- "@nx/web": "22.1.3",
3331
+ "@nx/eslint": "22.3.3",
3332
+ "@nx/eslint-plugin": "22.3.3",
3333
+ "@nx/js": "22.3.3",
3334
+ "@nx/react": "22.3.3",
3335
+ "@nx/vite": "22.3.3",
3336
+ "@nx/vitest": "22.3.3",
3337
+ "@nx/web": "22.3.3",
3316
3338
  "@swc-node/register": "~1.9.1",
3317
3339
  "@swc/cli": "~0.6.0",
3318
3340
  "@swc/core": "~1.5.7",
3319
3341
  "@swc/helpers": "~0.5.11",
3320
- "@tailwindcss/vite": "4.1.17",
3321
- "@tanstack/router-generator": "1.139.7",
3322
- "@tanstack/router-plugin": "1.139.7",
3323
- "@tanstack/router-utils": "1.139.0",
3324
- "@tanstack/virtual-file-routes": "1.139.0",
3342
+ "@tailwindcss/vite": "4.1.18",
3343
+ "@tanstack/router-generator": "1.149.3",
3344
+ "@tanstack/router-plugin": "1.149.3",
3345
+ "@tanstack/router-utils": "1.143.11",
3346
+ "@tanstack/virtual-file-routes": "1.145.4",
3325
3347
  "@testing-library/dom": "10.4.0",
3326
3348
  "@testing-library/react": "16.3.0",
3327
- "@types/node": "22.19.1",
3349
+ "@types/node": "22.19.6",
3328
3350
  "@types/react": "^19.0.0",
3329
3351
  "@types/react-dom": "^19.0.0",
3330
3352
  "@vitejs/plugin-react": "^4.2.0",
@@ -3339,8 +3361,8 @@ exports[`react-website generator > Tanstack router integration > should generate
3339
3361
  "eslint-plugin-react-hooks": "5.0.0",
3340
3362
  "jiti": "2.4.2",
3341
3363
  "jsdom": "~22.1.0",
3342
- "jsonc-eslint-parser": "2.4.1",
3343
- "prettier": "3.6.2",
3364
+ "jsonc-eslint-parser": "2.4.2",
3365
+ "prettier": "3.7.4",
3344
3366
  "typescript": "~5.9.2",
3345
3367
  "typescript-eslint": "^8.40.0",
3346
3368
  "vite": "^7.0.0",
@@ -3963,6 +3985,28 @@ export default defineConfig(() => ({
3963
3985
  "
3964
3986
  `;
3965
3987
 
3988
+ exports[`react-website generator > Tanstack router integration > should generate website with router correctly > packages/common/constructs/vitest.config.mts 1`] = `
3989
+ "import { defineConfig } from 'vitest/config';
3990
+
3991
+ export default defineConfig(() => ({
3992
+ root: __dirname,
3993
+ cacheDir: '../../../node_modules/.vite/packages/common/constructs',
3994
+ test: {
3995
+ name: '@proj/common-constructs',
3996
+ watch: false,
3997
+ globals: true,
3998
+ environment: 'jsdom',
3999
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
4000
+ reporters: ['default'],
4001
+ coverage: {
4002
+ reportsDirectory: './test-output/vitest/coverage',
4003
+ provider: 'v8' as const,
4004
+ },
4005
+ },
4006
+ }));
4007
+ "
4008
+ `;
4009
+
3966
4010
  exports[`react-website generator > Tanstack router integration > should generate website with router correctly > pnpm-workspace.yaml 1`] = `
3967
4011
  "packages:
3968
4012
  - 'packages/*'
@@ -5359,14 +5403,14 @@ root &&
5359
5403
 
5360
5404
  exports[`react-website generator > should handle npm scope prefix correctly > scoped-dependencies 1`] = `
5361
5405
  {
5362
- "@cloudscape-design/board-components": "3.0.130",
5363
- "@cloudscape-design/components": "3.0.1144",
5406
+ "@cloudscape-design/board-components": "3.0.140",
5407
+ "@cloudscape-design/components": "3.0.1173",
5364
5408
  "@cloudscape-design/global-styles": "1.0.49",
5365
- "@tanstack/react-router": "1.139.7",
5366
- "aws-cdk-lib": "2.230.0",
5367
- "constructs": "10.4.3",
5368
- "react": "19.2.0",
5369
- "react-dom": "19.2.0",
5370
- "tailwindcss": "4.1.17",
5409
+ "@tanstack/react-router": "1.149.3",
5410
+ "aws-cdk-lib": "2.234.1",
5411
+ "constructs": "10.4.4",
5412
+ "react": "19.2.3",
5413
+ "react-dom": "19.2.3",
5414
+ "tailwindcss": "4.1.18",
5371
5415
  }
5372
5416
  `;