nx 21.6.3 → 21.6.5
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/package.json +12 -12
- package/project.json +2 -1
- package/release/changelog-renderer/index.d.ts +1 -0
- package/release/changelog-renderer/index.d.ts.map +1 -1
- package/release/changelog-renderer/index.js +46 -15
- package/schemas/nx-schema.json +79 -0
- package/src/command-line/configure-ai-agents/command-object.d.ts +1 -1
- package/src/command-line/configure-ai-agents/command-object.d.ts.map +1 -1
- package/src/command-line/configure-ai-agents/command-object.js +18 -4
- package/src/command-line/configure-ai-agents/configure-ai-agents.d.ts.map +1 -1
- package/src/command-line/configure-ai-agents/configure-ai-agents.js +58 -31
- package/src/command-line/init/ai-agent-prompts.d.ts +3 -0
- package/src/command-line/init/ai-agent-prompts.d.ts.map +1 -0
- package/src/command-line/init/ai-agent-prompts.js +28 -0
- package/src/command-line/init/command-object.js +6 -0
- package/src/command-line/init/init-v2.d.ts +2 -0
- package/src/command-line/init/init-v2.d.ts.map +1 -1
- package/src/command-line/init/init-v2.js +20 -0
- package/src/command-line/nx-cloud/login/command-object.d.ts.map +1 -1
- package/src/command-line/nx-cloud/login/command-object.js +2 -2
- package/src/command-line/nx-cloud/logout/command-object.js +1 -1
- package/src/command-line/nx-commands.js +1 -1
- package/src/core/graph/main.js +1 -1
- package/src/daemon/client/client.d.ts +4 -0
- package/src/daemon/client/client.d.ts.map +1 -1
- package/src/daemon/client/client.js +23 -0
- package/src/daemon/message-types/register-project-graph-listener.d.ts +6 -0
- package/src/daemon/message-types/register-project-graph-listener.d.ts.map +1 -0
- package/src/daemon/message-types/register-project-graph-listener.js +11 -0
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts +3 -1
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
- package/src/daemon/server/project-graph-incremental-recomputation.js +13 -5
- package/src/daemon/server/project-graph-listener-sockets.d.ts +8 -0
- package/src/daemon/server/project-graph-listener-sockets.d.ts.map +1 -0
- package/src/daemon/server/project-graph-listener-sockets.js +24 -0
- package/src/daemon/server/server.d.ts.map +1 -1
- package/src/daemon/server/server.js +9 -2
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +1 -1
- package/src/tasks-runner/is-tui-enabled.d.ts.map +1 -1
- package/src/tasks-runner/is-tui-enabled.js +0 -1
- package/src/tasks-runner/run-command.d.ts.map +1 -1
- package/src/tasks-runner/run-command.js +5 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nx",
|
|
3
|
-
"version": "21.6.
|
|
3
|
+
"version": "21.6.5",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
|
|
6
6
|
"repository": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@yarnpkg/lockfile": "^1.1.0",
|
|
39
39
|
"@yarnpkg/parsers": "3.0.2",
|
|
40
40
|
"@zkochan/js-yaml": "0.0.7",
|
|
41
|
-
"axios": "^1.
|
|
41
|
+
"axios": "^1.12.0",
|
|
42
42
|
"chalk": "^4.1.0",
|
|
43
43
|
"cli-cursor": "3.1.0",
|
|
44
44
|
"cli-spinners": "2.6.1",
|
|
@@ -83,16 +83,16 @@
|
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
"optionalDependencies": {
|
|
86
|
-
"@nx/nx-darwin-arm64": "21.6.
|
|
87
|
-
"@nx/nx-darwin-x64": "21.6.
|
|
88
|
-
"@nx/nx-freebsd-x64": "21.6.
|
|
89
|
-
"@nx/nx-linux-arm-gnueabihf": "21.6.
|
|
90
|
-
"@nx/nx-linux-arm64-gnu": "21.6.
|
|
91
|
-
"@nx/nx-linux-arm64-musl": "21.6.
|
|
92
|
-
"@nx/nx-linux-x64-gnu": "21.6.
|
|
93
|
-
"@nx/nx-linux-x64-musl": "21.6.
|
|
94
|
-
"@nx/nx-win32-arm64-msvc": "21.6.
|
|
95
|
-
"@nx/nx-win32-x64-msvc": "21.6.
|
|
86
|
+
"@nx/nx-darwin-arm64": "21.6.5",
|
|
87
|
+
"@nx/nx-darwin-x64": "21.6.5",
|
|
88
|
+
"@nx/nx-freebsd-x64": "21.6.5",
|
|
89
|
+
"@nx/nx-linux-arm-gnueabihf": "21.6.5",
|
|
90
|
+
"@nx/nx-linux-arm64-gnu": "21.6.5",
|
|
91
|
+
"@nx/nx-linux-arm64-musl": "21.6.5",
|
|
92
|
+
"@nx/nx-linux-x64-gnu": "21.6.5",
|
|
93
|
+
"@nx/nx-linux-x64-musl": "21.6.5",
|
|
94
|
+
"@nx/nx-win32-arm64-msvc": "21.6.5",
|
|
95
|
+
"@nx/nx-win32-x64-msvc": "21.6.5"
|
|
96
96
|
},
|
|
97
97
|
"nx-migrations": {
|
|
98
98
|
"migrations": "./migrations.json",
|
package/project.json
CHANGED
|
@@ -95,6 +95,7 @@ export default class DefaultChangelogRenderer {
|
|
|
95
95
|
protected shouldRenderAuthors(): boolean;
|
|
96
96
|
protected renderAuthors(): Promise<string[]>;
|
|
97
97
|
protected formatChange(change: ChangelogChange): string;
|
|
98
|
+
protected formatBreakingChange(change: ChangelogChange): string;
|
|
98
99
|
protected groupChangesByType(): Record<string, ChangelogChange[]>;
|
|
99
100
|
protected groupChangesByScope(changes: ChangelogChange[]): Record<string, ChangelogChange[]>;
|
|
100
101
|
protected extractBreakingChangeExplanation(message: string): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/release/changelog-renderer/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAEpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mFAAmF,CAAC;AAE7H;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;IAC3E;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,OAAO,wBAAwB;IAC3C,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;IACrC,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,kBAAkB,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7C,SAAS,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;IAChE,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7C,SAAS,CAAC,yBAAyB,EAC/B,eAAe,CAAC,qBAAqB,CAAC,GACtC,IAAI,CAAC;IACT,SAAS,CAAC,eAAe,EAAE,eAAe,EAAE,CAAC;IAC7C,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IACpC,SAAS,CAAC,kCAAkC,EAAE,eAAe,EAAE,CAAC;IAChE,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;OAcG;gBACS,MAAM,EAAE;QAClB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,kBAAkB,EAAE,MAAM,GAAG,KAAK,CAAC;QACnC,cAAc,EAAE,OAAO,CAAC;QACxB,sBAAsB,EAAE,6BAA6B,CAAC;QACtD,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;QACnC,yBAAyB,EAAE,eAAe,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;QACzE,mBAAmB,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;KACnD;IAgBD,SAAS,CAAC,aAAa,CACrB,OAAO,EAAE,eAAe,EAAE,EAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,eAAe,EAAE;IAWd,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAoC/B,SAAS,CAAC,iBAAiB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/release/changelog-renderer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,10 +105,7 @@ class DefaultChangelogRenderer {
|
|
|
105
105
|
else {
|
|
106
106
|
for (const change of this.relevantChanges) {
|
|
107
107
|
if (change.isBreaking) {
|
|
108
|
-
|
|
109
|
-
this.breakingChanges.push(breakingChangeExplanation
|
|
110
|
-
? `- ${change.scope ? `**${change.scope.trim()}:** ` : ''}${breakingChangeExplanation}`
|
|
111
|
-
: this.formatChange(change));
|
|
108
|
+
this.breakingChanges.push(this.formatBreakingChange(change));
|
|
112
109
|
}
|
|
113
110
|
}
|
|
114
111
|
}
|
|
@@ -170,10 +167,7 @@ class DefaultChangelogRenderer {
|
|
|
170
167
|
const line = this.formatChange(change);
|
|
171
168
|
markdownLines.push(line);
|
|
172
169
|
if (change.isBreaking && !this.isVersionPlans) {
|
|
173
|
-
|
|
174
|
-
this.breakingChanges.push(breakingChangeExplanation
|
|
175
|
-
? `- ${change.scope ? `**${change.scope.trim()}:** ` : ''}${breakingChangeExplanation}`
|
|
176
|
-
: line);
|
|
170
|
+
this.breakingChanges.push(this.formatBreakingChange(change));
|
|
177
171
|
}
|
|
178
172
|
}
|
|
179
173
|
}
|
|
@@ -184,10 +178,7 @@ class DefaultChangelogRenderer {
|
|
|
184
178
|
const line = this.formatChange(change);
|
|
185
179
|
markdownLines.push(line);
|
|
186
180
|
if (change.isBreaking && !this.isVersionPlans) {
|
|
187
|
-
|
|
188
|
-
this.breakingChanges.push(breakingChangeExplanation
|
|
189
|
-
? `- ${change.scope ? `**${change.scope.trim()}:** ` : ''}${breakingChangeExplanation}`
|
|
190
|
-
: line);
|
|
181
|
+
this.breakingChanges.push(this.formatBreakingChange(change));
|
|
191
182
|
}
|
|
192
183
|
}
|
|
193
184
|
}
|
|
@@ -285,6 +276,43 @@ class DefaultChangelogRenderer {
|
|
|
285
276
|
}
|
|
286
277
|
return changeLine;
|
|
287
278
|
}
|
|
279
|
+
formatBreakingChange(change) {
|
|
280
|
+
const explanation = this.extractBreakingChangeExplanation(change.body);
|
|
281
|
+
if (!explanation) {
|
|
282
|
+
// No explanation found, use the regular formatChange which includes references
|
|
283
|
+
return this.formatChange(change);
|
|
284
|
+
}
|
|
285
|
+
// Build the breaking change line with scope, explanation, and references
|
|
286
|
+
let breakingLine = '- ';
|
|
287
|
+
if (change.scope) {
|
|
288
|
+
breakingLine += `**${change.scope.trim()}:** `;
|
|
289
|
+
}
|
|
290
|
+
// Handle multi-line explanations
|
|
291
|
+
let explanationText = explanation;
|
|
292
|
+
let extraLines = [];
|
|
293
|
+
if (explanation.includes('\n')) {
|
|
294
|
+
[explanationText, ...extraLines] = explanation.split('\n');
|
|
295
|
+
}
|
|
296
|
+
breakingLine += explanationText;
|
|
297
|
+
// Add PR/commit references
|
|
298
|
+
if (this.remoteReleaseClient.getRemoteRepoData() &&
|
|
299
|
+
this.changelogRenderOptions.commitReferences &&
|
|
300
|
+
change.githubReferences) {
|
|
301
|
+
breakingLine += this.remoteReleaseClient.formatReferences(change.githubReferences);
|
|
302
|
+
}
|
|
303
|
+
// Add extra lines with indentation (matching formatChange behavior)
|
|
304
|
+
if (extraLines.length > 0) {
|
|
305
|
+
const indentation = ' ';
|
|
306
|
+
const extraLinesStr = extraLines
|
|
307
|
+
.filter((l) => l.trim().length > 0)
|
|
308
|
+
.map((l) => `${indentation}${l}`)
|
|
309
|
+
.join('\n');
|
|
310
|
+
if (extraLinesStr) {
|
|
311
|
+
breakingLine += '\n\n' + extraLinesStr;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return breakingLine;
|
|
315
|
+
}
|
|
288
316
|
groupChangesByType() {
|
|
289
317
|
const typeGroups = {};
|
|
290
318
|
for (const change of this.relevantChanges) {
|
|
@@ -312,9 +340,12 @@ class DefaultChangelogRenderer {
|
|
|
312
340
|
return null;
|
|
313
341
|
}
|
|
314
342
|
const startOfBreakingChange = startIndex + breakingChangeIdentifier.length;
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
343
|
+
// Extract all text after BREAKING CHANGE: until we hit git metadata
|
|
344
|
+
let endOfBreakingChange = message.length;
|
|
345
|
+
// Look for the git metadata delimiter (a line with just ")
|
|
346
|
+
const gitMetadataMarker = message.indexOf('\n"', startOfBreakingChange);
|
|
347
|
+
if (gitMetadataMarker !== -1) {
|
|
348
|
+
endOfBreakingChange = gitMetadataMarker;
|
|
318
349
|
}
|
|
319
350
|
return message.substring(startOfBreakingChange, endOfBreakingChange).trim();
|
|
320
351
|
}
|
package/schemas/nx-schema.json
CHANGED
|
@@ -367,6 +367,85 @@
|
|
|
367
367
|
}
|
|
368
368
|
},
|
|
369
369
|
"additionalProperties": false
|
|
370
|
+
},
|
|
371
|
+
"conformance": {
|
|
372
|
+
"type": "object",
|
|
373
|
+
"description": "Configuration for Nx Conformance",
|
|
374
|
+
"properties": {
|
|
375
|
+
"outputPath": {
|
|
376
|
+
"oneOf": [
|
|
377
|
+
{
|
|
378
|
+
"type": "string",
|
|
379
|
+
"description": "Path to write the conformance results to"
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"type": "boolean",
|
|
383
|
+
"enum": [false],
|
|
384
|
+
"description": "Disable writing the conformance results to a file"
|
|
385
|
+
}
|
|
386
|
+
],
|
|
387
|
+
"description": "Optional path to write the conformance results to, defaults to 'dist/conformance-result.json'. Set to false to disable writing the conformance results to a file."
|
|
388
|
+
},
|
|
389
|
+
"rules": {
|
|
390
|
+
"type": "array",
|
|
391
|
+
"description": "List of conformance rules to apply",
|
|
392
|
+
"items": {
|
|
393
|
+
"type": "object",
|
|
394
|
+
"properties": {
|
|
395
|
+
"rule": {
|
|
396
|
+
"type": "string",
|
|
397
|
+
"description": "Relative path to a local rule implementation, node_module path or nx-cloud rule ID for Nx Cloud Enterprise."
|
|
398
|
+
},
|
|
399
|
+
"options": {
|
|
400
|
+
"type": "object",
|
|
401
|
+
"description": "Rule specific configuration options.",
|
|
402
|
+
"additionalProperties": true
|
|
403
|
+
},
|
|
404
|
+
"projects": {
|
|
405
|
+
"type": "array",
|
|
406
|
+
"description": "The projects to apply this rule to. This property accepts an array of strings which can be project names, glob patterns, directories, tag references or anything else that is supported by the `--projects` filter. By default, the implied value is ['*'] (all projects). You can also use objects with 'matcher' and 'explanation' properties to document why specific projects are included or excluded.",
|
|
407
|
+
"items": {
|
|
408
|
+
"oneOf": [
|
|
409
|
+
{
|
|
410
|
+
"type": "string",
|
|
411
|
+
"description": "A project name, glob pattern, directory, tag reference, or any other valid project filter"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"type": "object",
|
|
415
|
+
"properties": {
|
|
416
|
+
"matcher": {
|
|
417
|
+
"type": "string",
|
|
418
|
+
"description": "A project name, glob pattern, directory, tag reference, or any other valid project filter"
|
|
419
|
+
},
|
|
420
|
+
"explanation": {
|
|
421
|
+
"type": "string",
|
|
422
|
+
"description": "An explanation to communicate to colleagues why this particular project or projects were included or excluded from the rule"
|
|
423
|
+
}
|
|
424
|
+
},
|
|
425
|
+
"required": ["matcher", "explanation"],
|
|
426
|
+
"additionalProperties": false
|
|
427
|
+
}
|
|
428
|
+
]
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
"explanation": {
|
|
432
|
+
"type": "string",
|
|
433
|
+
"description": "Optional explanation field for users to be able to communicate to their colleagues why a particular rule is enabled and important to the workspace in question."
|
|
434
|
+
},
|
|
435
|
+
"status": {
|
|
436
|
+
"type": "string",
|
|
437
|
+
"enum": ["enforced", "evaluated", "disabled"],
|
|
438
|
+
"description": "Override the default status of the rule, which is 'enforced'. If set to 'evaluated', the rule will be reported as normal, but not enforced (will exit with code 0). If set to 'disabled', the rule will not be evaluated at all.",
|
|
439
|
+
"default": "enforced"
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
"required": ["rule"],
|
|
443
|
+
"additionalProperties": false
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
"required": ["rules"],
|
|
448
|
+
"additionalProperties": false
|
|
370
449
|
}
|
|
371
450
|
},
|
|
372
451
|
"definitions": {
|
|
@@ -3,7 +3,7 @@ export interface ConfigureAiAgentsOptions {
|
|
|
3
3
|
agents?: string[];
|
|
4
4
|
interactive?: boolean;
|
|
5
5
|
verbose?: boolean;
|
|
6
|
-
check?: boolean;
|
|
6
|
+
check?: boolean | 'outdated' | 'all';
|
|
7
7
|
}
|
|
8
8
|
export declare const yargsConfigureAiAgentsCommand: CommandModule<{}, ConfigureAiAgentsOptions>;
|
|
9
9
|
//# sourceMappingURL=command-object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/configure-ai-agents/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/configure-ai-agents/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;CACtC;AAED,eAAO,MAAM,6BAA6B,EAAE,aAAa,CACvD,EAAE,EACF,wBAAwB,CA2DzB,CAAC"}
|
|
@@ -18,14 +18,28 @@ exports.yargsConfigureAiAgentsCommand = {
|
|
|
18
18
|
default: true,
|
|
19
19
|
})
|
|
20
20
|
.option('check', {
|
|
21
|
-
type: '
|
|
22
|
-
description: 'Check
|
|
23
|
-
|
|
21
|
+
type: 'string',
|
|
22
|
+
description: 'Check agent configurations. Use --check or --check=outdated to check only configured agents, or --check=all to include unconfigured/partial configurations. Does not make any changes.',
|
|
23
|
+
coerce: (value) => {
|
|
24
|
+
// --check (no value)
|
|
25
|
+
if (value === '')
|
|
26
|
+
return 'outdated';
|
|
27
|
+
// --check=true
|
|
28
|
+
if (value === 'true')
|
|
29
|
+
return 'outdated';
|
|
30
|
+
// --no-check or --check=false
|
|
31
|
+
if (value === 'false')
|
|
32
|
+
return false;
|
|
33
|
+
// --check=all or --check=outdated
|
|
34
|
+
return value;
|
|
35
|
+
},
|
|
36
|
+
choices: ['outdated', 'all'],
|
|
24
37
|
})
|
|
25
38
|
.example('$0 configure-ai-agents', 'Interactively select AI agents to update and configure')
|
|
26
39
|
.example('$0 configure-ai-agents --agents claude gemini', 'Prompts for updates and and configuration of Claude and Gemini AI agents')
|
|
27
40
|
.example('$0 configure-ai-agents --check', 'Checks if any configured agents are out of date and need to be updated')
|
|
28
|
-
.example('$0 configure-ai-agents --
|
|
41
|
+
.example('$0 configure-ai-agents --check=all', 'Checks if any agents are not configured, out of date or partially configured')
|
|
42
|
+
.example('$0 configure-ai-agents --agents claude gemini --no-interactive', 'Configures and updates Claude and Gemini AI agents without prompts'), // because of the coerce function
|
|
29
43
|
handler: async (args) => {
|
|
30
44
|
await (await Promise.resolve().then(() => require('./configure-ai-agents'))).configureAiAgentsHandler(args);
|
|
31
45
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/configure-ai-agents/configure-ai-agents.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAI5D,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,wBAAwB,EAC9B,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"configure-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/configure-ai-agents/configure-ai-agents.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAI5D,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,wBAAwB,EAC9B,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAyOf"}
|
|
@@ -64,38 +64,64 @@ async function configureAiAgentsHandlerImpl(options) {
|
|
|
64
64
|
});
|
|
65
65
|
process.exit(1);
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
title: 'No AI agents are configured',
|
|
71
|
-
bodyLines: [
|
|
72
|
-
'You can configure AI agents by running `nx configure-ai-agents`.',
|
|
73
|
-
],
|
|
74
|
-
});
|
|
75
|
-
process.exit(0);
|
|
76
|
-
}
|
|
67
|
+
// important for wording
|
|
68
|
+
const usingAllAgents = normalizedOptions.agents.length === utils_1.supportedAgents.length;
|
|
69
|
+
if (normalizedOptions.check) {
|
|
77
70
|
const outOfDateAgents = fullyConfiguredAgents.filter((a) => a?.outdated);
|
|
78
|
-
if
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
71
|
+
// only error if something is fully configured but outdated
|
|
72
|
+
if (normalizedOptions.check === 'outdated') {
|
|
73
|
+
if (fullyConfiguredAgents.length === 0) {
|
|
74
|
+
output_1.output.log({
|
|
75
|
+
title: 'No AI agents are configured',
|
|
76
|
+
bodyLines: [
|
|
77
|
+
'You can configure AI agents by running `nx configure-ai-agents`.',
|
|
78
|
+
],
|
|
79
|
+
});
|
|
80
|
+
process.exit(0);
|
|
81
|
+
}
|
|
82
|
+
if (outOfDateAgents.length === 0) {
|
|
83
|
+
output_1.output.success({
|
|
84
|
+
title: 'All configured AI agents are up to date',
|
|
85
|
+
bodyLines: fullyConfiguredAgents.map((a) => `- ${a.displayName}`),
|
|
86
|
+
});
|
|
87
|
+
process.exit(0);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
output_1.output.log({
|
|
91
|
+
title: 'The following AI agents are out of date:',
|
|
92
|
+
bodyLines: [
|
|
93
|
+
...outOfDateAgents.map((a) => {
|
|
94
|
+
const rulesPath = a.rulesPath;
|
|
95
|
+
const displayPath = rulesPath.startsWith(workspace_root_1.workspaceRoot)
|
|
96
|
+
? (0, path_1.relative)(workspace_root_1.workspaceRoot, rulesPath)
|
|
97
|
+
: rulesPath;
|
|
98
|
+
return `- ${a.displayName} (${displayPath})`;
|
|
99
|
+
}),
|
|
100
|
+
'',
|
|
101
|
+
'You can update them by running `nx configure-ai-agents`.',
|
|
102
|
+
],
|
|
103
|
+
});
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
// error on any partial, outdated or non-configured agent
|
|
84
107
|
}
|
|
85
|
-
else {
|
|
86
|
-
|
|
87
|
-
|
|
108
|
+
else if (normalizedOptions.check === 'all') {
|
|
109
|
+
if (partiallyConfiguredAgents.length === 0 &&
|
|
110
|
+
outOfDateAgents.length === 0 &&
|
|
111
|
+
nonConfiguredAgents.length === 0) {
|
|
112
|
+
output_1.output.success({
|
|
113
|
+
title: `All ${!usingAllAgents ? 'selected' : 'supported'} AI agents are fully configured and up to date`,
|
|
114
|
+
bodyLines: fullyConfiguredAgents.map((a) => `- ${a.displayName}`),
|
|
115
|
+
});
|
|
116
|
+
process.exit(0);
|
|
117
|
+
}
|
|
118
|
+
output_1.output.error({
|
|
119
|
+
title: 'The following agents are not fully configured or up to date:',
|
|
88
120
|
bodyLines: [
|
|
89
|
-
...
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
: rulesPath;
|
|
94
|
-
return `- ${a.displayName} (${displayPath})`;
|
|
95
|
-
}),
|
|
96
|
-
'',
|
|
97
|
-
'You can update them by running `nx configure-ai-agents`.',
|
|
98
|
-
],
|
|
121
|
+
...partiallyConfiguredAgents,
|
|
122
|
+
...outOfDateAgents,
|
|
123
|
+
...nonConfiguredAgents,
|
|
124
|
+
].map((a) => getAgentChoiceForPrompt(a).message),
|
|
99
125
|
});
|
|
100
126
|
process.exit(1);
|
|
101
127
|
}
|
|
@@ -123,7 +149,6 @@ async function configureAiAgentsHandlerImpl(options) {
|
|
|
123
149
|
currentIndex++;
|
|
124
150
|
});
|
|
125
151
|
if (allAgentChoices.length === 0) {
|
|
126
|
-
const usingAllAgents = normalizedOptions.agents.length === utils_1.supportedAgents.length;
|
|
127
152
|
output_1.output.success({
|
|
128
153
|
title: `No new agents to configure. All ${!usingAllAgents ? 'selected' : 'supported'} AI agents are already configured:`,
|
|
129
154
|
bodyLines: fullyConfiguredAgents.map((agent) => `- ${agent.displayName}`),
|
|
@@ -228,9 +253,11 @@ function getAgentChoiceForPrompt(agent) {
|
|
|
228
253
|
}
|
|
229
254
|
function normalizeOptions(options) {
|
|
230
255
|
const agents = (options.agents ?? utils_1.supportedAgents).filter((a) => utils_1.supportedAgents.includes(a));
|
|
256
|
+
// it used to be just --check which was implicitly 'outdated'
|
|
257
|
+
const check = (options.check === true ? 'outdated' : options.check) ?? false;
|
|
231
258
|
return {
|
|
232
259
|
...options,
|
|
233
260
|
agents,
|
|
234
|
-
check
|
|
261
|
+
check,
|
|
235
262
|
};
|
|
236
263
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-agent-prompts.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/init/ai-agent-prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAoC,MAAM,gBAAgB,CAAC;AAEzE,wBAAsB,iBAAiB,CACrC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAClB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,KAAK,EAAE,CAAC,CASlB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.determineAiAgents = determineAiAgents;
|
|
4
|
+
const enquirer_1 = require("enquirer");
|
|
5
|
+
const is_ci_1 = require("../../utils/is-ci");
|
|
6
|
+
const utils_1 = require("../../ai/utils");
|
|
7
|
+
async function determineAiAgents(aiAgents, interactive) {
|
|
8
|
+
if (interactive === false || (0, is_ci_1.isCI)()) {
|
|
9
|
+
return aiAgents ?? [];
|
|
10
|
+
}
|
|
11
|
+
if (aiAgents) {
|
|
12
|
+
return aiAgents;
|
|
13
|
+
}
|
|
14
|
+
return await aiAgentsPrompt();
|
|
15
|
+
}
|
|
16
|
+
async function aiAgentsPrompt() {
|
|
17
|
+
return (await (0, enquirer_1.prompt)([
|
|
18
|
+
{
|
|
19
|
+
name: 'agents',
|
|
20
|
+
message: 'Which AI agents would you like to set up? (space to select, enter to confirm)',
|
|
21
|
+
type: 'multiselect',
|
|
22
|
+
choices: utils_1.supportedAgents.map((a) => ({
|
|
23
|
+
name: a,
|
|
24
|
+
message: utils_1.agentDisplayMap[a],
|
|
25
|
+
})),
|
|
26
|
+
},
|
|
27
|
+
])).agents;
|
|
28
|
+
}
|
|
@@ -51,6 +51,12 @@ async function withInitOptions(yargs) {
|
|
|
51
51
|
describe: 'Force the migration to continue and ignore custom webpack setup or uncommitted changes. Only for CRA projects.',
|
|
52
52
|
type: 'boolean',
|
|
53
53
|
default: false,
|
|
54
|
+
})
|
|
55
|
+
.option('aiAgents', {
|
|
56
|
+
type: 'array',
|
|
57
|
+
string: true,
|
|
58
|
+
description: 'List of AI agents to set up.',
|
|
59
|
+
choices: ['claude', 'codex', 'copilot', 'cursor', 'gemini'],
|
|
54
60
|
});
|
|
55
61
|
}
|
|
56
62
|
else {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NxJsonConfiguration } from '../../config/nx-json';
|
|
2
|
+
import { Agent } from '../../ai/utils';
|
|
2
3
|
export interface InitArgs {
|
|
3
4
|
interactive: boolean;
|
|
4
5
|
nxCloud?: boolean;
|
|
@@ -6,6 +7,7 @@ export interface InitArgs {
|
|
|
6
7
|
integrated?: boolean;
|
|
7
8
|
verbose?: boolean;
|
|
8
9
|
force?: boolean;
|
|
10
|
+
aiAgents?: Agent[];
|
|
9
11
|
}
|
|
10
12
|
export declare function initHandler(options: InitArgs): Promise<void>;
|
|
11
13
|
export declare function detectPlugins(nxJson: NxJsonConfiguration, interactive: boolean, includeAngularCli?: boolean): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-v2.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/init/init-v2.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAc,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"init-v2.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/init/init-v2.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAc,MAAM,sBAAsB,CAAC;AAavE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAgBvC,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;CACpB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAyKlE;AA2BD,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,WAAW,EAAE,OAAO,EACpB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC,CAgID"}
|
|
@@ -14,6 +14,9 @@ const versions_1 = require("../../utils/versions");
|
|
|
14
14
|
const workspace_context_1 = require("../../utils/workspace-context");
|
|
15
15
|
const connect_to_nx_cloud_1 = require("../nx-cloud/connect/connect-to-nx-cloud");
|
|
16
16
|
const configure_plugins_1 = require("./configure-plugins");
|
|
17
|
+
const ai_agent_prompts_1 = require("./ai-agent-prompts");
|
|
18
|
+
const set_up_ai_agents_1 = require("../../ai/set-up-ai-agents/set-up-ai-agents");
|
|
19
|
+
const tree_1 = require("../../generators/tree");
|
|
17
20
|
const add_nx_to_monorepo_1 = require("./implementation/add-nx-to-monorepo");
|
|
18
21
|
const add_nx_to_npm_repo_1 = require("./implementation/add-nx-to-npm-repo");
|
|
19
22
|
const add_nx_to_turborepo_1 = require("./implementation/add-nx-to-turborepo");
|
|
@@ -120,6 +123,23 @@ async function initHandler(options) {
|
|
|
120
123
|
(0, configure_plugins_1.installPluginPackages)(repoRoot, pmc, plugins);
|
|
121
124
|
await (0, configure_plugins_1.configurePlugins)(plugins, updatePackageScripts, pmc, repoRoot, options.verbose);
|
|
122
125
|
}
|
|
126
|
+
const selectedAgents = await (0, ai_agent_prompts_1.determineAiAgents)(options.aiAgents, options.interactive && guided);
|
|
127
|
+
if (selectedAgents && selectedAgents.length > 0) {
|
|
128
|
+
const tree = new tree_1.FsTree(repoRoot, false);
|
|
129
|
+
const aiAgentsCallback = await (0, set_up_ai_agents_1.setupAiAgentsGenerator)(tree, {
|
|
130
|
+
directory: '.',
|
|
131
|
+
writeNxCloudRules: options.nxCloud !== false,
|
|
132
|
+
packageVersion: 'latest',
|
|
133
|
+
agents: [...selectedAgents],
|
|
134
|
+
});
|
|
135
|
+
const changes = tree.listChanges();
|
|
136
|
+
(0, tree_1.flushChanges)(repoRoot, changes);
|
|
137
|
+
if (aiAgentsCallback) {
|
|
138
|
+
const results = await aiAgentsCallback();
|
|
139
|
+
results.messages.forEach((m) => output_1.output.log(m));
|
|
140
|
+
results.errors.forEach((e) => output_1.output.error(e));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
123
143
|
let useNxCloud = options.nxCloud;
|
|
124
144
|
if (useNxCloud === undefined) {
|
|
125
145
|
output_1.output.log({ title: '🛠️ Setting up Self-Healing CI and Remote Caching' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/login/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/login/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,eAAO,MAAM,iBAAiB,EAAE,aAkB/B,CAAC"}
|
|
@@ -4,9 +4,9 @@ exports.yargsLoginCommand = void 0;
|
|
|
4
4
|
const shared_options_1 = require("../../yargs-utils/shared-options");
|
|
5
5
|
exports.yargsLoginCommand = {
|
|
6
6
|
command: 'login [nxCloudUrl]',
|
|
7
|
-
describe: 'Login to Nx Cloud. This command is an alias for
|
|
7
|
+
describe: 'Login to Nx Cloud. This command is an alias for `nx-cloud login`.',
|
|
8
8
|
builder: (yargs) => (0, shared_options_1.withVerbose)(yargs.positional('nxCloudUrl', {
|
|
9
|
-
describe: 'The Nx Cloud URL of the instance you are trying to connect to. If no positional argument is provided, this command will connect to
|
|
9
|
+
describe: 'The Nx Cloud URL of the instance you are trying to connect to. If no positional argument is provided, this command will connect to your configured Nx Cloud instance by default.',
|
|
10
10
|
type: 'string',
|
|
11
11
|
required: false,
|
|
12
12
|
}))
|
|
@@ -4,7 +4,7 @@ exports.yargsLogoutCommand = void 0;
|
|
|
4
4
|
const shared_options_1 = require("../../yargs-utils/shared-options");
|
|
5
5
|
exports.yargsLogoutCommand = {
|
|
6
6
|
command: 'logout',
|
|
7
|
-
describe: 'Logout from Nx Cloud. This command is an alias for
|
|
7
|
+
describe: 'Logout from Nx Cloud. This command is an alias for `nx-cloud logout`.',
|
|
8
8
|
builder: (yargs) => (0, shared_options_1.withVerbose)(yargs)
|
|
9
9
|
.help(false)
|
|
10
10
|
.showHelpOnFail(false)
|
|
@@ -95,7 +95,7 @@ exports.commandsObject = yargs
|
|
|
95
95
|
.command(resolveConformanceCommandObject())
|
|
96
96
|
.command(resolveConformanceCheckCommandObject())
|
|
97
97
|
.scriptName('nx')
|
|
98
|
-
.help()
|
|
98
|
+
.help(false)
|
|
99
99
|
// NOTE: we handle --version in nx.ts, this just tells yargs that the option exists
|
|
100
100
|
// so that it shows up in help. The default yargs implementation of --version is not
|
|
101
101
|
// hit, as the implementation in nx.ts is hit first and calls process.exit(0).
|