@aws/nx-plugin 1.0.0-rc.10 → 1.0.0-rc.12
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/generators.json +31 -1
- package/package.json +1 -1
- package/sdk/agentcore-gateway.d.ts +6 -0
- package/sdk/agentcore-gateway.js +11 -0
- package/sdk/agentcore-gateway.js.map +1 -0
- package/sdk/license.d.ts +4 -4
- package/sdk/license.js +5 -4
- package/sdk/license.js.map +1 -1
- package/sdk/py.d.ts +6 -6
- package/sdk/py.js +7 -7
- package/sdk/py.js.map +1 -1
- package/sdk/ts.d.ts +18 -14
- package/sdk/ts.js +38 -32
- package/sdk/ts.js.map +1 -1
- package/src/agentcore-gateway/files/cedar/policies/README.md +52 -0
- package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +11 -0
- package/src/agentcore-gateway/files/project/serve-local.ts.template +133 -0
- package/src/agentcore-gateway/generator.d.ts +25 -0
- package/src/agentcore-gateway/generator.js +129 -0
- package/src/agentcore-gateway/generator.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
- package/src/agentcore-gateway/mcp-connection/generator.js +79 -0
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.ts +12 -0
- package/src/agentcore-gateway/mcp-connection/schema.json +26 -0
- package/src/agentcore-gateway/schema.d.ts +16 -0
- package/src/agentcore-gateway/schema.json +65 -0
- package/src/connection/generator.d.ts +1 -1
- package/src/connection/generator.js +64 -46
- package/src/connection/generator.js.map +1 -1
- package/src/mcp-server/schema-registry.d.ts +9 -3
- package/src/mcp-server/schema-registry.js +22 -6
- package/src/mcp-server/schema-registry.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +2 -0
- package/src/py/agent/__snapshots__/generator.spec.ts.snap +55 -2
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +9 -3
- package/src/py/agent/a2a-connection/generator.js +1 -1
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client.py.template +35 -0
- package/src/py/agent/gateway-connection/generator.d.ts +10 -0
- package/src/py/agent/gateway-connection/generator.js +106 -0
- package/src/py/agent/gateway-connection/generator.js.map +1 -0
- package/src/py/agent/gateway-connection/schema.d.ts +12 -0
- package/src/py/agent/gateway-connection/schema.json +26 -0
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +8 -4
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +9 -3
- package/src/py/agent/mcp-connection/generator.js +2 -72
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +7 -16
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +57 -2
- package/src/smithy/ts/api/generator.js +1 -1
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +55 -2
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +10 -6
- package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client.ts.template +30 -0
- package/src/ts/agent/gateway-connection/generator.d.ts +10 -0
- package/src/ts/agent/gateway-connection/generator.js +106 -0
- package/src/ts/agent/gateway-connection/generator.js.map +1 -0
- package/src/ts/agent/gateway-connection/schema.d.ts +12 -0
- package/src/ts/agent/gateway-connection/schema.json +26 -0
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +9 -4
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +9 -6
- package/src/ts/agent/mcp-connection/generator.js +1 -13
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +135 -76
- package/src/ts/dynamodb/files/dynamodb.config.json +14 -0
- package/src/ts/dynamodb/files/scripts/create-local-table.ts.template +14 -7
- package/src/ts/dynamodb/files/src/index.ts.template +0 -1
- package/src/ts/dynamodb/generator.js +3 -1
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +57 -2
- package/src/ts/nx-generator/generator.js +29 -0
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +1 -16
- package/src/ts/react-website/agui/generator.js +0 -1
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/utils/agent-connection/agent-connection.d.ts +17 -0
- package/src/utils/agent-connection/agent-connection.js +94 -0
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-client.ts.template +78 -0
- package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +22 -32
- package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_client.py.template +78 -0
- package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +5 -18
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +8 -0
- package/src/utils/agent-core-constructs/agent-core-constructs.js +54 -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 +4 -0
- package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +37 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +293 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +242 -0
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +55 -2
- package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +1 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
- package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +17 -3
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +11 -14
- package/src/utils/versions.d.ts +7 -5
- package/src/utils/versions.js +6 -4
- package/src/utils/versions.js.map +1 -1
- package/src/ts/dynamodb/files/src/gsi.ts.template +0 -14
package/generators.json
CHANGED
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
"name": "@aws/nx-plugin",
|
|
4
4
|
"version": "0.0.1",
|
|
5
5
|
"generators": {
|
|
6
|
+
"agentcore-gateway": {
|
|
7
|
+
"factory": "./src/agentcore-gateway/generator",
|
|
8
|
+
"schema": "./src/agentcore-gateway/schema.json",
|
|
9
|
+
"description": "Generate an AgentCore Gateway project",
|
|
10
|
+
"metric": "g48"
|
|
11
|
+
},
|
|
12
|
+
"agentcore-gateway#mcp-connection": {
|
|
13
|
+
"factory": "./src/agentcore-gateway/mcp-connection/generator",
|
|
14
|
+
"schema": "./src/agentcore-gateway/mcp-connection/schema.json",
|
|
15
|
+
"description": "Connect an AgentCore Gateway to an MCP server",
|
|
16
|
+
"metric": "g49",
|
|
17
|
+
"hidden": true
|
|
18
|
+
},
|
|
6
19
|
"connection": {
|
|
7
20
|
"factory": "./src/connection/generator",
|
|
8
21
|
"schema": "./src/connection/schema.json",
|
|
@@ -23,7 +36,10 @@
|
|
|
23
36
|
"connection/trpc-rdb",
|
|
24
37
|
"connection/smithy-rdb",
|
|
25
38
|
"connection/ts-mcp-server-rdb",
|
|
26
|
-
"connection/ts-agent-rdb"
|
|
39
|
+
"connection/ts-agent-rdb",
|
|
40
|
+
"connection/ts-agent-gateway",
|
|
41
|
+
"connection/py-agent-gateway",
|
|
42
|
+
"connection/agentcore-gateway-mcp"
|
|
27
43
|
]
|
|
28
44
|
},
|
|
29
45
|
"license": {
|
|
@@ -279,6 +295,13 @@
|
|
|
279
295
|
"metric": "g35",
|
|
280
296
|
"hidden": true
|
|
281
297
|
},
|
|
298
|
+
"ts#agent#gateway-connection": {
|
|
299
|
+
"factory": "./src/ts/agent/gateway-connection/generator",
|
|
300
|
+
"schema": "./src/ts/agent/gateway-connection/schema.json",
|
|
301
|
+
"description": "Connect a TypeScript Agent to an AgentCore Gateway",
|
|
302
|
+
"metric": "g50",
|
|
303
|
+
"hidden": true
|
|
304
|
+
},
|
|
282
305
|
"py#agent#a2a-connection": {
|
|
283
306
|
"factory": "./src/py/agent/a2a-connection/generator",
|
|
284
307
|
"schema": "./src/py/agent/a2a-connection/schema.json",
|
|
@@ -286,6 +309,13 @@
|
|
|
286
309
|
"metric": "g36",
|
|
287
310
|
"hidden": true
|
|
288
311
|
},
|
|
312
|
+
"py#agent#gateway-connection": {
|
|
313
|
+
"factory": "./src/py/agent/gateway-connection/generator",
|
|
314
|
+
"schema": "./src/py/agent/gateway-connection/schema.json",
|
|
315
|
+
"description": "Connect a Python Agent to an AgentCore Gateway",
|
|
316
|
+
"metric": "g51",
|
|
317
|
+
"hidden": true
|
|
318
|
+
},
|
|
289
319
|
"ts#sync": {
|
|
290
320
|
"factory": "./src/ts/sync/generator",
|
|
291
321
|
"schema": "./src/ts/sync/schema.json",
|
package/package.json
CHANGED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
export { agentcoreGatewayGenerator } from '../src/agentcore-gateway/generator';
|
|
6
|
+
export type { AgentcoreGatewayGeneratorSchema } from '../src/agentcore-gateway/schema';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.agentcoreGatewayGenerator = void 0;
|
|
8
|
+
// AgentCore Gateway Generator
|
|
9
|
+
var generator_1 = require("../src/agentcore-gateway/generator");
|
|
10
|
+
Object.defineProperty(exports, "agentcoreGatewayGenerator", { enumerable: true, get: function () { return generator_1.agentcoreGatewayGenerator; } });
|
|
11
|
+
//# sourceMappingURL=agentcore-gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentcore-gateway.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/sdk/agentcore-gateway.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,8BAA8B;AAC9B,gEAA+E;AAAtE,sHAAA,yBAAyB,OAAA"}
|
package/sdk/license.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
export {
|
|
6
|
-
export type { AllowlistEntry, DependencyCheckConfig, DependencyCheckException, } from '../src/license/index';
|
|
7
|
-
export { npmCollector, pythonCollector } from '../src/license/index';
|
|
8
|
-
export type {
|
|
5
|
+
export { licenseGenerator } from '../src/license/generator';
|
|
6
|
+
export type { AllowlistEntry, CollectedDependency, DependencyCheckConfig, DependencyCheckException, LicenseCollector, } from '../src/license/index';
|
|
7
|
+
export { DEFAULT_LICENSE_ALLOWLIST, npmCollector, pythonCollector, } from '../src/license/index';
|
|
8
|
+
export type { LicenseGeneratorSchema } from '../src/license/schema';
|
package/sdk/license.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.pythonCollector = exports.npmCollector = exports.DEFAULT_LICENSE_ALLOWLIST = void 0;
|
|
3
|
+
exports.pythonCollector = exports.npmCollector = exports.DEFAULT_LICENSE_ALLOWLIST = exports.licenseGenerator = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
7
|
*/
|
|
8
|
+
var generator_1 = require("../src/license/generator");
|
|
9
|
+
Object.defineProperty(exports, "licenseGenerator", { enumerable: true, get: function () { return generator_1.licenseGenerator; } });
|
|
8
10
|
var index_1 = require("../src/license/index");
|
|
9
11
|
Object.defineProperty(exports, "DEFAULT_LICENSE_ALLOWLIST", { enumerable: true, get: function () { return index_1.DEFAULT_LICENSE_ALLOWLIST; } });
|
|
10
|
-
|
|
11
|
-
Object.defineProperty(exports, "
|
|
12
|
-
Object.defineProperty(exports, "pythonCollector", { enumerable: true, get: function () { return index_2.pythonCollector; } });
|
|
12
|
+
Object.defineProperty(exports, "npmCollector", { enumerable: true, get: function () { return index_1.npmCollector; } });
|
|
13
|
+
Object.defineProperty(exports, "pythonCollector", { enumerable: true, get: function () { return index_1.pythonCollector; } });
|
|
13
14
|
//# sourceMappingURL=license.js.map
|
package/sdk/license.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/sdk/license.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"license.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/sdk/license.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,sDAA4D;AAAnD,6GAAA,gBAAgB,OAAA;AAQzB,8CAI8B;AAH5B,kHAAA,yBAAyB,OAAA;AACzB,qGAAA,YAAY,OAAA;AACZ,wGAAA,eAAe,OAAA"}
|
package/sdk/py.d.ts
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
5
|
+
export { pyAgentGenerator } from '../src/py/agent/generator';
|
|
6
|
+
export { PyAgentGeneratorSchema } from '../src/py/agent/schema';
|
|
7
|
+
export { pyApiGenerator } from '../src/py/api/generator';
|
|
8
|
+
export { PyApiGeneratorSchema } from '../src/py/api/schema';
|
|
9
9
|
export { pyLambdaFunctionGenerator } from '../src/py/lambda-function/generator';
|
|
10
10
|
export { PyLambdaFunctionGeneratorSchema } from '../src/py/lambda-function/schema';
|
|
11
11
|
export { pyMcpServerGenerator } from '../src/py/mcp-server/generator';
|
|
12
12
|
export { PyMcpServerGeneratorSchema } from '../src/py/mcp-server/schema';
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
13
|
+
export { pyProjectGenerator } from '../src/py/project/generator';
|
|
14
|
+
export { PyProjectGeneratorSchema } from '../src/py/project/schema';
|
package/sdk/py.js
CHANGED
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
8
|
-
var generator_1 = require("../src/py/
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
var generator_2 = require("../src/py/
|
|
11
|
-
Object.defineProperty(exports, "
|
|
7
|
+
exports.pyProjectGenerator = exports.pyMcpServerGenerator = exports.pyLambdaFunctionGenerator = exports.pyApiGenerator = exports.pyAgentGenerator = void 0;
|
|
8
|
+
var generator_1 = require("../src/py/agent/generator");
|
|
9
|
+
Object.defineProperty(exports, "pyAgentGenerator", { enumerable: true, get: function () { return generator_1.pyAgentGenerator; } });
|
|
10
|
+
var generator_2 = require("../src/py/api/generator");
|
|
11
|
+
Object.defineProperty(exports, "pyApiGenerator", { enumerable: true, get: function () { return generator_2.pyApiGenerator; } });
|
|
12
12
|
var generator_3 = require("../src/py/lambda-function/generator");
|
|
13
13
|
Object.defineProperty(exports, "pyLambdaFunctionGenerator", { enumerable: true, get: function () { return generator_3.pyLambdaFunctionGenerator; } });
|
|
14
14
|
var generator_4 = require("../src/py/mcp-server/generator");
|
|
15
15
|
Object.defineProperty(exports, "pyMcpServerGenerator", { enumerable: true, get: function () { return generator_4.pyMcpServerGenerator; } });
|
|
16
|
-
var generator_5 = require("../src/py/
|
|
17
|
-
Object.defineProperty(exports, "
|
|
16
|
+
var generator_5 = require("../src/py/project/generator");
|
|
17
|
+
Object.defineProperty(exports, "pyProjectGenerator", { enumerable: true, get: function () { return generator_5.pyProjectGenerator; } });
|
|
18
18
|
//# sourceMappingURL=py.js.map
|
package/sdk/py.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"py.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/sdk/py.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"py.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/sdk/py.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uDAA6D;AAApD,6GAAA,gBAAgB,OAAA;AAGzB,qDAAyD;AAAhD,2GAAA,cAAc,OAAA;AAGvB,iEAAgF;AAAvE,sHAAA,yBAAyB,OAAA;AAGlC,4DAAsE;AAA7D,iHAAA,oBAAoB,OAAA;AAE7B,yDAAiE;AAAxD,+GAAA,kBAAkB,OAAA"}
|
package/sdk/ts.d.ts
CHANGED
|
@@ -2,28 +2,32 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
export { tsProjectGenerator } from '../src/ts/lib/generator';
|
|
6
|
-
export type { TsProjectGeneratorSchema } from '../src/ts/lib/schema';
|
|
7
5
|
export { tsInfraGenerator } from '../src/infra/app/generator';
|
|
8
6
|
export type { TsInfraGeneratorSchema } from '../src/infra/app/schema';
|
|
9
|
-
export { tsMcpServerGenerator } from '../src/ts/mcp-server/generator';
|
|
10
|
-
export type { TsMcpServerGeneratorSchema } from '../src/ts/mcp-server/schema';
|
|
11
7
|
export { tsAgentGenerator } from '../src/ts/agent/generator';
|
|
12
8
|
export type { TsAgentGeneratorSchema } from '../src/ts/agent/schema';
|
|
9
|
+
export { tsApiGenerator } from '../src/ts/api/generator';
|
|
10
|
+
export type { TsApiGeneratorSchema } from '../src/ts/api/schema';
|
|
11
|
+
export { tsDocsGenerator } from '../src/ts/docs/generator';
|
|
12
|
+
export type { TsDocsGeneratorSchema } from '../src/ts/docs/schema';
|
|
13
|
+
export { tsDynamoDBGenerator } from '../src/ts/dynamodb/generator';
|
|
14
|
+
export type { TsDynamoDBGeneratorSchema } from '../src/ts/dynamodb/schema';
|
|
15
|
+
export { tsLambdaFunctionGenerator } from '../src/ts/lambda-function/generator';
|
|
16
|
+
export type { TsLambdaFunctionGeneratorSchema } from '../src/ts/lambda-function/schema';
|
|
17
|
+
export { tsProjectGenerator } from '../src/ts/lib/generator';
|
|
18
|
+
export type { TsProjectGeneratorSchema } from '../src/ts/lib/schema';
|
|
19
|
+
export { tsMcpServerGenerator } from '../src/ts/mcp-server/generator';
|
|
20
|
+
export type { TsMcpServerGeneratorSchema } from '../src/ts/mcp-server/schema';
|
|
13
21
|
export { tsNxGeneratorGenerator } from '../src/ts/nx-generator/generator';
|
|
14
22
|
export type { TsNxGeneratorGeneratorSchema } from '../src/ts/nx-generator/schema';
|
|
15
23
|
export { tsNxPluginGenerator } from '../src/ts/nx-plugin/generator';
|
|
16
24
|
export type { TsNxPluginGeneratorSchema } from '../src/ts/nx-plugin/schema';
|
|
17
|
-
export {
|
|
18
|
-
export type {
|
|
19
|
-
export { tsReactWebsiteAuthGenerator } from '../src/ts/react-website/cognito-auth/generator';
|
|
20
|
-
export type { TsReactWebsiteAuthGeneratorSchema } from '../src/ts/react-website/cognito-auth/schema';
|
|
25
|
+
export { tsRdbGenerator } from '../src/ts/rdb/generator';
|
|
26
|
+
export type { TsRdbGeneratorSchema } from '../src/ts/rdb/schema';
|
|
21
27
|
export { runtimeConfigGenerator } from '../src/ts/react-website/runtime-config/generator';
|
|
22
28
|
export type { RuntimeConfigGeneratorSchema } from '../src/ts/react-website/runtime-config/schema';
|
|
23
|
-
export {
|
|
24
|
-
export type {
|
|
25
|
-
export {
|
|
26
|
-
export type {
|
|
27
|
-
export { tsLambdaFunctionGenerator } from '../src/ts/lambda-function/generator';
|
|
28
|
-
export type { TsLambdaFunctionGeneratorSchema } from '../src/ts/lambda-function/schema';
|
|
29
|
+
export { tsWebsiteGenerator } from '../src/ts/website/app/generator';
|
|
30
|
+
export type { TsWebsiteGeneratorSchema } from '../src/ts/website/app/schema';
|
|
31
|
+
export { tsWebsiteAuthGenerator } from '../src/ts/website/auth/generator';
|
|
32
|
+
export type { TsWebsiteAuthGeneratorSchema } from '../src/ts/website/auth/schema';
|
|
29
33
|
export { sharedConstructsGenerator } from '../src/utils/shared-constructs';
|
package/sdk/ts.js
CHANGED
|
@@ -4,43 +4,49 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.sharedConstructsGenerator = exports.
|
|
8
|
-
// TypeScript Project Generator
|
|
9
|
-
var generator_1 = require("../src/ts/lib/generator");
|
|
10
|
-
Object.defineProperty(exports, "tsProjectGenerator", { enumerable: true, get: function () { return generator_1.tsProjectGenerator; } });
|
|
7
|
+
exports.sharedConstructsGenerator = exports.tsWebsiteAuthGenerator = exports.tsWebsiteGenerator = exports.runtimeConfigGenerator = exports.tsRdbGenerator = exports.tsNxPluginGenerator = exports.tsNxGeneratorGenerator = exports.tsMcpServerGenerator = exports.tsProjectGenerator = exports.tsLambdaFunctionGenerator = exports.tsDynamoDBGenerator = exports.tsDocsGenerator = exports.tsApiGenerator = exports.tsAgentGenerator = exports.tsInfraGenerator = void 0;
|
|
11
8
|
// TypeScript Infrastructure
|
|
12
|
-
var
|
|
13
|
-
Object.defineProperty(exports, "tsInfraGenerator", { enumerable: true, get: function () { return
|
|
14
|
-
// TypeScript MCP Server Generator
|
|
15
|
-
var generator_3 = require("../src/ts/mcp-server/generator");
|
|
16
|
-
Object.defineProperty(exports, "tsMcpServerGenerator", { enumerable: true, get: function () { return generator_3.tsMcpServerGenerator; } });
|
|
9
|
+
var generator_1 = require("../src/infra/app/generator");
|
|
10
|
+
Object.defineProperty(exports, "tsInfraGenerator", { enumerable: true, get: function () { return generator_1.tsInfraGenerator; } });
|
|
17
11
|
// TypeScript Agent Generator
|
|
18
|
-
var
|
|
19
|
-
Object.defineProperty(exports, "tsAgentGenerator", { enumerable: true, get: function () { return
|
|
12
|
+
var generator_2 = require("../src/ts/agent/generator");
|
|
13
|
+
Object.defineProperty(exports, "tsAgentGenerator", { enumerable: true, get: function () { return generator_2.tsAgentGenerator; } });
|
|
14
|
+
// TypeScript API
|
|
15
|
+
var generator_3 = require("../src/ts/api/generator");
|
|
16
|
+
Object.defineProperty(exports, "tsApiGenerator", { enumerable: true, get: function () { return generator_3.tsApiGenerator; } });
|
|
17
|
+
// Documentation Site Generator
|
|
18
|
+
var generator_4 = require("../src/ts/docs/generator");
|
|
19
|
+
Object.defineProperty(exports, "tsDocsGenerator", { enumerable: true, get: function () { return generator_4.tsDocsGenerator; } });
|
|
20
|
+
// DynamoDB Generator
|
|
21
|
+
var generator_5 = require("../src/ts/dynamodb/generator");
|
|
22
|
+
Object.defineProperty(exports, "tsDynamoDBGenerator", { enumerable: true, get: function () { return generator_5.tsDynamoDBGenerator; } });
|
|
23
|
+
// TypeScript Lambda Function
|
|
24
|
+
var generator_6 = require("../src/ts/lambda-function/generator");
|
|
25
|
+
Object.defineProperty(exports, "tsLambdaFunctionGenerator", { enumerable: true, get: function () { return generator_6.tsLambdaFunctionGenerator; } });
|
|
26
|
+
// TypeScript Project Generator
|
|
27
|
+
var generator_7 = require("../src/ts/lib/generator");
|
|
28
|
+
Object.defineProperty(exports, "tsProjectGenerator", { enumerable: true, get: function () { return generator_7.tsProjectGenerator; } });
|
|
29
|
+
// TypeScript MCP Server Generator
|
|
30
|
+
var generator_8 = require("../src/ts/mcp-server/generator");
|
|
31
|
+
Object.defineProperty(exports, "tsMcpServerGenerator", { enumerable: true, get: function () { return generator_8.tsMcpServerGenerator; } });
|
|
20
32
|
// TypeScript Nx Generator Generator
|
|
21
|
-
var
|
|
22
|
-
Object.defineProperty(exports, "tsNxGeneratorGenerator", { enumerable: true, get: function () { return
|
|
33
|
+
var generator_9 = require("../src/ts/nx-generator/generator");
|
|
34
|
+
Object.defineProperty(exports, "tsNxGeneratorGenerator", { enumerable: true, get: function () { return generator_9.tsNxGeneratorGenerator; } });
|
|
23
35
|
// TypeScript Nx Plugin Generator
|
|
24
|
-
var
|
|
25
|
-
Object.defineProperty(exports, "tsNxPluginGenerator", { enumerable: true, get: function () { return
|
|
26
|
-
//
|
|
27
|
-
var
|
|
28
|
-
Object.defineProperty(exports, "
|
|
29
|
-
// TypeScript React Website Auth Generator
|
|
30
|
-
var generator_8 = require("../src/ts/react-website/cognito-auth/generator");
|
|
31
|
-
Object.defineProperty(exports, "tsReactWebsiteAuthGenerator", { enumerable: true, get: function () { return generator_8.tsReactWebsiteAuthGenerator; } });
|
|
36
|
+
var generator_10 = require("../src/ts/nx-plugin/generator");
|
|
37
|
+
Object.defineProperty(exports, "tsNxPluginGenerator", { enumerable: true, get: function () { return generator_10.tsNxPluginGenerator; } });
|
|
38
|
+
// Relational Database Generator
|
|
39
|
+
var generator_11 = require("../src/ts/rdb/generator");
|
|
40
|
+
Object.defineProperty(exports, "tsRdbGenerator", { enumerable: true, get: function () { return generator_11.tsRdbGenerator; } });
|
|
32
41
|
// Runtime Config
|
|
33
|
-
var
|
|
34
|
-
Object.defineProperty(exports, "runtimeConfigGenerator", { enumerable: true, get: function () { return
|
|
35
|
-
// TypeScript
|
|
36
|
-
var
|
|
37
|
-
Object.defineProperty(exports, "
|
|
38
|
-
// TypeScript
|
|
39
|
-
var
|
|
40
|
-
Object.defineProperty(exports, "
|
|
41
|
-
// TypeScript Lambda Function
|
|
42
|
-
var generator_12 = require("../src/ts/lambda-function/generator");
|
|
43
|
-
Object.defineProperty(exports, "tsLambdaFunctionGenerator", { enumerable: true, get: function () { return generator_12.tsLambdaFunctionGenerator; } });
|
|
42
|
+
var generator_12 = require("../src/ts/react-website/runtime-config/generator");
|
|
43
|
+
Object.defineProperty(exports, "runtimeConfigGenerator", { enumerable: true, get: function () { return generator_12.runtimeConfigGenerator; } });
|
|
44
|
+
// TypeScript Website Generator
|
|
45
|
+
var generator_13 = require("../src/ts/website/app/generator");
|
|
46
|
+
Object.defineProperty(exports, "tsWebsiteGenerator", { enumerable: true, get: function () { return generator_13.tsWebsiteGenerator; } });
|
|
47
|
+
// TypeScript Website Auth Generator
|
|
48
|
+
var generator_14 = require("../src/ts/website/auth/generator");
|
|
49
|
+
Object.defineProperty(exports, "tsWebsiteAuthGenerator", { enumerable: true, get: function () { return generator_14.tsWebsiteAuthGenerator; } });
|
|
44
50
|
// Shared Constructs
|
|
45
51
|
var shared_constructs_1 = require("../src/utils/shared-constructs");
|
|
46
52
|
Object.defineProperty(exports, "sharedConstructsGenerator", { enumerable: true, get: function () { return shared_constructs_1.sharedConstructsGenerator; } });
|
package/sdk/ts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/sdk/ts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"ts.js","sourceRoot":"","sources":["../../../../packages/nx-plugin/sdk/ts.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,4BAA4B;AAC5B,wDAA8D;AAArD,6GAAA,gBAAgB,OAAA;AAEzB,6BAA6B;AAC7B,uDAA6D;AAApD,6GAAA,gBAAgB,OAAA;AAEzB,iBAAiB;AACjB,qDAAyD;AAAhD,2GAAA,cAAc,OAAA;AAEvB,+BAA+B;AAC/B,sDAA2D;AAAlD,4GAAA,eAAe,OAAA;AAExB,qBAAqB;AACrB,0DAAmE;AAA1D,gHAAA,mBAAmB,OAAA;AAE5B,6BAA6B;AAC7B,iEAAgF;AAAvE,sHAAA,yBAAyB,OAAA;AAElC,+BAA+B;AAC/B,qDAA6D;AAApD,+GAAA,kBAAkB,OAAA;AAE3B,kCAAkC;AAClC,4DAAsE;AAA7D,iHAAA,oBAAoB,OAAA;AAE7B,oCAAoC;AACpC,8DAA0E;AAAjE,mHAAA,sBAAsB,OAAA;AAE/B,iCAAiC;AACjC,4DAAoE;AAA3D,iHAAA,mBAAmB,OAAA;AAE5B,gCAAgC;AAChC,sDAAyD;AAAhD,4GAAA,cAAc,OAAA;AAEvB,iBAAiB;AACjB,+EAA0F;AAAjF,oHAAA,sBAAsB,OAAA;AAE/B,+BAA+B;AAC/B,8DAAqE;AAA5D,gHAAA,kBAAkB,OAAA;AAE3B,oCAAoC;AACpC,+DAA0E;AAAjE,oHAAA,sBAAsB,OAAA;AAG/B,oBAAoB;AACpB,oEAA2E;AAAlE,8HAAA,yBAAyB,OAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Cedar policies for <%= nameClassName %>
|
|
2
|
+
|
|
3
|
+
Every `.cedar` file in this directory is deployed as a separate `Policy`
|
|
4
|
+
resource attached to this gateway's `PolicyEngine`. The engine runs in
|
|
5
|
+
`ENFORCE` mode, so policies are evaluated and decisions are enforced at
|
|
6
|
+
runtime.
|
|
7
|
+
|
|
8
|
+
## Default policy
|
|
9
|
+
|
|
10
|
+
`permit-all.cedar` permits any IAM caller from the deploying AWS account.
|
|
11
|
+
It is scoped to your account because AgentCore's policy validator rejects
|
|
12
|
+
truly unrestricted permits (`permit (principal, action, resource)`) as
|
|
13
|
+
"Overly Permissive".
|
|
14
|
+
|
|
15
|
+
**If you delete this file without adding replacement `permit` policies, the
|
|
16
|
+
gateway will deny every request** — Cedar uses a default-deny evaluation
|
|
17
|
+
model, so every request requires at least one matching `permit` to be
|
|
18
|
+
allowed.
|
|
19
|
+
|
|
20
|
+
## Template variables
|
|
21
|
+
|
|
22
|
+
Policies are [EJS](https://ejs.co/) templates rendered at synth/plan time
|
|
23
|
+
with the following variables in scope:
|
|
24
|
+
|
|
25
|
+
- `<%%= gatewayArn %>` — this gateway's ARN
|
|
26
|
+
- `<%%= accountId %>` — the AWS account this gateway is deployed into
|
|
27
|
+
|
|
28
|
+
Add your own variables (e.g. an agent's role name) where the policies are
|
|
29
|
+
rendered:
|
|
30
|
+
|
|
31
|
+
- CDK: the `cedarPolicyVariables` prop in
|
|
32
|
+
`packages/common/constructs/src/app/gateways/<name>/<name>.ts`
|
|
33
|
+
- Terraform: the `query` of the `rendered_policies` data source in
|
|
34
|
+
`packages/common/terraform/src/app/gateways/<name>/<name>.tf`
|
|
35
|
+
|
|
36
|
+
## Adding a new policy
|
|
37
|
+
|
|
38
|
+
1. Create `policies/<my-policy>.cedar` alongside the existing files.
|
|
39
|
+
2. Write Cedar rules — see the **Writing Policies** section of the
|
|
40
|
+
[AgentCore Gateway guide](https://awslabs.github.io/nx-plugin-for-aws/guides/agentcore-gateway/)
|
|
41
|
+
for valid patterns and validator gotchas.
|
|
42
|
+
3. Re-synth / plan your infrastructure to deploy the new policy.
|
|
43
|
+
|
|
44
|
+
Policy names are derived from file names: `my-policy.cedar` becomes the
|
|
45
|
+
policy `MyPolicy` (plus a unique suffix, since policy names must be unique
|
|
46
|
+
account-wide). Keep file names unique within this directory.
|
|
47
|
+
|
|
48
|
+
## Further reading
|
|
49
|
+
|
|
50
|
+
- [Cedar policy language reference](https://docs.cedarpolicy.com/)
|
|
51
|
+
- [AgentCore policy semantics](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/policy-understanding-cedar.html)
|
|
52
|
+
- [AgentCore common policy patterns](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/policy-common-patterns.html)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Default policy: permit any IAM caller from the deploying AWS account.
|
|
2
|
+
// The PolicyEngine runs in ENFORCE mode (default-deny) — deleting this file
|
|
3
|
+
// without a replacement permit denies every call. See policies/README.md.
|
|
4
|
+
|
|
5
|
+
permit (
|
|
6
|
+
principal is AgentCore::IamEntity,
|
|
7
|
+
action,
|
|
8
|
+
resource == AgentCore::Gateway::"<%%= gatewayArn %>"
|
|
9
|
+
) when {
|
|
10
|
+
principal.id like "arn:aws:*::<%%= accountId %>:*"
|
|
11
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
3
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
4
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
5
|
+
import {
|
|
6
|
+
CallToolRequestSchema,
|
|
7
|
+
ListToolsRequestSchema,
|
|
8
|
+
} from '@modelcontextprotocol/sdk/types.js';
|
|
9
|
+
import express from 'express';
|
|
10
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
11
|
+
|
|
12
|
+
const PORT = parseInt(process.env.PORT || '<%- port %>');
|
|
13
|
+
const PREFIX_SEPARATOR = '___';
|
|
14
|
+
const SESSION_HEADER = 'x-amzn-bedrock-agentcore-runtime-session-id';
|
|
15
|
+
|
|
16
|
+
interface AttachedMcpServer {
|
|
17
|
+
name: string;
|
|
18
|
+
url: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// MCP servers attached to this gateway, maintained by the
|
|
22
|
+
// `agentcore-gateway#mcp-connection` generator.
|
|
23
|
+
const ATTACHED_MCP_SERVERS: AttachedMcpServer[] = [<% attachedMcpServers.forEach((s) => { %>
|
|
24
|
+
{ name: '<%- s.name %>', url: 'http://localhost:<%- s.port %>/mcp' },<% }); %>
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
// Forwards the inbound request's AgentCore session header to upstream calls
|
|
28
|
+
const sessionContext = new AsyncLocalStorage<string | undefined>();
|
|
29
|
+
|
|
30
|
+
const createUpstreamClient = async (url: string): Promise<Client> => {
|
|
31
|
+
const fetchWithSession: typeof fetch = async (input, init) => {
|
|
32
|
+
const headers = new Headers(init?.headers);
|
|
33
|
+
const sessionId = sessionContext.getStore();
|
|
34
|
+
if (sessionId) headers.set(SESSION_HEADER, sessionId);
|
|
35
|
+
return fetch(input, { ...init, headers });
|
|
36
|
+
};
|
|
37
|
+
const client = new Client({ name: '<%- nameKebabCase %>', version: '1.0.0' });
|
|
38
|
+
await client.connect(
|
|
39
|
+
new StreamableHTTPClientTransport(new URL(url), {
|
|
40
|
+
fetch: fetchWithSession,
|
|
41
|
+
}),
|
|
42
|
+
);
|
|
43
|
+
return client;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Local gateway for <%- nameClassName %>: a single MCP endpoint aggregating
|
|
48
|
+
* every attached MCP server, with tools exposed as `<target>___<tool>` to
|
|
49
|
+
* match the deployed AgentCore Gateway. Unlike the real gateway, Cedar
|
|
50
|
+
* policies are not evaluated and there is no semantic tool search.
|
|
51
|
+
*/
|
|
52
|
+
const createServer = async (): Promise<Server> => {
|
|
53
|
+
const server = new Server(
|
|
54
|
+
{ name: '<%- nameKebabCase %>', version: '1.0.0' },
|
|
55
|
+
{ capabilities: { tools: {} } },
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
59
|
+
const lists = await Promise.all(
|
|
60
|
+
ATTACHED_MCP_SERVERS.map(async (s) => {
|
|
61
|
+
const client = await createUpstreamClient(s.url);
|
|
62
|
+
try {
|
|
63
|
+
const { tools } = await client.listTools();
|
|
64
|
+
return tools.map((t) => ({
|
|
65
|
+
...t,
|
|
66
|
+
name: `${s.name}${PREFIX_SEPARATOR}${t.name}`,
|
|
67
|
+
}));
|
|
68
|
+
} finally {
|
|
69
|
+
await client.close();
|
|
70
|
+
}
|
|
71
|
+
}),
|
|
72
|
+
);
|
|
73
|
+
return { tools: lists.flat() };
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
77
|
+
const name = request.params.name;
|
|
78
|
+
const upstream = ATTACHED_MCP_SERVERS.find((s) =>
|
|
79
|
+
name.startsWith(`${s.name}${PREFIX_SEPARATOR}`),
|
|
80
|
+
);
|
|
81
|
+
if (!upstream) {
|
|
82
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
83
|
+
}
|
|
84
|
+
const client = await createUpstreamClient(upstream.url);
|
|
85
|
+
try {
|
|
86
|
+
return await client.callTool({
|
|
87
|
+
...request.params,
|
|
88
|
+
name: name.slice(upstream.name.length + PREFIX_SEPARATOR.length),
|
|
89
|
+
});
|
|
90
|
+
} finally {
|
|
91
|
+
await client.close();
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
return server;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const app = express();
|
|
99
|
+
app.use(express.json());
|
|
100
|
+
|
|
101
|
+
app.post('/mcp', async (req, res) => {
|
|
102
|
+
const sessionId = req.headers[SESSION_HEADER];
|
|
103
|
+
await sessionContext.run(
|
|
104
|
+
typeof sessionId === 'string' ? sessionId : undefined,
|
|
105
|
+
async () => {
|
|
106
|
+
try {
|
|
107
|
+
const server = await createServer();
|
|
108
|
+
const transport = new StreamableHTTPServerTransport({
|
|
109
|
+
sessionIdGenerator: undefined,
|
|
110
|
+
});
|
|
111
|
+
res.on('close', () => {
|
|
112
|
+
transport.close();
|
|
113
|
+
server.close();
|
|
114
|
+
});
|
|
115
|
+
await server.connect(transport);
|
|
116
|
+
await transport.handleRequest(req, res, req.body);
|
|
117
|
+
} catch (error) {
|
|
118
|
+
console.error('Error handling MCP request:', error);
|
|
119
|
+
if (!res.headersSent) {
|
|
120
|
+
res.status(500).json({
|
|
121
|
+
jsonrpc: '2.0',
|
|
122
|
+
error: { code: -32603, message: 'Internal server error' },
|
|
123
|
+
id: null,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
);
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
app.listen(PORT, () => {
|
|
132
|
+
console.log(`<%- nameKebabCase %>: local gateway listening on port ${PORT}`);
|
|
133
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { type GeneratorCallback, type ProjectConfiguration, type Tree } from '@nx/devkit';
|
|
6
|
+
import { type NxGeneratorInfo } from '../utils/nx';
|
|
7
|
+
import type { AgentcoreGatewayGeneratorSchema } from './schema';
|
|
8
|
+
export declare const AGENTCORE_GATEWAY_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
|
+
export declare const agentcoreGatewayGenerator: (tree: Tree, options: AgentcoreGatewayGeneratorSchema) => Promise<GeneratorCallback>;
|
|
10
|
+
/**
|
|
11
|
+
* Gateway details stored in the gateway project's metadata.
|
|
12
|
+
*/
|
|
13
|
+
export interface AgentCoreGatewayMetadata {
|
|
14
|
+
name: string;
|
|
15
|
+
rc: string;
|
|
16
|
+
protocol: string;
|
|
17
|
+
auth: string;
|
|
18
|
+
port: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Read a gateway project's metadata, validating it was generated by the
|
|
22
|
+
* agentcore-gateway generator.
|
|
23
|
+
*/
|
|
24
|
+
export declare const readAgentCoreGatewayMetadata: (project: ProjectConfiguration) => AgentCoreGatewayMetadata;
|
|
25
|
+
export default agentcoreGatewayGenerator;
|