@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.
Files changed (103) hide show
  1. package/generators.json +31 -1
  2. package/package.json +1 -1
  3. package/sdk/agentcore-gateway.d.ts +6 -0
  4. package/sdk/agentcore-gateway.js +11 -0
  5. package/sdk/agentcore-gateway.js.map +1 -0
  6. package/sdk/license.d.ts +4 -4
  7. package/sdk/license.js +5 -4
  8. package/sdk/license.js.map +1 -1
  9. package/sdk/py.d.ts +6 -6
  10. package/sdk/py.js +7 -7
  11. package/sdk/py.js.map +1 -1
  12. package/sdk/ts.d.ts +18 -14
  13. package/sdk/ts.js +38 -32
  14. package/sdk/ts.js.map +1 -1
  15. package/src/agentcore-gateway/files/cedar/policies/README.md +52 -0
  16. package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +11 -0
  17. package/src/agentcore-gateway/files/project/serve-local.ts.template +133 -0
  18. package/src/agentcore-gateway/generator.d.ts +25 -0
  19. package/src/agentcore-gateway/generator.js +129 -0
  20. package/src/agentcore-gateway/generator.js.map +1 -0
  21. package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
  22. package/src/agentcore-gateway/mcp-connection/generator.js +79 -0
  23. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
  24. package/src/agentcore-gateway/mcp-connection/schema.d.ts +12 -0
  25. package/src/agentcore-gateway/mcp-connection/schema.json +26 -0
  26. package/src/agentcore-gateway/schema.d.ts +16 -0
  27. package/src/agentcore-gateway/schema.json +65 -0
  28. package/src/connection/generator.d.ts +1 -1
  29. package/src/connection/generator.js +64 -46
  30. package/src/connection/generator.js.map +1 -1
  31. package/src/mcp-server/schema-registry.d.ts +9 -3
  32. package/src/mcp-server/schema-registry.js +22 -6
  33. package/src/mcp-server/schema-registry.js.map +1 -1
  34. package/src/preset/__snapshots__/generator.spec.ts.snap +2 -0
  35. package/src/py/agent/__snapshots__/generator.spec.ts.snap +55 -2
  36. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +9 -3
  37. package/src/py/agent/a2a-connection/generator.js +1 -1
  38. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  39. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client.py.template +35 -0
  40. package/src/py/agent/gateway-connection/generator.d.ts +10 -0
  41. package/src/py/agent/gateway-connection/generator.js +106 -0
  42. package/src/py/agent/gateway-connection/generator.js.map +1 -0
  43. package/src/py/agent/gateway-connection/schema.d.ts +12 -0
  44. package/src/py/agent/gateway-connection/schema.json +26 -0
  45. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +8 -4
  46. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +9 -3
  47. package/src/py/agent/mcp-connection/generator.js +2 -72
  48. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  49. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +7 -16
  50. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +57 -2
  51. package/src/smithy/ts/api/generator.js +1 -1
  52. package/src/smithy/ts/api/generator.js.map +1 -1
  53. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +55 -2
  54. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +10 -6
  55. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client.ts.template +30 -0
  56. package/src/ts/agent/gateway-connection/generator.d.ts +10 -0
  57. package/src/ts/agent/gateway-connection/generator.js +106 -0
  58. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  59. package/src/ts/agent/gateway-connection/schema.d.ts +12 -0
  60. package/src/ts/agent/gateway-connection/schema.json +26 -0
  61. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +9 -4
  62. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +9 -6
  63. package/src/ts/agent/mcp-connection/generator.js +1 -13
  64. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  65. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +135 -76
  66. package/src/ts/dynamodb/files/dynamodb.config.json +14 -0
  67. package/src/ts/dynamodb/files/scripts/create-local-table.ts.template +14 -7
  68. package/src/ts/dynamodb/files/src/index.ts.template +0 -1
  69. package/src/ts/dynamodb/generator.js +3 -1
  70. package/src/ts/dynamodb/generator.js.map +1 -1
  71. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  72. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +57 -2
  73. package/src/ts/nx-generator/generator.js +29 -0
  74. package/src/ts/nx-generator/generator.js.map +1 -1
  75. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +1 -16
  76. package/src/ts/react-website/agui/generator.js +0 -1
  77. package/src/ts/react-website/agui/generator.js.map +1 -1
  78. package/src/utils/agent-connection/agent-connection.d.ts +17 -0
  79. package/src/utils/agent-connection/agent-connection.js +94 -0
  80. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  81. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-client.ts.template +78 -0
  82. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +22 -32
  83. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_client.py.template +78 -0
  84. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +5 -18
  85. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +8 -0
  86. package/src/utils/agent-core-constructs/agent-core-constructs.js +54 -1
  87. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  88. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +4 -0
  89. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +37 -0
  90. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +293 -0
  91. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  92. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +242 -0
  93. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  94. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +55 -2
  95. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  96. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +1 -0
  97. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  98. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +17 -3
  99. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +11 -14
  100. package/src/utils/versions.d.ts +7 -5
  101. package/src/utils/versions.js +6 -4
  102. package/src/utils/versions.js.map +1 -1
  103. 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 { getConnectedAgentRuntimeArn } from '../core/runtime-config.js';
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
- return AgentCoreA2aClient.withIamAuth({
14
- agentRuntimeArn: await getConnectedAgentRuntimeArn(
15
- '<%- targetAgentClassName %>',
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 { getConnectedAgentRuntimeArn } from '../core/runtime-config.js';
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
- return AgentCoreMcpClient.withIamAuth({
160
- agentRuntimeArn: await getConnectedAgentRuntimeArn('InventoryMcp'),
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 { getConnectedAgentRuntimeArn } from '../core/runtime-config.js';
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
- return AgentCoreMcpClient.withIamAuth({
14
- agentRuntimeArn: await getConnectedAgentRuntimeArn(
15
- '<%- mcpServerClassName %>',
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
- const clientCreationStmt = `const ${clientVarName} = await ${clientClassName}.create();`;
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":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/agent/mcp-connection/generator.ts"],"names":[],"mappings":"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"}