nx 22.5.0-beta.3 → 22.5.0-beta.4
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 +11 -11
- package/src/ai/constants.d.ts +1 -0
- package/src/ai/constants.d.ts.map +1 -1
- package/src/ai/constants.js +4 -0
- package/src/ai/set-up-ai-agents/set-up-ai-agents.d.ts.map +1 -1
- package/src/ai/set-up-ai-agents/set-up-ai-agents.js +22 -0
- 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 +77 -43
- package/src/command-line/run/run-one.d.ts +1 -1
- package/src/command-line/run/run-one.d.ts.map +1 -1
- package/src/command-line/run/run-one.js +12 -9
- package/src/core/graph/main.js +1 -1
- package/src/daemon/server/server.d.ts.map +1 -1
- package/src/daemon/server/server.js +3 -2
- package/src/daemon/server/shutdown-utils.d.ts.map +1 -1
- package/src/daemon/server/shutdown-utils.js +1 -1
- package/src/executors/run-commands/running-tasks.d.ts.map +1 -1
- package/src/executors/run-commands/running-tasks.js +4 -4
- package/src/hasher/hash-task.d.ts +3 -3
- package/src/hasher/hash-task.d.ts.map +1 -1
- package/src/hasher/hash-task.js +24 -5
- package/src/hasher/native-task-hasher-impl.d.ts +1 -1
- package/src/hasher/native-task-hasher-impl.d.ts.map +1 -1
- package/src/hasher/native-task-hasher-impl.js +2 -2
- package/src/hasher/task-hasher.d.ts +4 -1
- package/src/hasher/task-hasher.d.ts.map +1 -1
- package/src/hasher/task-hasher.js +1 -0
- package/src/native/index.d.ts +18 -2
- package/src/native/nx.wasi.cjs +29 -28
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/tasks-runner/cache.d.ts +2 -2
- package/src/tasks-runner/cache.d.ts.map +1 -1
- package/src/tasks-runner/cache.js +14 -11
- package/src/tasks-runner/forked-process-task-runner.d.ts +3 -3
- package/src/tasks-runner/forked-process-task-runner.d.ts.map +1 -1
- package/src/tasks-runner/forked-process-task-runner.js +12 -11
- package/src/tasks-runner/process-metrics-service.d.ts +2 -2
- package/src/tasks-runner/process-metrics-service.d.ts.map +1 -1
- package/src/tasks-runner/process-metrics-service.js +2 -2
- package/src/tasks-runner/run-command.d.ts.map +1 -1
- package/src/tasks-runner/task-io-service.d.ts +97 -0
- package/src/tasks-runner/task-io-service.d.ts.map +1 -0
- package/src/tasks-runner/task-io-service.js +146 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nx",
|
|
3
|
-
"version": "22.5.0-beta.
|
|
3
|
+
"version": "22.5.0-beta.4",
|
|
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": {
|
|
@@ -84,16 +84,16 @@
|
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
86
|
"optionalDependencies": {
|
|
87
|
-
"@nx/nx-darwin-arm64": "22.5.0-beta.
|
|
88
|
-
"@nx/nx-darwin-x64": "22.5.0-beta.
|
|
89
|
-
"@nx/nx-freebsd-x64": "22.5.0-beta.
|
|
90
|
-
"@nx/nx-linux-arm-gnueabihf": "22.5.0-beta.
|
|
91
|
-
"@nx/nx-linux-arm64-gnu": "22.5.0-beta.
|
|
92
|
-
"@nx/nx-linux-arm64-musl": "22.5.0-beta.
|
|
93
|
-
"@nx/nx-linux-x64-gnu": "22.5.0-beta.
|
|
94
|
-
"@nx/nx-linux-x64-musl": "22.5.0-beta.
|
|
95
|
-
"@nx/nx-win32-arm64-msvc": "22.5.0-beta.
|
|
96
|
-
"@nx/nx-win32-x64-msvc": "22.5.0-beta.
|
|
87
|
+
"@nx/nx-darwin-arm64": "22.5.0-beta.4",
|
|
88
|
+
"@nx/nx-darwin-x64": "22.5.0-beta.4",
|
|
89
|
+
"@nx/nx-freebsd-x64": "22.5.0-beta.4",
|
|
90
|
+
"@nx/nx-linux-arm-gnueabihf": "22.5.0-beta.4",
|
|
91
|
+
"@nx/nx-linux-arm64-gnu": "22.5.0-beta.4",
|
|
92
|
+
"@nx/nx-linux-arm64-musl": "22.5.0-beta.4",
|
|
93
|
+
"@nx/nx-linux-x64-gnu": "22.5.0-beta.4",
|
|
94
|
+
"@nx/nx-linux-x64-musl": "22.5.0-beta.4",
|
|
95
|
+
"@nx/nx-win32-arm64-msvc": "22.5.0-beta.4",
|
|
96
|
+
"@nx/nx-win32-x64-msvc": "22.5.0-beta.4"
|
|
97
97
|
},
|
|
98
98
|
"nx-migrations": {
|
|
99
99
|
"migrations": "./migrations.json",
|
package/src/ai/constants.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare function geminiMdPath(root: string): string;
|
|
|
3
3
|
export declare function parseGeminiSettings(root: string): any | undefined;
|
|
4
4
|
export declare function geminiSettingsPath(root: string): string;
|
|
5
5
|
export declare function claudeMdPath(root: string): string;
|
|
6
|
+
export declare function claudeMcpJsonPath(root: string): string;
|
|
6
7
|
export declare function opencodeMcpPath(root: string): string;
|
|
7
8
|
export declare const codexConfigTomlPath: string;
|
|
8
9
|
export declare const nxRulesMarkerCommentStart = "<!-- nx configuration start-->";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/ai/constants.ts"],"names":[],"mappings":"AAMA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAOjE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,eAAO,MAAM,mBAAmB,QAA2C,CAAC;AAE5E,eAAO,MAAM,yBAAyB,mCAAmC,CAAC;AAC1E,eAAO,MAAM,+BAA+B,8EAA8E,CAAC;AAC3H,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,UAAU,QAGtB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,mBAAmB,OAAO,WAG9D,CAAC;AAEF,eAAO,MAAM,eAAe,6BAA2B,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ5D"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../packages/nx/src/ai/constants.ts"],"names":[],"mappings":"AAMA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAOjE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,eAAO,MAAM,mBAAmB,QAA2C,CAAC;AAE5E,eAAO,MAAM,yBAAyB,mCAAmC,CAAC;AAC1E,eAAO,MAAM,+BAA+B,8EAA8E,CAAC;AAC3H,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,UAAU,QAGtB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,mBAAmB,OAAO,WAG9D,CAAC;AAEF,eAAO,MAAM,eAAe,6BAA2B,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ5D"}
|
package/src/ai/constants.js
CHANGED
|
@@ -6,6 +6,7 @@ exports.geminiMdPath = geminiMdPath;
|
|
|
6
6
|
exports.parseGeminiSettings = parseGeminiSettings;
|
|
7
7
|
exports.geminiSettingsPath = geminiSettingsPath;
|
|
8
8
|
exports.claudeMdPath = claudeMdPath;
|
|
9
|
+
exports.claudeMcpJsonPath = claudeMcpJsonPath;
|
|
9
10
|
exports.opencodeMcpPath = opencodeMcpPath;
|
|
10
11
|
exports.getNxMcpTomlConfig = getNxMcpTomlConfig;
|
|
11
12
|
const os_1 = require("os");
|
|
@@ -34,6 +35,9 @@ function geminiSettingsPath(root) {
|
|
|
34
35
|
function claudeMdPath(root) {
|
|
35
36
|
return (0, path_1.join)(root, 'CLAUDE.md');
|
|
36
37
|
}
|
|
38
|
+
function claudeMcpJsonPath(root) {
|
|
39
|
+
return (0, path_1.join)(root, '.mcp.json');
|
|
40
|
+
}
|
|
37
41
|
function opencodeMcpPath(root) {
|
|
38
42
|
return (0, path_1.join)(root, 'opencode.json');
|
|
39
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-up-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/ai/set-up-ai-agents/set-up-ai-agents.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"set-up-ai-agents.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/ai/set-up-ai-agents/set-up-ai-agents.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAS7C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAyB5B,OAAO,EACL,sCAAsC,EACtC,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC,CAAC;AAmCF,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,4BAA4B,EACrC,KAAK,UAAQ,GACZ,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAmC5D;AAaD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,CA4O7C;AAkFD,eAAe,sBAAsB,CAAC"}
|
|
@@ -108,6 +108,28 @@ async function setupAiAgentsGeneratorImpl(tree, options) {
|
|
|
108
108
|
'nx@nx-claude-plugins': true,
|
|
109
109
|
},
|
|
110
110
|
}));
|
|
111
|
+
// Clean up .mcp.json (nx-mcp now handled by plugin)
|
|
112
|
+
const mcpJsonPath = (0, constants_1.claudeMcpJsonPath)(options.directory);
|
|
113
|
+
if (tree.exists(mcpJsonPath)) {
|
|
114
|
+
try {
|
|
115
|
+
const mcpJsonContents = (0, json_1.readJson)(tree, mcpJsonPath);
|
|
116
|
+
if (mcpJsonContents?.mcpServers?.['nx-mcp']) {
|
|
117
|
+
const serverKeys = Object.keys(mcpJsonContents.mcpServers || {});
|
|
118
|
+
if (serverKeys.length === 1 && serverKeys[0] === 'nx-mcp') {
|
|
119
|
+
// nx-mcp is the only server, delete the file
|
|
120
|
+
tree.delete(mcpJsonPath);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
// Other servers exist, just remove nx-mcp entry
|
|
124
|
+
delete mcpJsonContents.mcpServers['nx-mcp'];
|
|
125
|
+
(0, json_1.writeJson)(tree, mcpJsonPath, mcpJsonContents);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// Ignore errors reading .mcp.json
|
|
131
|
+
}
|
|
132
|
+
}
|
|
111
133
|
}
|
|
112
134
|
if (hasAgent('opencode')) {
|
|
113
135
|
const opencodeMcpJsonPath = (0, constants_1.opencodeMcpPath)(options.directory);
|
|
@@ -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":"
|
|
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":"AAgBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAK5D,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,wBAAwB,EAC9B,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAmCf;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CA4Nf"}
|
|
@@ -7,10 +7,12 @@ const output_1 = require("../../utils/output");
|
|
|
7
7
|
const provenance_1 = require("../../utils/provenance");
|
|
8
8
|
const chalk = require("chalk");
|
|
9
9
|
const utils_1 = require("../../ai/utils");
|
|
10
|
+
const constants_1 = require("../../ai/constants");
|
|
10
11
|
const devkit_internals_1 = require("../../devkit-internals");
|
|
11
12
|
const workspace_root_1 = require("../../utils/workspace-root");
|
|
12
13
|
const ora = require("ora");
|
|
13
14
|
const path_1 = require("path");
|
|
15
|
+
const fs_1 = require("fs");
|
|
14
16
|
async function configureAiAgentsHandler(args, inner = false) {
|
|
15
17
|
// Use environment variable to force local execution
|
|
16
18
|
if (process.env.NX_USE_LOCAL === 'true' ||
|
|
@@ -169,18 +171,7 @@ async function configureAiAgentsHandlerImpl(options) {
|
|
|
169
171
|
required: true,
|
|
170
172
|
footer: function () {
|
|
171
173
|
const focused = this.focused;
|
|
172
|
-
|
|
173
|
-
return chalk.dim(focused.partialReason);
|
|
174
|
-
}
|
|
175
|
-
if (focused.agentConfiguration.outdated) {
|
|
176
|
-
return chalk.dim(` The rules file at ${focused.rulesDisplayPath} can be updated with the latest Nx recommendations`);
|
|
177
|
-
}
|
|
178
|
-
if (!focused.agentConfiguration.mcp &&
|
|
179
|
-
!focused.agentConfiguration.rules) {
|
|
180
|
-
return chalk.dim(` Configures agent rules at ${focused.rulesDisplayPath} and the Nx MCP server ${focused.mcpDisplayPath
|
|
181
|
-
? `at ${focused.mcpDisplayPath}`
|
|
182
|
-
: 'via Nx Console'}`);
|
|
183
|
-
}
|
|
174
|
+
return chalk.dim(` ${getAgentFooterDescription(focused.agentConfiguration)}`);
|
|
184
175
|
},
|
|
185
176
|
})).agents;
|
|
186
177
|
}
|
|
@@ -201,16 +192,18 @@ async function configureAiAgentsHandlerImpl(options) {
|
|
|
201
192
|
const configSpinner = ora(`Configuring agent(s)...`).start();
|
|
202
193
|
try {
|
|
203
194
|
await (0, utils_1.configureAgents)(selectedAgents, workspace_root_1.workspaceRoot, false);
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
195
|
+
// Combine all agent configurations for display
|
|
196
|
+
const allAgentConfigs = [
|
|
197
|
+
...nonConfiguredAgents,
|
|
198
|
+
...partiallyConfiguredAgents,
|
|
199
|
+
...fullyConfiguredAgents,
|
|
209
200
|
];
|
|
201
|
+
const configuredOrUpdatedAgents = allAgentConfigs.filter((a) => selectedAgents.includes(a.name) ||
|
|
202
|
+
fullyConfiguredAgents.some((f) => f.name === a.name));
|
|
210
203
|
configSpinner.stop();
|
|
211
|
-
output_1.output.
|
|
212
|
-
title: 'AI agents
|
|
213
|
-
bodyLines: configuredOrUpdatedAgents.map((agent) =>
|
|
204
|
+
output_1.output.success({
|
|
205
|
+
title: 'AI agents configured successfully',
|
|
206
|
+
bodyLines: configuredOrUpdatedAgents.map((agent) => `${agent.displayName}: ${getAgentConfiguredDescription(agent)}`),
|
|
214
207
|
});
|
|
215
208
|
return;
|
|
216
209
|
}
|
|
@@ -223,34 +216,75 @@ async function configureAiAgentsHandlerImpl(options) {
|
|
|
223
216
|
process.exit(1);
|
|
224
217
|
}
|
|
225
218
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
219
|
+
/**
|
|
220
|
+
* Get the verbose footer description for an agent.
|
|
221
|
+
* Describes the end state per agent type.
|
|
222
|
+
*/
|
|
223
|
+
function getAgentFooterDescription(agent) {
|
|
224
|
+
// Extract filename from rulesPath
|
|
225
|
+
const rulesFile = agent.rulesPath.split('/').pop() || 'AGENTS.md';
|
|
226
|
+
switch (agent.name) {
|
|
227
|
+
case 'claude': {
|
|
228
|
+
let description = `Installs Nx plugin (MCP + skills + agents). Updates ${rulesFile}.`;
|
|
229
|
+
// Check if .mcp.json exists with nx-mcp - if so, mention cleanup
|
|
230
|
+
const mcpJsonPath = (0, constants_1.claudeMcpJsonPath)(workspace_root_1.workspaceRoot);
|
|
231
|
+
if ((0, fs_1.existsSync)(mcpJsonPath)) {
|
|
232
|
+
try {
|
|
233
|
+
const mcpJsonContents = JSON.parse((0, fs_1.readFileSync)(mcpJsonPath, 'utf-8'));
|
|
234
|
+
if (mcpJsonContents?.mcpServers?.['nx-mcp']) {
|
|
235
|
+
description +=
|
|
236
|
+
' Removes nx-mcp from .mcp.json (now handled by plugin).';
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
// Ignore errors reading .mcp.json
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return description;
|
|
244
|
+
}
|
|
245
|
+
case 'cursor':
|
|
246
|
+
case 'copilot':
|
|
247
|
+
return `Installs Nx Console (MCP). Adds skills and agents. Updates ${rulesFile}.`;
|
|
248
|
+
case 'gemini':
|
|
249
|
+
case 'opencode':
|
|
250
|
+
return `Configures MCP server. Adds skills and agents. Updates ${rulesFile}.`;
|
|
251
|
+
case 'codex':
|
|
252
|
+
return `Configures MCP server. Updates ${rulesFile}.`;
|
|
253
|
+
default:
|
|
254
|
+
return '';
|
|
231
255
|
}
|
|
232
|
-
|
|
233
|
-
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Get a compact description of what was configured for an agent.
|
|
259
|
+
* Used in the post-configuration output.
|
|
260
|
+
*/
|
|
261
|
+
function getAgentConfiguredDescription(agent) {
|
|
262
|
+
// Extract filename from rulesPath
|
|
263
|
+
const rulesFile = agent.rulesPath.split('/').pop() || 'AGENTS.md';
|
|
264
|
+
switch (agent.name) {
|
|
265
|
+
case 'claude':
|
|
266
|
+
return `Nx plugin (MCP + skills + agents) + ${rulesFile}`;
|
|
267
|
+
case 'cursor':
|
|
268
|
+
case 'copilot':
|
|
269
|
+
return `Nx Console (MCP) + skills + ${rulesFile}`;
|
|
270
|
+
case 'gemini':
|
|
271
|
+
case 'opencode':
|
|
272
|
+
return `MCP + skills + ${rulesFile}`;
|
|
273
|
+
case 'codex':
|
|
274
|
+
return `MCP + ${rulesFile}`;
|
|
275
|
+
default:
|
|
276
|
+
return '';
|
|
234
277
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
const
|
|
239
|
-
? (0, path_1.relative)(workspace_root_1.workspaceRoot, agent.mcpPath)
|
|
240
|
-
: agent.mcpPath;
|
|
241
|
-
const partialReason = partiallyConfigured
|
|
242
|
-
? agent.rules
|
|
243
|
-
? ` Partially configured: MCP missing ${agent.mcpPath ? `at ${mcpDisplayPath}` : 'via Nx Console'}`
|
|
244
|
-
: ` Partially configured: rules file missing at ${rulesDisplayPath}`
|
|
245
|
-
: undefined;
|
|
278
|
+
}
|
|
279
|
+
function getAgentChoiceForPrompt(agent) {
|
|
280
|
+
const partiallyConfigured = agent.mcp !== agent.rules;
|
|
281
|
+
const needsUpdate = partiallyConfigured || agent.outdated;
|
|
246
282
|
return {
|
|
247
283
|
name: agent.name,
|
|
248
|
-
message
|
|
249
|
-
|
|
250
|
-
|
|
284
|
+
message: needsUpdate
|
|
285
|
+
? `${agent.displayName} (update available)`
|
|
286
|
+
: agent.displayName,
|
|
251
287
|
agentConfiguration: agent,
|
|
252
|
-
rulesDisplayPath,
|
|
253
|
-
mcpDisplayPath,
|
|
254
288
|
};
|
|
255
289
|
}
|
|
256
290
|
function normalizeOptions(options) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ProjectGraph } from '../../config/project-graph';
|
|
2
1
|
import { NxJsonConfiguration } from '../../config/nx-json';
|
|
2
|
+
import { ProjectGraph } from '../../config/project-graph';
|
|
3
3
|
import { TargetDependencyConfig } from '../../config/workspace-json-project-json';
|
|
4
4
|
export declare function runOne(cwd: string, args: {
|
|
5
5
|
[k: string]: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-one.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/run/run-one.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run-one.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/run/run-one.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,YAAY,EAEb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAiBlF,wBAAsB,MAAM,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1B,uBAAuB,GAAE,MAAM,CAC7B,MAAM,EACN,CAAC,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAC/B,EACN,YAAY,GAGP;IACH,uBAAuB,EAAE,OAAO,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;CAC1B,GACA,OAAO,CAAC,IAAI,CAAC,CAiEf;AAwDD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,mBAAmB,GAC1B;IAAE,OAAO,MAAC;IAAC,MAAM,MAAC;IAAC,aAAa,MAAC;IAAC,UAAU,MAAA;CAAE,CA+DhD"}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runOne = runOne;
|
|
4
4
|
exports.parseRunOneOptions = parseRunOneOptions;
|
|
5
|
+
const calculate_default_project_name_1 = require("../../config/calculate-default-project-name");
|
|
6
|
+
const configuration_1 = require("../../config/configuration");
|
|
7
|
+
const project_graph_1 = require("../../project-graph/project-graph");
|
|
5
8
|
const run_command_1 = require("../../tasks-runner/run-command");
|
|
6
9
|
const command_line_utils_1 = require("../../utils/command-line-utils");
|
|
7
|
-
const
|
|
8
|
-
const project_graph_1 = require("../../project-graph/project-graph");
|
|
9
|
-
const workspace_root_1 = require("../../utils/workspace-root");
|
|
10
|
-
const split_target_1 = require("../../utils/split-target");
|
|
10
|
+
const find_matching_projects_1 = require("../../utils/find-matching-projects");
|
|
11
11
|
const output_1 = require("../../utils/output");
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const split_target_1 = require("../../utils/split-target");
|
|
13
|
+
const workspace_root_1 = require("../../utils/workspace-root");
|
|
14
14
|
const graph_1 = require("../graph/graph");
|
|
15
|
-
const
|
|
15
|
+
const connect_to_nx_cloud_1 = require("../nx-cloud/connect/connect-to-nx-cloud");
|
|
16
16
|
async function runOne(cwd, args, extraTargetDependencies = {}, extraOptions = {
|
|
17
17
|
excludeTaskDependencies: args.excludeTaskDependencies,
|
|
18
18
|
loadDotEnvFiles: process.env.NX_LOAD_DOT_ENV_FILES !== 'false',
|
|
@@ -27,12 +27,15 @@ async function runOne(cwd, args, extraTargetDependencies = {}, extraOptions = {
|
|
|
27
27
|
configuration: opts.configuration,
|
|
28
28
|
targets: [opts.target],
|
|
29
29
|
}, 'run-one', { printWarnings: args.graph !== 'stdout' }, nxJson);
|
|
30
|
+
const { projects, projectName } = getProjects(projectGraph, opts.project);
|
|
30
31
|
if (nxArgs.help) {
|
|
31
|
-
await (await Promise.resolve().then(() => require('./run'))).printTargetRunHelp(
|
|
32
|
+
await (await Promise.resolve().then(() => require('./run'))).printTargetRunHelp({
|
|
33
|
+
...opts,
|
|
34
|
+
project: projectName,
|
|
35
|
+
}, workspace_root_1.workspaceRoot);
|
|
32
36
|
process.exit(0);
|
|
33
37
|
}
|
|
34
38
|
await (0, connect_to_nx_cloud_1.connectToNxCloudIfExplicitlyAsked)(nxArgs);
|
|
35
|
-
const { projects, projectName } = getProjects(projectGraph, opts.project);
|
|
36
39
|
if (nxArgs.graph) {
|
|
37
40
|
const projectNames = projects.map((t) => t.name);
|
|
38
41
|
const file = (0, command_line_utils_1.readGraphFileFromGraphArg)(nxArgs);
|