@aws/nx-plugin 1.0.0-rc.70 → 1.0.0-rc.72
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.
- package/migrations.json +11 -1
- package/package.json +1 -1
- package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/agentcore-harness/generator.d.ts +1 -1
- package/src/infra/app/generator.d.ts +1 -1
- package/src/init/generator.d.ts +1 -1
- package/src/license/dependency-check/evaluator.js +55 -10
- package/src/license/dependency-check/evaluator.js.map +1 -1
- package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/metadata.json +3 -0
- package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/migration.d.ts +6 -0
- package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/migration.js +329 -0
- package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/migration.js.map +1 -0
- package/src/migrations/latest/py-agent-session-management-support/metadata.json +3 -0
- package/src/migrations/latest/py-agent-session-management-support/migration.d.ts +2 -0
- package/src/migrations/latest/py-agent-session-management-support/migration.js +308 -0
- package/src/migrations/latest/py-agent-session-management-support/migration.js.map +1 -0
- package/src/preset/generator.d.ts +1 -1
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +615 -6
- package/src/py/agent/__snapshots__/generator.core.spec.ts.snap +186 -0
- package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +47 -3
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +668 -3
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +55 -14
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +1 -3
- package/src/py/agent/files/langchain/common/__init__.py.template +0 -0
- package/src/py/agent/files/langchain/common/agent.py.template +3 -3
- package/src/py/agent/files/langchain/common/session.py.template +61 -0
- package/src/py/agent/files/strands/ag-ui/main.py.template +5 -1
- package/src/py/agent/files/strands/common/agent.py.template +9 -2
- package/src/py/agent/files/strands/common/session.py.template +36 -0
- package/src/py/agent/generator.d.ts +11 -1
- package/src/py/agent/generator.js +78 -28
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +2 -0
- package/src/py/agent/react-connection/generator.d.ts +1 -1
- package/src/py/agent/schema.d.js.map +1 -1
- package/src/py/agent/schema.d.ts +1 -1
- package/src/py/agent/schema.json +3 -3
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +12 -12
- package/src/py/fast-api/react/generator.d.ts +1 -1
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/rdb/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/smithy/project/generator.d.ts +1 -1
- package/src/smithy/react-connection/generator.d.ts +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +7 -7
- package/src/terraform/project/generator.d.ts +1 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +12 -12
- package/src/trpc/react/generator.d.ts +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +28 -7
- package/src/ts/agent/a2a-connection/generator.d.ts +1 -1
- package/src/ts/agent/gateway-connection/generator.d.ts +1 -1
- package/src/ts/agent/mcp-connection/generator.d.ts +1 -1
- package/src/ts/agent/react-connection/generator.d.ts +1 -1
- package/src/ts/astro-docs/generator.d.ts +1 -1
- package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/dcr-proxy/generator.d.ts +1 -1
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/dynamodb/generator.d.ts +1 -1
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/lambda-function/generator.d.ts +1 -1
- package/src/ts/lib/generator.d.ts +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/nx-generator/generator.d.ts +1 -1
- package/src/ts/nx-migration/generator.d.ts +1 -1
- package/src/ts/nx-plugin/generator.d.ts +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/rdb/generator.d.ts +1 -1
- package/src/ts/react-website/agui/generator.d.ts +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +1 -1
- package/src/utils/agent-connection/agent-connection.d.ts +10 -0
- package/src/utils/agent-connection/agent-connection.js +15 -0
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +5 -3
- package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +26 -20
- package/src/utils/agent-connection/files/py-core-langchain/s3/s3_checkpoint_saver_langchain.py.template +360 -0
- package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +2 -4
- package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +55 -10
- package/src/utils/agent-connection/files/py-core-strands/base/tool_errors_strands.py.template +24 -0
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +113 -13
- package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +76 -7
- package/src/utils/versions.d.ts +5 -2
- package/src/utils/versions.js +4 -1
- package/src/utils/versions.js.map +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
<%_ const hasSessionBucket = session === 's3' || session === 'dynamodb-s3'; _%>
|
|
2
|
+
import { Fn, Lazy, Names<%_ if (hasSessionBucket) { _%>, RemovalPolicy<%_ } _%>, Stack } from 'aws-cdk-lib';
|
|
2
3
|
import { Platform } from 'aws-cdk-lib/aws-ecr-assets';
|
|
3
4
|
import { Connections, IConnectable } from 'aws-cdk-lib/aws-ec2';
|
|
4
|
-
<%_ if (
|
|
5
|
+
<%_ if (hasSessionBucket) { _%>
|
|
5
6
|
import { BlockPublicAccess, Bucket, BucketEncryption } from 'aws-cdk-lib/aws-s3';
|
|
6
7
|
import { Key } from 'aws-cdk-lib/aws-kms';
|
|
7
8
|
import {
|
|
@@ -12,6 +13,14 @@ import {
|
|
|
12
13
|
RetentionDays,
|
|
13
14
|
} from 'aws-cdk-lib/aws-logs';
|
|
14
15
|
<%_ } _%>
|
|
16
|
+
<%_ if (session === 'dynamodb-s3') { _%>
|
|
17
|
+
import {
|
|
18
|
+
AttributeType,
|
|
19
|
+
BillingMode,
|
|
20
|
+
Table,
|
|
21
|
+
TableEncryption,
|
|
22
|
+
} from 'aws-cdk-lib/aws-dynamodb';
|
|
23
|
+
<%_ } _%>
|
|
15
24
|
import { Construct } from 'constructs';
|
|
16
25
|
import * as path from 'path';
|
|
17
26
|
import * as url from 'url';
|
|
@@ -24,11 +33,11 @@ import {
|
|
|
24
33
|
RuntimeAuthorizerConfiguration,
|
|
25
34
|
<%_ } _%>
|
|
26
35
|
} from 'aws-cdk-lib/aws-bedrockagentcore';
|
|
27
|
-
import { <%_ if (serverProtocol !== 'mcp') { _%>PolicyStatement, <%_ } _%><%_ if (
|
|
36
|
+
import { <%_ if (serverProtocol !== 'mcp') { _%>PolicyStatement, <%_ } _%><%_ if (hasSessionBucket) { _%>Effect, ServicePrincipal, <%_ } _%>IGrantable, IPrincipal<%_ if (auth === 'iam') { _%>, Grant<%_ } _%> } from 'aws-cdk-lib/aws-iam';
|
|
28
37
|
<%_ if (auth === 'cognito') { _%>
|
|
29
38
|
import { IUserPool, IUserPoolClient } from 'aws-cdk-lib/aws-cognito';
|
|
30
39
|
<%_ } _%>
|
|
31
|
-
<%_ if (
|
|
40
|
+
<%_ if (hasSessionBucket) { _%>
|
|
32
41
|
import { suppressRules } from '../../../core/checkov<% if (esm) { %>.js<% } %>';
|
|
33
42
|
<%_ } _%>
|
|
34
43
|
import { RuntimeConfig } from '../../../core/runtime-config<% if (esm) { %>.js<% } %>';
|
|
@@ -41,7 +50,34 @@ export type <%- nameClassName %>Props = Omit<
|
|
|
41
50
|
| 'protocolConfiguration'
|
|
42
51
|
| 'agentRuntimeArtifact'
|
|
43
52
|
| 'authorizerConfiguration'
|
|
44
|
-
|
|
53
|
+
><%_ if (hasSessionBucket) { _%> & {
|
|
54
|
+
<%_ if (hasSessionBucket) { _%>
|
|
55
|
+
/**
|
|
56
|
+
* Removal policy for the session bucket holding the agent's conversation
|
|
57
|
+
* history. Defaults to retaining it so a stack `destroy` doesn't silently
|
|
58
|
+
* delete session data — set to `RemovalPolicy.DESTROY` for sandbox/CI teardown.
|
|
59
|
+
*
|
|
60
|
+
* @default RemovalPolicy.RETAIN
|
|
61
|
+
*/
|
|
62
|
+
readonly sessionBucketRemovalPolicy?: RemovalPolicy;
|
|
63
|
+
<%_ } _%>
|
|
64
|
+
<%_ if (session === 'dynamodb-s3') { _%>
|
|
65
|
+
/**
|
|
66
|
+
* Whether to enable deletion protection on the session checkpoint table.
|
|
67
|
+
* Set to `false` to allow a stack `destroy` to remove it (e.g. for
|
|
68
|
+
* sandbox/CI teardown).
|
|
69
|
+
*
|
|
70
|
+
* @default true
|
|
71
|
+
*/
|
|
72
|
+
readonly sessionTableDeletionProtection?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Removal policy for the session checkpoint table.
|
|
75
|
+
*
|
|
76
|
+
* @default RemovalPolicy.RETAIN
|
|
77
|
+
*/
|
|
78
|
+
readonly sessionTableRemovalPolicy?: RemovalPolicy;
|
|
79
|
+
<%_ } _%>
|
|
80
|
+
}<%_ } _%>;
|
|
45
81
|
<%_ } else if (auth === 'cognito') { _%>
|
|
46
82
|
export type <%- nameClassName %>Props = Omit<
|
|
47
83
|
RuntimeProps,
|
|
@@ -57,6 +93,32 @@ export type <%- nameClassName %>Props = Omit<
|
|
|
57
93
|
userPool: IUserPool;
|
|
58
94
|
userPoolClient: IUserPoolClient;
|
|
59
95
|
};
|
|
96
|
+
<%_ if (hasSessionBucket) { _%>
|
|
97
|
+
/**
|
|
98
|
+
* Removal policy for the session bucket holding the agent's conversation
|
|
99
|
+
* history. Defaults to retaining it so a stack `destroy` doesn't silently
|
|
100
|
+
* delete session data — set to `RemovalPolicy.DESTROY` for sandbox/CI teardown.
|
|
101
|
+
*
|
|
102
|
+
* @default RemovalPolicy.RETAIN
|
|
103
|
+
*/
|
|
104
|
+
readonly sessionBucketRemovalPolicy?: RemovalPolicy;
|
|
105
|
+
<%_ } _%>
|
|
106
|
+
<%_ if (session === 'dynamodb-s3') { _%>
|
|
107
|
+
/**
|
|
108
|
+
* Whether to enable deletion protection on the session checkpoint table.
|
|
109
|
+
* Set to `false` to allow a stack `destroy` to remove it (e.g. for
|
|
110
|
+
* sandbox/CI teardown).
|
|
111
|
+
*
|
|
112
|
+
* @default true
|
|
113
|
+
*/
|
|
114
|
+
readonly sessionTableDeletionProtection?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Removal policy for the session checkpoint table.
|
|
117
|
+
*
|
|
118
|
+
* @default RemovalPolicy.RETAIN
|
|
119
|
+
*/
|
|
120
|
+
readonly sessionTableRemovalPolicy?: RemovalPolicy;
|
|
121
|
+
<%_ } _%>
|
|
60
122
|
};
|
|
61
123
|
<%_ } _%>
|
|
62
124
|
|
|
@@ -88,11 +150,23 @@ export class <%- nameClassName %> extends Construct implements IGrantable, IConn
|
|
|
88
150
|
platform: Platform.LINUX_ARM64,
|
|
89
151
|
});
|
|
90
152
|
|
|
153
|
+
<%_ if (auth === 'cognito' || hasSessionBucket) { _%>
|
|
154
|
+
const {
|
|
91
155
|
<%_ if (auth === 'cognito') { _%>
|
|
92
|
-
|
|
156
|
+
identity,
|
|
157
|
+
<%_ } _%>
|
|
158
|
+
<%_ if (hasSessionBucket) { _%>
|
|
159
|
+
sessionBucketRemovalPolicy = RemovalPolicy.RETAIN,
|
|
160
|
+
<%_ } _%>
|
|
161
|
+
<%_ if (session === 'dynamodb-s3') { _%>
|
|
162
|
+
sessionTableDeletionProtection = true,
|
|
163
|
+
sessionTableRemovalPolicy = RemovalPolicy.RETAIN,
|
|
164
|
+
<%_ } _%>
|
|
165
|
+
...restProps
|
|
166
|
+
} = props ?? {};
|
|
93
167
|
|
|
94
168
|
<%_ } _%>
|
|
95
|
-
<%_ if (
|
|
169
|
+
<%_ if (hasSessionBucket) { _%>
|
|
96
170
|
const sessionKey = new Key(this, 'SessionKey', {
|
|
97
171
|
enableKeyRotation: true,
|
|
98
172
|
});
|
|
@@ -127,7 +201,7 @@ export class <%- nameClassName %> extends Construct implements IGrantable, IConn
|
|
|
127
201
|
|
|
128
202
|
const sessionBucket = new Bucket(this, 'SessionBucket', {
|
|
129
203
|
enforceSSL: true,
|
|
130
|
-
removalPolicy:
|
|
204
|
+
removalPolicy: sessionBucketRemovalPolicy,
|
|
131
205
|
encryption: BucketEncryption.KMS,
|
|
132
206
|
encryptionKey: sessionKey,
|
|
133
207
|
blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
|
|
@@ -196,6 +270,22 @@ export class <%- nameClassName %> extends Construct implements IGrantable, IConn
|
|
|
196
270
|
);
|
|
197
271
|
sessionAccessLogsDelivery.addDependency(sessionAccessLogsSource);
|
|
198
272
|
|
|
273
|
+
<%_ } _%>
|
|
274
|
+
<%_ if (session === 'dynamodb-s3') { _%>
|
|
275
|
+
// Unified checkpoints/writes table, matching the schema
|
|
276
|
+
// langgraph_checkpoint_aws.DynamoDBSaver expects (PK/SK, TTL on `ttl`).
|
|
277
|
+
const sessionTable = new Table(this, 'SessionTable', {
|
|
278
|
+
partitionKey: { name: 'PK', type: AttributeType.STRING },
|
|
279
|
+
sortKey: { name: 'SK', type: AttributeType.STRING },
|
|
280
|
+
billingMode: BillingMode.PAY_PER_REQUEST,
|
|
281
|
+
pointInTimeRecoverySpecification: { pointInTimeRecoveryEnabled: true },
|
|
282
|
+
timeToLiveAttribute: 'ttl',
|
|
283
|
+
encryption: TableEncryption.CUSTOMER_MANAGED,
|
|
284
|
+
encryptionKey: sessionKey,
|
|
285
|
+
deletionProtection: sessionTableDeletionProtection,
|
|
286
|
+
removalPolicy: sessionTableRemovalPolicy,
|
|
287
|
+
});
|
|
288
|
+
|
|
199
289
|
<%_ } _%>
|
|
200
290
|
this.agentCoreRuntime = new Runtime(this, '<%- nameClassName %>', {
|
|
201
291
|
runtimeName: Lazy.string({
|
|
@@ -213,13 +303,15 @@ export class <%- nameClassName %> extends Construct implements IGrantable, IConn
|
|
|
213
303
|
requestHeaderConfiguration: {
|
|
214
304
|
allowlistedHeaders: ['Authorization'],
|
|
215
305
|
},
|
|
306
|
+
<%_ } _%>
|
|
307
|
+
<%_ if (auth === 'cognito' || hasSessionBucket) { _%>
|
|
216
308
|
...restProps,
|
|
217
309
|
<%_ } else { _%>
|
|
218
310
|
...props,
|
|
219
311
|
<%_ } _%>
|
|
220
312
|
environmentVariables: {
|
|
221
313
|
RUNTIME_CONFIG_APP_ID: rc.appConfigApplicationId,
|
|
222
|
-
<%_ if (auth === 'cognito') { _%>
|
|
314
|
+
<%_ if (auth === 'cognito' || hasSessionBucket) { _%>
|
|
223
315
|
...restProps?.environmentVariables,
|
|
224
316
|
<%_ } else { _%>
|
|
225
317
|
...props?.environmentVariables,
|
|
@@ -243,18 +335,26 @@ export class <%- nameClassName %> extends Construct implements IGrantable, IConn
|
|
|
243
335
|
);
|
|
244
336
|
|
|
245
337
|
<%_ } _%>
|
|
246
|
-
<%_ if (session === 's3') { _%>
|
|
338
|
+
<%_ if (session === 'dynamodb-s3') { _%>
|
|
339
|
+
sessionTable.grantReadWriteData(this.agentCoreRuntime);
|
|
340
|
+
<%_ } _%>
|
|
341
|
+
<%_ if (hasSessionBucket) { _%>
|
|
247
342
|
sessionBucket.grantReadWrite(this.agentCoreRuntime);
|
|
248
|
-
|
|
249
343
|
<%_ } _%>
|
|
344
|
+
|
|
250
345
|
rc.grantReadAppConfig(this.agentCoreRuntime);
|
|
251
346
|
|
|
252
347
|
rc.set('agentcore', 'agentRuntimes', {
|
|
253
348
|
...rc.get('agentcore').agentRuntimes,
|
|
254
349
|
<%- nameClassName %>: {
|
|
255
350
|
arn: this.agentCoreRuntime.agentRuntimeArn,
|
|
256
|
-
<%_ if (
|
|
257
|
-
session: {
|
|
351
|
+
<%_ if (hasSessionBucket) { _%>
|
|
352
|
+
session: {
|
|
353
|
+
<%_ if (session === 'dynamodb-s3') { _%>
|
|
354
|
+
tableName: sessionTable.tableName,
|
|
355
|
+
<%_ } _%>
|
|
356
|
+
bucketName: sessionBucket.bucketName,
|
|
357
|
+
},
|
|
258
358
|
<%_ } _%>
|
|
259
359
|
},
|
|
260
360
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
<%_
|
|
1
|
+
<%_ const hasSessionBucket = session === 's3' || session === 'dynamodb-s3'; _%>
|
|
2
|
+
<%_ if (hasSessionBucket) { _%>
|
|
2
3
|
terraform {
|
|
3
4
|
required_providers {
|
|
4
5
|
random = {
|
|
@@ -55,6 +56,22 @@ variable "appconfig_application_id" {
|
|
|
55
56
|
type = string
|
|
56
57
|
}
|
|
57
58
|
|
|
59
|
+
<%_ if (hasSessionBucket) { _%>
|
|
60
|
+
variable "session_force_destroy" {
|
|
61
|
+
description = "Whether to allow the session bucket to be destroyed even if it still contains objects."
|
|
62
|
+
type = bool
|
|
63
|
+
default = false
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
<%_ } _%>
|
|
67
|
+
<%_ if (session === 'dynamodb-s3') { _%>
|
|
68
|
+
variable "session_deletion_protection_enabled" {
|
|
69
|
+
description = "Whether to enable deletion protection on the session checkpoint table."
|
|
70
|
+
type = bool
|
|
71
|
+
default = true
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
<%_ } _%>
|
|
58
75
|
variable "appconfig_application_arn" {
|
|
59
76
|
description = "ARN of the shared runtime-config AppConfig application (from `core/runtime-config/appconfig.application_arn`). Used to scope the IAM read permission granted to the agent runtime."
|
|
60
77
|
type = string
|
|
@@ -72,10 +89,10 @@ variable "user_pool_client_ids" {
|
|
|
72
89
|
}
|
|
73
90
|
|
|
74
91
|
<%_ } _%>
|
|
75
|
-
<%_ if (auth === 'cognito' ||
|
|
92
|
+
<%_ if (auth === 'cognito' || hasSessionBucket) { _%>
|
|
76
93
|
data "aws_region" "current" {}
|
|
77
94
|
<%_ } _%>
|
|
78
|
-
<%_ if (
|
|
95
|
+
<%_ if (hasSessionBucket) { _%>
|
|
79
96
|
data "aws_caller_identity" "current" {}
|
|
80
97
|
<%_ } _%>
|
|
81
98
|
<%_ if (auth === 'cognito') { _%>
|
|
@@ -84,7 +101,7 @@ locals {
|
|
|
84
101
|
aws_region = data.aws_region.current.id
|
|
85
102
|
}
|
|
86
103
|
<%_ } _%>
|
|
87
|
-
<%_ if (
|
|
104
|
+
<%_ if (hasSessionBucket) { _%>
|
|
88
105
|
|
|
89
106
|
locals {
|
|
90
107
|
# Delivery source/destination names have a 60 character maximum. Truncate
|
|
@@ -149,12 +166,13 @@ resource "aws_cloudwatch_log_group" "session_access_logs" {
|
|
|
149
166
|
|
|
150
167
|
# Bucket storing the agent's session data
|
|
151
168
|
resource "aws_s3_bucket" "session" {
|
|
169
|
+
bucket = "<%= nameKebabCase %>-sessions-${random_id.session_unique_suffix.hex}"
|
|
152
170
|
#checkov:skip=CKV2_AWS_61:Lifecycle configuration not required for session data
|
|
153
171
|
#checkov:skip=CKV_AWS_144:Cross-region replication not required for session data
|
|
154
172
|
#checkov:skip=CKV2_AWS_62:Event notifications not required for session data
|
|
155
173
|
#checkov:skip=CKV_AWS_18:Server access logs are delivered to CloudWatch Logs (see aws_cloudwatch_log_delivery.session)
|
|
156
174
|
#checkov:skip=CKV_AWS_21:Session data does not need versioning enabled
|
|
157
|
-
force_destroy =
|
|
175
|
+
force_destroy = var.session_force_destroy
|
|
158
176
|
}
|
|
159
177
|
|
|
160
178
|
resource "aws_s3_bucket_server_side_encryption_configuration" "session" {
|
|
@@ -222,6 +240,45 @@ resource "aws_cloudwatch_log_delivery" "session" {
|
|
|
222
240
|
delivery_destination_arn = aws_cloudwatch_log_delivery_destination.session.arn
|
|
223
241
|
}
|
|
224
242
|
|
|
243
|
+
<%_ } _%>
|
|
244
|
+
<%_ if (session === 'dynamodb-s3') { _%>
|
|
245
|
+
# Unified checkpoints/writes table, matching the schema
|
|
246
|
+
# langgraph_checkpoint_aws.DynamoDBSaver expects (PK/SK, TTL on `ttl`).
|
|
247
|
+
resource "aws_dynamodb_table" "session" {
|
|
248
|
+
name = "<%= nameKebabCase %>-checkpoints-${random_id.session_unique_suffix.hex}"
|
|
249
|
+
billing_mode = "PAY_PER_REQUEST"
|
|
250
|
+
hash_key = "PK"
|
|
251
|
+
range_key = "SK"
|
|
252
|
+
|
|
253
|
+
attribute {
|
|
254
|
+
name = "PK"
|
|
255
|
+
type = "S"
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
attribute {
|
|
259
|
+
name = "SK"
|
|
260
|
+
type = "S"
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
ttl {
|
|
264
|
+
attribute_name = "ttl"
|
|
265
|
+
enabled = true
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
point_in_time_recovery {
|
|
269
|
+
enabled = true
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
server_side_encryption {
|
|
273
|
+
enabled = true
|
|
274
|
+
kms_key_arn = aws_kms_key.session.arn
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
deletion_protection_enabled = var.session_deletion_protection_enabled
|
|
278
|
+
|
|
279
|
+
tags = var.tags
|
|
280
|
+
}
|
|
281
|
+
|
|
225
282
|
<%_ } _%>
|
|
226
283
|
module "agent_core_runtime" {
|
|
227
284
|
source = "../../../core/agent-core"
|
|
@@ -263,7 +320,7 @@ module "agent_core_runtime" {
|
|
|
263
320
|
"arn:aws:bedrock:*:*:foundation-model/*",
|
|
264
321
|
"arn:aws:bedrock:*:*:inference-profile/*"
|
|
265
322
|
]
|
|
266
|
-
}<% } %><% if (
|
|
323
|
+
}<% } %><% if (hasSessionBucket) { %>,
|
|
267
324
|
# Grant access for the agent to read/write its session data
|
|
268
325
|
{
|
|
269
326
|
Effect = "Allow"
|
|
@@ -286,6 +343,18 @@ module "agent_core_runtime" {
|
|
|
286
343
|
"kms:GenerateDataKey*"
|
|
287
344
|
]
|
|
288
345
|
Resource = [aws_kms_key.session.arn]
|
|
346
|
+
}<% } %><% if (session === 'dynamodb-s3') { %>,
|
|
347
|
+
# Grant access for the agent to read/write its checkpoint table
|
|
348
|
+
{
|
|
349
|
+
Effect = "Allow"
|
|
350
|
+
Action = [
|
|
351
|
+
"dynamodb:GetItem",
|
|
352
|
+
"dynamodb:PutItem",
|
|
353
|
+
"dynamodb:Query",
|
|
354
|
+
"dynamodb:BatchGetItem",
|
|
355
|
+
"dynamodb:BatchWriteItem"
|
|
356
|
+
]
|
|
357
|
+
Resource = [aws_dynamodb_table.session.arn]
|
|
289
358
|
}<% } %>
|
|
290
359
|
], var.additional_iam_policy_statements)
|
|
291
360
|
tags = var.tags
|
|
@@ -297,7 +366,7 @@ module "add_agent_runtime_to_runtime_config" {
|
|
|
297
366
|
|
|
298
367
|
namespace = "agentcore"
|
|
299
368
|
key = "agentRuntimes"
|
|
300
|
-
value = { "<%= nameClassName %>" = { arn = module.agent_core_runtime.agent_core_runtime_arn<% if (session === 's3') {
|
|
369
|
+
value = { "<%= nameClassName %>" = { arn = module.agent_core_runtime.agent_core_runtime_arn<% if (hasSessionBucket) { %>, session = { <% if (session === 'dynamodb-s3') { %>tableName = aws_dynamodb_table.session.name, <% } %>bucketName = aws_s3_bucket.session.bucket }<% } %> } }
|
|
301
370
|
|
|
302
371
|
depends_on = [module.agent_core_runtime]
|
|
303
372
|
}
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -170,6 +170,7 @@ export declare const PY_VERSIONS: {
|
|
|
170
170
|
readonly 'ag-ui-langgraph': "==0.0.42";
|
|
171
171
|
readonly 'ag-ui-protocol': "==0.1.19";
|
|
172
172
|
readonly 'ag-ui-strands': "==0.2.4";
|
|
173
|
+
readonly aiosqlite: "==0.22.1";
|
|
173
174
|
readonly 'aws-lambda-powertools': "==3.31.1";
|
|
174
175
|
readonly 'aws-lambda-powertools[tracer]': "==3.31.1";
|
|
175
176
|
readonly 'aws-lambda-powertools[parser]': "==3.31.1";
|
|
@@ -184,6 +185,8 @@ export declare const PY_VERSIONS: {
|
|
|
184
185
|
readonly 'langchain-aws': "==1.7.0";
|
|
185
186
|
readonly 'langchain-mcp-adapters': "==0.3.2";
|
|
186
187
|
readonly langgraph: "==1.2.10";
|
|
188
|
+
readonly 'langgraph-checkpoint-aws': "==1.2.0";
|
|
189
|
+
readonly 'langgraph-checkpoint-sqlite': "==3.1.1";
|
|
187
190
|
readonly mcp: "==1.28.1";
|
|
188
191
|
readonly 'pip-check-updates': "==0.29.0";
|
|
189
192
|
readonly 'pip-licenses': "==5.5.5";
|
|
@@ -274,7 +277,7 @@ export declare const containerImage: (tool: keyof typeof CONTAINER_VERSIONS) =>
|
|
|
274
277
|
* Pinned exactly (no range operator) so generated infrastructure is reproducible.
|
|
275
278
|
*/
|
|
276
279
|
export declare const TERRAFORM_VERSIONS: {
|
|
277
|
-
readonly aws: "6.
|
|
280
|
+
readonly aws: "6.60.0";
|
|
278
281
|
readonly random: "3.9.0";
|
|
279
282
|
readonly null: "3.3.0";
|
|
280
283
|
readonly archive: "2.8.0";
|
|
@@ -288,7 +291,7 @@ export type ITerraformProviderVersion = keyof typeof TERRAFORM_VERSIONS;
|
|
|
288
291
|
* generated `.tf` templates (e.g. `version = "<%- awsProviderVersion %>"`)
|
|
289
292
|
*/
|
|
290
293
|
export declare const terraformProviderVersions: () => {
|
|
291
|
-
awsProviderVersion: "6.
|
|
294
|
+
awsProviderVersion: "6.60.0";
|
|
292
295
|
randomProviderVersion: "3.9.0";
|
|
293
296
|
nullProviderVersion: "3.3.0";
|
|
294
297
|
archiveProviderVersion: "2.8.0";
|
package/src/utils/versions.js
CHANGED
|
@@ -185,6 +185,7 @@
|
|
|
185
185
|
'ag-ui-langgraph': '==0.0.42',
|
|
186
186
|
'ag-ui-protocol': '==0.1.19',
|
|
187
187
|
'ag-ui-strands': '==0.2.4',
|
|
188
|
+
aiosqlite: '==0.22.1',
|
|
188
189
|
'aws-lambda-powertools': '==3.31.1',
|
|
189
190
|
'aws-lambda-powertools[tracer]': '==3.31.1',
|
|
190
191
|
'aws-lambda-powertools[parser]': '==3.31.1',
|
|
@@ -199,6 +200,8 @@
|
|
|
199
200
|
'langchain-aws': '==1.7.0',
|
|
200
201
|
'langchain-mcp-adapters': '==0.3.2',
|
|
201
202
|
langgraph: '==1.2.10',
|
|
203
|
+
'langgraph-checkpoint-aws': '==1.2.0',
|
|
204
|
+
'langgraph-checkpoint-sqlite': '==3.1.1',
|
|
202
205
|
mcp: '==1.28.1',
|
|
203
206
|
'pip-check-updates': '==0.29.0',
|
|
204
207
|
'pip-licenses': '==5.5.5',
|
|
@@ -288,7 +291,7 @@
|
|
|
288
291
|
* Exact versions for Terraform providers used by generated `.tf` modules.
|
|
289
292
|
* Pinned exactly (no range operator) so generated infrastructure is reproducible.
|
|
290
293
|
*/ export const TERRAFORM_VERSIONS = {
|
|
291
|
-
aws: '6.
|
|
294
|
+
aws: '6.60.0',
|
|
292
295
|
random: '3.9.0',
|
|
293
296
|
null: '3.3.0',
|
|
294
297
|
archive: '2.8.0',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type DeclaredPy,\n type DeclaredTs,\n type DependencyDeclaration,\n declaredNames,\n} from './declared-dependencies';\n\n/**\n * Versons for TypeScript dependencies added by generators\n */\nexport const TS_VERSIONS = {\n '@a2a-js/sdk': '0.3.14',\n '@aws/aws-distro-opentelemetry-node-autoinstrumentation': '0.12.0',\n // Pinned above the version the ADOT autoinstrumentation package resolves\n // transitively (2.8.0) to clear CVE-2026-59892 (HIGH).\n '@opentelemetry/propagator-jaeger': '2.10.0',\n // Overridden in the vended agent/MCP image builds to clear CVE-2026-14257\n // (HIGH) in brace-expansion: minimatch 10 is the lowest major depending on\n // brace-expansion 5.x, the only line Trivy's `< 5.0.8` advisory range treats\n // as fixed. Overriding brace-expansion directly is not viable — 5.x drops the\n // CommonJS default export that minimatch 9 calls.\n minimatch: '10.2.6',\n '@aws-sdk/client-dynamodb': '3.1106.0',\n '@aws-sdk/client-api-gateway': '3.1106.0',\n '@aws-sdk/client-iam': '3.1106.0',\n '@aws-sdk/client-bedrock-agentcore': '3.1106.0',\n '@aws-sdk/client-bedrock-runtime': '3.1106.0',\n '@aws-sdk/client-s3': '3.1106.0',\n '@aws-sdk/client-sts': '3.1106.0',\n '@aws-sdk/credential-providers': '3.1106.0',\n '@aws-sdk/credential-provider-cognito-identity': '3.972.66',\n '@aws-sdk/client-secrets-manager': '3.1106.0',\n '@aws-sdk/rds-signer': '3.1106.0',\n '@smithy/server-apigateway': '0.2.0',\n '@smithy/server-node': '0.2.0',\n '@aws-lambda-powertools/logger': '2.34.0',\n '@aws-lambda-powertools/metrics': '2.34.0',\n '@aws-lambda-powertools/parameters': '2.34.0',\n '@aws-lambda-powertools/tracer': '2.34.0',\n '@aws-lambda-powertools/parser': '2.34.0',\n '@aws-sdk/client-appconfigdata': '3.1106.0',\n '@middy/core': '7.7.2',\n '@nxlv/python': '22.2.2',\n '@nx-extend/terraform': '10.4.1',\n // These must all hold the same version — see NX_PACKAGES.\n nx: '23.1.1',\n '@nx/devkit': '23.1.1',\n '@nx/js': '23.1.1',\n '@nx/react': '23.1.1',\n '@nx/vite': '23.1.1',\n '@nx/vitest': '23.1.1',\n '@nx/workspace': '23.1.1',\n 'create-nx-workspace': '23.1.1',\n '@swc-node/register': '1.12.1',\n '@swc/core': '1.15.47',\n '@modelcontextprotocol/sdk': '1.30.0',\n '@modelcontextprotocol/inspector': '0.22.0',\n '@ag-ui/a2ui-toolkit': '0.0.4',\n '@ag-ui/aws-strands': '0.2.3',\n '@ag-ui/client': '0.0.57',\n '@ag-ui/core': '0.0.57',\n '@ag-ui/encoder': '0.0.57',\n 'agent-chat-cli': '0.3.0',\n '@copilotkit/react-core': '1.66.4',\n rxjs: '7.8.2',\n '@strands-agents/sdk': '1.12.0',\n '@tanstack/react-router': '1.170.23',\n '@tanstack/router-plugin': '1.168.27',\n '@tanstack/router-generator': '1.167.25',\n '@tanstack/virtual-file-routes': '1.162.0',\n '@tanstack/router-utils': '1.162.2',\n '@cloudscape-design/board-components': '3.0.213',\n '@cloudscape-design/chat-components': '1.0.157',\n '@cloudscape-design/components': '3.0.1342',\n '@cloudscape-design/global-styles': '1.0.65',\n '@tanstack/react-query': '5.101.4',\n '@tanstack/react-query-devtools': '5.101.4',\n '@trpc/tanstack-react-query': '11.18.0',\n '@trpc/client': '11.18.0',\n '@trpc/server': '11.18.0',\n '@types/node': '26.2.0',\n '@types/aws-lambda': '8.10.162',\n '@types/cors': '2.8.19',\n '@types/pg': '8.21.0',\n '@types/ws': '8.18.1',\n '@types/express': '5.0.6',\n '@smithy/config-resolver': '4.6.16',\n '@smithy/node-config-provider': '4.5.16',\n '@smithy/node-http-handler': '4.9.13',\n '@smithy/types': '4.16.1',\n '@vitest/coverage-v8': '4.1.10',\n '@vitest/ui': '4.1.10',\n '@astrojs/react': '6.0.2',\n '@astrojs/starlight': '0.41.3',\n astro: '7.1.1',\n aws4fetch: '1.0.20',\n 'aws-cdk': '2.1135.1',\n 'aws-cdk-lib': '2.263.0',\n 'aws-xray-sdk-core': '3.12.0',\n constructs: '10.8.1',\n cors: '2.8.6',\n chalk: '5.6.2',\n 'class-variance-authority': '0.7.1',\n clsx: '2.1.1',\n commander: '15.0.0',\n 'cpy-cli': '7.0.0',\n electrodb: '3.9.2',\n esbuild: '0.28.2',\n 'event-source-polyfill': '1.0.31',\n '@types/event-source-polyfill': '1.0.5',\n '@biomejs/biome': '2.5.7',\n '@prisma/adapter-mariadb': '7.9.1',\n '@prisma/adapter-pg': '7.9.1',\n '@prisma/client': '7.9.1',\n ejs: '6.0.1',\n '@types/ejs': '3.1.5',\n express: '5.2.1',\n 'fast-glob': '3.3.3',\n husky: '9.1.7',\n 'fs-extra': '11.4.0',\n '@types/fs-extra': '11.0.4',\n 'make-dir-cli': '4.0.0',\n mariadb: '3.5.3',\n mise: '2026.8.3',\n ncp: '2.0.0',\n npm: '12.0.2',\n 'npm-check-updates': '22.2.9',\n 'oidc-client-ts': '3.5.0',\n pg: '8.23.0',\n prisma: '7.9.1',\n 'react-oidc-context': '3.3.1',\n react: '19.2.8',\n 'react-dom': '19.2.8',\n rimraf: '6.1.3',\n rolldown: '1.2.3',\n 'rolldown-plugin-dts': '0.28.0',\n 'simple-git': '3.36.0',\n 'source-map-support': '0.5.21',\n 'starlight-blog': '0.28.0',\n tailwindcss: '4.3.3',\n '@tailwindcss/vite': '4.3.3',\n tsx: '4.23.11',\n 'lucide-react': '1.30.0',\n 'radix-ui': '1.6.7',\n shadcn: '4.16.2',\n 'tw-animate-css': '1.4.0',\n 'tailwind-merge': '3.6.0',\n vite: '8.2.1',\n typescript: '6.0.3',\n vitest: '4.1.10',\n zod: '4.4.3',\n ws: '8.21.3',\n} as const;\nexport type ITsDepVersion = keyof typeof TS_VERSIONS;\n\n/**\n * Add versions to the given dependencies, which the declaration must own.\n *\n * @param declaration the calling generator's `DEPENDENCIES`\n */\nexport const withVersions = <D extends DependencyDeclaration>(\n declaration: D,\n deps: readonly DeclaredTs<D>[],\n): Record<string, string> => {\n assertDeclared(declaration.ts, deps, 'ts');\n return Object.fromEntries(\n deps.map((dep) => [dep, TS_VERSIONS[dep as ITsDepVersion]]),\n );\n};\n\n/**\n * The `nx` and `@nx/*` packages a generated workspace pins, all of which must\n * hold the same version: a workspace nx even a patch apart hoists a second\n * nested nx, and the two deadlock `nx sync`.\n *\n * Bumping them in a user's workspace requires `packageJsonUpdates` rather than a\n * migration — see `version-upgrade-migration/nx-package-updates.ts`.\n */\nexport const NX_PACKAGES = [\n 'nx',\n '@nx/devkit',\n '@nx/js',\n '@nx/react',\n '@nx/vite',\n '@nx/vitest',\n '@nx/workspace',\n] as const satisfies readonly ITsDepVersion[];\n\n/**\n * The nx version the plugin is built against, and the single source of truth\n * for every place a workspace's nx is pinned.\n */\nexport const NX_VERSION = TS_VERSIONS.nx;\n\n/**\n * Versions for Python dependencies added by generators\n */\nexport const PY_VERSIONS = {\n 'a2a-sdk': '==0.3.26',\n 'ag-ui-langgraph': '==0.0.42',\n 'ag-ui-protocol': '==0.1.19',\n 'ag-ui-strands': '==0.2.4',\n 'aws-lambda-powertools': '==3.31.1',\n 'aws-lambda-powertools[tracer]': '==3.31.1',\n 'aws-lambda-powertools[parser]': '==3.31.1',\n 'aws-opentelemetry-distro': '==0.19.0',\n 'bedrock-agentcore': '==1.21.0',\n boto3: '==1.43.67',\n checkov: '==3.3.9',\n fastapi: '==0.141.1',\n 'fastapi[standard]': '==0.141.1',\n httpx: '==0.28.1',\n langchain: '==1.3.14',\n 'langchain-aws': '==1.7.0',\n 'langchain-mcp-adapters': '==0.3.2',\n langgraph: '==1.2.10',\n mcp: '==1.28.1',\n 'pip-check-updates': '==0.29.0',\n 'pip-licenses': '==5.5.5',\n ruff: '==0.16.2',\n 'strands-agents': '==1.51.0',\n 'strands-agents[a2a]': '==1.51.0',\n 'strands-agents-tools': '==0.8.6',\n ty: '==0.0.69',\n pynamodb: '==6.1.0',\n uvicorn: '==0.52.1',\n sqlmodel: '==0.0.39',\n alembic: '==1.19.1',\n aiomysql: '==0.3.2',\n asyncpg: '==0.31.0',\n // Pinned explicitly: SQLAlchemy's async engine pulls greenlet transitively,\n // and leaving it unpinned lets uv resolve to a just-released version whose\n // platform wheels may not all be published yet (breaking aarch64 installs).\n greenlet: '==3.5.4',\n} as const;\nexport type IPyDepVersion = keyof typeof PY_VERSIONS;\n\n/**\n * Add versions to the given dependencies\n */\nexport const withPyVersions = <D extends DependencyDeclaration>(\n declaration: D,\n deps: readonly DeclaredPy<D>[],\n): string[] => {\n assertDeclared(declaration.py, deps, 'py');\n return deps.map((dep) => `${dep}${PY_VERSIONS[dep as IPyDepVersion]}`);\n};\n\n/** Catches undeclared packages that reach here past the type checker. */\nconst assertDeclared = (\n declared: readonly { readonly name: string }[],\n deps: readonly unknown[],\n kind: 'ts' | 'py',\n): void => {\n const names = declaredNames(declared);\n const undeclared = deps.filter((dep) => !names.includes(dep as string));\n if (undeclared.length > 0) {\n throw new Error(\n `Undeclared ${kind} dependencies: ${undeclared.join(', ')}. Add them to the generator's declareDependencies({ ${kind}: [...] }).`,\n );\n }\n};\n\n/**\n * Versions for vendored tools\n */\nexport const VENDORED_VERSIONS = {\n 'git-secrets': '1.3.0',\n} as const;\n\n/**\n * Versions of Java dependencies added by generators, keyed by Maven coordinate.\n *\n * Every entry is resolved from Maven Central by the version update and named\n * `<group>:<artifact>:<version>` where a generator writes it.\n */\nexport const JAVA_VERSIONS = {\n 'software.amazon.smithy:smithy-model': '1.72.1',\n 'software.amazon.smithy:smithy-aws-traits': '1.72.1',\n 'software.amazon.smithy:smithy-validation-model': '1.72.1',\n 'software.amazon.smithy:smithy-openapi': '1.72.1',\n 'software.amazon.smithy.typescript:smithy-aws-typescript-codegen': '0.52.0',\n} as const;\nexport type IJavaVersion = keyof typeof JAVA_VERSIONS;\n\n/** The Maven coordinates the version update resolves, in declaration order. */\nexport const JAVA_ARTIFACTS = Object.keys(JAVA_VERSIONS) as IJavaVersion[];\n\n/** A Maven coordinate as a dependency names it: `<group>:<artifact>:<version>`. */\nexport const javaMavenDependency = (artifact: IJavaVersion): string =>\n `${artifact}:${JAVA_VERSIONS[artifact]}`;\n\n/**\n * Versions of tools resolved by mise, keyed by the tool name mise knows.\n *\n * Every entry is checked with `mise latest <tool>` by the version update. Nothing\n * is installed into the workspace: the pin travels in the `project.json` target\n * command, which is what the version sync reaches to move it forward.\n */\nexport const MISE_VERSIONS = {\n smithy: '1.72.1',\n} as const;\nexport type IMiseVersion = keyof typeof MISE_VERSIONS;\n\n/** The tools the version update resolves through mise, in declaration order. */\nexport const MISE_TOOLS = Object.keys(MISE_VERSIONS) as IMiseVersion[];\n\n/**\n * Base container images used by generated Dockerfiles. Pinned exactly so\n * generated images are reproducible, and chosen to be free of known\n * HIGH/CRITICAL vulnerabilities at time of generation.\n */\nexport const BASE_IMAGES = {\n node: 'public.ecr.aws/docker/library/node:lts-slim',\n python: 'public.ecr.aws/docker/library/python:3.14-slim',\n} as const;\n\n/**\n * Versions for container tooling used by generated image build/scan targets.\n * Pinned exactly so generated images are reproducible.\n */\nexport const CONTAINER_VERSIONS = {\n // ECR-hosted Trivy image used to scan built images during the build.\n trivy: '0.72.0',\n} as const;\n\n/**\n * Repository each pinned tool image is pulled from, keyed as\n * {@link CONTAINER_VERSIONS}. Kept beside the versions so a tool added here is\n * one entry rather than a reference built somewhere else, which is also what\n * lets the version sync find these pins wherever a target command runs them.\n */\nexport const CONTAINER_REPOSITORIES = {\n trivy: 'public.ecr.aws/aquasecurity/trivy',\n} as const satisfies Record<keyof typeof CONTAINER_VERSIONS, string>;\n\n/** The pinned reference for a tool image, as a target command runs it. */\nexport const containerImage = (tool: keyof typeof CONTAINER_VERSIONS): string =>\n `${CONTAINER_REPOSITORIES[tool]}:${CONTAINER_VERSIONS[tool]}`;\n\n/**\n * Exact versions for Terraform providers used by generated `.tf` modules.\n * Pinned exactly (no range operator) so generated infrastructure is reproducible.\n */\nexport const TERRAFORM_VERSIONS = {\n aws: '6.58.0',\n random: '3.9.0',\n null: '3.3.0',\n archive: '2.8.0',\n external: '2.4.0',\n local: '2.9.0',\n time: '0.14.0',\n} as const;\nexport type ITerraformProviderVersion = keyof typeof TERRAFORM_VERSIONS;\n\n/**\n * Substitution variables exposing Terraform provider version constraints to\n * generated `.tf` templates (e.g. `version = \"<%- awsProviderVersion %>\"`)\n */\nexport const terraformProviderVersions = () => ({\n awsProviderVersion: TERRAFORM_VERSIONS.aws,\n randomProviderVersion: TERRAFORM_VERSIONS.random,\n nullProviderVersion: TERRAFORM_VERSIONS.null,\n archiveProviderVersion: TERRAFORM_VERSIONS.archive,\n externalProviderVersion: TERRAFORM_VERSIONS.external,\n localProviderVersion: TERRAFORM_VERSIONS.local,\n timeProviderVersion: TERRAFORM_VERSIONS.time,\n});\n"],"names":["declaredNames","TS_VERSIONS","minimatch","nx","rxjs","astro","aws4fetch","constructs","cors","chalk","clsx","commander","electrodb","esbuild","ejs","express","husky","mariadb","mise","ncp","npm","pg","prisma","react","rimraf","rolldown","tailwindcss","tsx","shadcn","vite","typescript","vitest","zod","ws","withVersions","declaration","deps","assertDeclared","ts","Object","fromEntries","map","dep","NX_PACKAGES","NX_VERSION","PY_VERSIONS","boto3","checkov","fastapi","httpx","langchain","langgraph","mcp","ruff","ty","pynamodb","uvicorn","sqlmodel","alembic","aiomysql","asyncpg","greenlet","withPyVersions","py","declared","kind","names","undeclared","filter","includes","length","Error","join","VENDORED_VERSIONS","JAVA_VERSIONS","JAVA_ARTIFACTS","keys","javaMavenDependency","artifact","MISE_VERSIONS","smithy","MISE_TOOLS","BASE_IMAGES","node","python","CONTAINER_VERSIONS","trivy","CONTAINER_REPOSITORIES","containerImage","tool","TERRAFORM_VERSIONS","aws","random","null","archive","external","local","time","terraformProviderVersions","awsProviderVersion","randomProviderVersion","nullProviderVersion","archiveProviderVersion","externalProviderVersion","localProviderVersion","timeProviderVersion"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type DeclaredPy,\n type DeclaredTs,\n type DependencyDeclaration,\n declaredNames,\n} from './declared-dependencies';\n\n/**\n * Versons for TypeScript dependencies added by generators\n */\nexport const TS_VERSIONS = {\n '@a2a-js/sdk': '0.3.14',\n '@aws/aws-distro-opentelemetry-node-autoinstrumentation': '0.12.0',\n // Pinned above the version the ADOT autoinstrumentation package resolves\n // transitively (2.8.0) to clear CVE-2026-59892 (HIGH).\n '@opentelemetry/propagator-jaeger': '2.10.0',\n // Overridden in the vended agent/MCP image builds to clear CVE-2026-14257\n // (HIGH) in brace-expansion: minimatch 10 is the lowest major depending on\n // brace-expansion 5.x, the only line Trivy's `< 5.0.8` advisory range treats\n // as fixed. Overriding brace-expansion directly is not viable — 5.x drops the\n // CommonJS default export that minimatch 9 calls.\n minimatch: '10.2.6',\n '@aws-sdk/client-dynamodb': '3.1106.0',\n '@aws-sdk/client-api-gateway': '3.1106.0',\n '@aws-sdk/client-iam': '3.1106.0',\n '@aws-sdk/client-bedrock-agentcore': '3.1106.0',\n '@aws-sdk/client-bedrock-runtime': '3.1106.0',\n '@aws-sdk/client-s3': '3.1106.0',\n '@aws-sdk/client-sts': '3.1106.0',\n '@aws-sdk/credential-providers': '3.1106.0',\n '@aws-sdk/credential-provider-cognito-identity': '3.972.66',\n '@aws-sdk/client-secrets-manager': '3.1106.0',\n '@aws-sdk/rds-signer': '3.1106.0',\n '@smithy/server-apigateway': '0.2.0',\n '@smithy/server-node': '0.2.0',\n '@aws-lambda-powertools/logger': '2.34.0',\n '@aws-lambda-powertools/metrics': '2.34.0',\n '@aws-lambda-powertools/parameters': '2.34.0',\n '@aws-lambda-powertools/tracer': '2.34.0',\n '@aws-lambda-powertools/parser': '2.34.0',\n '@aws-sdk/client-appconfigdata': '3.1106.0',\n '@middy/core': '7.7.2',\n '@nxlv/python': '22.2.2',\n '@nx-extend/terraform': '10.4.1',\n // These must all hold the same version — see NX_PACKAGES.\n nx: '23.1.1',\n '@nx/devkit': '23.1.1',\n '@nx/js': '23.1.1',\n '@nx/react': '23.1.1',\n '@nx/vite': '23.1.1',\n '@nx/vitest': '23.1.1',\n '@nx/workspace': '23.1.1',\n 'create-nx-workspace': '23.1.1',\n '@swc-node/register': '1.12.1',\n '@swc/core': '1.15.47',\n '@modelcontextprotocol/sdk': '1.30.0',\n '@modelcontextprotocol/inspector': '0.22.0',\n '@ag-ui/a2ui-toolkit': '0.0.4',\n '@ag-ui/aws-strands': '0.2.3',\n '@ag-ui/client': '0.0.57',\n '@ag-ui/core': '0.0.57',\n '@ag-ui/encoder': '0.0.57',\n 'agent-chat-cli': '0.3.0',\n '@copilotkit/react-core': '1.66.4',\n rxjs: '7.8.2',\n '@strands-agents/sdk': '1.12.0',\n '@tanstack/react-router': '1.170.23',\n '@tanstack/router-plugin': '1.168.27',\n '@tanstack/router-generator': '1.167.25',\n '@tanstack/virtual-file-routes': '1.162.0',\n '@tanstack/router-utils': '1.162.2',\n '@cloudscape-design/board-components': '3.0.213',\n '@cloudscape-design/chat-components': '1.0.157',\n '@cloudscape-design/components': '3.0.1342',\n '@cloudscape-design/global-styles': '1.0.65',\n '@tanstack/react-query': '5.101.4',\n '@tanstack/react-query-devtools': '5.101.4',\n '@trpc/tanstack-react-query': '11.18.0',\n '@trpc/client': '11.18.0',\n '@trpc/server': '11.18.0',\n '@types/node': '26.2.0',\n '@types/aws-lambda': '8.10.162',\n '@types/cors': '2.8.19',\n '@types/pg': '8.21.0',\n '@types/ws': '8.18.1',\n '@types/express': '5.0.6',\n '@smithy/config-resolver': '4.6.16',\n '@smithy/node-config-provider': '4.5.16',\n '@smithy/node-http-handler': '4.9.13',\n '@smithy/types': '4.16.1',\n '@vitest/coverage-v8': '4.1.10',\n '@vitest/ui': '4.1.10',\n '@astrojs/react': '6.0.2',\n '@astrojs/starlight': '0.41.3',\n astro: '7.1.1',\n aws4fetch: '1.0.20',\n 'aws-cdk': '2.1135.1',\n 'aws-cdk-lib': '2.263.0',\n 'aws-xray-sdk-core': '3.12.0',\n constructs: '10.8.1',\n cors: '2.8.6',\n chalk: '5.6.2',\n 'class-variance-authority': '0.7.1',\n clsx: '2.1.1',\n commander: '15.0.0',\n 'cpy-cli': '7.0.0',\n electrodb: '3.9.2',\n esbuild: '0.28.2',\n 'event-source-polyfill': '1.0.31',\n '@types/event-source-polyfill': '1.0.5',\n '@biomejs/biome': '2.5.7',\n '@prisma/adapter-mariadb': '7.9.1',\n '@prisma/adapter-pg': '7.9.1',\n '@prisma/client': '7.9.1',\n ejs: '6.0.1',\n '@types/ejs': '3.1.5',\n express: '5.2.1',\n 'fast-glob': '3.3.3',\n husky: '9.1.7',\n 'fs-extra': '11.4.0',\n '@types/fs-extra': '11.0.4',\n 'make-dir-cli': '4.0.0',\n mariadb: '3.5.3',\n mise: '2026.8.3',\n ncp: '2.0.0',\n npm: '12.0.2',\n 'npm-check-updates': '22.2.9',\n 'oidc-client-ts': '3.5.0',\n pg: '8.23.0',\n prisma: '7.9.1',\n 'react-oidc-context': '3.3.1',\n react: '19.2.8',\n 'react-dom': '19.2.8',\n rimraf: '6.1.3',\n rolldown: '1.2.3',\n 'rolldown-plugin-dts': '0.28.0',\n 'simple-git': '3.36.0',\n 'source-map-support': '0.5.21',\n 'starlight-blog': '0.28.0',\n tailwindcss: '4.3.3',\n '@tailwindcss/vite': '4.3.3',\n tsx: '4.23.11',\n 'lucide-react': '1.30.0',\n 'radix-ui': '1.6.7',\n shadcn: '4.16.2',\n 'tw-animate-css': '1.4.0',\n 'tailwind-merge': '3.6.0',\n vite: '8.2.1',\n typescript: '6.0.3',\n vitest: '4.1.10',\n zod: '4.4.3',\n ws: '8.21.3',\n} as const;\nexport type ITsDepVersion = keyof typeof TS_VERSIONS;\n\n/**\n * Add versions to the given dependencies, which the declaration must own.\n *\n * @param declaration the calling generator's `DEPENDENCIES`\n */\nexport const withVersions = <D extends DependencyDeclaration>(\n declaration: D,\n deps: readonly DeclaredTs<D>[],\n): Record<string, string> => {\n assertDeclared(declaration.ts, deps, 'ts');\n return Object.fromEntries(\n deps.map((dep) => [dep, TS_VERSIONS[dep as ITsDepVersion]]),\n );\n};\n\n/**\n * The `nx` and `@nx/*` packages a generated workspace pins, all of which must\n * hold the same version: a workspace nx even a patch apart hoists a second\n * nested nx, and the two deadlock `nx sync`.\n *\n * Bumping them in a user's workspace requires `packageJsonUpdates` rather than a\n * migration — see `version-upgrade-migration/nx-package-updates.ts`.\n */\nexport const NX_PACKAGES = [\n 'nx',\n '@nx/devkit',\n '@nx/js',\n '@nx/react',\n '@nx/vite',\n '@nx/vitest',\n '@nx/workspace',\n] as const satisfies readonly ITsDepVersion[];\n\n/**\n * The nx version the plugin is built against, and the single source of truth\n * for every place a workspace's nx is pinned.\n */\nexport const NX_VERSION = TS_VERSIONS.nx;\n\n/**\n * Versions for Python dependencies added by generators\n */\nexport const PY_VERSIONS = {\n 'a2a-sdk': '==0.3.26',\n 'ag-ui-langgraph': '==0.0.42',\n 'ag-ui-protocol': '==0.1.19',\n 'ag-ui-strands': '==0.2.4',\n aiosqlite: '==0.22.1',\n 'aws-lambda-powertools': '==3.31.1',\n 'aws-lambda-powertools[tracer]': '==3.31.1',\n 'aws-lambda-powertools[parser]': '==3.31.1',\n 'aws-opentelemetry-distro': '==0.19.0',\n 'bedrock-agentcore': '==1.21.0',\n boto3: '==1.43.67',\n checkov: '==3.3.9',\n fastapi: '==0.141.1',\n 'fastapi[standard]': '==0.141.1',\n httpx: '==0.28.1',\n langchain: '==1.3.14',\n 'langchain-aws': '==1.7.0',\n 'langchain-mcp-adapters': '==0.3.2',\n langgraph: '==1.2.10',\n 'langgraph-checkpoint-aws': '==1.2.0',\n 'langgraph-checkpoint-sqlite': '==3.1.1',\n mcp: '==1.28.1',\n 'pip-check-updates': '==0.29.0',\n 'pip-licenses': '==5.5.5',\n ruff: '==0.16.2',\n 'strands-agents': '==1.51.0',\n 'strands-agents[a2a]': '==1.51.0',\n 'strands-agents-tools': '==0.8.6',\n ty: '==0.0.69',\n pynamodb: '==6.1.0',\n uvicorn: '==0.52.1',\n sqlmodel: '==0.0.39',\n alembic: '==1.19.1',\n aiomysql: '==0.3.2',\n asyncpg: '==0.31.0',\n // Pinned explicitly: SQLAlchemy's async engine pulls greenlet transitively,\n // and leaving it unpinned lets uv resolve to a just-released version whose\n // platform wheels may not all be published yet (breaking aarch64 installs).\n greenlet: '==3.5.4',\n} as const;\nexport type IPyDepVersion = keyof typeof PY_VERSIONS;\n\n/**\n * Add versions to the given dependencies\n */\nexport const withPyVersions = <D extends DependencyDeclaration>(\n declaration: D,\n deps: readonly DeclaredPy<D>[],\n): string[] => {\n assertDeclared(declaration.py, deps, 'py');\n return deps.map((dep) => `${dep}${PY_VERSIONS[dep as IPyDepVersion]}`);\n};\n\n/** Catches undeclared packages that reach here past the type checker. */\nconst assertDeclared = (\n declared: readonly { readonly name: string }[],\n deps: readonly unknown[],\n kind: 'ts' | 'py',\n): void => {\n const names = declaredNames(declared);\n const undeclared = deps.filter((dep) => !names.includes(dep as string));\n if (undeclared.length > 0) {\n throw new Error(\n `Undeclared ${kind} dependencies: ${undeclared.join(', ')}. Add them to the generator's declareDependencies({ ${kind}: [...] }).`,\n );\n }\n};\n\n/**\n * Versions for vendored tools\n */\nexport const VENDORED_VERSIONS = {\n 'git-secrets': '1.3.0',\n} as const;\n\n/**\n * Versions of Java dependencies added by generators, keyed by Maven coordinate.\n *\n * Every entry is resolved from Maven Central by the version update and named\n * `<group>:<artifact>:<version>` where a generator writes it.\n */\nexport const JAVA_VERSIONS = {\n 'software.amazon.smithy:smithy-model': '1.72.1',\n 'software.amazon.smithy:smithy-aws-traits': '1.72.1',\n 'software.amazon.smithy:smithy-validation-model': '1.72.1',\n 'software.amazon.smithy:smithy-openapi': '1.72.1',\n 'software.amazon.smithy.typescript:smithy-aws-typescript-codegen': '0.52.0',\n} as const;\nexport type IJavaVersion = keyof typeof JAVA_VERSIONS;\n\n/** The Maven coordinates the version update resolves, in declaration order. */\nexport const JAVA_ARTIFACTS = Object.keys(JAVA_VERSIONS) as IJavaVersion[];\n\n/** A Maven coordinate as a dependency names it: `<group>:<artifact>:<version>`. */\nexport const javaMavenDependency = (artifact: IJavaVersion): string =>\n `${artifact}:${JAVA_VERSIONS[artifact]}`;\n\n/**\n * Versions of tools resolved by mise, keyed by the tool name mise knows.\n *\n * Every entry is checked with `mise latest <tool>` by the version update. Nothing\n * is installed into the workspace: the pin travels in the `project.json` target\n * command, which is what the version sync reaches to move it forward.\n */\nexport const MISE_VERSIONS = {\n smithy: '1.72.1',\n} as const;\nexport type IMiseVersion = keyof typeof MISE_VERSIONS;\n\n/** The tools the version update resolves through mise, in declaration order. */\nexport const MISE_TOOLS = Object.keys(MISE_VERSIONS) as IMiseVersion[];\n\n/**\n * Base container images used by generated Dockerfiles. Pinned exactly so\n * generated images are reproducible, and chosen to be free of known\n * HIGH/CRITICAL vulnerabilities at time of generation.\n */\nexport const BASE_IMAGES = {\n node: 'public.ecr.aws/docker/library/node:lts-slim',\n python: 'public.ecr.aws/docker/library/python:3.14-slim',\n} as const;\n\n/**\n * Versions for container tooling used by generated image build/scan targets.\n * Pinned exactly so generated images are reproducible.\n */\nexport const CONTAINER_VERSIONS = {\n // ECR-hosted Trivy image used to scan built images during the build.\n trivy: '0.72.0',\n} as const;\n\n/**\n * Repository each pinned tool image is pulled from, keyed as\n * {@link CONTAINER_VERSIONS}. Kept beside the versions so a tool added here is\n * one entry rather than a reference built somewhere else, which is also what\n * lets the version sync find these pins wherever a target command runs them.\n */\nexport const CONTAINER_REPOSITORIES = {\n trivy: 'public.ecr.aws/aquasecurity/trivy',\n} as const satisfies Record<keyof typeof CONTAINER_VERSIONS, string>;\n\n/** The pinned reference for a tool image, as a target command runs it. */\nexport const containerImage = (tool: keyof typeof CONTAINER_VERSIONS): string =>\n `${CONTAINER_REPOSITORIES[tool]}:${CONTAINER_VERSIONS[tool]}`;\n\n/**\n * Exact versions for Terraform providers used by generated `.tf` modules.\n * Pinned exactly (no range operator) so generated infrastructure is reproducible.\n */\nexport const TERRAFORM_VERSIONS = {\n aws: '6.60.0',\n random: '3.9.0',\n null: '3.3.0',\n archive: '2.8.0',\n external: '2.4.0',\n local: '2.9.0',\n time: '0.14.0',\n} as const;\nexport type ITerraformProviderVersion = keyof typeof TERRAFORM_VERSIONS;\n\n/**\n * Substitution variables exposing Terraform provider version constraints to\n * generated `.tf` templates (e.g. `version = \"<%- awsProviderVersion %>\"`)\n */\nexport const terraformProviderVersions = () => ({\n awsProviderVersion: TERRAFORM_VERSIONS.aws,\n randomProviderVersion: TERRAFORM_VERSIONS.random,\n nullProviderVersion: TERRAFORM_VERSIONS.null,\n archiveProviderVersion: TERRAFORM_VERSIONS.archive,\n externalProviderVersion: TERRAFORM_VERSIONS.external,\n localProviderVersion: TERRAFORM_VERSIONS.local,\n timeProviderVersion: TERRAFORM_VERSIONS.time,\n});\n"],"names":["declaredNames","TS_VERSIONS","minimatch","nx","rxjs","astro","aws4fetch","constructs","cors","chalk","clsx","commander","electrodb","esbuild","ejs","express","husky","mariadb","mise","ncp","npm","pg","prisma","react","rimraf","rolldown","tailwindcss","tsx","shadcn","vite","typescript","vitest","zod","ws","withVersions","declaration","deps","assertDeclared","ts","Object","fromEntries","map","dep","NX_PACKAGES","NX_VERSION","PY_VERSIONS","aiosqlite","boto3","checkov","fastapi","httpx","langchain","langgraph","mcp","ruff","ty","pynamodb","uvicorn","sqlmodel","alembic","aiomysql","asyncpg","greenlet","withPyVersions","py","declared","kind","names","undeclared","filter","includes","length","Error","join","VENDORED_VERSIONS","JAVA_VERSIONS","JAVA_ARTIFACTS","keys","javaMavenDependency","artifact","MISE_VERSIONS","smithy","MISE_TOOLS","BASE_IMAGES","node","python","CONTAINER_VERSIONS","trivy","CONTAINER_REPOSITORIES","containerImage","tool","TERRAFORM_VERSIONS","aws","random","null","archive","external","local","time","terraformProviderVersions","awsProviderVersion","randomProviderVersion","nullProviderVersion","archiveProviderVersion","externalProviderVersion","localProviderVersion","timeProviderVersion"],"mappings":"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"}
|