@aws/nx-plugin 0.106.0 → 0.108.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.
- package/LICENSE-THIRD-PARTY +2401 -175
- package/package.json +19 -8
- package/src/connection/serve-local.js +4 -4
- package/src/connection/serve-local.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +13 -13
- package/src/mcp-server/generator-info.d.ts +95 -13
- package/src/mcp-server/generator-info.js +319 -164
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/guide-pipeline.d.ts +28 -0
- package/src/mcp-server/guide-pipeline.js +393 -0
- package/src/mcp-server/guide-pipeline.js.map +1 -0
- package/src/mcp-server/guide-render.d.ts +25 -0
- package/src/mcp-server/guide-render.js +50 -0
- package/src/mcp-server/guide-render.js.map +1 -0
- package/src/mcp-server/mdx-ast.d.ts +30 -0
- package/src/mcp-server/mdx-ast.js +96 -0
- package/src/mcp-server/mdx-ast.js.map +1 -0
- package/src/mcp-server/option-filter.d.ts +33 -0
- package/src/mcp-server/option-filter.js +119 -0
- package/src/mcp-server/option-filter.js.map +1 -0
- package/src/mcp-server/schema-registry.d.ts +36 -0
- package/src/mcp-server/schema-registry.js +79 -0
- package/src/mcp-server/schema-registry.js.map +1 -0
- package/src/mcp-server/tools/generator-guide.d.ts +7 -1
- package/src/mcp-server/tools/generator-guide.js +32 -4
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/mcp-server/tools/list-generators.d.ts +10 -1
- package/src/mcp-server/tools/list-generators.js +34 -13
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/preset/schema.json +2 -2
- package/src/py/fast-api/generator.js +9 -0
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +12 -0
- package/src/smithy/ts/api/generator.js +9 -0
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/trpc/backend/generator.js +9 -0
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/mcp-server/generator.js +15 -0
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +2 -0
- package/src/ts/nx-generator/files/nx-plugin-for-aws/docs/__nameKebabCase__.mdx.template +2 -0
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +27 -27
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +12 -3
- package/src/utils/files/common/shadcn/src/components/ui/avatar.tsx.template +60 -4
- package/src/utils/files/common/shadcn/src/components/ui/textarea.tsx.template +1 -1
- package/src/utils/generators.d.ts +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +13 -3
- package/src/utils/versions.d.ts +37 -37
- package/src/utils/versions.js +36 -36
- package/src/utils/versions.js.map +1 -1
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.postProcessGuide = exports.fetchSnippet = exports.fetchGuidePages = exports.fetchGuidePagesForGenerator = exports.renderGeneratorInfo = exports.buildNxCommand = void 0;
|
|
3
|
+
exports.postProcessGuide = exports.fetchSnippet = exports.fetchGuidePages = exports.fetchGuideFrontmatters = exports.fetchGuidePagesForGenerator = exports.renderFilterableOptionsAsync = exports.loadFilterableOptionsFromSchema = exports.renderGeneratorInfo = exports.buildNxCommand = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
/**
|
|
6
6
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
7
|
* SPDX-License-Identifier: Apache-2.0
|
|
8
8
|
*/
|
|
9
9
|
const names_1 = require("../utils/names");
|
|
10
|
-
const
|
|
10
|
+
const option_filter_1 = require("./option-filter");
|
|
11
|
+
const guide_render_1 = require("./guide-render");
|
|
12
|
+
const guide_pipeline_1 = require("./guide-pipeline");
|
|
13
|
+
const mdx_ast_1 = require("./mdx-ast");
|
|
14
|
+
const schema_registry_1 = require("./schema-registry");
|
|
11
15
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
exports.buildNxCommand = buildNxCommand;
|
|
17
|
-
const renderSchema = (schema) => Object.entries(schema.properties)
|
|
18
|
-
.map(([parameter, parameterSchema]) => `- ${parameter} [type: ${parameterSchema.type}]${parameterSchema.enum ? ` [options: ${parameterSchema.enum.join(', ')}]` : ''}${(schema.required ?? []).includes(parameter) ? ` (required)` : ''} ${parameterSchema.description}`)
|
|
19
|
-
.join('\n');
|
|
20
|
-
const renderGeneratorCommand = (generatorId, schema, packageManager) => `\`\`\`bash
|
|
21
|
-
${(0, exports.buildNxCommand)(`g @aws/nx-plugin:${generatorId} --no-interactive ${Object.entries(schema.properties)
|
|
22
|
-
.filter(([parameter]) => (schema.required ?? []).includes(parameter))
|
|
23
|
-
.map(([parameter]) => `--${parameter}=<${parameter}>`)
|
|
24
|
-
.join(' ')}`, packageManager)}
|
|
25
|
-
\`\`\``;
|
|
16
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
17
|
+
// Re-export so existing callers of `generator-info` continue working.
|
|
18
|
+
var guide_render_2 = require("./guide-render");
|
|
19
|
+
Object.defineProperty(exports, "buildNxCommand", { enumerable: true, get: function () { return guide_render_2.buildNxCommand; } });
|
|
26
20
|
/**
|
|
27
21
|
* Render summary information about a generator
|
|
28
22
|
*/
|
|
@@ -33,37 +27,322 @@ const renderGeneratorInfo = (packageManager, info) => {
|
|
|
33
27
|
Description: ${info.description}
|
|
34
28
|
|
|
35
29
|
Available Parameters:
|
|
36
|
-
${renderSchema(schema)}
|
|
30
|
+
${(0, guide_render_1.renderSchema)(schema)}
|
|
37
31
|
|
|
38
32
|
Command:
|
|
39
|
-
${renderGeneratorCommand(info.id, schema, packageManager)}
|
|
33
|
+
${(0, guide_render_1.renderGeneratorCommand)(info.id, schema, packageManager)}
|
|
40
34
|
`;
|
|
41
35
|
};
|
|
42
36
|
exports.renderGeneratorInfo = renderGeneratorInfo;
|
|
43
37
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
38
|
+
* Enum properties from the generator's JSON schema — the options a user
|
|
39
|
+
* could pass on the CLI. Agents use this list to pick `options` values
|
|
40
|
+
* when calling `generator-guide`.
|
|
41
|
+
*
|
|
42
|
+
* Multi-variant generators (e.g. `connection`) layer additional keys on
|
|
43
|
+
* top via each guide page's `when:` frontmatter — merged in by
|
|
44
|
+
* `collectFrontmatterFilterableOptions` / `renderFilterableOptionsAsync`.
|
|
45
|
+
*/
|
|
46
|
+
const loadFilterableOptionsFromSchema = (info) => {
|
|
47
|
+
try {
|
|
48
|
+
const schema = JSON.parse(fs_1.default.readFileSync(info.resolvedSchemaPath, 'utf-8'));
|
|
49
|
+
return (0, schema_registry_1.filterableOptionsFromSchema)(schema);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
exports.loadFilterableOptionsFromSchema = loadFilterableOptionsFromSchema;
|
|
56
|
+
/**
|
|
57
|
+
* Look at the `when:` frontmatter of every guide page belonging to a
|
|
58
|
+
* generator and add any keys not already surfaced via the JSON schema.
|
|
59
|
+
* This lets the `connection` generator advertise `sourceType` /
|
|
60
|
+
* `targetType` / `protocol` without touching `generators.json`.
|
|
61
|
+
*/
|
|
62
|
+
const collectFrontmatterFilterableOptions = (fetched, fromSchema) => {
|
|
63
|
+
const extras = new Map();
|
|
64
|
+
for (const guide of fetched) {
|
|
65
|
+
const when = guide.frontmatter.when;
|
|
66
|
+
if (!when)
|
|
67
|
+
continue;
|
|
68
|
+
for (const [key, rawValues] of Object.entries(when)) {
|
|
69
|
+
const bucket = extras.get(key) ?? new Set();
|
|
70
|
+
for (const v of rawValues)
|
|
71
|
+
bucket.add(v);
|
|
72
|
+
extras.set(key, bucket);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const out = [];
|
|
76
|
+
const seen = new Set(fromSchema.map((o) => o.key));
|
|
77
|
+
for (const [key, values] of extras) {
|
|
78
|
+
if (seen.has(key))
|
|
79
|
+
continue;
|
|
80
|
+
out.push({ key, enum: [...values] });
|
|
81
|
+
}
|
|
82
|
+
return out;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Decide whether the agent-supplied `options` describe a combination the
|
|
86
|
+
* generator actually supports. Returns undefined when the combination is
|
|
87
|
+
* fine (including when the agent hasn't narrowed enough to decide) and a
|
|
88
|
+
* human-readable explanation otherwise.
|
|
89
|
+
*
|
|
90
|
+
* Supported combinations are inferred from the union of `when:` predicates
|
|
91
|
+
* across a generator's guide pages. A generator with no `when:` predicates
|
|
92
|
+
* on any of its pages (the common case — `ts#trpc-api`, `py#fast-api` …)
|
|
93
|
+
* opts out of the check automatically.
|
|
94
|
+
*/
|
|
95
|
+
const describeUnsupportedCombinationFromFetched = (info, fetched, options) => {
|
|
96
|
+
if (!options)
|
|
97
|
+
return undefined;
|
|
98
|
+
const predicates = fetched
|
|
99
|
+
.map((g) => g.frontmatter.when)
|
|
100
|
+
.filter((w) => w !== undefined);
|
|
101
|
+
if (predicates.length === 0)
|
|
102
|
+
return undefined;
|
|
103
|
+
// Consider only the option keys that actually participate in at least
|
|
104
|
+
// one predicate — other options (e.g. schema enums) are orthogonal.
|
|
105
|
+
const predicateKeys = new Set();
|
|
106
|
+
for (const p of predicates)
|
|
107
|
+
for (const k of Object.keys(p))
|
|
108
|
+
predicateKeys.add(k);
|
|
109
|
+
const suppliedPredicateKeys = [...predicateKeys].filter((k) => options[k] !== undefined);
|
|
110
|
+
if (suppliedPredicateKeys.length === 0)
|
|
111
|
+
return undefined;
|
|
112
|
+
// If any predicate is still reachable given the keys the agent has
|
|
113
|
+
// committed to so far, treat this as a partial (valid) selection and
|
|
114
|
+
// skip the warning — the agent can keep narrowing.
|
|
115
|
+
const stillReachable = predicates.some((pred) => suppliedPredicateKeys.every((k) => {
|
|
116
|
+
const values = pred[k];
|
|
117
|
+
if (values === undefined)
|
|
118
|
+
return true; // predicate doesn't care about this key
|
|
119
|
+
return values.includes(options[k]);
|
|
120
|
+
}));
|
|
121
|
+
if (stillReachable)
|
|
122
|
+
return undefined;
|
|
123
|
+
return renderUnsupportedMessage(info, options, predicates);
|
|
124
|
+
};
|
|
125
|
+
const renderUnsupportedMessage = (info, requested, predicates) => {
|
|
126
|
+
const requestedDesc = Object.entries(requested)
|
|
127
|
+
.map(([k, v]) => `${k} = ${v}`)
|
|
128
|
+
.join(', ');
|
|
129
|
+
const supportedList = predicates
|
|
130
|
+
.map((pred) => {
|
|
131
|
+
const parts = Object.entries(pred).map(([k, vs]) => `${k} = ${vs.join(' | ')}`);
|
|
132
|
+
return `- ${parts.join(', ')}`;
|
|
133
|
+
})
|
|
134
|
+
.join('\n');
|
|
135
|
+
return `## ${info.id}
|
|
136
|
+
|
|
137
|
+
> [!WARNING] Unsupported combination: ${requestedDesc}. The \`${info.id}\` generator has no guide variant matching this combination — running it will likely fail.
|
|
138
|
+
|
|
139
|
+
Supported combinations:
|
|
140
|
+
${supportedList}
|
|
141
|
+
|
|
142
|
+
Pick a combination from the list above, or choose a different generator.`;
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Render the "Filterable options" block that list-generators emits for each
|
|
146
|
+
* generator. Only keys the guide pages actually branch on are included —
|
|
147
|
+
* enum properties the schema exposes but no guide filters on are omitted
|
|
148
|
+
* so agents don't waste tokens setting options that won't affect the
|
|
149
|
+
* returned content.
|
|
150
|
+
*
|
|
151
|
+
* Keys come from two sources:
|
|
152
|
+
* - Schema enums, intersected with keys referenced by
|
|
153
|
+
* `<OptionFilter when>` / `<TabItem _filter>` across the generator's
|
|
154
|
+
* guide pages.
|
|
155
|
+
* - Per-page `when:` frontmatter blocks (multi-variant generators like
|
|
156
|
+
* `connection`).
|
|
157
|
+
*/
|
|
158
|
+
const renderFilterableOptionsAsync = async (info) => {
|
|
159
|
+
const fetched = await (0, exports.fetchGuideFrontmatters)(info);
|
|
160
|
+
const referenced = new Set();
|
|
161
|
+
for (const g of fetched) {
|
|
162
|
+
for (const k of g.referencedKeys)
|
|
163
|
+
referenced.add(k);
|
|
164
|
+
}
|
|
165
|
+
const schemaOptions = (0, exports.loadFilterableOptionsFromSchema)(info).filter((o) => referenced.has(o.key));
|
|
166
|
+
const frontmatterOptions = collectFrontmatterFilterableOptions(fetched, schemaOptions);
|
|
167
|
+
return formatFilterableOptions(info, [
|
|
168
|
+
...schemaOptions,
|
|
169
|
+
...frontmatterOptions,
|
|
170
|
+
]);
|
|
171
|
+
};
|
|
172
|
+
exports.renderFilterableOptionsAsync = renderFilterableOptionsAsync;
|
|
173
|
+
const formatFilterableOptions = (_info, filterable) => {
|
|
174
|
+
if (filterable.length === 0)
|
|
175
|
+
return '';
|
|
176
|
+
const entries = filterable
|
|
177
|
+
.map((opt) => {
|
|
178
|
+
const def = opt.default ? ` (default: ${opt.default})` : '';
|
|
179
|
+
return `- ${opt.key}: ${opt.enum.join(' | ')}${def}`;
|
|
180
|
+
})
|
|
181
|
+
.join('\n');
|
|
182
|
+
return `\`generator-guide\` options:\n${entries}`;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Retrieve the markdown guide pages for a generator.
|
|
186
|
+
*
|
|
187
|
+
* Every page listed in `guidePages` (or the kebab-cased generator id when
|
|
188
|
+
* that field is absent) is fetched in parallel — local files first, GitHub
|
|
189
|
+
* fallback — and its YAML frontmatter is parsed to pick up any `when:`
|
|
190
|
+
* predicate. Pages without a `when:` are always included; pages with a
|
|
191
|
+
* `when:` are included when either:
|
|
192
|
+
* - `options` is absent (agent hasn't narrowed yet — keep every variant),
|
|
193
|
+
* or
|
|
194
|
+
* - the predicate matches `options` using the same semantics as
|
|
195
|
+
* `<OptionFilter when={{…}}>` (AND across keys, OR within a key).
|
|
196
|
+
*
|
|
197
|
+
* If the agent has supplied enough options to identify a combination and
|
|
198
|
+
* no variant page matches, the result is `{ kind: 'unsupported' }` and the
|
|
199
|
+
* caller surfaces the warning directly.
|
|
47
200
|
*/
|
|
48
|
-
const fetchGuidePagesForGenerator = async (info, generators, packageManager, snippetContentProvider) => {
|
|
49
|
-
|
|
201
|
+
const fetchGuidePagesForGenerator = async (info, generators, packageManager, snippetContentProvider, options) => {
|
|
202
|
+
const fetched = await (0, exports.fetchGuideFrontmatters)(info);
|
|
203
|
+
const unsupported = describeUnsupportedCombinationFromFetched(info, fetched, options);
|
|
204
|
+
if (unsupported !== undefined) {
|
|
205
|
+
return { kind: 'unsupported', content: unsupported };
|
|
206
|
+
}
|
|
207
|
+
const kept = fetched.filter((g) => {
|
|
208
|
+
if (!g.frontmatter.when)
|
|
209
|
+
return true;
|
|
210
|
+
if (!options)
|
|
211
|
+
return true;
|
|
212
|
+
return (0, option_filter_1.evaluatePredicate)(g.frontmatter.when, false, options);
|
|
213
|
+
});
|
|
214
|
+
const processed = await Promise.all(kept.map((g) => (0, exports.postProcessGuide)(g.body, generators, packageManager, snippetContentProvider, options)));
|
|
215
|
+
return { kind: 'ok', content: processed.join('\n\n') };
|
|
50
216
|
};
|
|
51
217
|
exports.fetchGuidePagesForGenerator = fetchGuidePagesForGenerator;
|
|
52
218
|
/**
|
|
53
|
-
* Fetch
|
|
219
|
+
* Fetch every guide page referenced by a generator, in parallel, and
|
|
220
|
+
* return { page, raw, body, frontmatter } for each one. Used by both
|
|
221
|
+
* `fetchGuidePagesForGenerator` (to filter + render) and
|
|
222
|
+
* `renderFilterableOptionsAsync` (to build the filterable-options list
|
|
223
|
+
* from the union of frontmatter `when:` keys).
|
|
224
|
+
*/
|
|
225
|
+
const fetchGuideFrontmatters = async (info) => {
|
|
226
|
+
const pages = [...(info.guidePages ?? [(0, names_1.kebabCase)(info.id)])];
|
|
227
|
+
const results = await Promise.allSettled(pages.map(async (page) => ({ page, raw: await fetchGuideRaw(page) })));
|
|
228
|
+
const fulfilled = [];
|
|
229
|
+
for (const r of results) {
|
|
230
|
+
if (r.status === 'fulfilled' && r.value.raw)
|
|
231
|
+
fulfilled.push(r.value);
|
|
232
|
+
}
|
|
233
|
+
return Promise.all(fulfilled.map(async ({ page, raw }) => {
|
|
234
|
+
const parsed = await parseGuide(raw);
|
|
235
|
+
return { page, raw, ...parsed };
|
|
236
|
+
}));
|
|
237
|
+
};
|
|
238
|
+
exports.fetchGuideFrontmatters = fetchGuideFrontmatters;
|
|
239
|
+
/**
|
|
240
|
+
* Read a guide's raw MDX, local filesystem first, GitHub fallback.
|
|
241
|
+
*/
|
|
242
|
+
const fetchGuideRaw = async (page) => {
|
|
243
|
+
const local = fetchLocalGuide(page);
|
|
244
|
+
if (local !== undefined)
|
|
245
|
+
return local;
|
|
246
|
+
const response = await fetch(`https://raw.githubusercontent.com/awslabs/nx-plugin-for-aws/refs/heads/main/docs/src/content/docs/en/guides/${page}.mdx`);
|
|
247
|
+
return await response.text();
|
|
248
|
+
};
|
|
249
|
+
/**
|
|
250
|
+
* Parse a guide's MDX once and return the body, the frontmatter, and the
|
|
251
|
+
* set of option keys its `<OptionFilter>` / `<TabItem _filter>` blocks
|
|
252
|
+
* actually reference. The yaml node's `position.end.offset` gives us the
|
|
253
|
+
* body slice without re-stringifying the tree.
|
|
254
|
+
*/
|
|
255
|
+
const parseGuide = async (raw) => {
|
|
256
|
+
const tree = await (0, guide_pipeline_1.parseMdx)(raw);
|
|
257
|
+
const { data, bodyOffset } = (0, mdx_ast_1.extractFrontmatter)(tree);
|
|
258
|
+
const body = raw.slice(bodyOffset).replace(/^\r?\n/, '');
|
|
259
|
+
const frontmatter = {};
|
|
260
|
+
if (typeof data.title === 'string')
|
|
261
|
+
frontmatter.title = data.title;
|
|
262
|
+
if (data.when && typeof data.when === 'object' && !Array.isArray(data.when)) {
|
|
263
|
+
const when = {};
|
|
264
|
+
for (const [key, value] of Object.entries(data.when)) {
|
|
265
|
+
when[key] = Array.isArray(value) ? value.map(String) : [String(value)];
|
|
266
|
+
}
|
|
267
|
+
frontmatter.when = when;
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
body,
|
|
271
|
+
frontmatter,
|
|
272
|
+
referencedKeys: (0, mdx_ast_1.collectFilterableKeysFromJsx)(tree),
|
|
273
|
+
};
|
|
274
|
+
};
|
|
275
|
+
/**
|
|
276
|
+
* Search the monorepo-relative guides directory for a page before falling
|
|
277
|
+
* back to GitHub. This is the common case during local development
|
|
278
|
+
* (`pnpm nx mcp-inspect @aws/nx-plugin`), and it also means test workspaces
|
|
279
|
+
* that link the built plugin read the guides they're actually iterating on
|
|
280
|
+
* instead of whatever is currently on `main`.
|
|
281
|
+
*
|
|
282
|
+
* When running as the published `@aws/nx-plugin-mcp` package, `__dirname`
|
|
283
|
+
* resolves somewhere inside `node_modules/@aws/nx-plugin-mcp`, the local
|
|
284
|
+
* probe misses, and we fall back to GitHub.
|
|
285
|
+
*/
|
|
286
|
+
const GUIDES_RELATIVE_PROBES = [
|
|
287
|
+
// nx-plugin package compiled from source (src/mcp-server/…)
|
|
288
|
+
'../../../docs/src/content/docs/en/guides',
|
|
289
|
+
// rolldown-bundled `@aws/nx-plugin-mcp` binary in dist
|
|
290
|
+
'../../../../docs/src/content/docs/en/guides',
|
|
291
|
+
];
|
|
292
|
+
const fetchLocalGuide = (guide) => {
|
|
293
|
+
for (const rel of GUIDES_RELATIVE_PROBES) {
|
|
294
|
+
const candidate = path_1.default.resolve(__dirname, rel, `${guide}.mdx`);
|
|
295
|
+
try {
|
|
296
|
+
if (fs_1.default.existsSync(candidate)) {
|
|
297
|
+
return fs_1.default.readFileSync(candidate, 'utf-8');
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
// Probe failure → keep looking.
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return undefined;
|
|
305
|
+
};
|
|
306
|
+
/**
|
|
307
|
+
* Fetch markdown guide pages. Prefers local files (see `fetchLocalGuide`)
|
|
308
|
+
* and falls back to fetching from the repo on `main` when no local copy
|
|
309
|
+
* is available.
|
|
54
310
|
*/
|
|
55
|
-
const fetchGuidePages = async (guidePages, generators, packageManager, snippetContentProvider) => {
|
|
56
|
-
const guides = await Promise.allSettled(guidePages.map(async (guide) =>
|
|
311
|
+
const fetchGuidePages = async (guidePages, generators, packageManager, snippetContentProvider, options) => {
|
|
312
|
+
const guides = await Promise.allSettled(guidePages.map(async (guide) => {
|
|
313
|
+
const local = fetchLocalGuide(guide);
|
|
314
|
+
if (local !== undefined)
|
|
315
|
+
return local;
|
|
316
|
+
const response = await fetch(`https://raw.githubusercontent.com/awslabs/nx-plugin-for-aws/refs/heads/main/docs/src/content/docs/en/guides/${guide}.mdx`);
|
|
317
|
+
return await response.text();
|
|
318
|
+
}));
|
|
57
319
|
const fulfilled = guides.filter((result) => result.status === 'fulfilled');
|
|
58
|
-
const processed = await Promise.all(fulfilled.map((result) => (0, exports.postProcessGuide)(result.value, generators, packageManager, snippetContentProvider)));
|
|
320
|
+
const processed = await Promise.all(fulfilled.map((result) => (0, exports.postProcessGuide)(result.value, generators, packageManager, snippetContentProvider, options)));
|
|
59
321
|
return processed.join('\n\n');
|
|
60
322
|
};
|
|
61
323
|
exports.fetchGuidePages = fetchGuidePages;
|
|
324
|
+
const SNIPPETS_RELATIVE_PROBES = [
|
|
325
|
+
'../../../docs/src/content/docs/en/snippets',
|
|
326
|
+
'../../../../docs/src/content/docs/en/snippets',
|
|
327
|
+
];
|
|
62
328
|
const SNIPPET_BASE_URL = 'https://raw.githubusercontent.com/awslabs/nx-plugin-for-aws/refs/heads/main/docs/src/content/docs/en/snippets';
|
|
63
329
|
/**
|
|
64
|
-
* Fetch a snippet's content
|
|
330
|
+
* Fetch a snippet's content. Tries the local repo checkout first (when
|
|
331
|
+
* running under `mcp-inspect` or a linked test workspace) before falling
|
|
332
|
+
* back to the copy on `main`.
|
|
65
333
|
*/
|
|
66
334
|
const fetchSnippet = async (snippetName) => {
|
|
335
|
+
for (const rel of SNIPPETS_RELATIVE_PROBES) {
|
|
336
|
+
const candidate = path_1.default.resolve(__dirname, rel, `${snippetName}.mdx`);
|
|
337
|
+
try {
|
|
338
|
+
if (fs_1.default.existsSync(candidate)) {
|
|
339
|
+
return fs_1.default.readFileSync(candidate, 'utf-8');
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
catch {
|
|
343
|
+
// Probe failure — try next fallback.
|
|
344
|
+
}
|
|
345
|
+
}
|
|
67
346
|
try {
|
|
68
347
|
const response = await fetch(`${SNIPPET_BASE_URL}/${snippetName}.mdx`);
|
|
69
348
|
if (!response.ok) {
|
|
@@ -76,145 +355,21 @@ const fetchSnippet = async (snippetName) => {
|
|
|
76
355
|
}
|
|
77
356
|
};
|
|
78
357
|
exports.fetchSnippet = fetchSnippet;
|
|
79
|
-
const findGeneratorAndSchema = (generators, generatorId) => {
|
|
80
|
-
const generator = generators.find((info) => info.id === generatorId);
|
|
81
|
-
if (!generator) {
|
|
82
|
-
return undefined;
|
|
83
|
-
}
|
|
84
|
-
try {
|
|
85
|
-
const schema = JSON.parse(fs_1.default.readFileSync(generator.resolvedSchemaPath, 'utf-8'));
|
|
86
|
-
return { generator, schema };
|
|
87
|
-
}
|
|
88
|
-
catch {
|
|
89
|
-
return undefined;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
358
|
/**
|
|
93
|
-
* Post-process a guide page
|
|
359
|
+
* Post-process a guide page. Thin wrapper around the unified/remark-mdx
|
|
360
|
+
* pipeline in `guide-pipeline.ts` — the real work (snippet inlining,
|
|
361
|
+
* OptionFilter/Infrastructure/TabItem filtering, command/schema rendering)
|
|
362
|
+
* happens there. Kept under the same name so other packages
|
|
363
|
+
* (e.g. the docs site's `markdown-content.astro`) can continue importing
|
|
364
|
+
* `postProcessGuide` with the same signature.
|
|
94
365
|
*/
|
|
95
|
-
const postProcessGuide = async (guide, generators, packageManager, snippetContentProvider) => {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
let processedGuide = guide;
|
|
102
|
-
if (snippetMatches.length > 0) {
|
|
103
|
-
// Fetch all snippets in parallel
|
|
104
|
-
const snippetResults = await Promise.all(snippetMatches.map(async (match) => {
|
|
105
|
-
const nameMatch = match[1].match(/name=["']([^"']+)["']/);
|
|
106
|
-
if (!nameMatch) {
|
|
107
|
-
return { original: match[0], replacement: match[0] };
|
|
108
|
-
}
|
|
109
|
-
const snippetName = nameMatch[1];
|
|
110
|
-
const snippetContent = await getSnippetContent(snippetName);
|
|
111
|
-
if (!snippetContent) {
|
|
112
|
-
return { original: match[0], replacement: match[0] };
|
|
113
|
-
}
|
|
114
|
-
// Recursively post-process the snippet content
|
|
115
|
-
const processedContent = await (0, exports.postProcessGuide)(snippetContent.trim(), generators, packageManager, getSnippetContent);
|
|
116
|
-
return {
|
|
117
|
-
original: match[0],
|
|
118
|
-
replacement: `<Snippet name="${snippetName}">\n${processedContent}\n</Snippet>`,
|
|
119
|
-
};
|
|
120
|
-
}));
|
|
121
|
-
for (const { original, replacement } of snippetResults) {
|
|
122
|
-
processedGuide = processedGuide.replace(original, replacement);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
// Replace <NxCommands /> with markdown code blocks
|
|
126
|
-
processedGuide = processedGuide.replace(/<NxCommands\s+commands={([^}]+)}\s*\/>/g, (match, commandsMatch) => {
|
|
127
|
-
try {
|
|
128
|
-
const commands = JSON.parse(commandsMatch
|
|
129
|
-
.replaceAll("\\'", '__ESCAPED_SINGLE_QUOTE__')
|
|
130
|
-
.replaceAll("'", '"')
|
|
131
|
-
.replaceAll('__ESCAPED_SINGLE_QUOTE__', "\\'"));
|
|
132
|
-
return `\`\`\`bash\n${commands.map((command) => (0, exports.buildNxCommand)(command, packageManager)).join('\n')}\n\`\`\``;
|
|
133
|
-
}
|
|
134
|
-
catch {
|
|
135
|
-
return match;
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
// Replace <RunGenerator /> with renderGeneratorCommand
|
|
139
|
-
processedGuide = processedGuide.replace(/<RunGenerator\s+((?:[^/]|\/(?!>))+)\s*\/>/g, (match, attributes) => {
|
|
140
|
-
// Extract generator parameter
|
|
141
|
-
const generatorMatch = attributes.match(/generator=["']([^"']+)["']/);
|
|
142
|
-
if (!generatorMatch) {
|
|
143
|
-
return match; // If no generator parameter, leave as is
|
|
144
|
-
}
|
|
145
|
-
const generatorId = generatorMatch[1];
|
|
146
|
-
const info = findGeneratorAndSchema(generators, generatorId);
|
|
147
|
-
if (!info) {
|
|
148
|
-
return match;
|
|
149
|
-
}
|
|
150
|
-
return renderGeneratorCommand(generatorId, info.schema, packageManager);
|
|
151
|
-
});
|
|
152
|
-
// Replace <GeneratorParameters /> with renderSchema
|
|
153
|
-
processedGuide = processedGuide.replace(/<GeneratorParameters\s+((?:[^/]|\/(?!>))+)\s*\/>/g, (match, attributes) => {
|
|
154
|
-
// Extract generator parameter
|
|
155
|
-
const generatorMatch = attributes.match(/generator=["']([^"']+)["']/);
|
|
156
|
-
if (!generatorMatch) {
|
|
157
|
-
return match; // If no generator parameter, leave as is
|
|
158
|
-
}
|
|
159
|
-
const generatorId = generatorMatch[1];
|
|
160
|
-
const info = findGeneratorAndSchema(generators, generatorId);
|
|
161
|
-
if (!info) {
|
|
162
|
-
return match;
|
|
163
|
-
}
|
|
164
|
-
return renderSchema(info.schema);
|
|
165
|
-
});
|
|
166
|
-
// Replace <CreateNxWorkspaceCommand /> with npx create-nx-workspace command
|
|
167
|
-
processedGuide = processedGuide.replace(/<CreateNxWorkspaceCommand\s+((?:[^/]|\/(?!>))+)\s*\/>/g, (match, attributes) => {
|
|
168
|
-
const workspaceMatch = attributes.match(/workspace=["']([^"']+)["']/);
|
|
169
|
-
if (!workspaceMatch)
|
|
170
|
-
return match;
|
|
171
|
-
const workspace = workspaceMatch[1];
|
|
172
|
-
const iacMatch = attributes.match(/iacProvider=["']([^"']+)["']/);
|
|
173
|
-
const iacProvider = iacMatch
|
|
174
|
-
? iacMatch[1]
|
|
175
|
-
: undefined;
|
|
176
|
-
const pm = packageManager ?? 'pnpm';
|
|
177
|
-
return `\`\`\`bash\n${(0, commands_1.buildCreateNxWorkspaceCommand)(pm, workspace, iacProvider)}\n\`\`\``;
|
|
178
|
-
});
|
|
179
|
-
// Replace <InstallCommand /> with install command
|
|
180
|
-
processedGuide = processedGuide.replace(/<InstallCommand\s+((?:[^/]|\/(?!>))+)\s*\/>/g, (match, attributes) => {
|
|
181
|
-
const pkgMatch = attributes.match(/pkg=(?:["']([^"']+)["']|\{([^}]+)\})/);
|
|
182
|
-
if (!pkgMatch)
|
|
183
|
-
return match;
|
|
184
|
-
const pkg = pkgMatch[1] || pkgMatch[2];
|
|
185
|
-
const isDev = /dev/.test(attributes);
|
|
186
|
-
const pm = packageManager ?? 'pnpm';
|
|
187
|
-
return `\`\`\`bash\n${(0, commands_1.buildInstallCommand)(pm, pkg, isDev)}\n\`\`\``;
|
|
188
|
-
});
|
|
189
|
-
// Replace <PackageManagerShortCommand /> with short command
|
|
190
|
-
processedGuide = processedGuide.replace(/<PackageManagerShortCommand\s+commands={([^}]+)}\s*\/>/g, (match, commandsMatch) => {
|
|
191
|
-
try {
|
|
192
|
-
const commands = JSON.parse(commandsMatch
|
|
193
|
-
.replaceAll("\\'", '__ESCAPED_SINGLE_QUOTE__')
|
|
194
|
-
.replaceAll("'", '"')
|
|
195
|
-
.replaceAll('__ESCAPED_SINGLE_QUOTE__', "\\'"));
|
|
196
|
-
const pm = packageManager ?? 'pnpm';
|
|
197
|
-
return `\`\`\`bash\n${commands.map((command) => (0, commands_1.buildPackageManagerShortCommand)(pm, command)).join('\n')}\n\`\`\``;
|
|
198
|
-
}
|
|
199
|
-
catch {
|
|
200
|
-
return match;
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
// Replace <PackageManagerExecCommand /> with exec command
|
|
204
|
-
processedGuide = processedGuide.replace(/<PackageManagerExecCommand\s+commands={([^}]+)}\s*\/>/g, (match, commandsMatch) => {
|
|
205
|
-
try {
|
|
206
|
-
const commands = JSON.parse(commandsMatch
|
|
207
|
-
.replaceAll("\\'", '__ESCAPED_SINGLE_QUOTE__')
|
|
208
|
-
.replaceAll("'", '"')
|
|
209
|
-
.replaceAll('__ESCAPED_SINGLE_QUOTE__', "\\'"));
|
|
210
|
-
const pm = packageManager ?? 'pnpm';
|
|
211
|
-
return `\`\`\`bash\n${commands.map((command) => (0, commands_1.buildPackageManagerExecCommand)(pm, command)).join('\n')}\n\`\`\``;
|
|
212
|
-
}
|
|
213
|
-
catch {
|
|
214
|
-
return match;
|
|
215
|
-
}
|
|
366
|
+
const postProcessGuide = async (guide, generators, packageManager, snippetContentProvider, options) => {
|
|
367
|
+
return (0, guide_pipeline_1.postProcessGuideWithRemark)(guide, {
|
|
368
|
+
generators,
|
|
369
|
+
packageManager,
|
|
370
|
+
snippetContentProvider: snippetContentProvider ?? exports.fetchSnippet,
|
|
371
|
+
options,
|
|
216
372
|
});
|
|
217
|
-
return processedGuide;
|
|
218
373
|
};
|
|
219
374
|
exports.postProcessGuide = postProcessGuide;
|
|
220
375
|
//# sourceMappingURL=generator-info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator-info.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/mcp-server/generator-info.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator-info.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/mcp-server/generator-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Unified + remark-mdx pipeline for the MCP `generator-guide` tool.
|
|
7
|
+
*
|
|
8
|
+
* Passes (in order, each over the already-transformed tree):
|
|
9
|
+
* 1. Snippet inlining — `<Snippet name>` → recursive post-process.
|
|
10
|
+
* 2. Filter transforms — `<OptionFilter>`, `<Infrastructure>` slot
|
|
11
|
+
* selection, `<Tabs><TabItem _filter>` pruning.
|
|
12
|
+
* 3. Component transforms — `<NxCommands>` / `<RunGenerator>` /
|
|
13
|
+
* `<GeneratorParameters>` / `<CreateNxWorkspaceCommand>` /
|
|
14
|
+
* `<InstallCommand>` / `<PackageManagerShortCommand>` /
|
|
15
|
+
* `<PackageManagerExecCommand>` render down to markdown.
|
|
16
|
+
*/
|
|
17
|
+
import type { Root } from 'mdast';
|
|
18
|
+
import { NxGeneratorInfo } from '../utils/generators';
|
|
19
|
+
export interface PipelineOptions {
|
|
20
|
+
generators: NxGeneratorInfo[];
|
|
21
|
+
packageManager?: string;
|
|
22
|
+
snippetContentProvider?: (name: string) => Promise<string> | string;
|
|
23
|
+
options?: Record<string, string>;
|
|
24
|
+
}
|
|
25
|
+
/** Parse MDX (with frontmatter) into mdast. Exposed so callers like
|
|
26
|
+
* `fetchGuideFrontmatters` don't need to re-load remark themselves. */
|
|
27
|
+
export declare const parseMdx: (source: string) => Promise<Root>;
|
|
28
|
+
export declare const postProcessGuideWithRemark: (guide: string, opts: PipelineOptions) => Promise<string>;
|