@aws/nx-plugin 1.0.0-rc.53 → 1.0.0-rc.55
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 +50 -0
- package/package.json +1 -1
- package/src/agentcore-gateway/gateway-connection/generator.js +3 -1
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
- package/src/agentcore-gateway/generator.d.ts +49 -1
- package/src/agentcore-gateway/generator.js +55 -22
- package/src/agentcore-gateway/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/generator.js +3 -1
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +2 -0
- package/src/infra/app/generator.d.ts +43 -0
- package/src/infra/app/generator.js +47 -18
- package/src/infra/app/generator.js.map +1 -1
- package/src/init/generator.d.ts +13 -0
- package/src/init/generator.js +14 -3
- package/src/init/generator.js.map +1 -1
- package/src/migrations/latest/backfill-generator-metadata/migration.d.ts +96 -0
- package/src/migrations/latest/backfill-generator-metadata/migration.js +670 -0
- package/src/migrations/latest/backfill-generator-metadata/migration.js.map +1 -0
- package/src/migrations/latest/order-access-log-delivery-after-bucket-policy/migration.d.ts +6 -0
- package/src/migrations/latest/order-access-log-delivery-after-bucket-policy/migration.js +94 -0
- package/src/migrations/latest/order-access-log-delivery-after-bucket-policy/migration.js.map +1 -0
- package/src/preset/generator.d.ts +13 -0
- package/src/preset/generator.js +12 -3
- package/src/preset/generator.js.map +1 -1
- package/src/py/agent/a2a-connection/generator.d.ts +24 -0
- package/src/py/agent/a2a-connection/generator.js +49 -20
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/gateway-connection/generator.d.ts +23 -0
- package/src/py/agent/gateway-connection/generator.js +45 -11
- package/src/py/agent/gateway-connection/generator.js.map +1 -1
- package/src/py/agent/generator.d.ts +146 -1
- package/src/py/agent/generator.js +173 -76
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/generator.d.ts +23 -0
- package/src/py/agent/mcp-connection/generator.js +45 -11
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/generator.d.ts +146 -0
- package/src/py/agent/react-connection/generator.js +27 -4
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +18 -0
- package/src/py/dynamodb/agent-connection/generator.js +7 -1
- package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +9 -0
- package/src/py/dynamodb/fast-api-connection/generator.js +3 -1
- package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
- package/src/py/dynamodb/generator.d.ts +29 -0
- package/src/py/dynamodb/generator.js +32 -12
- package/src/py/dynamodb/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +18 -0
- package/src/py/dynamodb/mcp-server-connection/generator.js +7 -1
- package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/py/fast-api/generator.d.ts +63 -0
- package/src/py/fast-api/generator.js +58 -23
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/generator.d.ts +16 -1
- package/src/py/fast-api/react/generator.js +15 -3
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/lambda-function/generator.d.ts +21 -0
- package/src/py/lambda-function/generator.js +29 -10
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/mcp-server/generator.d.ts +60 -0
- package/src/py/mcp-server/generator.js +62 -25
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/project/generator.d.ts +13 -0
- package/src/py/project/generator.js +29 -10
- package/src/py/project/generator.js.map +1 -1
- package/src/py/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +19 -0
- package/src/py/rdb/agent-connection/generator.js +7 -1
- package/src/py/rdb/agent-connection/generator.js.map +1 -1
- package/src/py/rdb/fast-api-connection/__snapshots__/generator.spec.ts.snap +7 -0
- package/src/py/rdb/fast-api-connection/generator.js +3 -1
- package/src/py/rdb/fast-api-connection/generator.js.map +1 -1
- package/src/py/rdb/generator.d.ts +89 -0
- package/src/py/rdb/generator.js +88 -40
- package/src/py/rdb/generator.js.map +1 -1
- package/src/py/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +18 -0
- package/src/py/rdb/mcp-server-connection/generator.js +7 -1
- package/src/py/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/smithy/project/generator.d.ts +7 -0
- package/src/smithy/project/generator.js +8 -2
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/react-connection/generator.d.ts +15 -0
- package/src/smithy/react-connection/generator.js +17 -3
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +1 -0
- package/src/smithy/ts/api/generator.d.ts +79 -0
- package/src/smithy/ts/api/generator.js +77 -33
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/terraform/project/generator.d.ts +50 -0
- package/src/terraform/project/generator.js +63 -17
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/generator.d.ts +84 -0
- package/src/trpc/backend/generator.js +98 -38
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/react/generator.d.ts +37 -0
- package/src/trpc/react/generator.js +63 -26
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/agent/a2a-connection/generator.d.ts +46 -0
- package/src/ts/agent/a2a-connection/generator.js +53 -16
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/gateway-connection/generator.d.ts +37 -0
- package/src/ts/agent/gateway-connection/generator.js +41 -14
- package/src/ts/agent/gateway-connection/generator.js.map +1 -1
- package/src/ts/agent/generator.d.ts +162 -0
- package/src/ts/agent/generator.js +166 -75
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/generator.d.ts +37 -0
- package/src/ts/agent/mcp-connection/generator.js +41 -14
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/generator.d.ts +186 -0
- package/src/ts/agent/react-connection/generator.js +70 -21
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/astro-docs/generator.d.ts +38 -0
- package/src/ts/astro-docs/generator.js +58 -19
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/dcr-proxy/generator.d.ts +24 -0
- package/src/ts/dcr-proxy/generator.js +31 -14
- package/src/ts/dcr-proxy/generator.js.map +1 -1
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +18 -0
- package/src/ts/dynamodb/agent-connection/generator.js +7 -1
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/generator.d.ts +41 -0
- package/src/ts/dynamodb/generator.js +47 -20
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +18 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.js +7 -1
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +9 -0
- package/src/ts/dynamodb/smithy-connection/generator.js +3 -1
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +9 -0
- package/src/ts/dynamodb/trpc-connection/generator.js +3 -1
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
- package/src/ts/lambda-function/generator.d.ts +38 -0
- package/src/ts/lambda-function/generator.js +49 -20
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lib/generator.d.ts +7 -0
- package/src/ts/lib/generator.js +8 -1
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/ts-project-utils.d.ts +3 -1
- package/src/ts/lib/ts-project-utils.js +3 -2
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/vitest.d.ts +10 -1
- package/src/ts/lib/vitest.js +14 -2
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/generator.d.ts +71 -0
- package/src/ts/mcp-server/generator.js +73 -36
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/nx-generator/generator.d.ts +3 -0
- package/src/ts/nx-generator/generator.js +8 -2
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-migration/generator.d.ts +3 -0
- package/src/ts/nx-migration/generator.js +8 -2
- package/src/ts/nx-migration/generator.js.map +1 -1
- package/src/ts/nx-plugin/generator.d.ts +3 -0
- package/src/ts/nx-plugin/generator.js +8 -2
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/utils.d.ts +7 -2
- package/src/ts/nx-plugin/utils.js +10 -4
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +10 -0
- package/src/ts/rdb/agent-connection/generator.js +8 -1
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/generator.d.ts +101 -0
- package/src/ts/rdb/generator.js +93 -41
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +10 -0
- package/src/ts/rdb/mcp-server-connection/generator.js +8 -1
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +9 -0
- package/src/ts/rdb/smithy-connection/generator.js +4 -1
- package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +9 -0
- package/src/ts/rdb/trpc-connection/generator.js +3 -1
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/react-website/agui/generator.d.ts +86 -0
- package/src/ts/react-website/agui/generator.js +63 -28
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +20 -2
- package/src/ts/react-website/app/generator.d.ts +136 -1
- package/src/ts/react-website/app/generator.js +109 -40
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/generator.d.ts +19 -0
- package/src/ts/react-website/cognito-auth/generator.js +21 -9
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/utils/add-dependencies.d.ts +38 -0
- package/src/utils/add-dependencies.js +83 -0
- package/src/utils/add-dependencies.js.map +1 -0
- package/src/utils/agent-connection/agent-connection.d.ts +27 -6
- package/src/utils/agent-connection/agent-connection.js +47 -18
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +19 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js +26 -6
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/api-constructs/api-constructs.d.ts +21 -2
- package/src/utils/api-constructs/api-constructs.js +26 -5
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/bundle/bundle.d.ts +6 -1
- package/src/utils/bundle/bundle.js +8 -2
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/commands.d.ts +5 -4
- package/src/utils/commands.js +2 -6
- package/src/utils/commands.js.map +1 -1
- package/src/utils/connection/open-api/react.d.ts +18 -1
- package/src/utils/connection/open-api/react.js +27 -3
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/declared-dependencies.d.ts +140 -0
- package/src/utils/declared-dependencies.js +64 -0
- package/src/utils/declared-dependencies.js.map +1 -0
- package/src/utils/docker.d.ts +10 -1
- package/src/utils/docker.js +7 -3
- package/src/utils/docker.js.map +1 -1
- package/src/utils/fs.d.ts +15 -4
- package/src/utils/fs.js +26 -13
- package/src/utils/fs.js.map +1 -1
- package/src/utils/init.d.ts +14 -1
- package/src/utils/init.js +25 -7
- package/src/utils/init.js.map +1 -1
- package/src/utils/migration-versions.d.ts +15 -1
- package/src/utils/migration-versions.js +53 -7
- package/src/utils/migration-versions.js.map +1 -1
- package/src/utils/nx.d.ts +18 -0
- package/src/utils/nx.js +4 -0
- package/src/utils/nx.js.map +1 -1
- package/src/utils/py.d.ts +3 -2
- package/src/utils/py.js +10 -10
- package/src/utils/py.js.map +1 -1
- package/src/utils/shared-constructs-constants.d.ts +39 -4
- package/src/utils/shared-constructs-constants.js +29 -0
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +4 -1
- package/src/utils/shared-constructs.js +5 -4
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.d.ts +8 -1
- package/src/utils/shared-dynamodb-scripts.js +11 -3
- package/src/utils/shared-dynamodb-scripts.js.map +1 -1
- package/src/utils/shared-infra-scripts.d.ts +16 -1
- package/src/utils/shared-infra-scripts.js +18 -3
- package/src/utils/shared-infra-scripts.js.map +1 -1
- package/src/utils/shared-rdb-scripts.d.ts +12 -1
- package/src/utils/shared-rdb-scripts.js +17 -3
- package/src/utils/shared-rdb-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.d.ts +26 -1
- package/src/utils/shared-shadcn.js +31 -14
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/version-upgrade-migration/migration.d.ts +14 -0
- package/src/utils/version-upgrade-migration/migration.js +16 -0
- package/src/utils/version-upgrade-migration/migration.js.map +1 -0
- package/src/utils/version-upgrade-migration/nx-package-updates.d.ts +35 -0
- package/src/utils/version-upgrade-migration/nx-package-updates.js +42 -0
- package/src/utils/version-upgrade-migration/nx-package-updates.js.map +1 -0
- package/src/utils/version-upgrade-migration/owned-dependencies.d.ts +50 -0
- package/src/utils/version-upgrade-migration/owned-dependencies.js +98 -0
- package/src/utils/version-upgrade-migration/owned-dependencies.js.map +1 -0
- package/src/utils/version-upgrade-migration/register.d.ts +18 -0
- package/src/utils/version-upgrade-migration/register.js +33 -0
- package/src/utils/version-upgrade-migration/register.js.map +1 -0
- package/src/utils/version-upgrade-migration/sync-metrics-version.d.ts +13 -0
- package/src/utils/version-upgrade-migration/sync-metrics-version.js +33 -0
- package/src/utils/version-upgrade-migration/sync-metrics-version.js.map +1 -0
- package/src/utils/version-upgrade-migration/sync-vended-versions.d.ts +10 -0
- package/src/utils/version-upgrade-migration/sync-vended-versions.js +504 -0
- package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -0
- package/src/utils/version-upgrade-migration/vended-upgrade.d.ts +14 -0
- package/src/utils/version-upgrade-migration/vended-upgrade.js +40 -0
- package/src/utils/version-upgrade-migration/vended-upgrade.js.map +1 -0
- package/src/utils/versions.d.ts +25 -5
- package/src/utils/versions.js +46 -4
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +4 -0
|
@@ -4,7 +4,169 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { type GeneratorCallback, type Tree } from '@nx/devkit';
|
|
6
6
|
import { type NxGeneratorInfo } from '../../utils/nx';
|
|
7
|
+
import type { IacMetadata } from '../../utils/shared-constructs-constants';
|
|
7
8
|
import type { TsAgentGeneratorSchema } from './schema';
|
|
9
|
+
/** The metadata this generator records, which its predicates read. */
|
|
10
|
+
export interface TsAgentMetadata extends IacMetadata {
|
|
11
|
+
readonly port: number;
|
|
12
|
+
readonly rc: string;
|
|
13
|
+
readonly auth: string;
|
|
14
|
+
readonly protocol: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const DEPENDENCIES: import("../../utils/declared-dependencies").DependencyDeclaration<readonly [{
|
|
17
|
+
readonly name: "zod";
|
|
18
|
+
}, {
|
|
19
|
+
readonly name: "@strands-agents/sdk";
|
|
20
|
+
}, {
|
|
21
|
+
readonly name: "@aws-sdk/credential-providers";
|
|
22
|
+
}, {
|
|
23
|
+
readonly name: "@aws-sdk/client-appconfigdata";
|
|
24
|
+
}, {
|
|
25
|
+
readonly name: "@aws-lambda-powertools/parameters";
|
|
26
|
+
}, {
|
|
27
|
+
readonly name: "@modelcontextprotocol/sdk";
|
|
28
|
+
}, {
|
|
29
|
+
readonly name: "express";
|
|
30
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
31
|
+
}, {
|
|
32
|
+
readonly name: "@a2a-js/sdk";
|
|
33
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
34
|
+
}, {
|
|
35
|
+
readonly name: "@ag-ui/aws-strands";
|
|
36
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
37
|
+
}, {
|
|
38
|
+
readonly name: "@ag-ui/a2ui-toolkit";
|
|
39
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
40
|
+
}, {
|
|
41
|
+
readonly name: "@ag-ui/client";
|
|
42
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
43
|
+
}, {
|
|
44
|
+
readonly name: "@ag-ui/core";
|
|
45
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
46
|
+
}, {
|
|
47
|
+
readonly name: "@ag-ui/encoder";
|
|
48
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
49
|
+
}, {
|
|
50
|
+
readonly name: "@trpc/server";
|
|
51
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
52
|
+
}, {
|
|
53
|
+
readonly name: "@trpc/client";
|
|
54
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
55
|
+
}, {
|
|
56
|
+
readonly name: "ws";
|
|
57
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
58
|
+
}, {
|
|
59
|
+
readonly name: "cors";
|
|
60
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
61
|
+
}, {
|
|
62
|
+
readonly name: "aws4fetch";
|
|
63
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
64
|
+
}, {
|
|
65
|
+
readonly name: "aws4fetch";
|
|
66
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
67
|
+
readonly dev: true;
|
|
68
|
+
}, {
|
|
69
|
+
readonly name: "@aws-sdk/credential-providers";
|
|
70
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
71
|
+
readonly dev: true;
|
|
72
|
+
}, {
|
|
73
|
+
readonly name: "@types/node";
|
|
74
|
+
readonly dev: true;
|
|
75
|
+
}, {
|
|
76
|
+
readonly name: "agent-chat-cli";
|
|
77
|
+
readonly dev: true;
|
|
78
|
+
}, {
|
|
79
|
+
readonly name: "@aws-lambda-powertools/parameters";
|
|
80
|
+
readonly dev: true;
|
|
81
|
+
}, {
|
|
82
|
+
readonly name: "@aws-sdk/client-appconfigdata";
|
|
83
|
+
readonly dev: true;
|
|
84
|
+
}, {
|
|
85
|
+
readonly name: "@a2a-js/sdk";
|
|
86
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
87
|
+
readonly dev: true;
|
|
88
|
+
}, {
|
|
89
|
+
readonly name: "@types/express";
|
|
90
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
91
|
+
readonly dev: true;
|
|
92
|
+
}, {
|
|
93
|
+
readonly name: "@types/ws";
|
|
94
|
+
readonly when: (m: TsAgentMetadata) => boolean;
|
|
95
|
+
readonly dev: true;
|
|
96
|
+
}, {
|
|
97
|
+
readonly name: "@types/cors";
|
|
98
|
+
readonly dev: true;
|
|
99
|
+
}, {
|
|
100
|
+
readonly name: "tsx";
|
|
101
|
+
readonly dev: true;
|
|
102
|
+
readonly root: true;
|
|
103
|
+
}, {
|
|
104
|
+
readonly name: "@aws-lambda-powertools/parameters";
|
|
105
|
+
} & {
|
|
106
|
+
versionOnly: true;
|
|
107
|
+
}, {
|
|
108
|
+
readonly name: "@aws-sdk/credential-providers";
|
|
109
|
+
} & {
|
|
110
|
+
versionOnly: true;
|
|
111
|
+
}, {
|
|
112
|
+
readonly name: "aws4fetch";
|
|
113
|
+
} & {
|
|
114
|
+
versionOnly: true;
|
|
115
|
+
}, {
|
|
116
|
+
readonly name: "@modelcontextprotocol/sdk";
|
|
117
|
+
} & {
|
|
118
|
+
versionOnly: true;
|
|
119
|
+
}, {
|
|
120
|
+
readonly name: "@a2a-js/sdk";
|
|
121
|
+
} & {
|
|
122
|
+
versionOnly: true;
|
|
123
|
+
}, {
|
|
124
|
+
readonly name: "@strands-agents/sdk";
|
|
125
|
+
} & {
|
|
126
|
+
versionOnly: true;
|
|
127
|
+
}, {
|
|
128
|
+
readonly name: "rolldown";
|
|
129
|
+
} & {
|
|
130
|
+
versionOnly: true;
|
|
131
|
+
}, {
|
|
132
|
+
readonly name: "ncp";
|
|
133
|
+
} & {
|
|
134
|
+
versionOnly: true;
|
|
135
|
+
}, {
|
|
136
|
+
readonly name: "rimraf";
|
|
137
|
+
} & {
|
|
138
|
+
versionOnly: true;
|
|
139
|
+
}, {
|
|
140
|
+
readonly name: "make-dir-cli";
|
|
141
|
+
} & {
|
|
142
|
+
versionOnly: true;
|
|
143
|
+
}, {
|
|
144
|
+
readonly name: "ncp";
|
|
145
|
+
} & {
|
|
146
|
+
versionOnly: true;
|
|
147
|
+
}, {
|
|
148
|
+
readonly name: "rimraf";
|
|
149
|
+
} & {
|
|
150
|
+
versionOnly: true;
|
|
151
|
+
}, {
|
|
152
|
+
readonly name: "make-dir-cli";
|
|
153
|
+
} & {
|
|
154
|
+
versionOnly: true;
|
|
155
|
+
}, {
|
|
156
|
+
readonly name: "constructs";
|
|
157
|
+
readonly when: (m: IacMetadata) => boolean;
|
|
158
|
+
} & {
|
|
159
|
+
versionOnly: true;
|
|
160
|
+
}, {
|
|
161
|
+
readonly name: "aws-cdk-lib";
|
|
162
|
+
readonly when: (m: IacMetadata) => boolean;
|
|
163
|
+
} & {
|
|
164
|
+
versionOnly: true;
|
|
165
|
+
}, {
|
|
166
|
+
readonly name: "@types/node";
|
|
167
|
+
} & {
|
|
168
|
+
versionOnly: true;
|
|
169
|
+
}], readonly import("../../utils/declared-dependencies").DeclaredPyDependency<"a2a-sdk" | "ag-ui-langgraph" | "ag-ui-protocol" | "ag-ui-strands" | "aws-lambda-powertools" | "aws-lambda-powertools[tracer]" | "aws-lambda-powertools[parser]" | "aws-opentelemetry-distro" | "bedrock-agentcore" | "boto3" | "checkov" | "fastapi" | "fastapi[standard]" | "httpx" | "langchain" | "langchain-aws" | "langchain-mcp-adapters" | "langgraph" | "mcp" | "pip-check-updates" | "pip-licenses" | "ruff" | "strands-agents" | "strands-agents[a2a]" | "strands-agents-tools" | "ty" | "pynamodb" | "uvicorn" | "sqlmodel" | "alembic" | "aiomysql" | "asyncpg" | "greenlet", TsAgentMetadata>[]>;
|
|
8
170
|
export declare const TS_AGENT_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
171
|
export declare const tsAgentGenerator: (tree: Tree, options: TsAgentGeneratorSchema) => Promise<GeneratorCallback>;
|
|
10
172
|
export default tsAgentGenerator;
|
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/ import { generateFiles, joinPathFragments, OverwriteStrategy, updateProjectConfiguration } from "@nx/devkit";
|
|
5
|
+
import { addTsDependencies } from "../../utils/add-dependencies.js";
|
|
5
6
|
import { addAgentChatScripts } from "../../utils/agent-chat/agent-chat.js";
|
|
6
|
-
import { addTypeScriptFrameworkBase, ensureTypeScriptAgentConnectionProject } from "../../utils/agent-connection/agent-connection.js";
|
|
7
|
+
import { AGENT_CONNECTION_DEPENDENCIES, addTypeScriptFrameworkBase, ensureTypeScriptAgentConnectionProject } from "../../utils/agent-connection/agent-connection.js";
|
|
7
8
|
import { addAgentInfra } from "../../utils/agent-core-constructs/agent-core-constructs.js";
|
|
8
|
-
import { addTypeScriptBundleTarget } from "../../utils/bundle/bundle.js";
|
|
9
|
+
import { addTypeScriptBundleTarget, BUNDLE_DEPENDENCIES } from "../../utils/bundle/bundle.js";
|
|
9
10
|
import { resolveContainers } from "../../utils/containers.js";
|
|
10
|
-
import {
|
|
11
|
-
import { addDockerScanTarget, nodeImageVersions } from "../../utils/docker.js";
|
|
11
|
+
import { declareDependencies, ownedElsewhere } from "../../utils/declared-dependencies.js";
|
|
12
|
+
import { addDockerScanTarget, DOCKER_DEPENDENCIES, nodeImageVersions } from "../../utils/docker.js";
|
|
12
13
|
import { formatFilesInSubtree } from "../../utils/format.js";
|
|
13
|
-
import { FsCommands } from "../../utils/fs.js";
|
|
14
|
+
import { FS_DEPENDENCIES, FsCommands } from "../../utils/fs.js";
|
|
14
15
|
import { resolveIac } from "../../utils/iac.js";
|
|
15
16
|
import { installDependencies } from "../../utils/install.js";
|
|
16
17
|
import { addGeneratorMetricsIfApplicable } from "../../utils/metrics.js";
|
|
@@ -20,8 +21,140 @@ import { getNpmScope } from "../../utils/npm-scope.js";
|
|
|
20
21
|
import { addComponentDevTarget, addComponentGeneratorMetadata, addDependencyToTargetIfNotPresent, getGeneratorInfo, readProjectConfigurationUnqualified } from "../../utils/nx.js";
|
|
21
22
|
import { sortObjectKeys } from "../../utils/object.js";
|
|
22
23
|
import { assignPort } from "../../utils/port.js";
|
|
23
|
-
import { sharedConstructsGenerator } from "../../utils/shared-constructs.js";
|
|
24
|
-
import { BASE_IMAGES, TS_VERSIONS
|
|
24
|
+
import { SHARED_CONSTRUCTS_DEPENDENCIES, sharedConstructsGenerator } from "../../utils/shared-constructs.js";
|
|
25
|
+
import { BASE_IMAGES, TS_VERSIONS } from "../../utils/versions.js";
|
|
26
|
+
// Each entry names the branch it belongs to, so the same declaration drives both
|
|
27
|
+
// adding and the version sync.
|
|
28
|
+
export const DEPENDENCIES = declareDependencies()({
|
|
29
|
+
ts: [
|
|
30
|
+
{
|
|
31
|
+
name: 'zod'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '@strands-agents/sdk'
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: '@aws-sdk/credential-providers'
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: '@aws-sdk/client-appconfigdata'
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '@aws-lambda-powertools/parameters'
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: '@modelcontextprotocol/sdk'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'express',
|
|
50
|
+
when: (m)=>m.protocol !== 'http'
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: '@a2a-js/sdk',
|
|
54
|
+
when: (m)=>m.protocol === 'a2a'
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: '@ag-ui/aws-strands',
|
|
58
|
+
when: (m)=>m.protocol === 'ag-ui'
|
|
59
|
+
},
|
|
60
|
+
// @ag-ui/aws-strands declares these as peer dependencies but statically
|
|
61
|
+
// imports them, so they must be installed for the bundler to inline them.
|
|
62
|
+
{
|
|
63
|
+
name: '@ag-ui/a2ui-toolkit',
|
|
64
|
+
when: (m)=>m.protocol === 'ag-ui'
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: '@ag-ui/client',
|
|
68
|
+
when: (m)=>m.protocol === 'ag-ui'
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: '@ag-ui/core',
|
|
72
|
+
when: (m)=>m.protocol === 'ag-ui'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: '@ag-ui/encoder',
|
|
76
|
+
when: (m)=>m.protocol === 'ag-ui'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: '@trpc/server',
|
|
80
|
+
when: (m)=>m.protocol === 'http'
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: '@trpc/client',
|
|
84
|
+
when: (m)=>m.protocol === 'http'
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'ws',
|
|
88
|
+
when: (m)=>m.protocol === 'http'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'cors',
|
|
92
|
+
when: (m)=>m.protocol !== 'a2a'
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'aws4fetch',
|
|
96
|
+
when: (m)=>m.protocol === 'http'
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: 'aws4fetch',
|
|
100
|
+
when: (m)=>m.auth === 'iam',
|
|
101
|
+
dev: true
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: '@aws-sdk/credential-providers',
|
|
105
|
+
when: (m)=>m.auth === 'iam',
|
|
106
|
+
dev: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: '@types/node',
|
|
110
|
+
dev: true
|
|
111
|
+
},
|
|
112
|
+
// The chat CLI runs standalone via tsx and resolves the deployed agent from
|
|
113
|
+
// AppConfig when `RUNTIME_CONFIG_APP_ID` is set.
|
|
114
|
+
{
|
|
115
|
+
name: 'agent-chat-cli',
|
|
116
|
+
dev: true
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: '@aws-lambda-powertools/parameters',
|
|
120
|
+
dev: true
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: '@aws-sdk/client-appconfigdata',
|
|
124
|
+
dev: true
|
|
125
|
+
},
|
|
126
|
+
// A2A chat builds a signed @a2a-js client factory for the deployed agent.
|
|
127
|
+
{
|
|
128
|
+
name: '@a2a-js/sdk',
|
|
129
|
+
when: (m)=>m.protocol === 'a2a',
|
|
130
|
+
dev: true
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: '@types/express',
|
|
134
|
+
when: (m)=>m.protocol !== 'http',
|
|
135
|
+
dev: true
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: '@types/ws',
|
|
139
|
+
when: (m)=>m.protocol === 'http',
|
|
140
|
+
dev: true
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: '@types/cors',
|
|
144
|
+
dev: true
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: 'tsx',
|
|
148
|
+
dev: true,
|
|
149
|
+
root: true
|
|
150
|
+
},
|
|
151
|
+
...ownedElsewhere(AGENT_CONNECTION_DEPENDENCIES),
|
|
152
|
+
...ownedElsewhere(BUNDLE_DEPENDENCIES),
|
|
153
|
+
...ownedElsewhere(FS_DEPENDENCIES),
|
|
154
|
+
...ownedElsewhere(DOCKER_DEPENDENCIES),
|
|
155
|
+
...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES)
|
|
156
|
+
]
|
|
157
|
+
});
|
|
25
158
|
export const TS_AGENT_GENERATOR_INFO = getGeneratorInfo(import.meta.filename);
|
|
26
159
|
export const tsAgentGenerator = async (tree, options)=>{
|
|
27
160
|
const project = readProjectConfigurationUnqualified(tree, options.project);
|
|
@@ -38,6 +171,10 @@ export const tsAgentGenerator = async (tree, options)=>{
|
|
|
38
171
|
const distDir = joinPathFragments('dist', project.root);
|
|
39
172
|
const infra = options.infra ?? 'agentcore';
|
|
40
173
|
const protocol = options.protocol ?? 'http';
|
|
174
|
+
// Recorded in the metadata below so the version sync can tell a CDK
|
|
175
|
+
// project from a Terraform one; undefined when no infrastructure was
|
|
176
|
+
// generated, in which case neither provider's packages were added.
|
|
177
|
+
const iac = infra !== 'none' ? await resolveIac(tree, options.iac) : undefined;
|
|
41
178
|
if (infra === 'none' && options.auth && options.auth !== 'iam') {
|
|
42
179
|
console.warn('Warning: auth is ignored when no infrastructure is configured (no infrastructure is generated)');
|
|
43
180
|
}
|
|
@@ -46,10 +183,10 @@ export const tsAgentGenerator = async (tree, options)=>{
|
|
|
46
183
|
// point can import `runWithSessionId` and propagate the AgentCore session
|
|
47
184
|
// ID to any downstream MCP / A2A clients a later connection generator
|
|
48
185
|
// wires into this agent.
|
|
49
|
-
await ensureTypeScriptAgentConnectionProject(tree);
|
|
186
|
+
await ensureTypeScriptAgentConnectionProject(tree, DEPENDENCIES);
|
|
50
187
|
// The agent server imports the framework base helpers (session cache + model
|
|
51
188
|
// error logging) regardless of whether a connection client is wired in.
|
|
52
|
-
await addTypeScriptFrameworkBase(tree);
|
|
189
|
+
await addTypeScriptFrameworkBase(tree, DEPENDENCIES);
|
|
53
190
|
const templateContext = {
|
|
54
191
|
name,
|
|
55
192
|
agentNameClassName,
|
|
@@ -72,7 +209,7 @@ export const tsAgentGenerator = async (tree, options)=>{
|
|
|
72
209
|
await addTypeScriptBundleTarget(tree, project, {
|
|
73
210
|
targetFilePath: `${targetSourceDirRelativeToProjectRoot}/index.ts`,
|
|
74
211
|
bundleOutputDir: joinPathFragments('agent', name)
|
|
75
|
-
});
|
|
212
|
+
}, DEPENDENCIES);
|
|
76
213
|
// Add the Dockerfile
|
|
77
214
|
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'deploy'), targetSourceDir, {
|
|
78
215
|
distDir,
|
|
@@ -88,7 +225,7 @@ export const tsAgentGenerator = async (tree, options)=>{
|
|
|
88
225
|
});
|
|
89
226
|
const dockerOutputDir = joinPathFragments('dist', project.root, 'bundle', 'agent', name);
|
|
90
227
|
const dockerTargetName = `${agentTargetPrefix}-docker`;
|
|
91
|
-
const fs = new FsCommands(tree);
|
|
228
|
+
const fs = new FsCommands(tree, DEPENDENCIES);
|
|
92
229
|
project.targets[dockerTargetName] = {
|
|
93
230
|
cache: true,
|
|
94
231
|
outputs: [
|
|
@@ -116,12 +253,11 @@ export const tsAgentGenerator = async (tree, options)=>{
|
|
|
116
253
|
imageTags: [
|
|
117
254
|
dockerImageTag
|
|
118
255
|
]
|
|
119
|
-
});
|
|
256
|
+
}, DEPENDENCIES);
|
|
120
257
|
// Add shared constructs
|
|
121
|
-
const iac = await resolveIac(tree, options.iac);
|
|
122
258
|
await sharedConstructsGenerator(tree, {
|
|
123
259
|
iac
|
|
124
|
-
});
|
|
260
|
+
}, DEPENDENCIES);
|
|
125
261
|
// AG-UI uses HTTP as the AgentCore protocol type (AG-UI is HTTP-based with SSE over POST).
|
|
126
262
|
const infraProtocol = protocol === 'ag-ui' ? 'http' : protocol;
|
|
127
263
|
await addAgentInfra(tree, {
|
|
@@ -136,61 +272,6 @@ export const tsAgentGenerator = async (tree, options)=>{
|
|
|
136
272
|
containers
|
|
137
273
|
});
|
|
138
274
|
}
|
|
139
|
-
// Add dependencies
|
|
140
|
-
addDependenciesToPackageJson(tree, withVersions([
|
|
141
|
-
'zod',
|
|
142
|
-
'@strands-agents/sdk',
|
|
143
|
-
'@aws-sdk/credential-providers',
|
|
144
|
-
'@aws-sdk/client-appconfigdata',
|
|
145
|
-
'@aws-lambda-powertools/parameters',
|
|
146
|
-
'@modelcontextprotocol/sdk',
|
|
147
|
-
...protocol === 'a2a' ? [
|
|
148
|
-
'express',
|
|
149
|
-
'@a2a-js/sdk'
|
|
150
|
-
] : protocol === 'ag-ui' ? [
|
|
151
|
-
'@ag-ui/aws-strands',
|
|
152
|
-
// @ag-ui/aws-strands declares these as peer dependencies but
|
|
153
|
-
// statically imports them, so they must be installed for the
|
|
154
|
-
// bundler to resolve and inline them into the runtime image.
|
|
155
|
-
'@ag-ui/a2ui-toolkit',
|
|
156
|
-
'@ag-ui/client',
|
|
157
|
-
'@ag-ui/core',
|
|
158
|
-
'@ag-ui/encoder',
|
|
159
|
-
'express',
|
|
160
|
-
'cors'
|
|
161
|
-
] : [
|
|
162
|
-
'@trpc/server',
|
|
163
|
-
'@trpc/client',
|
|
164
|
-
'ws',
|
|
165
|
-
'cors',
|
|
166
|
-
'aws4fetch'
|
|
167
|
-
]
|
|
168
|
-
]), withVersions([
|
|
169
|
-
'@types/node',
|
|
170
|
-
// The chat CLI runs standalone via tsx and resolves the deployed agent
|
|
171
|
-
// from AppConfig when `RUNTIME_CONFIG_APP_ID` is set.
|
|
172
|
-
'agent-chat-cli',
|
|
173
|
-
'@aws-lambda-powertools/parameters',
|
|
174
|
-
'@aws-sdk/client-appconfigdata',
|
|
175
|
-
...auth === 'iam' ? [
|
|
176
|
-
'aws4fetch',
|
|
177
|
-
'@aws-sdk/credential-providers'
|
|
178
|
-
] : [],
|
|
179
|
-
// A2A chat builds a signed @a2a-js client factory for the deployed agent.
|
|
180
|
-
...protocol === 'a2a' ? [
|
|
181
|
-
'@a2a-js/sdk'
|
|
182
|
-
] : [],
|
|
183
|
-
...protocol === 'a2a' || protocol === 'ag-ui' ? [
|
|
184
|
-
'@types/express',
|
|
185
|
-
'@types/cors'
|
|
186
|
-
] : [
|
|
187
|
-
'@types/ws',
|
|
188
|
-
'@types/cors'
|
|
189
|
-
]
|
|
190
|
-
]), joinPathFragments(project.root, 'package.json'));
|
|
191
|
-
addDependenciesToPackageJson(tree, {}, withVersions([
|
|
192
|
-
'tsx'
|
|
193
|
-
]));
|
|
194
275
|
// A2A servers use port 9000 as per the Strands A2A SDK default and AgentCore A2A contract.
|
|
195
276
|
// HTTP and AG-UI agents use port 8081+ to avoid conflict with VS Code server on 8080.
|
|
196
277
|
const localDevPortStart = protocol === 'a2a' ? 9000 : 8081;
|
|
@@ -200,6 +281,21 @@ export const tsAgentGenerator = async (tree, options)=>{
|
|
|
200
281
|
name: agentTargetPrefix
|
|
201
282
|
}
|
|
202
283
|
});
|
|
284
|
+
// Recorded below and read by the declaration's predicates, so the packages
|
|
285
|
+
// added here are exactly the ones the version sync will own.
|
|
286
|
+
const metadata = {
|
|
287
|
+
port: localDevPort,
|
|
288
|
+
rc: agentNameClassName,
|
|
289
|
+
auth,
|
|
290
|
+
protocol,
|
|
291
|
+
...iac ? {
|
|
292
|
+
iac
|
|
293
|
+
} : {}
|
|
294
|
+
};
|
|
295
|
+
addTsDependencies(tree, DEPENDENCIES, {
|
|
296
|
+
metadata,
|
|
297
|
+
projectRoot: project.root
|
|
298
|
+
});
|
|
203
299
|
// Every protocol gets a standalone `chat.ts`. It connects to the local
|
|
204
300
|
// `dev` server by default, or to the deployed agent (with the
|
|
205
301
|
// appropriate auth) when `RUNTIME_CONFIG_APP_ID` is set.
|
|
@@ -264,12 +360,7 @@ export const tsAgentGenerator = async (tree, options)=>{
|
|
|
264
360
|
// first run vs re-run.
|
|
265
361
|
targets: sortObjectKeys(agentTargets)
|
|
266
362
|
});
|
|
267
|
-
addComponentGeneratorMetadata(tree, project.name, TS_AGENT_GENERATOR_INFO, targetSourceDirRelativeToProjectRoot, agentTargetPrefix,
|
|
268
|
-
port: localDevPort,
|
|
269
|
-
rc: agentNameClassName,
|
|
270
|
-
auth,
|
|
271
|
-
protocol
|
|
272
|
-
});
|
|
363
|
+
addComponentGeneratorMetadata(tree, project.name, TS_AGENT_GENERATOR_INFO, targetSourceDirRelativeToProjectRoot, agentTargetPrefix, metadata);
|
|
273
364
|
await addGeneratorMetricsIfApplicable(tree, [
|
|
274
365
|
TS_AGENT_GENERATOR_INFO
|
|
275
366
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/agent/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { addAgentChatScripts } from '../../utils/agent-chat/agent-chat';\nimport {\n addTypeScriptFrameworkBase,\n ensureTypeScriptAgentConnectionProject,\n} from '../../utils/agent-connection/agent-connection';\nimport { addAgentInfra } from '../../utils/agent-core-constructs/agent-core-constructs';\nimport { addTypeScriptBundleTarget } from '../../utils/bundle/bundle';\nimport { resolveContainers } from '../../utils/containers';\nimport { addDependenciesToPackageJson } from '../../utils/dependencies';\nimport { addDockerScanTarget, nodeImageVersions } from '../../utils/docker';\nimport { formatFilesInSubtree } from '../../utils/format';\nimport { FsCommands } from '../../utils/fs';\nimport { resolveIac } from '../../utils/iac';\nimport { installDependencies } from '../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics';\nimport { esmVars } from '../../utils/module-format';\nimport { kebabCase, toClassName } from '../../utils/names';\nimport { getNpmScope } from '../../utils/npm-scope';\nimport {\n addComponentDevTarget,\n addComponentGeneratorMetadata,\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../utils/nx';\nimport { sortObjectKeys } from '../../utils/object';\nimport { assignPort } from '../../utils/port';\nimport { sharedConstructsGenerator } from '../../utils/shared-constructs';\nimport { BASE_IMAGES, TS_VERSIONS, withVersions } from '../../utils/versions';\nimport type { TsAgentGeneratorSchema } from './schema';\n\nexport const TS_AGENT_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport const tsAgentGenerator = async (\n tree: Tree,\n options: TsAgentGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const project = readProjectConfigurationUnqualified(tree, options.project);\n\n if (!tree.exists(joinPathFragments(project.root, 'tsconfig.json'))) {\n throw new Error(\n `Unsupported project ${options.project}. Expected a TypeScript project (with a tsconfig.json)`,\n );\n }\n\n const defaultName = `${kebabCase(project.name.split('/').pop())}-agent`;\n const name = kebabCase(options.name || defaultName);\n const agentNameClassName = toClassName(name);\n const agentTargetPrefix = options.name ? name : 'agent';\n const targetSourceDirRelativeToProjectRoot = joinPathFragments(\n 'src',\n agentTargetPrefix,\n );\n const targetSourceDir = joinPathFragments(\n project.root,\n targetSourceDirRelativeToProjectRoot,\n );\n const relativeSourceDir = targetSourceDir.replace(project.root + '/', './');\n const distDir = joinPathFragments('dist', project.root);\n\n const infra = options.infra ?? 'agentcore';\n const protocol = options.protocol ?? 'http';\n\n if (infra === 'none' && options.auth && options.auth !== 'iam') {\n console.warn(\n 'Warning: auth is ignored when no infrastructure is configured (no infrastructure is generated)',\n );\n }\n\n const auth = options.auth ?? 'iam';\n\n // Ensure the shared agent-connection project exists so the server entry\n // point can import `runWithSessionId` and propagate the AgentCore session\n // ID to any downstream MCP / A2A clients a later connection generator\n // wires into this agent.\n await ensureTypeScriptAgentConnectionProject(tree);\n // The agent server imports the framework base helpers (session cache + model\n // error logging) regardless of whether a connection client is wired in.\n await addTypeScriptFrameworkBase(tree);\n\n const templateContext = {\n name,\n agentNameClassName,\n distDir,\n agentConnectionImport: `@${getNpmScope(tree)}/agent-connection`,\n ...esmVars(tree),\n };\n\n // Generate common files shared by both protocols\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common'),\n targetSourceDir,\n templateContext,\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Generate protocol-specific files\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', protocol.toLowerCase()),\n targetSourceDir,\n templateContext,\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n if (infra === 'agentcore') {\n const containers = await resolveContainers(tree, 'inherit');\n const dockerImageTag = `${getNpmScope(tree)}-${name}:latest`;\n\n // Add bundle target\n await addTypeScriptBundleTarget(tree, project, {\n targetFilePath: `${targetSourceDirRelativeToProjectRoot}/index.ts`,\n bundleOutputDir: joinPathFragments('agent', name),\n });\n\n // Add the Dockerfile\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'deploy'),\n targetSourceDir,\n {\n distDir,\n name,\n protocol,\n adotVersion:\n TS_VERSIONS['@aws/aws-distro-opentelemetry-node-autoinstrumentation'],\n jaegerVersion: TS_VERSIONS['@opentelemetry/propagator-jaeger'],\n nodeBaseImage: BASE_IMAGES.node,\n ...nodeImageVersions(),\n ...esmVars(tree),\n },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n const dockerOutputDir = joinPathFragments(\n 'dist',\n project.root,\n 'bundle',\n 'agent',\n name,\n );\n const dockerTargetName = `${agentTargetPrefix}-docker`;\n\n const fs = new FsCommands(tree);\n project.targets[dockerTargetName] = {\n cache: true,\n outputs: [`{workspaceRoot}/${dockerOutputDir}/Dockerfile`],\n executor: 'nx:run-commands',\n options: {\n commands: [\n fs.cp(\n `${targetSourceDir}/Dockerfile`,\n `${dockerOutputDir}/Dockerfile`,\n ),\n `${containers} build --platform linux/arm64 -t ${dockerImageTag} ${dockerOutputDir}`,\n ],\n parallel: false,\n },\n dependsOn: ['bundle'],\n };\n\n addDependencyToTargetIfNotPresent(project, 'docker', dockerTargetName);\n addDependencyToTargetIfNotPresent(project, 'build', 'docker');\n\n addDockerScanTarget(tree, {\n project,\n containerEngine: containers,\n trivyTargetName: `${agentTargetPrefix}-trivy`,\n dockerTargetName,\n imageTags: [dockerImageTag],\n });\n\n // Add shared constructs\n const iac = await resolveIac(tree, options.iac);\n await sharedConstructsGenerator(tree, { iac });\n\n // AG-UI uses HTTP as the AgentCore protocol type (AG-UI is HTTP-based with SSE over POST).\n const infraProtocol: 'http' | 'a2a' =\n protocol === 'ag-ui' ? 'http' : (protocol as 'http' | 'a2a');\n\n await addAgentInfra(tree, {\n agentNameKebabCase: name,\n agentNameClassName,\n projectName: project.name,\n dockerImageTag,\n dockerOutputDir,\n iac,\n auth,\n serverProtocol: infraProtocol,\n containers,\n });\n }\n\n // Add dependencies\n addDependenciesToPackageJson(\n tree,\n withVersions([\n 'zod',\n '@strands-agents/sdk',\n '@aws-sdk/credential-providers',\n '@aws-sdk/client-appconfigdata',\n '@aws-lambda-powertools/parameters',\n '@modelcontextprotocol/sdk',\n ...(protocol === 'a2a'\n ? (['express', '@a2a-js/sdk'] as const)\n : protocol === 'ag-ui'\n ? ([\n '@ag-ui/aws-strands',\n // @ag-ui/aws-strands declares these as peer dependencies but\n // statically imports them, so they must be installed for the\n // bundler to resolve and inline them into the runtime image.\n '@ag-ui/a2ui-toolkit',\n '@ag-ui/client',\n '@ag-ui/core',\n '@ag-ui/encoder',\n 'express',\n 'cors',\n ] as const)\n : ([\n '@trpc/server',\n '@trpc/client',\n 'ws',\n 'cors',\n 'aws4fetch',\n ] as const)),\n ]),\n withVersions([\n '@types/node',\n // The chat CLI runs standalone via tsx and resolves the deployed agent\n // from AppConfig when `RUNTIME_CONFIG_APP_ID` is set.\n 'agent-chat-cli',\n '@aws-lambda-powertools/parameters',\n '@aws-sdk/client-appconfigdata',\n ...(auth === 'iam'\n ? (['aws4fetch', '@aws-sdk/credential-providers'] as const)\n : ([] as const)),\n // A2A chat builds a signed @a2a-js client factory for the deployed agent.\n ...(protocol === 'a2a' ? (['@a2a-js/sdk'] as const) : ([] as const)),\n ...(protocol === 'a2a' || protocol === 'ag-ui'\n ? (['@types/express', '@types/cors'] as const)\n : (['@types/ws', '@types/cors'] as const)),\n ]),\n joinPathFragments(project.root, 'package.json'),\n );\n addDependenciesToPackageJson(tree, {}, withVersions(['tsx']));\n\n // A2A servers use port 9000 as per the Strands A2A SDK default and AgentCore A2A contract.\n // HTTP and AG-UI agents use port 8081+ to avoid conflict with VS Code server on 8080.\n const localDevPortStart = protocol === 'a2a' ? 9000 : 8081;\n const localDevPort = assignPort(tree, project, localDevPortStart, {\n component: { info: TS_AGENT_GENERATOR_INFO, name: agentTargetPrefix },\n });\n\n // Every protocol gets a standalone `chat.ts`. It connects to the local\n // `dev` server by default, or to the deployed agent (with the\n // appropriate auth) when `RUNTIME_CONFIG_APP_ID` is set.\n const scriptsDir = joinPathFragments(\n project.root,\n 'scripts',\n agentTargetPrefix,\n );\n addAgentChatScripts(tree, {\n scriptsDir,\n protocol,\n language: 'ts',\n agentNameClassName,\n auth,\n relativeAgentImport: `../../${targetSourceDirRelativeToProjectRoot}`,\n });\n\n const chatUrl =\n protocol === 'http'\n ? `ws://localhost:${localDevPort}/ws`\n : protocol === 'ag-ui'\n ? `http://localhost:${localDevPort}/invocations`\n : `http://localhost:${localDevPort}`;\n const chatCommand = `tsx ./scripts/${agentTargetPrefix}/chat.ts`;\n\n const agentTargets = {\n ...project.targets,\n [`${agentTargetPrefix}-serve`]: {\n executor: 'nx:run-commands',\n continuous: true,\n options: {\n commands: [`tsx --watch ${relativeSourceDir}/index.ts`],\n cwd: '{projectRoot}',\n env: {\n PORT: `${localDevPort}`,\n },\n },\n },\n [`${agentTargetPrefix}-dev`]: {\n executor: 'nx:run-commands',\n continuous: true,\n options: {\n commands: [`tsx --watch ${relativeSourceDir}/index.ts`],\n cwd: '{projectRoot}',\n env: {\n PORT: `${localDevPort}`,\n LOCAL_DEV: 'true',\n },\n },\n },\n [`${agentTargetPrefix}-chat`]: {\n executor: 'nx:run-commands',\n options: {\n commands: [chatCommand],\n cwd: '{projectRoot}',\n env: {\n URL: chatUrl,\n },\n },\n },\n };\n\n // Aggregate `<agent>-dev` under the project-level `dev` target.\n addComponentDevTarget(agentTargets, `${agentTargetPrefix}-dev`);\n\n updateProjectConfiguration(tree, project.name, {\n ...project,\n // Sort targets so their order is stable regardless of insertion order on\n // first run vs re-run.\n targets: sortObjectKeys(agentTargets),\n });\n\n addComponentGeneratorMetadata(\n tree,\n project.name,\n TS_AGENT_GENERATOR_INFO,\n targetSourceDirRelativeToProjectRoot,\n agentTargetPrefix,\n { port: localDevPort, rc: agentNameClassName, auth, protocol },\n );\n\n await addGeneratorMetricsIfApplicable(tree, [TS_AGENT_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\nexport default tsAgentGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","addAgentChatScripts","addTypeScriptFrameworkBase","ensureTypeScriptAgentConnectionProject","addAgentInfra","addTypeScriptBundleTarget","resolveContainers","addDependenciesToPackageJson","addDockerScanTarget","nodeImageVersions","formatFilesInSubtree","FsCommands","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","esmVars","kebabCase","toClassName","getNpmScope","addComponentDevTarget","addComponentGeneratorMetadata","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","sortObjectKeys","assignPort","sharedConstructsGenerator","BASE_IMAGES","TS_VERSIONS","withVersions","TS_AGENT_GENERATOR_INFO","filename","tsAgentGenerator","tree","options","project","exists","root","Error","defaultName","name","split","pop","agentNameClassName","agentTargetPrefix","targetSourceDirRelativeToProjectRoot","targetSourceDir","relativeSourceDir","replace","distDir","infra","protocol","auth","console","warn","templateContext","agentConnectionImport","dirname","overwriteStrategy","KeepExisting","toLowerCase","containers","dockerImageTag","targetFilePath","bundleOutputDir","adotVersion","jaegerVersion","nodeBaseImage","node","dockerOutputDir","dockerTargetName","fs","targets","cache","outputs","executor","commands","cp","parallel","dependsOn","containerEngine","trivyTargetName","imageTags","iac","infraProtocol","agentNameKebabCase","projectName","serverProtocol","localDevPortStart","localDevPort","component","info","scriptsDir","language","relativeAgentImport","chatUrl","chatCommand","agentTargets","continuous","cwd","env","PORT","LOCAL_DEV","URL","port","rc","preferInstallDependencies","languages"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/agent/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { addTsDependencies } from '../../utils/add-dependencies';\nimport { addAgentChatScripts } from '../../utils/agent-chat/agent-chat';\nimport {\n AGENT_CONNECTION_DEPENDENCIES,\n addTypeScriptFrameworkBase,\n ensureTypeScriptAgentConnectionProject,\n} from '../../utils/agent-connection/agent-connection';\nimport { addAgentInfra } from '../../utils/agent-core-constructs/agent-core-constructs';\nimport {\n addTypeScriptBundleTarget,\n BUNDLE_DEPENDENCIES,\n} from '../../utils/bundle/bundle';\nimport { resolveContainers } from '../../utils/containers';\nimport {\n declareDependencies,\n ownedElsewhere,\n} from '../../utils/declared-dependencies';\nimport {\n addDockerScanTarget,\n DOCKER_DEPENDENCIES,\n nodeImageVersions,\n} from '../../utils/docker';\nimport { formatFilesInSubtree } from '../../utils/format';\nimport { FS_DEPENDENCIES, FsCommands } from '../../utils/fs';\nimport { resolveIac } from '../../utils/iac';\nimport { installDependencies } from '../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics';\nimport { esmVars } from '../../utils/module-format';\nimport { kebabCase, toClassName } from '../../utils/names';\nimport { getNpmScope } from '../../utils/npm-scope';\nimport {\n addComponentDevTarget,\n addComponentGeneratorMetadata,\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../utils/nx';\nimport { sortObjectKeys } from '../../utils/object';\nimport { assignPort } from '../../utils/port';\nimport {\n SHARED_CONSTRUCTS_DEPENDENCIES,\n sharedConstructsGenerator,\n} from '../../utils/shared-constructs';\nimport type { IacMetadata } from '../../utils/shared-constructs-constants';\nimport { BASE_IMAGES, TS_VERSIONS, withVersions } from '../../utils/versions';\nimport type { TsAgentGeneratorSchema } from './schema';\n\n/** The metadata this generator records, which its predicates read. */\nexport interface TsAgentMetadata extends IacMetadata {\n readonly port: number;\n readonly rc: string;\n readonly auth: string;\n readonly protocol: string;\n}\n\n// Each entry names the branch it belongs to, so the same declaration drives both\n// adding and the version sync.\nexport const DEPENDENCIES = declareDependencies<TsAgentMetadata>()({\n ts: [\n { name: 'zod' },\n { name: '@strands-agents/sdk' },\n { name: '@aws-sdk/credential-providers' },\n { name: '@aws-sdk/client-appconfigdata' },\n { name: '@aws-lambda-powertools/parameters' },\n { name: '@modelcontextprotocol/sdk' },\n { name: 'express', when: (m) => m.protocol !== 'http' },\n { name: '@a2a-js/sdk', when: (m) => m.protocol === 'a2a' },\n { name: '@ag-ui/aws-strands', when: (m) => m.protocol === 'ag-ui' },\n // @ag-ui/aws-strands declares these as peer dependencies but statically\n // imports them, so they must be installed for the bundler to inline them.\n { name: '@ag-ui/a2ui-toolkit', when: (m) => m.protocol === 'ag-ui' },\n { name: '@ag-ui/client', when: (m) => m.protocol === 'ag-ui' },\n { name: '@ag-ui/core', when: (m) => m.protocol === 'ag-ui' },\n { name: '@ag-ui/encoder', when: (m) => m.protocol === 'ag-ui' },\n { name: '@trpc/server', when: (m) => m.protocol === 'http' },\n { name: '@trpc/client', when: (m) => m.protocol === 'http' },\n { name: 'ws', when: (m) => m.protocol === 'http' },\n { name: 'cors', when: (m) => m.protocol !== 'a2a' },\n { name: 'aws4fetch', when: (m) => m.protocol === 'http' },\n { name: 'aws4fetch', when: (m) => m.auth === 'iam', dev: true },\n {\n name: '@aws-sdk/credential-providers',\n when: (m) => m.auth === 'iam',\n dev: true,\n },\n { name: '@types/node', dev: true },\n // The chat CLI runs standalone via tsx and resolves the deployed agent from\n // AppConfig when `RUNTIME_CONFIG_APP_ID` is set.\n { name: 'agent-chat-cli', dev: true },\n { name: '@aws-lambda-powertools/parameters', dev: true },\n { name: '@aws-sdk/client-appconfigdata', dev: true },\n // A2A chat builds a signed @a2a-js client factory for the deployed agent.\n { name: '@a2a-js/sdk', when: (m) => m.protocol === 'a2a', dev: true },\n { name: '@types/express', when: (m) => m.protocol !== 'http', dev: true },\n { name: '@types/ws', when: (m) => m.protocol === 'http', dev: true },\n { name: '@types/cors', dev: true },\n { name: 'tsx', dev: true, root: true },\n ...ownedElsewhere(AGENT_CONNECTION_DEPENDENCIES),\n ...ownedElsewhere(BUNDLE_DEPENDENCIES),\n ...ownedElsewhere(FS_DEPENDENCIES),\n ...ownedElsewhere(DOCKER_DEPENDENCIES),\n ...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES),\n ],\n});\n\nexport const TS_AGENT_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport const tsAgentGenerator = async (\n tree: Tree,\n options: TsAgentGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const project = readProjectConfigurationUnqualified(tree, options.project);\n\n if (!tree.exists(joinPathFragments(project.root, 'tsconfig.json'))) {\n throw new Error(\n `Unsupported project ${options.project}. Expected a TypeScript project (with a tsconfig.json)`,\n );\n }\n\n const defaultName = `${kebabCase(project.name.split('/').pop())}-agent`;\n const name = kebabCase(options.name || defaultName);\n const agentNameClassName = toClassName(name);\n const agentTargetPrefix = options.name ? name : 'agent';\n const targetSourceDirRelativeToProjectRoot = joinPathFragments(\n 'src',\n agentTargetPrefix,\n );\n const targetSourceDir = joinPathFragments(\n project.root,\n targetSourceDirRelativeToProjectRoot,\n );\n const relativeSourceDir = targetSourceDir.replace(project.root + '/', './');\n const distDir = joinPathFragments('dist', project.root);\n\n const infra = options.infra ?? 'agentcore';\n const protocol = options.protocol ?? 'http';\n\n // Recorded in the metadata below so the version sync can tell a CDK\n // project from a Terraform one; undefined when no infrastructure was\n // generated, in which case neither provider's packages were added.\n const iac =\n infra !== 'none' ? await resolveIac(tree, options.iac) : undefined;\n\n if (infra === 'none' && options.auth && options.auth !== 'iam') {\n console.warn(\n 'Warning: auth is ignored when no infrastructure is configured (no infrastructure is generated)',\n );\n }\n\n const auth = options.auth ?? 'iam';\n\n // Ensure the shared agent-connection project exists so the server entry\n // point can import `runWithSessionId` and propagate the AgentCore session\n // ID to any downstream MCP / A2A clients a later connection generator\n // wires into this agent.\n await ensureTypeScriptAgentConnectionProject(tree, DEPENDENCIES);\n // The agent server imports the framework base helpers (session cache + model\n // error logging) regardless of whether a connection client is wired in.\n await addTypeScriptFrameworkBase(tree, DEPENDENCIES);\n\n const templateContext = {\n name,\n agentNameClassName,\n distDir,\n agentConnectionImport: `@${getNpmScope(tree)}/agent-connection`,\n ...esmVars(tree),\n };\n\n // Generate common files shared by both protocols\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common'),\n targetSourceDir,\n templateContext,\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Generate protocol-specific files\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', protocol.toLowerCase()),\n targetSourceDir,\n templateContext,\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n if (infra === 'agentcore') {\n const containers = await resolveContainers(tree, 'inherit');\n const dockerImageTag = `${getNpmScope(tree)}-${name}:latest`;\n\n // Add bundle target\n await addTypeScriptBundleTarget(\n tree,\n project,\n {\n targetFilePath: `${targetSourceDirRelativeToProjectRoot}/index.ts`,\n bundleOutputDir: joinPathFragments('agent', name),\n },\n DEPENDENCIES,\n );\n\n // Add the Dockerfile\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'deploy'),\n targetSourceDir,\n {\n distDir,\n name,\n protocol,\n adotVersion:\n TS_VERSIONS['@aws/aws-distro-opentelemetry-node-autoinstrumentation'],\n jaegerVersion: TS_VERSIONS['@opentelemetry/propagator-jaeger'],\n nodeBaseImage: BASE_IMAGES.node,\n ...nodeImageVersions(),\n ...esmVars(tree),\n },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n const dockerOutputDir = joinPathFragments(\n 'dist',\n project.root,\n 'bundle',\n 'agent',\n name,\n );\n const dockerTargetName = `${agentTargetPrefix}-docker`;\n\n const fs = new FsCommands(tree, DEPENDENCIES);\n project.targets[dockerTargetName] = {\n cache: true,\n outputs: [`{workspaceRoot}/${dockerOutputDir}/Dockerfile`],\n executor: 'nx:run-commands',\n options: {\n commands: [\n fs.cp(\n `${targetSourceDir}/Dockerfile`,\n `${dockerOutputDir}/Dockerfile`,\n ),\n `${containers} build --platform linux/arm64 -t ${dockerImageTag} ${dockerOutputDir}`,\n ],\n parallel: false,\n },\n dependsOn: ['bundle'],\n };\n\n addDependencyToTargetIfNotPresent(project, 'docker', dockerTargetName);\n addDependencyToTargetIfNotPresent(project, 'build', 'docker');\n\n addDockerScanTarget(\n tree,\n {\n project,\n containerEngine: containers,\n trivyTargetName: `${agentTargetPrefix}-trivy`,\n dockerTargetName,\n imageTags: [dockerImageTag],\n },\n DEPENDENCIES,\n );\n\n // Add shared constructs\n await sharedConstructsGenerator(tree, { iac }, DEPENDENCIES);\n\n // AG-UI uses HTTP as the AgentCore protocol type (AG-UI is HTTP-based with SSE over POST).\n const infraProtocol: 'http' | 'a2a' =\n protocol === 'ag-ui' ? 'http' : (protocol as 'http' | 'a2a');\n\n await addAgentInfra(tree, {\n agentNameKebabCase: name,\n agentNameClassName,\n projectName: project.name,\n dockerImageTag,\n dockerOutputDir,\n iac,\n auth,\n serverProtocol: infraProtocol,\n containers,\n });\n }\n\n // A2A servers use port 9000 as per the Strands A2A SDK default and AgentCore A2A contract.\n // HTTP and AG-UI agents use port 8081+ to avoid conflict with VS Code server on 8080.\n const localDevPortStart = protocol === 'a2a' ? 9000 : 8081;\n const localDevPort = assignPort(tree, project, localDevPortStart, {\n component: { info: TS_AGENT_GENERATOR_INFO, name: agentTargetPrefix },\n });\n\n // Recorded below and read by the declaration's predicates, so the packages\n // added here are exactly the ones the version sync will own.\n const metadata: TsAgentMetadata = {\n port: localDevPort,\n rc: agentNameClassName,\n auth,\n protocol,\n ...(iac ? { iac } : {}),\n };\n\n addTsDependencies(tree, DEPENDENCIES, {\n metadata,\n projectRoot: project.root,\n });\n\n // Every protocol gets a standalone `chat.ts`. It connects to the local\n // `dev` server by default, or to the deployed agent (with the\n // appropriate auth) when `RUNTIME_CONFIG_APP_ID` is set.\n const scriptsDir = joinPathFragments(\n project.root,\n 'scripts',\n agentTargetPrefix,\n );\n addAgentChatScripts(tree, {\n scriptsDir,\n protocol,\n language: 'ts',\n agentNameClassName,\n auth,\n relativeAgentImport: `../../${targetSourceDirRelativeToProjectRoot}`,\n });\n\n const chatUrl =\n protocol === 'http'\n ? `ws://localhost:${localDevPort}/ws`\n : protocol === 'ag-ui'\n ? `http://localhost:${localDevPort}/invocations`\n : `http://localhost:${localDevPort}`;\n const chatCommand = `tsx ./scripts/${agentTargetPrefix}/chat.ts`;\n\n const agentTargets = {\n ...project.targets,\n [`${agentTargetPrefix}-serve`]: {\n executor: 'nx:run-commands',\n continuous: true,\n options: {\n commands: [`tsx --watch ${relativeSourceDir}/index.ts`],\n cwd: '{projectRoot}',\n env: {\n PORT: `${localDevPort}`,\n },\n },\n },\n [`${agentTargetPrefix}-dev`]: {\n executor: 'nx:run-commands',\n continuous: true,\n options: {\n commands: [`tsx --watch ${relativeSourceDir}/index.ts`],\n cwd: '{projectRoot}',\n env: {\n PORT: `${localDevPort}`,\n LOCAL_DEV: 'true',\n },\n },\n },\n [`${agentTargetPrefix}-chat`]: {\n executor: 'nx:run-commands',\n options: {\n commands: [chatCommand],\n cwd: '{projectRoot}',\n env: {\n URL: chatUrl,\n },\n },\n },\n };\n\n // Aggregate `<agent>-dev` under the project-level `dev` target.\n addComponentDevTarget(agentTargets, `${agentTargetPrefix}-dev`);\n\n updateProjectConfiguration(tree, project.name, {\n ...project,\n // Sort targets so their order is stable regardless of insertion order on\n // first run vs re-run.\n targets: sortObjectKeys(agentTargets),\n });\n\n addComponentGeneratorMetadata(\n tree,\n project.name,\n TS_AGENT_GENERATOR_INFO,\n targetSourceDirRelativeToProjectRoot,\n agentTargetPrefix,\n metadata,\n );\n\n await addGeneratorMetricsIfApplicable(tree, [TS_AGENT_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\nexport default tsAgentGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","addTsDependencies","addAgentChatScripts","AGENT_CONNECTION_DEPENDENCIES","addTypeScriptFrameworkBase","ensureTypeScriptAgentConnectionProject","addAgentInfra","addTypeScriptBundleTarget","BUNDLE_DEPENDENCIES","resolveContainers","declareDependencies","ownedElsewhere","addDockerScanTarget","DOCKER_DEPENDENCIES","nodeImageVersions","formatFilesInSubtree","FS_DEPENDENCIES","FsCommands","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","esmVars","kebabCase","toClassName","getNpmScope","addComponentDevTarget","addComponentGeneratorMetadata","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","sortObjectKeys","assignPort","SHARED_CONSTRUCTS_DEPENDENCIES","sharedConstructsGenerator","BASE_IMAGES","TS_VERSIONS","DEPENDENCIES","ts","name","when","m","protocol","auth","dev","root","TS_AGENT_GENERATOR_INFO","filename","tsAgentGenerator","tree","options","project","exists","Error","defaultName","split","pop","agentNameClassName","agentTargetPrefix","targetSourceDirRelativeToProjectRoot","targetSourceDir","relativeSourceDir","replace","distDir","infra","iac","undefined","console","warn","templateContext","agentConnectionImport","dirname","overwriteStrategy","KeepExisting","toLowerCase","containers","dockerImageTag","targetFilePath","bundleOutputDir","adotVersion","jaegerVersion","nodeBaseImage","node","dockerOutputDir","dockerTargetName","fs","targets","cache","outputs","executor","commands","cp","parallel","dependsOn","containerEngine","trivyTargetName","imageTags","infraProtocol","agentNameKebabCase","projectName","serverProtocol","localDevPortStart","localDevPort","component","info","metadata","port","rc","projectRoot","scriptsDir","language","relativeAgentImport","chatUrl","chatCommand","agentTargets","continuous","cwd","env","PORT","LOCAL_DEV","URL","preferInstallDependencies","languages"],"mappings":"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"}
|
|
@@ -5,6 +5,43 @@
|
|
|
5
5
|
import { type GeneratorCallback, type Tree } from '@nx/devkit';
|
|
6
6
|
import { type NxGeneratorInfo } from '../../../utils/nx';
|
|
7
7
|
import type { TsAgentMcpConnectionGeneratorSchema } from './schema';
|
|
8
|
+
export declare const DEPENDENCIES: import("../../../utils/declared-dependencies").DependencyDeclaration<readonly [{
|
|
9
|
+
readonly name: "@modelcontextprotocol/sdk";
|
|
10
|
+
}, {
|
|
11
|
+
readonly name: "@strands-agents/sdk";
|
|
12
|
+
}, {
|
|
13
|
+
readonly name: "@aws-lambda-powertools/parameters";
|
|
14
|
+
}, {
|
|
15
|
+
readonly name: "@aws-sdk/client-appconfigdata";
|
|
16
|
+
}, {
|
|
17
|
+
readonly name: "aws4fetch";
|
|
18
|
+
}, {
|
|
19
|
+
readonly name: "@aws-sdk/credential-providers";
|
|
20
|
+
}, {
|
|
21
|
+
readonly name: "@aws-lambda-powertools/parameters";
|
|
22
|
+
} & {
|
|
23
|
+
versionOnly: true;
|
|
24
|
+
}, {
|
|
25
|
+
readonly name: "@aws-sdk/credential-providers";
|
|
26
|
+
} & {
|
|
27
|
+
versionOnly: true;
|
|
28
|
+
}, {
|
|
29
|
+
readonly name: "aws4fetch";
|
|
30
|
+
} & {
|
|
31
|
+
versionOnly: true;
|
|
32
|
+
}, {
|
|
33
|
+
readonly name: "@modelcontextprotocol/sdk";
|
|
34
|
+
} & {
|
|
35
|
+
versionOnly: true;
|
|
36
|
+
}, {
|
|
37
|
+
readonly name: "@a2a-js/sdk";
|
|
38
|
+
} & {
|
|
39
|
+
versionOnly: true;
|
|
40
|
+
}, {
|
|
41
|
+
readonly name: "@strands-agents/sdk";
|
|
42
|
+
} & {
|
|
43
|
+
versionOnly: true;
|
|
44
|
+
}], readonly import("../../../utils/declared-dependencies").DeclaredPyDependency<"a2a-sdk" | "ag-ui-langgraph" | "ag-ui-protocol" | "ag-ui-strands" | "aws-lambda-powertools" | "aws-lambda-powertools[tracer]" | "aws-lambda-powertools[parser]" | "aws-opentelemetry-distro" | "bedrock-agentcore" | "boto3" | "checkov" | "fastapi" | "fastapi[standard]" | "httpx" | "langchain" | "langchain-aws" | "langchain-mcp-adapters" | "langgraph" | "mcp" | "pip-check-updates" | "pip-licenses" | "ruff" | "strands-agents" | "strands-agents[a2a]" | "strands-agents-tools" | "ty" | "pynamodb" | "uvicorn" | "sqlmodel" | "alembic" | "aiomysql" | "asyncpg" | "greenlet", Record<string, never>>[]>;
|
|
8
45
|
export declare const TS_AGENT_MCP_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
46
|
export declare const tsAgentMcpConnectionGenerator: (tree: Tree, options: TsAgentMcpConnectionGeneratorSchema) => Promise<GeneratorCallback>;
|
|
10
47
|
export default tsAgentMcpConnectionGenerator;
|