@aws/nx-plugin 0.83.0 → 0.84.0

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 (70) hide show
  1. package/LICENSE-THIRD-PARTY +580 -724
  2. package/generators.json +16 -8
  3. package/package.json +1 -1
  4. package/src/connection/generator.d.ts +12 -0
  5. package/src/connection/generator.js +27 -8
  6. package/src/connection/generator.js.map +1 -1
  7. package/src/infra/app/schema.d.ts +1 -0
  8. package/src/infra/app/schema.json +5 -0
  9. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +3 -0
  10. package/src/py/fast-api/generator.js +2 -0
  11. package/src/py/fast-api/generator.js.map +1 -1
  12. package/src/py/fast-api/schema.d.ts +1 -0
  13. package/src/py/fast-api/schema.json +5 -0
  14. package/src/py/mcp-server/generator.js +14 -0
  15. package/src/py/mcp-server/generator.js.map +1 -1
  16. package/src/py/project/generator.d.ts +1 -0
  17. package/src/py/project/generator.js +10 -2
  18. package/src/py/project/generator.js.map +1 -1
  19. package/src/py/project/schema.d.ts +1 -0
  20. package/src/py/project/schema.json +5 -0
  21. package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +5 -5
  22. package/src/py/strands-agent/files/app/agent.py.template +5 -5
  23. package/src/py/strands-agent/generator.js +13 -0
  24. package/src/py/strands-agent/generator.js.map +1 -1
  25. package/src/smithy/ts/api/schema.d.ts +1 -0
  26. package/src/smithy/ts/api/schema.json +5 -0
  27. package/src/terraform/project/schema.d.ts +1 -0
  28. package/src/terraform/project/schema.json +5 -0
  29. package/src/trpc/backend/generator.js +1 -0
  30. package/src/trpc/backend/generator.js.map +1 -1
  31. package/src/trpc/backend/schema.d.ts +1 -0
  32. package/src/trpc/backend/schema.json +5 -0
  33. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
  34. package/src/ts/mcp-server/files/Dockerfile.template +1 -1
  35. package/src/ts/mcp-server/files/server.ts.template +2 -2
  36. package/src/ts/mcp-server/files/tools/divide.ts.template +13 -0
  37. package/src/ts/mcp-server/generator.js +15 -1
  38. package/src/ts/mcp-server/generator.js.map +1 -1
  39. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +24 -0
  40. package/src/ts/react-website/app/generator.js +5 -4
  41. package/src/ts/react-website/app/generator.js.map +1 -1
  42. package/src/ts/react-website/app/schema.d.ts +1 -0
  43. package/src/ts/react-website/app/schema.json +5 -0
  44. package/src/ts/strands-agent/__snapshots__/generator.spec.ts.snap +48 -153
  45. package/src/ts/strands-agent/files/app/agent-core-trpc-client.ts.template +19 -2
  46. package/src/ts/strands-agent/files/app/agent.ts.template +11 -9
  47. package/src/ts/strands-agent/files/app/index.ts.template +10 -1
  48. package/src/ts/strands-agent/files/app/init.ts.template +3 -2
  49. package/src/ts/strands-agent/files/app/router.ts.template +1 -1
  50. package/src/ts/strands-agent/files/deploy/Dockerfile.template +1 -1
  51. package/src/ts/strands-agent/generator.js +13 -1
  52. package/src/ts/strands-agent/generator.js.map +1 -1
  53. package/src/ts/strands-agent/mcp-connection/__snapshots__/generator.spec.ts.snap +231 -0
  54. package/src/ts/strands-agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +37 -0
  55. package/src/ts/strands-agent/mcp-connection/generator.d.ts +10 -0
  56. package/src/ts/strands-agent/mcp-connection/generator.js +124 -0
  57. package/src/ts/strands-agent/mcp-connection/generator.js.map +1 -0
  58. package/src/ts/strands-agent/mcp-connection/schema.d.ts +15 -0
  59. package/src/ts/strands-agent/mcp-connection/schema.json +26 -0
  60. package/src/utils/agent-connection/agent-connection.d.ts +11 -0
  61. package/src/utils/agent-connection/agent-connection.js +35 -0
  62. package/src/utils/agent-connection/agent-connection.js.map +1 -0
  63. package/src/{ts/strands-agent/files/app/agent-core-mcp-client.ts.template → utils/agent-connection/files/core/agentcore-mcp-client.ts.template} +62 -35
  64. package/src/utils/ast.js +16 -7
  65. package/src/utils/ast.js.map +1 -1
  66. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +8 -0
  67. package/src/utils/versions.d.ts +2 -1
  68. package/src/utils/versions.js +1 -0
  69. package/src/utils/versions.js.map +1 -1
  70. package/src/ts/mcp-server/files/tools/add.ts.template +0 -13
@@ -59,6 +59,11 @@
59
59
  "default": "packages",
60
60
  "x-prompt": "What directory would you like to store your application in?"
61
61
  },
62
+ "subDirectory": {
63
+ "type": "string",
64
+ "description": "The sub directory the project is placed in. By default this is the project name.",
65
+ "x-prompt": "Which sub directory do you want to create the project in? (By default this is the project name)"
66
+ },
62
67
  "iacProvider": {
63
68
  "type": "string",
64
69
  "description": "The preferred IaC provider. By default this is inherited from your initial selection.",
@@ -640,7 +640,7 @@ exports[`ts#mcp-server generator > should match snapshot for generated files > m
640
640
 
641
641
  exports[`ts#mcp-server generator > should match snapshot for generated files > mcp-server-server.ts 1`] = `
642
642
  "import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
643
- import { registerAddTool } from './tools/add';
643
+ import { registerDivideTool } from './tools/divide';
644
644
  import { registerSampleGuidanceResource } from './resources/sample-guidance';
645
645
 
646
646
  /**
@@ -652,7 +652,7 @@ export const createServer = () => {
652
652
  version: '1.0.0',
653
653
  });
654
654
 
655
- registerAddTool(server);
655
+ registerDivideTool(server);
656
656
  registerSampleGuidanceResource(server);
657
657
 
658
658
  return server;
@@ -4,7 +4,7 @@ WORKDIR /app
4
4
 
5
5
  # Add AWS Distro for OpenTelemetry for observability
6
6
  # https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/observability-configure.html
7
- RUN npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation@^0.7.0
7
+ RUN npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation@<%- adotVersion %>
8
8
 
9
9
  # Copy bundled streamable http server
10
10
  COPY --from=workspace <%- distDir %>/bundle/mcp/<%- name %>/index.js /app
@@ -1,5 +1,5 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { registerAddTool } from './tools/add<% if (esm) { %>.js<% } %>';
2
+ import { registerDivideTool } from './tools/divide<% if (esm) { %>.js<% } %>';
3
3
  import { registerSampleGuidanceResource } from './resources/sample-guidance<% if (esm) { %>.js<% } %>';
4
4
 
5
5
  /**
@@ -11,7 +11,7 @@ export const createServer = () => {
11
11
  version: "1.0.0"
12
12
  });
13
13
 
14
- registerAddTool(server);
14
+ registerDivideTool(server);
15
15
  registerSampleGuidanceResource(server);
16
16
 
17
17
  return server;
@@ -0,0 +1,13 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { z } from 'zod';
3
+
4
+ export const registerDivideTool = (server: McpServer) => {
5
+ server.registerTool("divide", {
6
+ description: "divides two numbers",
7
+ inputSchema: { a: z.number(), b: z.number().refine((n) => n !== 0, { message: "Cannot divide by zero" }) }
8
+ },
9
+ async ({ a, b }) => ({
10
+ content: [{ type: "text" as const, text: String(a / b) }]
11
+ })
12
+ );
13
+ };
@@ -27,6 +27,7 @@ const tsMcpServerGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
27
27
  }
28
28
  const defaultName = `${(0, names_1.kebabCase)(project.name.split('/').pop())}-mcp-server`;
29
29
  const name = (0, names_1.kebabCase)(options.name || defaultName);
30
+ const mcpServerNameClassName = (0, names_1.toClassName)(name);
30
31
  const mcpTargetPrefix = options.name ? name : 'mcp-server';
31
32
  const targetSourceDirRelativeToProjectRoot = (0, devkit_1.joinPathFragments)('src', mcpTargetPrefix);
32
33
  const targetSourceDir = (0, devkit_1.joinPathFragments)(project.root, targetSourceDirRelativeToProjectRoot);
@@ -60,6 +61,7 @@ const tsMcpServerGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
60
61
  name,
61
62
  esm,
62
63
  distDir,
64
+ adotVersion: versions_1.TS_VERSIONS['@aws/aws-distro-opentelemetry-node-autoinstrumentation'],
63
65
  }, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
64
66
  // Add dependencies
65
67
  const deps = (0, versions_1.withVersions)([
@@ -99,7 +101,7 @@ const tsMcpServerGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
99
101
  // Add the construct to deploy the mcp server
100
102
  (0, agent_core_constructs_1.addMcpServerInfra)(tree, {
101
103
  mcpServerNameKebabCase: name,
102
- mcpServerNameClassName: (0, names_1.toClassName)(name),
104
+ mcpServerNameClassName,
103
105
  projectName: project.name,
104
106
  dockerImageTag,
105
107
  iacProvider,
@@ -131,6 +133,17 @@ const tsMcpServerGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
131
133
  },
132
134
  },
133
135
  continuous: true,
136
+ }, [`${mcpTargetPrefix}-serve-local`]: {
137
+ executor: 'nx:run-commands',
138
+ options: {
139
+ commands: [`tsx --watch ${relativeSourceDir}/http.ts`],
140
+ cwd: '{projectRoot}',
141
+ env: {
142
+ PORT: `${localDevPort}`,
143
+ SERVE_LOCAL: 'true',
144
+ },
145
+ },
146
+ continuous: true,
134
147
  }, [`${mcpTargetPrefix}-inspect`]: {
135
148
  executor: 'nx:run-commands',
136
149
  options: {
@@ -143,6 +156,7 @@ const tsMcpServerGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
143
156
  } }) }));
144
157
  (0, nx_1.addComponentGeneratorMetadata)(tree, project.name, exports.TS_MCP_SERVER_GENERATOR_INFO, targetSourceDirRelativeToProjectRoot, mcpTargetPrefix, {
145
158
  port: localDevPort,
159
+ rc: mcpServerNameClassName,
146
160
  });
147
161
  yield (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_MCP_SERVER_GENERATOR_INFO]);
148
162
  yield (0, format_1.formatFilesInSubtree)(tree);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/mcp-server/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/mcp-server/generator.ts"],"names":[],"mappings":"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"}
@@ -267,6 +267,30 @@ Then, install the plugin package to ensure generators are available:
267
267
  "
268
268
  `;
269
269
 
270
+ exports[`ts#nx-plugin generator > should generate MCP server files > test-plugin/src/mcp-server/tools/divide.ts 1`] = `
271
+ "import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
272
+ import { z } from 'zod';
273
+
274
+ export const registerDivideTool = (server: McpServer) => {
275
+ server.registerTool(
276
+ 'divide',
277
+ {
278
+ description: 'divides two numbers',
279
+ inputSchema: {
280
+ a: z.number(),
281
+ b: z
282
+ .number()
283
+ .refine((n) => n !== 0, { message: 'Cannot divide by zero' }),
284
+ },
285
+ },
286
+ async ({ a, b }) => ({
287
+ content: [{ type: 'text' as const, text: String(a / b) }],
288
+ }),
289
+ );
290
+ };
291
+ "
292
+ `;
293
+
270
294
  exports[`ts#nx-plugin generator > should generate MCP server files > test-plugin/src/mcp-server/tools/general-guidance.ts 1`] = `
271
295
  "import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
272
296
  import * as fs from 'fs';
@@ -30,7 +30,7 @@ exports.SUPPORTED_UX_PROVIDERS = ['None', 'Cloudscape', 'Shadcn'];
30
30
  exports.REACT_WEBSITE_APP_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
31
31
  function tsReactWebsiteGenerator(tree, schema) {
32
32
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
33
- var _a, _b, _c, _d, _e, _f, _g;
33
+ var _a, _b, _c, _d, _e, _f;
34
34
  const enableTailwind = (_a = schema.enableTailwind) !== null && _a !== void 0 ? _a : true;
35
35
  const enableTanstackRouter = (_b = schema.enableTanstackRouter) !== null && _b !== void 0 ? _b : true;
36
36
  const uxProvider = (_c = schema.uxProvider) !== null && _c !== void 0 ? _c : 'Cloudscape';
@@ -42,7 +42,8 @@ function tsReactWebsiteGenerator(tree, schema) {
42
42
  const websiteNameClassName = (0, names_1.toClassName)(schema.name);
43
43
  const websiteNameKebabCase = (0, names_1.toKebabCase)(schema.name);
44
44
  const fullyQualifiedName = `${npmScopePrefix}${websiteNameKebabCase}`;
45
- const websiteContentPath = (0, devkit_1.joinPathFragments)((_d = schema.directory) !== null && _d !== void 0 ? _d : '.', websiteNameKebabCase);
45
+ // NB: interactive nx generator cli can pass empty string
46
+ const websiteContentPath = (0, devkit_1.joinPathFragments)(schema.directory || '.', schema.subDirectory || websiteNameKebabCase);
46
47
  // TODO: consider exposing and supporting e2e tests
47
48
  const e2eTestRunner = 'none';
48
49
  yield (0, react_1.applicationGenerator)(tree, Object.assign(Object.assign({}, schema), { name: fullyQualifiedName, directory: websiteContentPath, routing: false, e2eTestRunner, linter: 'eslint', bundler: 'vite', unitTestRunner: 'vitest', useProjectJson: true, style: 'css' }));
@@ -99,13 +100,13 @@ function tsReactWebsiteGenerator(tree, schema) {
99
100
  'compile',
100
101
  'bundle',
101
102
  'test',
102
- ...((_e = buildTarget.dependsOn) !== null && _e !== void 0 ? _e : []),
103
+ ...((_d = buildTarget.dependsOn) !== null && _d !== void 0 ? _d : []),
103
104
  ],
104
105
  options: {
105
106
  outputPath: 'dist/{projectRoot}/bundle',
106
107
  },
107
108
  };
108
- targets['test'] = Object.assign(Object.assign({}, targets['test']), { options: Object.assign(Object.assign({}, ((_g = (_f = targets['test']) === null || _f === void 0 ? void 0 : _f.options) !== null && _g !== void 0 ? _g : {})), { reportsDirectory: '{workspaceRoot}/coverage/{projectRoot}' }) });
109
+ targets['test'] = Object.assign(Object.assign({}, targets['test']), { options: Object.assign(Object.assign({}, ((_f = (_e = targets['test']) === null || _e === void 0 ? void 0 : _e.options) !== null && _f !== void 0 ? _f : {})), { reportsDirectory: '{workspaceRoot}/coverage/{projectRoot}' }) });
109
110
  // Add a serve-local target for running the website and its dependencies locally
110
111
  targets['serve-local'] = {
111
112
  executor: '@nx/vite:dev-server',
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/app/generator.ts"],"names":[],"mappings":";;;AA8DA,0DAihBC;;AA/kBD;;;GAGG;AACH,uCAYoB;AACpB,2CAKoB;AAEpB,qCAAiD;AACjD,wEAA6E;AAC7E,wDAA2E;AAC3E,iEAAgE;AAChE,sDAAsE;AACtE,gDAA6D;AAC7D,4FAGoD;AACpD,gDAA2E;AAC3E,4CAI4B;AAC5B,kDAA6D;AAC7D,+BAAqC;AACrC,kDAAuD;AACvD,0CAI2B;AAC3B,gEAAqE;AACrE,oDAAyE;AACzE,6FAAuF;AACvF,4CAAwD;AAE3C,QAAA,sBAAsB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC;AAMnE,QAAA,gCAAgC,GAC3C,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAE/B,SAAsB,uBAAuB,CAC3C,IAAU,EACV,MAAqC;;;QAErC,MAAM,cAAc,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,IAAI,CAAC;QACrD,MAAM,oBAAoB,GAAG,MAAA,MAAM,CAAC,oBAAoB,mCAAI,IAAI,CAAC;QACjE,MAAM,UAAU,GAAe,MAAA,MAAM,CAAC,UAAU,mCAAI,YAAY,CAAC;QACjE,IAAI,UAAU,KAAK,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,cAAc,GAAG,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAA,wBAAY,EAAC,cAAc,CAAC,CAAC;QAChD,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,kBAAkB,GAAG,GAAG,cAAc,GAAG,oBAAoB,EAAE,CAAC;QACtE,MAAM,kBAAkB,GAAG,IAAA,0BAAiB,EAC1C,MAAA,MAAM,CAAC,SAAS,mCAAI,GAAG,EACvB,oBAAoB,CACrB,CAAC;QACF,mDAAmD;QACnD,MAAM,aAAa,GAAG,MAAM,CAAC;QAC7B,MAAM,IAAA,4BAAoB,EAAC,IAAI,kCAC1B,MAAM,KACT,IAAI,EAAE,kBAAkB,EACxB,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,KAAK,EACd,aAAa,EACb,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,QAAQ,EACxB,cAAc,EAAE,IAAI,EACpB,KAAK,EAAE,KAAK,IACZ,CAAC;QAEH,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;QAE1D,MAAM,oBAAoB,GAAG,IAAA,iCAAwB,EACnD,IAAI,EACJ,kBAAkB,CACnB,CAAC;QAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC;QAE7C,6DAA6D;QAC7D,MAAM,WAAW,GAAG,MAAM,IAAA,wBAAkB,EAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAEvE,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,qBAAqB,CAAC,GAAG;gBAC/B,QAAQ,EAAE,iBAAiB;gBAC3B,QAAQ,EAAE;oBACR,WAAW,EAAE,yIAAyI,kBAAkB,uBAAuB;iBAChM;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE,gGAAgG,IAAA,iBAAS,EAAC,cAAc,CAAC,6CAA6C,oBAAoB,kHAAkH;iBACtT;aACF,CAAC;QACJ,CAAC;aAAM,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YACvC,OAAO,CAAC,qBAAqB,CAAC,GAAG;gBAC/B,QAAQ,EAAE,iBAAiB;gBAC3B,QAAQ,EAAE;oBACR,WAAW,EACT,+KAA+K;iBAClL;gBACD,OAAO,EAAE;oBACP,OAAO,EACL,qJAAqJ;oBACvJ,GAAG,EAAE;wBACH,QAAQ,EAAE,oDAAoD;wBAC9D,QAAQ,EAAE,sBAAsB;wBAChC,SAAS,EAAE,0CAA0C;qBACtD;iBACF;aACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,wBAAwB,WAAW,2CAA2C,CAC/E,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,SAAS,CAAC,GAAG;YACnB,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,QAAQ,EAAE,iBAAiB;YAC3B,OAAO,EAAE,CAAC,wCAAwC,CAAC;YACnD,OAAO,EAAE;gBACP,OAAO,EAAE,+BAA+B;gBACxC,GAAG,EAAE,eAAe;aACrB;SACF,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,mCACZ,WAAW,KACd,OAAO,kCACF,WAAW,CAAC,OAAO,KACtB,UAAU,EAAE,2BAA2B,MAE1C,CAAC;QACF,OAAO,CAAC,OAAO,CAAC,GAAG;YACjB,SAAS,EAAE;gBACT,MAAM;gBACN,SAAS;gBACT,QAAQ;gBACR,MAAM;gBACN,GAAG,CAAC,MAAA,WAAW,CAAC,SAAS,mCAAI,EAAE,CAAC;aACjC;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,2BAA2B;aACxC;SACF,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,mCACV,OAAO,CAAC,MAAM,CAAC,KAClB,OAAO,kCACF,CAAC,MAAA,MAAA,OAAO,CAAC,MAAM,CAAC,0CAAE,OAAO,mCAAI,EAAE,CAAC,KACnC,gBAAgB,EAAE,wCAAwC,MAE7D,CAAC;QAEF,gFAAgF;QAChF,OAAO,CAAC,aAAa,CAAC,GAAG;YACvB,QAAQ,EAAE,qBAAqB;YAC/B,OAAO,EAAE;gBACP,WAAW,EAAE,GAAG,kBAAkB,oBAAoB;gBACtD,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,aAAa;aACpB;YACD,UAAU,EAAE,IAAI;SACjB,CAAC;QAEF,oBAAoB,CAAC,OAAO,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;QAEvD,IAAA,mCAA0B,EAAC,IAAI,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;QAC3E,IAAA,yBAAoB,EAClB,IAAI,EACJ,oBAAoB,CAAC,IAAI,EACzB,wCAAgC,EAChC;YACE,UAAU;SACX,CACF,CAAC;QAEF,IAAA,qCAAkB,EAAC,IAAI,EAAE;YACvB,GAAG,EAAE,kBAAkB;YACvB,kBAAkB;SACnB,CAAC,CAAC;QAEH,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAA,qCAAqB,EAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,IAAA,6CAAyB,EAAC,IAAI,EAAE;YACpC,WAAW;SACZ,CAAC,CAAC;QAEH,IAAA,oCAAe,EAAC,IAAI,EAAE;YACpB,WAAW;YACX,kBAAkB,EAAE,kBAAkB;YACtC,UAAU;YACV,kBAAkB,EAAE,IAAA,0BAAiB,EAAC,MAAM,EAAE,kBAAkB,CAAC;YACjE,oBAAoB;YACpB,oBAAoB;SACrB,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC;QACvC,MAAM,wBAAwB,GAAG,IAAA,eAAQ,EACvC,IAAA,0BAAiB,EAAC,WAAW,EAAE,KAAK,CAAC,EACrC,IAAA,0BAAiB,EACf,0CAAY,EACZ,+CAAiB,EACjB,KAAK,EACL,QAAQ,EACR,aAAa,CACd,CACF;aACE,KAAK,CAAC,UAAG,CAAC;aACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,uBAAuB,GAAG,IAAA,eAAQ,EACtC,IAAA,0BAAiB,EAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAChD,IAAA,0BAAiB,EACf,IAAI,CAAC,IAAI,EACT,0CAAY,EACZ,+CAAiB,EACjB,eAAe,CAChB,CACF;aACE,KAAK,CAAC,UAAG,CAAC;aACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,eAAe,mCAChB,MAAM,KACT,kBAAkB,EAClB,SAAS,EAAE,IAAA,iCAAwB,GAAE,CAAC,IAAI,EAC1C,cAAc;YACd,oBAAoB;YACpB,UAAU;YACV,wBAAwB,GACzB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1D,MAAM,qBAAqB,GAAG,IAAA,0BAAiB,EAC7C,SAAS,EACT,oBAAoB,CACrB,CAAC;QACF,MAAM,eAAe,GAAG,IAAA,0BAAiB,EACvC,SAAS,EACT,eAAe,UAAU,CAAC,WAAW,EAAE,EAAE,CAC1C,CAAC;QAEF,IAAA,sBAAa,EACX,IAAI,EAAE,0BAA0B;QAChC,qBAAqB,EAAE,6BAA6B;QACpD,WAAW,EAAE,gCAAgC;QAC7C,eAAe,EAAE,sDAAsD;QACvE;YACE,iBAAiB,EAAE,0BAAiB,CAAC,SAAS;SAC/C,CACF,CAAC;QAEF,IAAA,sBAAa,EACX,IAAI,EAAE,0BAA0B;QAChC,eAAe,EAAE,6BAA6B;QAC9C,WAAW,EAAE,gCAAgC;QAC7C,eAAe,EAAE,sDAAsD;QACvE;YACE,iBAAiB,EAAE,0BAAiB,CAAC,SAAS;SAC/C,CACF,CAAC;QAEF,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,wBAAwB,GAAG,IAAA,0BAAiB,EAChD,SAAS,EACT,gCAAgC,CACjC,CAAC;YACF,MAAM,kBAAkB,GAAG,IAAA,0BAAiB,EAC1C,SAAS,EACT,2BAA2B,UAAU,CAAC,WAAW,EAAE,EAAE,CACtD,CAAC;YAEF,IAAA,sBAAa,EACX,IAAI,EACJ,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf;gBACE,iBAAiB,EAAE,0BAAiB,CAAC,SAAS;aAC/C,CACF,CAAC;YAEF,IAAA,sBAAa,EACX,IAAI,EACJ,kBAAkB,EAClB,WAAW,EACX,eAAe,EAAE,sDAAsD;YACvE;gBACE,iBAAiB,EAAE,0BAAiB,CAAC,SAAS;aAC/C,CACF,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,kBAAkB,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,qBAAqB,GAAG,GAAG,kBAAkB,MAAM,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC;YAC3E,IAAA,sBAAa,EACX,IAAI,EAAE,0BAA0B;YAChC,IAAA,0BAAiB,EAAC,SAAS,EAAE,eAAe,aAAa,EAAE,CAAC,EAAE,6BAA6B;YAC3F,OAAO,kCACF,MAAM,GAAK,IAAA,cAAK,EAAC,kBAAkB,CAAC,GACzC;gBACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;aAClD,CACF,CAAC;YACF,IAAA,qCAAkB,EAAC,IAAI,EAAE;gBACvB,kBAAkB,EAAE,qBAAqB;gBACzC,GAAG,EAAE,OAAO;aACb,CAAC,CAAC;QACL,CAAC;QACD,MAAM,cAAc,GAAG,IAAA,0BAAiB,EAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAEzE,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YAChC,wCAAwC;YACxC,IAAI,oBAAoB,EAAE,CAAC;gBACzB,IAAA,2BAAqB,EACnB,IAAI,EACJ,cAAc,EACd,CAAC,gBAAgB,CAAC,EAClB,8BAA8B,CAC/B,CAAC;gBAEF,IAAA,2BAAqB,EAAC,IAAI,EAAE,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;YACnE,CAAC;YAED,IAAA,qBAAe,EACb,IAAI,EACJ,cAAc,EACd,eAAe,EACf,qBAAqB,CACtB,CAAC;YAEF,oCAAoC;YACpC,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAA,qBAAe,EAAC,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;YAC5E,CAAC;YAED,IAAA,qBAAe,EACb,IAAI,EACJ,cAAc,EACd,yBAAyB,EACzB,CAAC,IAA6B,EAAE,EAAE;gBAChC,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrD,IAAI,IAAA,iCAAoB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC;wBAClE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAsC,CAAC;wBAChE,OAAO,oBAAO,CAAC,wBAAwB,CACrC,OAAO,EACP,oBAAO,CAAC,6BAA6B,CACnC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;4BACvC,IACE,IAAA,iCAAoB,EAAC,SAAS,CAAC;gCAC/B,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,QAAQ,EACrC,CAAC;gCACD,OAAO,oBAAO,CAAC,wBAAwB,CACrC,QAAQ,EACR,oBAAO,CAAC,mBAAmB,CACzB,IAAA,0BAAiB,EACf,IAAA,6BAAqB,EAAC,IAAI,EAAE,kBAAkB,CAAC,EAC/C,MAAM,EACN,kBAAkB,CACnB,CACF,CACF,CAAC;4BACJ,CAAC;4BACD,OAAO,SAAS,CAAC;wBACnB,CAAC,CAAC,EACF,IAAI,CACL,CACF,CAAC;oBACJ,CAAC;yBAAM,IACL,IAAA,iCAAoB,EAAC,IAAI,CAAC;wBAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,EACjC,CAAC;wBACD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAqC,CAAC;wBACjE,MAAM,YAAY,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;wBAEjD,IAAI,oBAAoB,EAAE,CAAC;4BACzB,YAAY,CAAC,OAAO,CAClB,oBAAO,CAAC,oBAAoB,CAC1B,oBAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAC1C,SAAS,EACT;gCACE,oBAAO,CAAC,6BAA6B,CAAC;oCACpC,oBAAO,CAAC,wBAAwB,CAC9B,oBAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAC3C,oBAAO,CAAC,oBAAoB,CAC1B,oBAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACnC,SAAS,EACT;wCACE,oBAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC;wCACrC,oBAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC;qCAC1C,CACF,CACF;oCACD,oBAAO,CAAC,wBAAwB,CAC9B,oBAAO,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,EAC9C,oBAAO,CAAC,oBAAoB,CAC1B,oBAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACnC,SAAS,EACT;wCACE,oBAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC;wCACrC,oBAAO,CAAC,mBAAmB,CAAC,sBAAsB,CAAC;qCACpD,CACF,CACF;iCACF,CAAC;6BACH,CACF,CACF,CAAC;wBACJ,CAAC;wBAED,oCAAoC;wBACpC,IAAI,cAAc,EAAE,CAAC;4BACnB,YAAY,CAAC,IAAI,CACf,oBAAO,CAAC,oBAAoB,CAC1B,oBAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,EACvC,SAAS,EACT,EAAE,CACH,CACF,CAAC;wBACJ,CAAC;wBAED,YAAY,CAAC,IAAI,CACf,oBAAO,CAAC,oBAAoB,CAC1B,oBAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,EACzC,SAAS,EACT,EAAE,CACH,CACF,CAAC;wBAEF,OAAO,oBAAO,CAAC,wBAAwB,CACrC,SAAS,EACT,oBAAO,CAAC,4BAA4B,CAAC,YAAY,EAAE,IAAI,CAAC,CACzD,CAAC;oBACJ,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,OAAO,oBAAO,CAAC,6BAA6B,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YACxE,CAAC,CACF,CAAC;YAEF,IAAA,qBAAe,EACb,IAAI,EACJ,cAAc,EACd,yBAAyB,EACzB,CAAC,IAA6B,EAAE,EAAE;gBAChC,OAAO,oBAAO,CAAC,6BAA6B,CAC1C;oBACE,oBAAO,CAAC,wBAAwB,CAC9B,QAAQ,EACR,oBAAO,CAAC,6BAA6B,CACnC;wBACE,oBAAO,CAAC,wBAAwB,CAC9B,QAAQ,EACR,oBAAO,CAAC,6BAA6B,EAAE,CACxC;qBACF,EACD,IAAI,CACL,CACF;oBACD,GAAG,IAAI,CAAC,UAAU;iBACnB,EACD,IAAI,CACL,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC;QAED,IAAA,mBAAU,EACR,IAAI,EACJ,IAAA,0BAAiB,EAAC,kBAAkB,EAAE,eAAe,CAAC,EACtD,CAAC,QAAQ,EAAE,EAAE,CAAC,iCACT,QAAQ,KACX,eAAe,kCACV,QAAQ,CAAC,eAAe,KAC3B,gBAAgB,EAAE,SAAS,EAC3B,MAAM,EAAE,UAAU,OAEpB,CACH,CAAC;QACF,MAAM,wBAAwB,GAAG,IAAA,eAAQ,EACvC,IAAA,0BAAiB,EAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAChD,IAAI,CAAC,IAAI,CACV,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,0BAAiB,EAC/B,wBAAwB,EACxB,MAAM,EACN,kBAAkB,EAClB,KAAK,CACN,CAAC;QACF,IAAA,mBAAU,EACR,IAAI,EACJ,IAAA,0BAAiB,EAAC,kBAAkB,EAAE,mBAAmB,CAAC,EAC1D,CAAC,QAAQ,EAAE,EAAE;;YAAC,OAAA,iCACT,QAAQ,KACX,eAAe,kCACV,QAAQ,CAAC,eAAe,KAC3B,MAAM,EAAE,OAAO,EACf,eAAe,EAAE,IAAA,0BAAiB,EAAC,OAAO,EAAE,0BAA0B,CAAC,EACvE,GAAG,EAAE,CAAC,KAAK,CAAC,KAEd,UAAU,EACR,UAAU,KAAK,QAAQ;oBACrB,CAAC,CAAC;wBACE,GAAG,CAAC,MAAA,QAAQ,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,uBAAuB,CAC9C;wBACD;4BACE,IAAI,EAAE,uBAAuB;yBAC9B;qBACF;oBACH,CAAC,CAAC,QAAQ,CAAC,UAAU,IACzB,CAAA;SAAA,CACH,CAAC;QAEF,MAAM,eAAe,GAAoB;YACvC,qBAAqB;YACrB,WAAW;YACX,YAAY;SACb,CAAC;QAEF,MAAM,YAAY,GAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE7D,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAChC,YAAY,CAAC,IAAI,CACf,+BAA+B,EAC/B,qCAAqC,EACrC,kCAAkC,CACnC,CAAC;QACJ,CAAC;aAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,oGAAoG;QACtG,CAAC;QAED,0CAA0C;QAC1C,IAAI,cAAc,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,oBAAoB,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC5C,eAAe,CAAC,IAAI,CAClB,yBAAyB,EACzB,4BAA4B,EAC5B,+BAA+B,EAC/B,wBAAwB,CACzB,CAAC;QACJ,CAAC;QAED,IAAA,qCAA4B,EAC1B,IAAI,EACJ,IAAA,uBAAY,EAAC,YAAY,CAAC,EAC1B,IAAA,uBAAY,EAAC,eAAe,CAAC,CAC9B,CAAC;QAEF,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE;YAC1C,wCAAgC;SACjC,CAAC,CAAC;QAEH,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CAAA;AACD,kBAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/app/generator.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { UxProviderOption } from './generator';
8
8
  export interface TsReactWebsiteGeneratorSchema {
9
9
  name: string;
10
10
  directory?: string;
11
+ subDirectory?: string;
11
12
  skipInstall?: boolean;
12
13
  enableTanstackRouter?: boolean;
13
14
  enableTailwind?: boolean;
@@ -30,6 +30,11 @@
30
30
  "default": "packages",
31
31
  "x-prompt": "What directory would you like to store your application in?"
32
32
  },
33
+ "subDirectory": {
34
+ "type": "string",
35
+ "description": "The sub directory the project is placed in. By default this is the project name.",
36
+ "x-prompt": "Which sub directory do you want to create the project in? (By default this is the project name)"
37
+ },
33
38
  "uxProvider": {
34
39
  "type": "string",
35
40
  "description": "The preferred UX provider.",
@@ -7,7 +7,7 @@ WORKDIR /app
7
7
 
8
8
  # Add AWS Distro for OpenTelemetry for observability
9
9
  # https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/observability-configure.html
10
- RUN npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation@^0.7.0
10
+ RUN npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation@0.9.0
11
11
 
12
12
  # Copy bundled agent
13
13
  COPY --from=workspace dist/apps/test-project/bundle/agent/snapshot-bedrock-agent/index.js /app
@@ -564,164 +564,33 @@ exports[`ts#strands-agent generator > should match snapshot for generated files
564
564
  "import { Agent, tool } from '@strands-agents/sdk';
565
565
  import { z } from 'zod';
566
566
 
567
- const add = tool({
568
- name: 'Add',
569
- description: 'Add two numbers',
567
+ const multiply = tool({
568
+ name: 'Multiply',
569
+ description: 'Multiply two numbers',
570
570
  inputSchema: z.object({
571
571
  a: z.number(),
572
572
  b: z.number(),
573
573
  }),
574
- callback: ({ a, b }) => a + b,
574
+ callback: ({ a, b }) => a * b,
575
575
  });
576
576
 
577
- export const getAgent = () =>
578
- new Agent({
579
- systemPrompt: \`You are an addition wizard.
580
- Use the add tool for addition tasks.
577
+ export const getAgent = async (sessionId: string) => {
578
+ console.log(\`Creating agent for session \${sessionId}\`);
579
+ return new Agent({
580
+ systemPrompt: \`You are a mathematical wizard.
581
+ Use your tools for mathematical tasks.
581
582
  Refer to tools as your 'spellbook'.\`,
582
- tools: [add],
583
+ tools: [multiply],
583
584
  });
585
+ };
584
586
  "
585
587
  `;
586
588
 
587
- exports[`ts#strands-agent generator > should match snapshot for generated files > strands-agent-agent-core-mcp-client.ts 1`] = `
588
- "import { McpClient } from '@strands-agents/sdk';
589
- import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
590
- import { AwsClient } from 'aws4fetch';
591
- import { fromNodeProviderChain } from '@aws-sdk/credential-providers';
592
-
593
- /**
594
- * Options for creating an AgentCore MCP client with IAM authentication
595
- */
596
- export interface AgentCoreMcpClientIamOptions {
597
- agentRuntimeArn: string;
598
- region: string;
599
- sessionId: string;
600
- }
601
-
602
- /**
603
- * Options for creating an AgentCore MCP client with JWT authentication
604
- */
605
- export interface AgentCoreMcpClientJwtOptions {
606
- agentRuntimeArn: string;
607
- accessToken: string;
608
- region: string;
609
- sessionId: string;
610
- }
611
-
612
- /**
613
- * Internal options for creating an AgentCore MCP client
614
- */
615
- interface CreateOptions {
616
- agentRuntimeArn: string;
617
- region: string;
618
- sessionId: string;
619
- additionalHeaders?: Record<string, string>;
620
- fetch?: typeof fetch;
621
- }
622
-
623
- /**
624
- * Factory for clients to call MCP servers hosted on Bedrock AgentCore Runtime
625
- */
626
- export class AgentCoreMcpClient {
627
- /**
628
- * Internal method to create an MCP client
629
- */
630
- private static create(options: CreateOptions): McpClient {
631
- const {
632
- agentRuntimeArn,
633
- region,
634
- sessionId,
635
- additionalHeaders = {},
636
- fetch: customFetch,
637
- } = options;
638
-
639
- // Encode the ARN for URL
640
- const encodedArn = agentRuntimeArn
641
- .replace(/:/g, '%3A')
642
- .replace(/\\//g, '%2F');
643
- const url = \`https://bedrock-agentcore.\${region}.amazonaws.com/runtimes/\${encodedArn}/invocations?qualifier=DEFAULT\`;
644
-
645
- // Create a custom fetch that adds required headers
646
- const fetchWithHeaders: typeof fetch = async (input, init) => {
647
- const headers = {
648
- 'X-Amzn-Bedrock-AgentCore-Runtime-Session-Id': sessionId,
649
- ...additionalHeaders,
650
- };
651
- const existingHeaders = init?.headers;
652
-
653
- const mergedInit = {
654
- ...init,
655
- headers: !existingHeaders
656
- ? headers
657
- : existingHeaders instanceof Headers
658
- ? (() => {
659
- const h = new Headers(existingHeaders);
660
- Object.entries(headers).forEach(([k, v]) => h.append(k, v));
661
- return h;
662
- })()
663
- : Array.isArray(existingHeaders)
664
- ? [...existingHeaders, ...Object.entries(headers)]
665
- : { ...existingHeaders, ...headers },
666
- };
667
- return (customFetch || fetch)(input, mergedInit);
668
- };
669
-
670
- // Create the transport
671
- const transport = new StreamableHTTPClientTransport(new URL(url), {
672
- fetch: fetchWithHeaders,
673
- });
674
-
675
- // Create and return the MCP client
676
- return new McpClient({ transport });
677
- }
678
-
679
- /**
680
- * Create an MCP client with IAM (SigV4) authentication
681
- */
682
- static withIamAuth(options: AgentCoreMcpClientIamOptions): McpClient {
683
- const { region, ...rest } = options;
684
-
685
- // Create credential provider
686
- const credentialProvider = fromNodeProviderChain();
687
-
688
- // Create a SigV4 signing fetch function
689
- const sigv4Fetch: typeof fetch = async (...args) => {
690
- const credentials = await credentialProvider();
691
- const client = new AwsClient({
692
- ...credentials,
693
- service: 'bedrock-agentcore',
694
- region,
695
- });
696
- return client.fetch(...args);
697
- };
698
-
699
- return AgentCoreMcpClient.create({
700
- ...rest,
701
- region,
702
- fetch: sigv4Fetch,
703
- });
704
- }
705
-
706
- /**
707
- * Create an MCP client with JWT authentication
708
- */
709
- static withJwtAuth(options: AgentCoreMcpClientJwtOptions): McpClient {
710
- const { accessToken, ...rest } = options;
711
-
712
- return AgentCoreMcpClient.create({
713
- ...rest,
714
- additionalHeaders: {
715
- Authorization: \`Bearer \${accessToken}\`,
716
- },
717
- });
718
- }
719
- }
720
- "
721
- `;
589
+ exports[`ts#strands-agent generator > should match snapshot for generated files > strands-agent-agent-core-mcp-client.ts 1`] = `null`;
722
590
 
723
591
  exports[`ts#strands-agent generator > should match snapshot for generated files > strands-agent-agent-core-trpc-client.ts 1`] = `
724
- "import { fromNodeProviderChain } from '@aws-sdk/credential-providers';
592
+ "import { randomUUID } from 'node:crypto';
593
+ import { fromNodeProviderChain } from '@aws-sdk/credential-providers';
725
594
  import {
726
595
  createTRPCClient,
727
596
  createWSClient,
@@ -737,6 +606,11 @@ export interface WebSocketTrpcClientOptions {
737
606
  * URL of the websocket server, eg http://localhost:8080/ws
738
607
  */
739
608
  url: string;
609
+ /**
610
+ * Session ID to include in the WebSocket handshake headers.
611
+ * Defaults to a random UUID if not provided.
612
+ */
613
+ sessionId?: string;
740
614
  /**
741
615
  * Factory for creating headers to include in the WebSocket handshake
742
616
  */
@@ -752,12 +626,16 @@ export class WebSocketTrpcClient {
752
626
  */
753
627
  public static create = <TRouter extends AnyTRPCRouter>({
754
628
  url,
629
+ sessionId = randomUUID(),
755
630
  buildHeaders = async () => ({}),
756
631
  }: WebSocketTrpcClientOptions) => {
757
632
  let headers = {};
758
633
  const client = createWSClient({
759
634
  url: async () => {
760
- headers = await buildHeaders();
635
+ headers = {
636
+ ...(await buildHeaders()),
637
+ 'X-Amzn-Bedrock-AgentCore-Runtime-Session-Id': sessionId,
638
+ };
761
639
  return url;
762
640
  },
763
641
  WebSocket: class extends WebSocket {
@@ -778,6 +656,11 @@ export interface AgentCoreTrpcClientOptions {
778
656
  * The ARN of the Bedrock AgentCore Runtime to connect to
779
657
  */
780
658
  agentRuntimeArn: string;
659
+ /**
660
+ * Session ID to include in the WebSocket handshake headers.
661
+ * Defaults to a random UUID if not provided.
662
+ */
663
+ sessionId?: string;
781
664
  }
782
665
 
783
666
  export interface AgentCoreTrpcClientIamOptions extends AgentCoreTrpcClientOptions {
@@ -804,7 +687,7 @@ export class AgentCoreTrpcClient {
804
687
  */
805
688
  private static buildUrl = (agentRuntimeArn: string) => {
806
689
  const region = agentRuntimeArn.split(':')[3];
807
- const url = \`wss://bedrock-agentcore.\${region}.amazonaws.com/runtimes/\${agentRuntimeArn.replace(/:/g, '%3A').replace(/\\//g, '%2F')}/ws\`;
690
+ const url = \`wss://bedrock-agentcore.\${region}.amazonaws.com/runtimes/\${encodeURIComponent(agentRuntimeArn)}/ws\`;
808
691
  return { region, url };
809
692
  };
810
693
 
@@ -825,6 +708,7 @@ export class AgentCoreTrpcClient {
825
708
 
826
709
  return WebSocketTrpcClient.create<TRouter>({
827
710
  url,
711
+ sessionId: options.sessionId,
828
712
  buildHeaders: async () =>
829
713
  Object.fromEntries(
830
714
  (
@@ -850,6 +734,7 @@ export class AgentCoreTrpcClient {
850
734
 
851
735
  return WebSocketTrpcClient.create<TRouter>({
852
736
  url,
737
+ sessionId: options.sessionId,
853
738
  buildHeaders: async () => ({
854
739
  Authorization: \`Bearer \${await options.accessTokenProvider()}\`,
855
740
  }),
@@ -895,7 +780,8 @@ export class SnapshotAgentClient {
895
780
  `;
896
781
 
897
782
  exports[`ts#strands-agent generator > should match snapshot for generated files > strands-agent-index.ts 1`] = `
898
- "import { createServer } from 'http';
783
+ "import { randomUUID } from 'node:crypto';
784
+ import { createServer } from 'http';
899
785
  import {
900
786
  CreateHTTPContextOptions,
901
787
  createHTTPHandler,
@@ -913,7 +799,15 @@ const PORT = parseInt(process.env.PORT || '8080');
913
799
 
914
800
  const createContext = (
915
801
  opts: CreateHTTPContextOptions | CreateWSSContextFnOptions,
916
- ): Context => ({});
802
+ ): Context => {
803
+ const sessionId =
804
+ ('req' in opts
805
+ ? opts.req.headers['x-amzn-bedrock-agentcore-runtime-session-id']
806
+ : undefined) ?? randomUUID();
807
+ return {
808
+ sessionId: Array.isArray(sessionId) ? sessionId[0] : sessionId,
809
+ };
810
+ };
917
811
 
918
812
  const handler = createHTTPHandler({
919
813
  router: appRouter,
@@ -955,8 +849,9 @@ console.log(\`TRPC server listening on port \${PORT}\`);
955
849
  exports[`ts#strands-agent generator > should match snapshot for generated files > strands-agent-init.ts 1`] = `
956
850
  "import { initTRPC } from '@trpc/server';
957
851
 
958
- // eslint-disable-next-line
959
- export interface Context {}
852
+ export interface Context {
853
+ sessionId: string;
854
+ }
960
855
 
961
856
  export const t = initTRPC.context<Context>().create();
962
857
 
@@ -982,7 +877,7 @@ export const appRouter = router({
982
877
  }),
983
878
  )
984
879
  .subscription(async function* (opts) {
985
- const agent = getAgent();
880
+ const agent = await getAgent(opts.ctx.sessionId);
986
881
 
987
882
  for await (const event of agent.stream(opts.input.message)) {
988
883
  if (