@aws/nx-plugin 0.34.0 → 0.36.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 (58) hide show
  1. package/README.md +3 -62
  2. package/generators.json +6 -0
  3. package/package.json +1 -1
  4. package/sdk/ts.d.ts +4 -0
  5. package/sdk/ts.js +15 -9
  6. package/sdk/ts.js.map +1 -1
  7. package/src/mcp-server/tools/create-workspace-command.js +1 -8
  8. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  9. package/src/mcp-server/tools/generator-guide.js +1 -1
  10. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  11. package/src/preset/__snapshots__/generator.spec.ts.snap +2 -0
  12. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +1 -1
  13. package/src/trpc/backend/files/src/schema/echo.ts.template +1 -1
  14. package/src/trpc/backend/generator.js +0 -3
  15. package/src/trpc/backend/generator.js.map +1 -1
  16. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +41 -314
  17. package/src/ts/mcp-server/files/index.ts.template +17 -0
  18. package/src/ts/mcp-server/files/resources/sample-guidance.ts.template +9 -0
  19. package/src/ts/mcp-server/files/server.ts.template +18 -0
  20. package/src/ts/mcp-server/files/tools/add.ts.template +11 -0
  21. package/src/ts/mcp-server/generator.js +42 -31
  22. package/src/ts/mcp-server/generator.js.map +1 -1
  23. package/src/ts/mcp-server/schema.d.ts +4 -2
  24. package/src/ts/mcp-server/schema.json +9 -16
  25. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +2 -2
  26. package/src/ts/nx-generator/files/common/schema.json.template +1 -1
  27. package/src/ts/nx-generator/files/local/README.md.template +5 -0
  28. package/src/ts/nx-generator/generator.js +5 -41
  29. package/src/ts/nx-generator/generator.js.map +1 -1
  30. package/src/ts/nx-generator/schema.d.ts +1 -1
  31. package/src/ts/nx-generator/schema.json +3 -3
  32. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +375 -0
  33. package/src/ts/nx-plugin/files/mcp-server/resources/GENERAL_GUIDANCE.md.template +49 -0
  34. package/src/ts/nx-plugin/files/mcp-server/schema.ts.template +4 -0
  35. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +41 -0
  36. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +36 -0
  37. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +24 -0
  38. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +45 -0
  39. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +27 -0
  40. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +97 -0
  41. package/src/ts/nx-plugin/generator.d.ts +10 -0
  42. package/src/ts/nx-plugin/generator.js +88 -0
  43. package/src/ts/nx-plugin/generator.js.map +1 -0
  44. package/src/ts/nx-plugin/schema.d.ts +11 -0
  45. package/src/ts/nx-plugin/schema.json +32 -0
  46. package/src/ts/nx-plugin/utils.d.ts +9 -0
  47. package/src/ts/nx-plugin/utils.js +65 -0
  48. package/src/ts/nx-plugin/utils.js.map +1 -0
  49. package/src/utils/ast.js +3 -1
  50. package/src/utils/ast.js.map +1 -1
  51. package/src/ts/mcp-server/files/README.md.template +0 -108
  52. package/src/ts/mcp-server/files/src/global.d.ts.template +0 -4
  53. package/src/ts/mcp-server/files/src/index.ts.template +0 -6
  54. package/src/ts/mcp-server/files/src/resources/example-context.md +0 -3
  55. package/src/ts/mcp-server/files/src/server.ts.template +0 -28
  56. package/src/utils/zod.d.ts +0 -9
  57. package/src/utils/zod.js +0 -19
  58. package/src/utils/zod.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { z } from 'zod';
3
+ import { renderGeneratorInfo, listGenerators } from '../utils';
4
+ import { PackageManagerSchema } from '../schema';
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+
8
+ /**
9
+ * Registers a tool which provides a detailed guide for an individual generator
10
+ */
11
+ export const registerGeneratorGuideTool = (
12
+ server: McpServer,
13
+ ) => {
14
+ server.tool(
15
+ 'generator-guide',
16
+ 'Tool to retrieve detailed information about a specific generator.',
17
+ {
18
+ packageManager: PackageManagerSchema,
19
+ generator: z.string(),
20
+ },
21
+ async ({ packageManager, generator: generatorId }) => {
22
+ const generators = listGenerators();
23
+ const generator = generators.find((g) => g.id === generatorId);
24
+ if (!generator) {
25
+ throw new Error(
26
+ `No generator found with id ${generatorId}. Available generators: ${generators.map((g) => g.id).join(' ,')}`,
27
+ );
28
+ }
29
+
30
+ return {
31
+ content: [
32
+ {
33
+ type: 'text',
34
+ text: `## ${renderGeneratorInfo(packageManager, generator)}
35
+
36
+ # Guide
37
+
38
+ ${fs.readFileSync(path.join(generator.resolvedPath, 'README.md'))}
39
+ `,
40
+ },
41
+ ],
42
+ };
43
+ },
44
+ );
45
+ };
@@ -0,0 +1,27 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { PackageManagerSchema } from '../schema';
3
+ import { renderGeneratorInfo, listGenerators } from '../utils';
4
+
5
+ /**
6
+ * Registers a tool which lists details about the available generators
7
+ */
8
+ export const registerListGeneratorsTool = (
9
+ server: McpServer,
10
+ ) => {
11
+ server.tool(
12
+ 'list-generators',
13
+ 'Tool to discover the available generators and how to run them.',
14
+ { packageManager: PackageManagerSchema },
15
+ ({ packageManager }) => ({
16
+ content: [
17
+ {
18
+ type: 'text',
19
+ text: `## Available Generators
20
+
21
+ ${listGenerators().map((g) => `### ${renderGeneratorInfo(packageManager, g)}`).join('\n\n')}
22
+ `,
23
+ },
24
+ ],
25
+ }),
26
+ );
27
+ };
@@ -0,0 +1,97 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+
4
+ export interface NxGeneratorInfo {
5
+ readonly id: string;
6
+ readonly resolvedPath: string;
7
+ readonly description?: string;
8
+ }
9
+
10
+ export const getPackageName = (): string =>
11
+ JSON.parse(
12
+ fs.readFileSync(path.resolve(__dirname, '../../package.json'), 'utf-8'),
13
+ ).name;
14
+
15
+ export const listGenerators = (): NxGeneratorInfo[] =>
16
+ Object.entries(
17
+ JSON.parse(
18
+ fs.readFileSync(
19
+ path.resolve(__dirname, '../../generators.json'),
20
+ 'utf-8',
21
+ ),
22
+ ).generators,
23
+ ).map(([id, info]: any) => ({
24
+ id,
25
+ resolvedPath: path.resolve(__dirname, '..', '..', info.factory, '..'),
26
+ description: info.description,
27
+ }));
28
+
29
+ /**
30
+ * Build a command to run nx
31
+ */
32
+ export const buildNxCommand = (command: string, pm?: string) =>
33
+ `${
34
+ pm
35
+ ? `${
36
+ {
37
+ npm: 'npx',
38
+ bun: 'bunx',
39
+ }[pm] ?? pm
40
+ } `
41
+ : ''
42
+ }nx ${command}`;
43
+
44
+ export const buildInstallCommand = (pm: string, pkg: string) =>
45
+ ({
46
+ pnpm: `pnpm add -Dw ${pkg}`,
47
+ yarn: `yarn add -D ${pkg}`,
48
+ npm: `npm install --legacy-peer-deps -D ${pkg}`,
49
+ bun: `bun install -D ${pkg}`,
50
+ })[pm];
51
+
52
+ const renderSchema = (schema: any) =>
53
+ Object.entries(schema.properties)
54
+ .map(
55
+ ([parameter, parameterSchema]: [string, any]) =>
56
+ `- ${parameter} [type: ${parameterSchema.type}]${(schema.required ?? []).includes(parameter) ? ` (required)` : ''} ${parameterSchema.description}`,
57
+ )
58
+ .join('\n');
59
+
60
+ const renderGeneratorCommand = (
61
+ generatorId: string,
62
+ schema: any,
63
+ packageManager?: string,
64
+ ) => `\`\`\`bash
65
+ ${buildNxCommand(
66
+ `g ${getPackageName()}:${generatorId} --no-interactive ${Object.entries(
67
+ schema.properties,
68
+ )
69
+ .filter(([parameter]) => (schema.required ?? []).includes(parameter))
70
+ .map(([parameter]: [string, any]) => `--${parameter}=<${parameter}>`)
71
+ .join(' ')}`,
72
+ packageManager,
73
+ )}
74
+ \`\`\``;
75
+
76
+ /**
77
+ * Render summary information about a generator
78
+ */
79
+ export const renderGeneratorInfo = (
80
+ packageManager: string,
81
+ info: NxGeneratorInfo,
82
+ ): string => {
83
+ const schema = JSON.parse(
84
+ fs.readFileSync(path.join(info.resolvedPath, 'schema.json'), 'utf-8'),
85
+ );
86
+
87
+ return `${info.id}
88
+
89
+ Description: ${info.description}
90
+
91
+ Available Parameters:
92
+ ${renderSchema(schema)}
93
+
94
+ Command:
95
+ ${renderGeneratorCommand(info.id, schema, packageManager)}
96
+ `;
97
+ };
@@ -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 { GeneratorCallback, Tree } from '@nx/devkit';
6
+ import { TsNxPluginGeneratorSchema } from './schema';
7
+ import { NxGeneratorInfo } from '../../utils/nx';
8
+ export declare const TS_NX_PLUGIN_GENERATOR_INFO: NxGeneratorInfo;
9
+ export declare const tsNxPluginGenerator: (tree: Tree, options: TsNxPluginGeneratorSchema) => Promise<GeneratorCallback>;
10
+ export default tsNxPluginGenerator;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tsNxPluginGenerator = exports.TS_NX_PLUGIN_GENERATOR_INFO = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /**
6
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ * SPDX-License-Identifier: Apache-2.0
8
+ */
9
+ const devkit_1 = require("@nx/devkit");
10
+ const nx_1 = require("../../utils/nx");
11
+ const metrics_1 = require("../../utils/metrics");
12
+ const format_1 = require("../../utils/format");
13
+ const generator_1 = tslib_1.__importStar(require("../lib/generator"));
14
+ const utils_1 = require("./utils");
15
+ const generator_2 = tslib_1.__importDefault(require("../mcp-server/generator"));
16
+ exports.TS_NX_PLUGIN_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
17
+ const tsNxPluginGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
18
+ var _a, _b, _c;
19
+ // Generate a TypeScript project as the base
20
+ const { fullyQualifiedName, dir } = (0, generator_1.getTsLibDetails)(tree, options);
21
+ yield (0, generator_1.default)(tree, options);
22
+ // Configure the typescript project as an Nx Plugin
23
+ (0, utils_1.configureTsProjectAsNxPlugin)(tree, fullyQualifiedName);
24
+ // Add a "package" target which creates a package which can be published to NPM
25
+ const project = (0, nx_1.readProjectConfigurationUnqualified)(tree, fullyQualifiedName);
26
+ project.targets = Object.assign(Object.assign({}, project.targets), { package: {
27
+ executor: '@nx/js:tsc',
28
+ outputs: ['{options.outputPath}'],
29
+ options: {
30
+ outputPath: `dist/${dir}/package`,
31
+ main: `${dir}/src/index.ts`,
32
+ tsConfig: `${dir}/tsconfig.lib.json`,
33
+ assets: [
34
+ `${dir}/*.md`,
35
+ `${dir}/LICENSE*`,
36
+ `${dir}/NOTICE`,
37
+ {
38
+ input: `./${dir}/src`,
39
+ glob: '**/!(*.ts)',
40
+ output: './src',
41
+ },
42
+ {
43
+ input: `./${dir}/src`,
44
+ glob: '**/*.d.ts',
45
+ output: './src',
46
+ },
47
+ {
48
+ input: `./${dir}`,
49
+ glob: 'generators.json',
50
+ output: '.',
51
+ },
52
+ {
53
+ input: `./${dir}`,
54
+ glob: 'executors.json',
55
+ output: '.',
56
+ },
57
+ ],
58
+ },
59
+ }, build: {
60
+ dependsOn: [
61
+ ...((_c = (_b = (_a = project.targets) === null || _a === void 0 ? void 0 : _a.build) === null || _b === void 0 ? void 0 : _b.dependsOn) !== null && _c !== void 0 ? _c : []).filter((d) => typeof d !== 'string' || d !== 'package'),
62
+ 'package',
63
+ ],
64
+ } });
65
+ (0, devkit_1.updateProjectConfiguration)(tree, fullyQualifiedName, project);
66
+ // Remove the hello world example from index.ts
67
+ tree.write((0, devkit_1.joinPathFragments)(project.sourceRoot, 'index.ts'), '');
68
+ // Add an MCP Server
69
+ yield (0, generator_2.default)(tree, { project: fullyQualifiedName });
70
+ const mcpPath = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'mcp-server');
71
+ const mcpServerPath = (0, devkit_1.joinPathFragments)(mcpPath, 'server.ts');
72
+ // Remove the sample server and tools
73
+ tree.delete(mcpServerPath);
74
+ tree.delete((0, devkit_1.joinPathFragments)(mcpPath, 'tools', 'add.ts'));
75
+ tree.delete((0, devkit_1.joinPathFragments)(mcpPath, 'resources', 'sample-guidance.ts'));
76
+ // Add generator MCP server
77
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'mcp-server'), mcpPath, {
78
+ name: fullyQualifiedName,
79
+ }, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
80
+ yield (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_NX_PLUGIN_GENERATOR_INFO]);
81
+ yield (0, format_1.formatFilesInSubtree)(tree);
82
+ return () => {
83
+ (0, devkit_1.installPackagesTask)(tree);
84
+ };
85
+ });
86
+ exports.tsNxPluginGenerator = tsNxPluginGenerator;
87
+ exports.default = exports.tsNxPluginGenerator;
88
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/nx-plugin/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { TsProjectGeneratorSchema } from '../lib/schema';
6
+
7
+ /**
8
+ * TypeScript types for options defined in schema.json
9
+ * Update this to match schema.json if you make changes.
10
+ */
11
+ export type TsNxPluginGeneratorSchema = TsProjectGeneratorSchema;
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "ts#nx-plugin",
4
+ "title": "ts#nx-plugin",
5
+ "description": "<Describe your generator here!>",
6
+ "type": "object",
7
+ "properties": {
8
+ "name": {
9
+ "type": "string",
10
+ "description": "TypeScript project name",
11
+ "$default": {
12
+ "$source": "argv",
13
+ "index": 0
14
+ },
15
+ "x-priority": "important",
16
+ "x-prompt": "What would you like to call your TypeScript project?"
17
+ },
18
+ "directory": {
19
+ "type": "string",
20
+ "description": "Parent directory where the library is placed.",
21
+ "default": "packages",
22
+ "x-prompt": "Which directory do you want to create the library in?",
23
+ "x-priority": "important"
24
+ },
25
+ "subDirectory": {
26
+ "type": "string",
27
+ "description": "The sub directory the lib is placed in. By default this is the library name.",
28
+ "x-prompt": "Which sub directory do you want to create the library in? (By default this is the library name)"
29
+ }
30
+ },
31
+ "required": ["name"]
32
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { Tree } from '@nx/devkit';
6
+ /**
7
+ * Configures a TypeScript project as an Nx Plugin
8
+ */
9
+ export declare const configureTsProjectAsNxPlugin: (tree: Tree, projectName: string) => void;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.configureTsProjectAsNxPlugin = void 0;
4
+ const tslib_1 = require("tslib");
5
+ /**
6
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
7
+ * SPDX-License-Identifier: Apache-2.0
8
+ */
9
+ const devkit_1 = require("@nx/devkit");
10
+ const nx_1 = require("../../utils/nx");
11
+ const versions_1 = require("../../utils/versions");
12
+ const package_json_1 = tslib_1.__importDefault(require("../../../package.json"));
13
+ /**
14
+ * Configures a TypeScript project as an Nx Plugin
15
+ */
16
+ const configureTsProjectAsNxPlugin = (tree, projectName) => {
17
+ const project = (0, nx_1.readProjectConfigurationUnqualified)(tree, projectName);
18
+ const tsConfigPath = (0, devkit_1.joinPathFragments)(project.root, 'tsconfig.json');
19
+ if (!tree.exists(tsConfigPath)) {
20
+ throw new Error(`Selected plugin project ${projectName} is not a TypeScript project`);
21
+ }
22
+ // Nx Plugins must use commonjs as a limitation of nx
23
+ // https://github.com/nrwl/nx/issues/15682
24
+ (0, devkit_1.updateJson)(tree, tsConfigPath, (tsConfig) => {
25
+ var _a, _b;
26
+ var _c;
27
+ (_a = tsConfig.compilerOptions) !== null && _a !== void 0 ? _a : (tsConfig.compilerOptions = {});
28
+ (_b = (_c = tsConfig.compilerOptions).module) !== null && _b !== void 0 ? _b : (_c.module = 'commonjs');
29
+ return tsConfig;
30
+ });
31
+ // Create an empty generators.json if one dosn't exist
32
+ const generatorsJsonPath = (0, devkit_1.joinPathFragments)(project.root, 'generators.json');
33
+ if (!tree.exists(generatorsJsonPath)) {
34
+ (0, devkit_1.writeJson)(tree, generatorsJsonPath, {
35
+ generators: {},
36
+ });
37
+ }
38
+ // Create a package.json if one doesn't exist, and configure "main" and "generators"
39
+ const pluginPackageJsonPath = (0, devkit_1.joinPathFragments)(project.root, 'package.json');
40
+ if (!tree.exists(pluginPackageJsonPath)) {
41
+ (0, devkit_1.writeJson)(tree, pluginPackageJsonPath, {
42
+ name: project.name,
43
+ });
44
+ }
45
+ (0, devkit_1.updateJson)(tree, pluginPackageJsonPath, (pkg) => {
46
+ var _a, _b;
47
+ (_a = pkg.main) !== null && _a !== void 0 ? _a : (pkg.main = './src/index.js');
48
+ (_b = pkg.generators) !== null && _b !== void 0 ? _b : (pkg.generators = './generators.json');
49
+ return pkg;
50
+ });
51
+ const rootPackageJson = tree.exists('package.json')
52
+ ? (0, devkit_1.readJson)(tree, 'package.json')
53
+ : undefined;
54
+ const isNxPluginForAws = (rootPackageJson === null || rootPackageJson === void 0 ? void 0 : rootPackageJson.name) === '@aws/nx-plugin-source';
55
+ if (!isNxPluginForAws) {
56
+ // Add the required dependencies to the root package.json, and project's package.json
57
+ const deps = Object.assign(Object.assign({}, (0, versions_1.withVersions)(['@nx/devkit'])), {
58
+ // Include dependency on @aws/nx-plugin
59
+ [package_json_1.default.name]: `^${package_json_1.default.version}` });
60
+ (0, devkit_1.addDependenciesToPackageJson)(tree, {}, deps);
61
+ (0, devkit_1.addDependenciesToPackageJson)(tree, deps, {}, pluginPackageJsonPath);
62
+ }
63
+ };
64
+ exports.configureTsProjectAsNxPlugin = configureTsProjectAsNxPlugin;
65
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/nx-plugin/utils.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAOoB;AACpB,uCAAqE;AACrE,mDAAoD;AACpD,iFAAgD;AAEhD;;GAEG;AACI,MAAM,4BAA4B,GAAG,CAC1C,IAAU,EACV,WAAmB,EACnB,EAAE;IACF,MAAM,OAAO,GAAG,IAAA,wCAAmC,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAG,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACtE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,2BAA2B,WAAW,8BAA8B,CACrE,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,0CAA0C;IAC1C,IAAA,mBAAU,EAAC,IAAI,EAAE,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE;;;QAC1C,MAAA,QAAQ,CAAC,eAAe,oCAAxB,QAAQ,CAAC,eAAe,GAAK,EAAE,EAAC;QAChC,YAAA,QAAQ,CAAC,eAAe,EAAC,MAAM,uCAAN,MAAM,GAAK,UAAU,EAAC;QAC/C,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,sDAAsD;IACtD,MAAM,kBAAkB,GAAG,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC9E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACrC,IAAA,kBAAS,EAAC,IAAI,EAAE,kBAAkB,EAAE;YAClC,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;IACL,CAAC;IAED,oFAAoF;IACpF,MAAM,qBAAqB,GAAG,IAAA,0BAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACxC,IAAA,kBAAS,EAAC,IAAI,EAAE,qBAAqB,EAAE;YACrC,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IACD,IAAA,mBAAU,EAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE;;QAC9C,MAAA,GAAG,CAAC,IAAI,oCAAR,GAAG,CAAC,IAAI,GAAK,gBAAgB,EAAC;QAC9B,MAAA,GAAG,CAAC,UAAU,oCAAd,GAAG,CAAC,UAAU,GAAK,mBAAmB,EAAC;QACvC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QACjD,CAAC,CAAC,IAAA,iBAAQ,EAAC,IAAI,EAAE,cAAc,CAAC;QAChC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,gBAAgB,GAAG,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,IAAI,MAAK,uBAAuB,CAAC;IAE3E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,qFAAqF;QACrF,MAAM,IAAI,mCACL,IAAA,uBAAY,EAAC,CAAC,YAAY,CAAC,CAAC;YAC/B,uCAAuC;YACvC,CAAC,sBAAW,CAAC,IAAI,CAAC,EAAE,IAAI,sBAAW,CAAC,OAAO,EAAE,GAC9C,CAAC;QACF,IAAA,qCAA4B,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAA,qCAA4B,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,qBAAqB,CAAC,CAAC;IACtE,CAAC;AACH,CAAC,CAAC;AAzDW,QAAA,4BAA4B,gCAyDvC"}
package/src/utils/ast.js CHANGED
@@ -113,7 +113,9 @@ exports.replaceIfExists = replaceIfExists;
113
113
  const applyTransform = (code, selector, transformer) => {
114
114
  const sourceFile = (0, tsquery_1.ast)(code);
115
115
  const transforms = [];
116
- const printer = typescript_1.default.createPrinter();
116
+ const printer = typescript_1.default.createPrinter({
117
+ removeComments: true,
118
+ });
117
119
  tsquery_1.tsquery.map(sourceFile, selector, (node) => {
118
120
  const newNode = transformer(node);
119
121
  if (newNode !== node && newNode) {
@@ -1 +1 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/ast.ts"],"names":[],"mappings":"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"}
@@ -1,108 +0,0 @@
1
- # <%- name %>
2
-
3
- This package defines a Model Context Protocol (MCP) Server in TypeScript.
4
-
5
- ## What is MCP?
6
-
7
- The Model Context Protocol (MCP) is a standardized protocol for providing context to Large Language Models (LLMs). It allows AI assistants to access external tools and resources through a consistent interface.
8
-
9
- ## Documentation
10
-
11
- - [Model Context Protocol Documentation](https://modelcontextprotocol.io/)
12
- - [MCP TypeScript SDK Documentation](https://github.com/modelcontextprotocol/sdk-typescript)
13
-
14
- ## Developer Guide
15
-
16
- ### Getting Started
17
-
18
- This MCP server is built using the MCP TypeScript SDK. Here's how to work with it:
19
-
20
- 1. **Server Structure**: The main server code is in `src/server.ts`. This file defines the server, its tools, and resources.
21
-
22
- 2. **Adding Tools**: Tools are functions that the LLM can call to perform actions. Add new tools using the `server.tool()` method:
23
-
24
- ```typescript
25
- server.tool("toolName",
26
- { param1: z.string(), param2: z.number() }, // Input schema using Zod
27
- async ({ param1, param2 }) => {
28
- // Tool implementation
29
- return {
30
- content: [{ type: "text", text: "Result" }]
31
- };
32
- }
33
- );
34
- ```
35
-
36
- 3. **Adding Resources**: Resources provide context to the LLM. You can add static resources from files or dynamic resources:
37
-
38
- ```typescript
39
- // Static resource from a file
40
- import resourceContent from './resources/my-resource.md';
41
-
42
- server.resource('resource-name', 'example://resource', async (uri) => ({
43
- contents: [{ uri: uri.href, text: resourceContent }],
44
- }));
45
-
46
- // Dynamic resource
47
- server.resource('dynamic-resource', 'dynamic://resource', async (uri) => {
48
- const data = await fetchSomeData();
49
- return {
50
- contents: [{ uri: uri.href, text: data }],
51
- };
52
- });
53
- ```
54
-
55
- ### Building the Server
56
-
57
- To build the server for use with AI assistants:
58
-
59
- ```bash
60
- nx run <project-name>:bundle
61
- ```
62
-
63
- This creates a bundled version of your server in `dist/<project-path>/bundle/index.js`.
64
-
65
- ## Using with AI Assistants
66
-
67
- To use your MCP server with AI assistants, you need to build it first to create the bundle:
68
-
69
- ```bash
70
- nx run <project-name>:bundle
71
- ```
72
-
73
- ### Configuration
74
-
75
- Most AI assistants (Amazon Q Developer CLI, Cline, Cursor, Claude Code, etc.) use a similar configuration approach. You'll need to create or update a configuration file with your MCP server details:
76
-
77
- ```json
78
- {
79
- "mcpServers": {
80
- "<%- name %>": {
81
- "command": "node",
82
- "args": [
83
- "/path/to/workspace/dist/<%- dir %>/bundle/index.js"
84
- ],
85
- "transportType": "stdio"
86
- }
87
- }
88
- }
89
- ```
90
-
91
- Replace `/path/to/workspace/dist/<%- dir %>/bundle/index.js` with the actual path to your bundled MCP server.
92
-
93
- Note that if you receive an error due to `node` missing (eg `ENOENT node`), you might need to specify the full path to `node` which you can obtain by running `which node`.
94
-
95
- ### Development Mode
96
-
97
- During development, you can use the `dev` target to continuously rebuild the bundle whenever you make changes:
98
-
99
- ```bash
100
- nx run <project-name>:dev
101
- ```
102
-
103
- This will watch for changes in your project files and automatically rebuild the bundle.
104
-
105
- Whenever you've made changes, you'll need to restart the MCP server in your AI assistant to test it out. The exact process depends on the assistant, but generally:
106
-
107
- 1. Find your MCP server in the assistant's settings or configuration
108
- 2. Look for a "Restart" or "Reload" option
@@ -1,4 +0,0 @@
1
- declare module '*.md' {
2
- const content: string;
3
- export default content;
4
- }
@@ -1,6 +0,0 @@
1
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
2
- import { createServer } from './server.js';
3
-
4
- // Start receiving messages on stdin and sending messages on stdout
5
- const transport = new StdioServerTransport();
6
- await createServer().connect(transport);
@@ -1,3 +0,0 @@
1
- ## Example Context
2
-
3
- This is some example context in a markdown file!
@@ -1,28 +0,0 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { z } from "zod";
3
- import exampleContext from './resources/example-context.md';
4
-
5
- /**
6
- * Create the MCP Server
7
- */
8
- export const createServer = () => {
9
- const server = new McpServer({
10
- name: "<%- name %>",
11
- version: "1.0.0"
12
- });
13
-
14
- // Add an addition tool
15
- server.tool("add", "adds two numbers",
16
- { a: z.number(), b: z.number() },
17
- async ({ a, b }) => ({
18
- content: [{ type: "text", text: String(a + b) }]
19
- })
20
- );
21
-
22
- // Add a resource which provides context from a markdown file
23
- server.resource('example-context', 'example://context', async (uri) => ({
24
- contents: [{ uri: uri.href, text: exampleContext }],
25
- }));
26
-
27
- return server;
28
- };
@@ -1,9 +0,0 @@
1
- /**
2
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
- import { Tree } from '@nx/devkit';
6
- /**
7
- * Adds an alias for zod imports to point to zod v4 (for forward compatiblity when v4 is published to npm)
8
- */
9
- export declare const addZodV4Alias: (tree: Tree) => void;
package/src/utils/zod.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addZodV4Alias = 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
- /**
10
- * Adds an alias for zod imports to point to zod v4 (for forward compatiblity when v4 is published to npm)
11
- */
12
- const addZodV4Alias = (tree) => {
13
- (0, devkit_1.updateJson)(tree, 'tsconfig.base.json', (tsConfig) => {
14
- var _a, _b;
15
- return (Object.assign(Object.assign({}, tsConfig), { compilerOptions: Object.assign(Object.assign({}, tsConfig.compilerOptions), { paths: Object.assign(Object.assign({}, Object.fromEntries(Object.entries((_b = (_a = tsConfig.compilerOptions) === null || _a === void 0 ? void 0 : _a.paths) !== null && _b !== void 0 ? _b : {}).filter(([k]) => k !== 'zod'))), { zod: ['./node_modules/zod/v4'] }) }) }));
16
- });
17
- };
18
- exports.addZodV4Alias = addZodV4Alias;
19
- //# sourceMappingURL=zod.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/zod.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAAiE;AAEjE;;GAEG;AACI,MAAM,aAAa,GAAG,CAAC,IAAU,EAAE,EAAE;IAC1C,IAAA,mBAAU,EAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE;;QAAC,OAAA,iCAChD,QAAQ,KACX,eAAe,kCACV,QAAQ,CAAC,eAAe,KAC3B,KAAK,kCAEA,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,MAAA,MAAA,QAAQ,CAAC,eAAe,0CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC,MAAM,CAC1D,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CACrB,CACF,KACD,GAAG,EAAE,CAAC,uBAAuB,CAAC,UAGlC,CAAA;KAAA,CAAC,CAAC;AACN,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB"}