@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
|
@@ -44,6 +44,8 @@ export class SnapshotBedrockServer
|
|
|
44
44
|
{
|
|
45
45
|
public readonly dockerImage: AgentRuntimeArtifact;
|
|
46
46
|
public readonly agentCoreRuntime: Runtime;
|
|
47
|
+
/** Default Gateway target name for this MCP server. */
|
|
48
|
+
public readonly mcpServerName = 'snapshot-bedrock-server';
|
|
47
49
|
|
|
48
50
|
constructor(
|
|
49
51
|
scope: Construct,
|
|
@@ -464,6 +466,59 @@ resource "aws_bedrockagentcore_agent_runtime" "agent_runtime" {
|
|
|
464
466
|
]
|
|
465
467
|
}
|
|
466
468
|
|
|
469
|
+
# MCP consumers (e.g. gateway targets, which fetch tools at creation) can race
|
|
470
|
+
# the runtime's first cold start, so probe it until it serves MCP. The ARN
|
|
471
|
+
# output is routed through this resource so consumers wait for readiness.
|
|
472
|
+
resource "null_resource" "runtime_ready" {
|
|
473
|
+
count = var.server_protocol == "MCP" ? 1 : 0
|
|
474
|
+
|
|
475
|
+
triggers = {
|
|
476
|
+
runtime_arn = aws_bedrockagentcore_agent_runtime.agent_runtime.agent_runtime_arn
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
provisioner "local-exec" {
|
|
480
|
+
command = <<-EOT
|
|
481
|
+
uv run --with boto3 python -c "
|
|
482
|
+
import boto3
|
|
483
|
+
import json
|
|
484
|
+
import time
|
|
485
|
+
import uuid
|
|
486
|
+
|
|
487
|
+
runtime_arn = '\${self.triggers.runtime_arn}'
|
|
488
|
+
client = boto3.client('bedrock-agentcore')
|
|
489
|
+
initialize_request = json.dumps({
|
|
490
|
+
'jsonrpc': '2.0',
|
|
491
|
+
'id': 1,
|
|
492
|
+
'method': 'initialize',
|
|
493
|
+
'params': {
|
|
494
|
+
'protocolVersion': '2025-03-26',
|
|
495
|
+
'capabilities': {},
|
|
496
|
+
'clientInfo': {'name': 'readiness-probe', 'version': '1.0'},
|
|
497
|
+
},
|
|
498
|
+
})
|
|
499
|
+
|
|
500
|
+
deadline = time.time() + 3 * 60
|
|
501
|
+
while True:
|
|
502
|
+
try:
|
|
503
|
+
client.invoke_agent_runtime(
|
|
504
|
+
agentRuntimeArn=runtime_arn,
|
|
505
|
+
runtimeSessionId=f'readiness-probe-{uuid.uuid4()}',
|
|
506
|
+
contentType='application/json',
|
|
507
|
+
accept='application/json, text/event-stream',
|
|
508
|
+
payload=initialize_request,
|
|
509
|
+
)
|
|
510
|
+
break
|
|
511
|
+
except Exception:
|
|
512
|
+
if time.time() >= deadline:
|
|
513
|
+
raise
|
|
514
|
+
time.sleep(5)
|
|
515
|
+
|
|
516
|
+
print(f'Runtime {runtime_arn} is serving MCP')
|
|
517
|
+
"
|
|
518
|
+
EOT
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
|
|
467
522
|
# Outputs
|
|
468
523
|
output "agent_core_runtime_role_arn" {
|
|
469
524
|
description = "ARN of the Agent Core Runtime IAM role"
|
|
@@ -481,8 +536,8 @@ output "agent_runtime_name" {
|
|
|
481
536
|
}
|
|
482
537
|
|
|
483
538
|
output "agent_core_runtime_arn" {
|
|
484
|
-
description = "ARN of the Bedrock Agent Core runtime"
|
|
485
|
-
value = aws_bedrockagentcore_agent_runtime.agent_runtime.agent_runtime_arn
|
|
539
|
+
description = "ARN of the Bedrock Agent Core runtime. For MCP runtimes the value flows through the readiness probe, so consumers wait until the runtime serves MCP."
|
|
540
|
+
value = var.server_protocol == "MCP" ? null_resource.runtime_ready[0].triggers.runtime_arn : aws_bedrockagentcore_agent_runtime.agent_runtime.agent_runtime_arn
|
|
486
541
|
}
|
|
487
542
|
|
|
488
543
|
output "agent_runtime_id" {
|
|
@@ -203,7 +203,7 @@ const tsSmithyApiGenerator = async (tree, options) => {
|
|
|
203
203
|
...(options.auth === 'custom'
|
|
204
204
|
? ['@aws-lambda-powertools/parser']
|
|
205
205
|
: []),
|
|
206
|
-
]), (0, versions_1.withVersions)(['@types/aws-lambda']));
|
|
206
|
+
]), (0, versions_1.withVersions)(['@types/aws-lambda', 'tsx']));
|
|
207
207
|
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_SMITHY_API_GENERATOR_INFO]);
|
|
208
208
|
await (0, format_1.formatFilesInSubtree)(tree);
|
|
209
209
|
return () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -594,6 +594,59 @@ resource "aws_bedrockagentcore_agent_runtime" "agent_runtime" {
|
|
|
594
594
|
]
|
|
595
595
|
}
|
|
596
596
|
|
|
597
|
+
# MCP consumers (e.g. gateway targets, which fetch tools at creation) can race
|
|
598
|
+
# the runtime's first cold start, so probe it until it serves MCP. The ARN
|
|
599
|
+
# output is routed through this resource so consumers wait for readiness.
|
|
600
|
+
resource "null_resource" "runtime_ready" {
|
|
601
|
+
count = var.server_protocol == "MCP" ? 1 : 0
|
|
602
|
+
|
|
603
|
+
triggers = {
|
|
604
|
+
runtime_arn = aws_bedrockagentcore_agent_runtime.agent_runtime.agent_runtime_arn
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
provisioner "local-exec" {
|
|
608
|
+
command = <<-EOT
|
|
609
|
+
uv run --with boto3 python -c "
|
|
610
|
+
import boto3
|
|
611
|
+
import json
|
|
612
|
+
import time
|
|
613
|
+
import uuid
|
|
614
|
+
|
|
615
|
+
runtime_arn = '\${self.triggers.runtime_arn}'
|
|
616
|
+
client = boto3.client('bedrock-agentcore')
|
|
617
|
+
initialize_request = json.dumps({
|
|
618
|
+
'jsonrpc': '2.0',
|
|
619
|
+
'id': 1,
|
|
620
|
+
'method': 'initialize',
|
|
621
|
+
'params': {
|
|
622
|
+
'protocolVersion': '2025-03-26',
|
|
623
|
+
'capabilities': {},
|
|
624
|
+
'clientInfo': {'name': 'readiness-probe', 'version': '1.0'},
|
|
625
|
+
},
|
|
626
|
+
})
|
|
627
|
+
|
|
628
|
+
deadline = time.time() + 3 * 60
|
|
629
|
+
while True:
|
|
630
|
+
try:
|
|
631
|
+
client.invoke_agent_runtime(
|
|
632
|
+
agentRuntimeArn=runtime_arn,
|
|
633
|
+
runtimeSessionId=f'readiness-probe-{uuid.uuid4()}',
|
|
634
|
+
contentType='application/json',
|
|
635
|
+
accept='application/json, text/event-stream',
|
|
636
|
+
payload=initialize_request,
|
|
637
|
+
)
|
|
638
|
+
break
|
|
639
|
+
except Exception:
|
|
640
|
+
if time.time() >= deadline:
|
|
641
|
+
raise
|
|
642
|
+
time.sleep(5)
|
|
643
|
+
|
|
644
|
+
print(f'Runtime {runtime_arn} is serving MCP')
|
|
645
|
+
"
|
|
646
|
+
EOT
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
|
|
597
650
|
# Outputs
|
|
598
651
|
output "agent_core_runtime_role_arn" {
|
|
599
652
|
description = "ARN of the Agent Core Runtime IAM role"
|
|
@@ -611,8 +664,8 @@ output "agent_runtime_name" {
|
|
|
611
664
|
}
|
|
612
665
|
|
|
613
666
|
output "agent_core_runtime_arn" {
|
|
614
|
-
description = "ARN of the Bedrock Agent Core runtime"
|
|
615
|
-
value = aws_bedrockagentcore_agent_runtime.agent_runtime.agent_runtime_arn
|
|
667
|
+
description = "ARN of the Bedrock Agent Core runtime. For MCP runtimes the value flows through the readiness probe, so consumers wait until the runtime serves MCP."
|
|
668
|
+
value = var.server_protocol == "MCP" ? null_resource.runtime_ready[0].triggers.runtime_arn : aws_bedrockagentcore_agent_runtime.agent_runtime.agent_runtime_arn
|
|
616
669
|
}
|
|
617
670
|
|
|
618
671
|
output "agent_runtime_id" {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { A2AAgent } from '@strands-agents/sdk/a2a';
|
|
2
2
|
import { AgentCoreA2aClient } from '../core/agentcore-a2a-client.js';
|
|
3
|
-
import {
|
|
3
|
+
import { getAgentCoreRuntimeConfig } from '../core/runtime-config.js';
|
|
4
4
|
|
|
5
5
|
/** Client for the <%- targetAgentClassName %> A2A agent. */
|
|
6
6
|
export class <%- targetAgentClassName %>Client {
|
|
@@ -10,10 +10,14 @@ export class <%- targetAgentClassName %>Client {
|
|
|
10
10
|
url: 'http://localhost:<%- targetAgentPort %>/',
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
const config = await getAgentCoreRuntimeConfig();
|
|
14
|
+
const agentRuntimeArn =
|
|
15
|
+
config.agentRuntimes?.['<%- targetAgentClassName %>'];
|
|
16
|
+
if (!agentRuntimeArn) {
|
|
17
|
+
throw new Error(
|
|
18
|
+
`No connected agent runtime named '<%- targetAgentClassName %>' found in runtime configuration.`,
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
return AgentCoreA2aClient.withIamAuth({ agentRuntimeArn });
|
|
18
22
|
}
|
|
19
23
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { McpClient } from '@strands-agents/sdk';
|
|
2
|
+
import { AgentCoreGatewayMcpClient } from '../core/agentcore-gateway-mcp-client.js';
|
|
3
|
+
import { getAgentCoreRuntimeConfig } from '../core/runtime-config.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Client for the <%- gatewayClassName %> AgentCore Gateway.
|
|
7
|
+
*
|
|
8
|
+
* Deployed: a SigV4-signed MCP client pointing at the gateway URL.
|
|
9
|
+
* Local (`SERVE_LOCAL=true`): a plain-HTTP client pointing at the local
|
|
10
|
+
* gateway started by the gateway project's serve-local target. The local
|
|
11
|
+
* gateway aggregates every attached MCP server but does not evaluate
|
|
12
|
+
* Cedar policies.
|
|
13
|
+
*/
|
|
14
|
+
export class <%- gatewayClassName %>Client {
|
|
15
|
+
static async create(): Promise<McpClient> {
|
|
16
|
+
if (process.env.SERVE_LOCAL === 'true') {
|
|
17
|
+
return AgentCoreGatewayMcpClient.withoutAuth({
|
|
18
|
+
gatewayUrl: 'http://localhost:<%- gatewayPort %>/mcp',
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
const config = await getAgentCoreRuntimeConfig();
|
|
22
|
+
const gatewayUrl = config.gateways?.['<%- gatewayClassName %>'];
|
|
23
|
+
if (!gatewayUrl) {
|
|
24
|
+
throw new Error(
|
|
25
|
+
`No connected gateway named '<%- gatewayClassName %>' found in runtime configuration.`,
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
return AgentCoreGatewayMcpClient.withIamAuth({ gatewayUrl });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
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 Tree } from '@nx/devkit';
|
|
6
|
+
import { type NxGeneratorInfo } from '../../../utils/nx';
|
|
7
|
+
import type { TsAgentGatewayConnectionGeneratorSchema } from './schema';
|
|
8
|
+
export declare const TS_AGENT_GATEWAY_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
|
+
export declare const tsAgentGatewayConnectionGenerator: (tree: Tree, options: TsAgentGatewayConnectionGeneratorSchema) => Promise<GeneratorCallback>;
|
|
10
|
+
export default tsAgentGatewayConnectionGenerator;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tsAgentGatewayConnectionGenerator = exports.TS_AGENT_GATEWAY_CONNECTION_GENERATOR_INFO = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
const devkit_1 = require("@nx/devkit");
|
|
9
|
+
const generator_1 = require("../../../agentcore-gateway/generator");
|
|
10
|
+
const agent_connection_1 = require("../../../utils/agent-connection/agent-connection");
|
|
11
|
+
const ast_1 = require("../../../utils/ast");
|
|
12
|
+
const format_1 = require("../../../utils/format");
|
|
13
|
+
const metrics_1 = require("../../../utils/metrics");
|
|
14
|
+
const names_1 = require("../../../utils/names");
|
|
15
|
+
const npm_scope_1 = require("../../../utils/npm-scope");
|
|
16
|
+
const nx_1 = require("../../../utils/nx");
|
|
17
|
+
const versions_1 = require("../../../utils/versions");
|
|
18
|
+
exports.TS_AGENT_GATEWAY_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
19
|
+
const tsAgentGatewayConnectionGenerator = async (tree, options) => {
|
|
20
|
+
const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
|
|
21
|
+
const targetProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
|
|
22
|
+
const agentComponent = options.sourceComponent;
|
|
23
|
+
if (!agentComponent) {
|
|
24
|
+
throw new Error('sourceComponent must be provided for ts#agent -> agentcore-gateway connections');
|
|
25
|
+
}
|
|
26
|
+
const gateway = (0, generator_1.readAgentCoreGatewayMetadata)(targetProject);
|
|
27
|
+
if (gateway.protocol !== 'mcp') {
|
|
28
|
+
throw new Error(`Gateway '${gateway.name}' has protocol='${gateway.protocol}'. Only MCP-protocol gateways are supported.`);
|
|
29
|
+
}
|
|
30
|
+
if (gateway.auth !== 'iam') {
|
|
31
|
+
throw new Error(`Gateway '${gateway.name}' uses auth='${gateway.auth}'. Only IAM-authenticated gateways are supported in v1.`);
|
|
32
|
+
}
|
|
33
|
+
if (agentComponent.auth && agentComponent.auth !== 'iam') {
|
|
34
|
+
throw new Error(`Agent '${agentComponent.name}' uses auth='${agentComponent.auth}'. Only IAM-authenticated agents can connect to IAM gateways.`);
|
|
35
|
+
}
|
|
36
|
+
const gatewayClassName = gateway.rc;
|
|
37
|
+
const gatewayKebabCase = (0, names_1.kebabCase)(gatewayClassName);
|
|
38
|
+
const gatewayServeTargetName = `${gatewayKebabCase}-serve`;
|
|
39
|
+
const gatewayServeLocalTargetName = `${gatewayKebabCase}-serve-local`;
|
|
40
|
+
const npmScope = (0, npm_scope_1.getNpmScope)(tree);
|
|
41
|
+
// 1. Ensure the shared agent-connection project exists + has the gateway
|
|
42
|
+
// core client template.
|
|
43
|
+
await (0, agent_connection_1.ensureTypeScriptAgentConnectionProject)(tree);
|
|
44
|
+
(0, agent_connection_1.addTypeScriptCoreClient)(tree, 'gateway');
|
|
45
|
+
// 2. Generate the per-connection <Gateway>Client into app/. Local mode
|
|
46
|
+
// points at the gateway project's local gateway port.
|
|
47
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'agent-connection', 'app'), (0, devkit_1.joinPathFragments)(agent_connection_1.AGENT_CONNECTION_PROJECT_DIR, 'src', 'app'), {
|
|
48
|
+
gatewayKebabCase,
|
|
49
|
+
gatewayClassName,
|
|
50
|
+
gatewayPort: gateway.port,
|
|
51
|
+
}, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
52
|
+
// Re-export from the agent-connection index
|
|
53
|
+
await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(agent_connection_1.AGENT_CONNECTION_PROJECT_DIR, 'src', 'index.ts'), `./app/${gatewayKebabCase}-client.js`);
|
|
54
|
+
// 3. AST-transform agent.ts to add the gateway client (an McpClient in
|
|
55
|
+
// both deployed and local modes) to the agent's tools.
|
|
56
|
+
const agentSourceDir = (0, devkit_1.joinPathFragments)(sourceProject.root, agentComponent.path ?? 'src');
|
|
57
|
+
const agentFilePath = (0, devkit_1.joinPathFragments)(agentSourceDir, 'agent.ts');
|
|
58
|
+
if (tree.exists(agentFilePath)) {
|
|
59
|
+
const clientClassName = `${gatewayClassName}Client`;
|
|
60
|
+
const clientVarName = gatewayClassName.charAt(0).toLowerCase() + gatewayClassName.slice(1);
|
|
61
|
+
await (0, ast_1.addDestructuredImport)(tree, agentFilePath, [clientClassName], `:${npmScope}/agent-connection`);
|
|
62
|
+
await (0, agent_connection_1.addTypeScriptClientToAgent)(tree, agentFilePath, clientClassName, clientVarName);
|
|
63
|
+
}
|
|
64
|
+
// 4. Wire serve-local chain — agent's serve-local depends on gateway's
|
|
65
|
+
// aggregator target, which transitively starts each attached MCP server.
|
|
66
|
+
const agentName = agentComponent.name ?? 'agent';
|
|
67
|
+
const serveTargetName = `${agentName}-serve`;
|
|
68
|
+
const serveLocalTargetName = `${agentName}-serve-local`;
|
|
69
|
+
let projectConfigChanged = false;
|
|
70
|
+
if (sourceProject.targets?.[serveTargetName]) {
|
|
71
|
+
(0, nx_1.addDependencyToTargetIfNotPresent)(sourceProject, serveTargetName, {
|
|
72
|
+
projects: [targetProject.name],
|
|
73
|
+
target: gatewayServeTargetName,
|
|
74
|
+
});
|
|
75
|
+
projectConfigChanged = true;
|
|
76
|
+
}
|
|
77
|
+
if (sourceProject.targets?.[serveLocalTargetName]) {
|
|
78
|
+
(0, nx_1.addDependencyToTargetIfNotPresent)(sourceProject, serveLocalTargetName, {
|
|
79
|
+
projects: [targetProject.name],
|
|
80
|
+
target: gatewayServeLocalTargetName,
|
|
81
|
+
});
|
|
82
|
+
projectConfigChanged = true;
|
|
83
|
+
}
|
|
84
|
+
if (projectConfigChanged) {
|
|
85
|
+
(0, devkit_1.updateProjectConfiguration)(tree, sourceProject.name, sourceProject);
|
|
86
|
+
}
|
|
87
|
+
// 5. Dependencies
|
|
88
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)([
|
|
89
|
+
'@modelcontextprotocol/sdk',
|
|
90
|
+
'@strands-agents/sdk',
|
|
91
|
+
'@aws-lambda-powertools/parameters',
|
|
92
|
+
'@aws-sdk/client-appconfigdata',
|
|
93
|
+
'aws4fetch',
|
|
94
|
+
'@aws-sdk/credential-providers',
|
|
95
|
+
]), {});
|
|
96
|
+
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
|
|
97
|
+
exports.TS_AGENT_GATEWAY_CONNECTION_GENERATOR_INFO,
|
|
98
|
+
]);
|
|
99
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
100
|
+
return () => {
|
|
101
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
exports.tsAgentGatewayConnectionGenerator = tsAgentGatewayConnectionGenerator;
|
|
105
|
+
exports.default = exports.tsAgentGatewayConnectionGenerator;
|
|
106
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/agent/gateway-connection/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import type { ComponentMetadata } from '../../../utils/nx';
|
|
6
|
+
|
|
7
|
+
export interface TsAgentGatewayConnectionGeneratorSchema {
|
|
8
|
+
sourceProject: string;
|
|
9
|
+
targetProject: string;
|
|
10
|
+
sourceComponent?: ComponentMetadata;
|
|
11
|
+
targetComponent?: ComponentMetadata;
|
|
12
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "ts#agent#gateway-connection",
|
|
4
|
+
"title": "ts#agent#gateway-connection",
|
|
5
|
+
"description": "Connect a TypeScript Agent to an AgentCore Gateway",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"sourceProject": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "The TypeScript Agent project"
|
|
11
|
+
},
|
|
12
|
+
"targetProject": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "The AgentCore Gateway project"
|
|
15
|
+
},
|
|
16
|
+
"sourceComponent": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "The agent component in the source project"
|
|
19
|
+
},
|
|
20
|
+
"targetComponent": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "The gateway component in the target project"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"required": ["sourceProject", "targetProject"]
|
|
26
|
+
}
|
|
@@ -146,7 +146,7 @@ export class AgentCoreMcpClient {
|
|
|
146
146
|
exports[`ts#agent#mcp-connection generator > should match snapshot for agent-connection src files > inventory-mcp-client.ts 1`] = `
|
|
147
147
|
"import { McpClient } from '@strands-agents/sdk';
|
|
148
148
|
import { AgentCoreMcpClient } from '../core/agentcore-mcp-client.js';
|
|
149
|
-
import {
|
|
149
|
+
import { getAgentCoreRuntimeConfig } from '../core/runtime-config.js';
|
|
150
150
|
|
|
151
151
|
/** Client for the InventoryMcp MCP server. */
|
|
152
152
|
export class InventoryMcpClient {
|
|
@@ -156,9 +156,14 @@ export class InventoryMcpClient {
|
|
|
156
156
|
url: 'http://localhost:8082/mcp',
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
159
|
+
const config = await getAgentCoreRuntimeConfig();
|
|
160
|
+
const agentRuntimeArn = config.agentRuntimes?.['InventoryMcp'];
|
|
161
|
+
if (!agentRuntimeArn) {
|
|
162
|
+
throw new Error(
|
|
163
|
+
\`No connected MCP server runtime named 'InventoryMcp' found in runtime configuration.\`,
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
return AgentCoreMcpClient.withIamAuth({ agentRuntimeArn });
|
|
162
167
|
}
|
|
163
168
|
}
|
|
164
169
|
"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { McpClient } from '@strands-agents/sdk';
|
|
2
2
|
import { AgentCoreMcpClient } from '../core/agentcore-mcp-client.js';
|
|
3
|
-
import {
|
|
3
|
+
import { getAgentCoreRuntimeConfig } from '../core/runtime-config.js';
|
|
4
4
|
|
|
5
5
|
/** Client for the <%- mcpServerClassName %> MCP server. */
|
|
6
6
|
export class <%- mcpServerClassName %>Client {
|
|
@@ -10,10 +10,13 @@ export class <%- mcpServerClassName %>Client {
|
|
|
10
10
|
url: 'http://localhost:<%- mcpServerPort %>/mcp',
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
const config = await getAgentCoreRuntimeConfig();
|
|
14
|
+
const agentRuntimeArn = config.agentRuntimes?.['<%- mcpServerClassName %>'];
|
|
15
|
+
if (!agentRuntimeArn) {
|
|
16
|
+
throw new Error(
|
|
17
|
+
`No connected MCP server runtime named '<%- mcpServerClassName %>' found in runtime configuration.`,
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
return AgentCoreMcpClient.withIamAuth({ agentRuntimeArn });
|
|
18
21
|
}
|
|
19
22
|
}
|
|
@@ -50,19 +50,7 @@ const tsAgentMcpConnectionGenerator = async (tree, options) => {
|
|
|
50
50
|
const clientVarName = mcpServerClassName.charAt(0).toLowerCase() + mcpServerClassName.slice(1);
|
|
51
51
|
// Add import for the client
|
|
52
52
|
await (0, ast_1.addDestructuredImport)(tree, agentFilePath, [clientClassName], `:${npmScope}/agent-connection`);
|
|
53
|
-
|
|
54
|
-
// Transform the arrow function that contains `new Agent`:
|
|
55
|
-
// - Expression body: wrap in block with client creation and return
|
|
56
|
-
// - Block body: prepend client creation statement
|
|
57
|
-
await (0, ast_1.applyGritQL)(tree, agentFilePath, `or { \`async ($p) => new Agent($args)\` => raw\`async ($p) => {
|
|
58
|
-
${clientCreationStmt}
|
|
59
|
-
return new Agent($args);
|
|
60
|
-
}\` where { $program <: not contains \`${clientClassName}.create\` }, \`async ($p) => { $body }\` => raw\`async ($p) => {
|
|
61
|
-
${clientCreationStmt}
|
|
62
|
-
$body
|
|
63
|
-
}\` where { $body <: contains \`new Agent($_)\`, $program <: not contains \`${clientClassName}.create\` } }`);
|
|
64
|
-
// Prepend client to the tools array
|
|
65
|
-
await (0, ast_1.applyGritQL)(tree, agentFilePath, `\`tools: [$items]\` => \`tools: [${clientVarName}, $items]\` where { $items <: within \`new Agent($_)\`, $items <: not contains \`${clientVarName}\` }`);
|
|
53
|
+
await (0, agent_connection_1.addTypeScriptClientToAgent)(tree, agentFilePath, clientClassName, clientVarName);
|
|
66
54
|
}
|
|
67
55
|
// 4. Set up serve-local target
|
|
68
56
|
const agentName = agentComponent.name ?? 'agent';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/agent/mcp-connection/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCASoB;AACpB,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/agent/mcp-connection/generator.ts"],"names":[],"mappings":"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"}
|