@provartesting/provardx-cli 1.5.0-beta → 1.5.0-beta.10
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/README.md +137 -13
- package/lib/commands/provar/auth/clear.d.ts +7 -0
- package/lib/commands/provar/auth/clear.js +36 -0
- package/lib/commands/provar/auth/clear.js.map +1 -0
- package/lib/commands/provar/auth/login.d.ts +10 -0
- package/lib/commands/provar/auth/login.js +90 -0
- package/lib/commands/provar/auth/login.js.map +1 -0
- package/lib/commands/provar/auth/rotate.d.ts +7 -0
- package/lib/commands/provar/auth/rotate.js +42 -0
- package/lib/commands/provar/auth/rotate.js.map +1 -0
- package/lib/commands/provar/auth/status.d.ts +7 -0
- package/lib/commands/provar/auth/status.js +107 -0
- package/lib/commands/provar/auth/status.js.map +1 -0
- package/lib/mcp/docs/PROVAR_TEST_STEP_REFERENCE.md +1430 -0
- package/lib/mcp/licensing/algasClient.js +14 -5
- package/lib/mcp/licensing/algasClient.js.map +1 -1
- package/lib/mcp/licensing/ideDetection.d.ts +0 -12
- package/lib/mcp/licensing/ideDetection.js +0 -72
- package/lib/mcp/licensing/ideDetection.js.map +1 -1
- package/lib/mcp/licensing/licenseCache.js +7 -1
- package/lib/mcp/licensing/licenseCache.js.map +1 -1
- package/lib/mcp/licensing/licenseValidator.d.ts +3 -3
- package/lib/mcp/licensing/licenseValidator.js +11 -4
- package/lib/mcp/licensing/licenseValidator.js.map +1 -1
- package/lib/mcp/prompts/index.d.ts +2 -0
- package/lib/mcp/prompts/index.js +19 -0
- package/lib/mcp/prompts/index.js.map +1 -0
- package/lib/mcp/prompts/loopPrompts.d.ts +6 -0
- package/lib/mcp/prompts/loopPrompts.js +435 -0
- package/lib/mcp/prompts/loopPrompts.js.map +1 -0
- package/lib/mcp/prompts/migrationPrompts.d.ts +4 -0
- package/lib/mcp/prompts/migrationPrompts.js +207 -0
- package/lib/mcp/prompts/migrationPrompts.js.map +1 -0
- package/lib/mcp/rules/provar_best_practices_rules.json +256 -544
- package/lib/mcp/security/pathPolicy.d.ts +5 -0
- package/lib/mcp/security/pathPolicy.js +30 -2
- package/lib/mcp/security/pathPolicy.js.map +1 -1
- package/lib/mcp/server.js +51 -4
- package/lib/mcp/server.js.map +1 -1
- package/lib/mcp/tools/antTools.d.ts +15 -0
- package/lib/mcp/tools/antTools.js +216 -50
- package/lib/mcp/tools/antTools.js.map +1 -1
- package/lib/mcp/tools/automationTools.d.ts +39 -5
- package/lib/mcp/tools/automationTools.js +341 -55
- package/lib/mcp/tools/automationTools.js.map +1 -1
- package/lib/mcp/tools/bestPracticesEngine.js +161 -23
- package/lib/mcp/tools/bestPracticesEngine.js.map +1 -1
- package/lib/mcp/tools/connectionTools.d.ts +4 -0
- package/lib/mcp/tools/connectionTools.js +168 -0
- package/lib/mcp/tools/connectionTools.js.map +1 -0
- package/lib/mcp/tools/nitroXTools.d.ts +22 -0
- package/lib/mcp/tools/nitroXTools.js +750 -0
- package/lib/mcp/tools/nitroXTools.js.map +1 -0
- package/lib/mcp/tools/pageObjectGenerate.js +103 -35
- package/lib/mcp/tools/pageObjectGenerate.js.map +1 -1
- package/lib/mcp/tools/propertiesTools.d.ts +2 -0
- package/lib/mcp/tools/propertiesTools.js +277 -39
- package/lib/mcp/tools/propertiesTools.js.map +1 -1
- package/lib/mcp/tools/qualityHubApiTools.d.ts +3 -0
- package/lib/mcp/tools/qualityHubApiTools.js +134 -0
- package/lib/mcp/tools/qualityHubApiTools.js.map +1 -0
- package/lib/mcp/tools/qualityHubTools.js +139 -20
- package/lib/mcp/tools/qualityHubTools.js.map +1 -1
- package/lib/mcp/tools/rcaTools.d.ts +3 -2
- package/lib/mcp/tools/rcaTools.js +145 -20
- package/lib/mcp/tools/rcaTools.js.map +1 -1
- package/lib/mcp/tools/sfSpawn.d.ts +1 -1
- package/lib/mcp/tools/sfSpawn.js +8 -2
- package/lib/mcp/tools/sfSpawn.js.map +1 -1
- package/lib/mcp/tools/testCaseGenerate.js +88 -59
- package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
- package/lib/mcp/tools/testCaseStepTools.d.ts +4 -0
- package/lib/mcp/tools/testCaseStepTools.js +221 -0
- package/lib/mcp/tools/testCaseStepTools.js.map +1 -0
- package/lib/mcp/tools/testCaseValidate.d.ts +11 -0
- package/lib/mcp/tools/testCaseValidate.js +146 -19
- package/lib/mcp/tools/testCaseValidate.js.map +1 -1
- package/lib/services/auth/credentials.d.ts +21 -0
- package/lib/services/auth/credentials.js +75 -0
- package/lib/services/auth/credentials.js.map +1 -0
- package/lib/services/auth/loginFlow.d.ts +68 -0
- package/lib/services/auth/loginFlow.js +216 -0
- package/lib/services/auth/loginFlow.js.map +1 -0
- package/lib/services/qualityHub/client.d.ts +161 -0
- package/lib/services/qualityHub/client.js +226 -0
- package/lib/services/qualityHub/client.js.map +1 -0
- package/messages/sf.provar.auth.clear.md +16 -0
- package/messages/sf.provar.auth.login.md +31 -0
- package/messages/sf.provar.auth.rotate.md +23 -0
- package/messages/sf.provar.auth.status.md +16 -0
- package/oclif.manifest.json +241 -28
- package/package.json +8 -5
|
@@ -11,7 +11,9 @@ import path from 'node:path';
|
|
|
11
11
|
import { z } from 'zod';
|
|
12
12
|
import { makeError, makeRequestId } from '../schemas/common.js';
|
|
13
13
|
import { log } from '../logging/logger.js';
|
|
14
|
-
import {
|
|
14
|
+
import { assertPathAllowed, PathPolicyError } from '../security/pathPolicy.js';
|
|
15
|
+
import { parseJUnitResults } from './antTools.js';
|
|
16
|
+
import { sfSpawnHelper, SfNotFoundError } from './sfSpawn.js';
|
|
15
17
|
// ── SF CLI discovery ──────────────────────────────────────────────────────────
|
|
16
18
|
/**
|
|
17
19
|
* Returns candidate sf CLI paths in common npm/nvm/volta install locations.
|
|
@@ -41,7 +43,9 @@ export function getSfCommonPaths() {
|
|
|
41
43
|
candidates.push(path.join(nvmBinDir, v, 'bin', 'sf'));
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
|
-
catch {
|
|
46
|
+
catch {
|
|
47
|
+
/* skip */
|
|
48
|
+
}
|
|
45
49
|
}
|
|
46
50
|
return candidates;
|
|
47
51
|
}
|
|
@@ -50,19 +54,69 @@ const MAX_BUFFER = 50 * 1024 * 1024; // 50 MB — prevents ENOBUFS on verbose Pr
|
|
|
50
54
|
// Proactively resolve the sf executable path once on first use and cache it.
|
|
51
55
|
// This ensures sf is always found even when ENOENT is masked by other errors (e.g. ENOBUFS).
|
|
52
56
|
let cachedSfPath; // undefined = not yet probed
|
|
53
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Exposed for testing only — pre-seeds the cached sf executable path, bypassing the probe spawn.
|
|
59
|
+
* Pass `undefined` to reset the cache so the next call triggers a fresh probe.
|
|
60
|
+
*/
|
|
54
61
|
export function setSfPathCacheForTesting(value) {
|
|
55
62
|
cachedSfPath = value;
|
|
56
63
|
}
|
|
64
|
+
// Platform override used in tests so Windows-specific shell logic can be exercised on any OS.
|
|
65
|
+
let sfPlatformOverride;
|
|
66
|
+
/** Exposed for testing only — overrides process.platform for needsWindowsShell decisions. */
|
|
67
|
+
export function setSfPlatformForTesting(platform) {
|
|
68
|
+
sfPlatformOverride = platform;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns true when spawning `executable` requires the Windows shell.
|
|
72
|
+
* On Windows, `.cmd` and `.bat` batch scripts cannot be executed directly by
|
|
73
|
+
* Node's spawnSync — they must be invoked through cmd.exe (i.e. shell: true).
|
|
74
|
+
* The bare name "sf" also needs this treatment on Windows because the file on
|
|
75
|
+
* disk is actually "sf.cmd" and Node won't auto-append the extension.
|
|
76
|
+
*
|
|
77
|
+
* The `platform` parameter defaults to `process.platform` and is exposed for
|
|
78
|
+
* unit testing so tests can verify both Windows and non-Windows behaviour
|
|
79
|
+
* without having to run on the corresponding OS.
|
|
80
|
+
*/
|
|
81
|
+
export function needsWindowsShell(executable, platform = process.platform) {
|
|
82
|
+
if (platform !== 'win32')
|
|
83
|
+
return false;
|
|
84
|
+
const lower = executable.toLowerCase();
|
|
85
|
+
return lower.endsWith('.cmd') || lower.endsWith('.bat') || !path.extname(lower);
|
|
86
|
+
}
|
|
57
87
|
function resolveSfExecutable() {
|
|
58
88
|
if (cachedSfPath !== undefined)
|
|
59
89
|
return cachedSfPath;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
90
|
+
const platform = sfPlatformOverride ?? process.platform;
|
|
91
|
+
// Two-phase probe avoids false-positives on Windows with shell:true.
|
|
92
|
+
// When shell:true is used, cmd.exe spawns successfully even when `sf` is
|
|
93
|
+
// missing — it exits non-zero with "not recognised" in stderr but sets no
|
|
94
|
+
// probe.error. Trying shell:false first catches both cases correctly.
|
|
95
|
+
//
|
|
96
|
+
// First attempt: shell:false (works on Linux/macOS; gives ENOENT on Windows if
|
|
97
|
+
// sf.cmd is on PATH but requires the shell).
|
|
98
|
+
const probe = sfSpawnHelper.spawnSync('sf', ['--version'], {
|
|
99
|
+
encoding: 'utf-8',
|
|
100
|
+
shell: false,
|
|
101
|
+
maxBuffer: 1024 * 1024,
|
|
102
|
+
});
|
|
103
|
+
if (!probe.error && probe.status === 0) {
|
|
63
104
|
cachedSfPath = 'sf';
|
|
64
105
|
return cachedSfPath;
|
|
65
106
|
}
|
|
107
|
+
// Windows fallback: retry with shell:true when the plain probe failed
|
|
108
|
+
// with ENOENT — meaning sf.cmd exists on PATH but can't run without the shell.
|
|
109
|
+
if (platform === 'win32' && probe.error?.code === 'ENOENT') {
|
|
110
|
+
const probeShell = sfSpawnHelper.spawnSync('sf', ['--version'], {
|
|
111
|
+
encoding: 'utf-8',
|
|
112
|
+
shell: true,
|
|
113
|
+
maxBuffer: 1024 * 1024,
|
|
114
|
+
});
|
|
115
|
+
if (!probeShell.error && probeShell.status === 0) {
|
|
116
|
+
cachedSfPath = 'sf';
|
|
117
|
+
return cachedSfPath;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
66
120
|
// Fall back to common install locations
|
|
67
121
|
for (const candidate of getSfCommonPaths()) {
|
|
68
122
|
if (fs.existsSync(candidate)) {
|
|
@@ -73,16 +127,15 @@ function resolveSfExecutable() {
|
|
|
73
127
|
cachedSfPath = null;
|
|
74
128
|
return null;
|
|
75
129
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
'or
|
|
85
|
-
'(e.g. "~/.nvm/versions/node/v22.0.0/bin/sf").');
|
|
130
|
+
/**
|
|
131
|
+
* Reject shell metacharacters in an sf_path that will be executed via shell:true.
|
|
132
|
+
* On Windows, cmd.exe interprets & | ; < > ` ' " and newlines as shell syntax.
|
|
133
|
+
* A valid filesystem path should never contain these characters.
|
|
134
|
+
*/
|
|
135
|
+
function assertShellSafePath(sfPath) {
|
|
136
|
+
if (/[&|;<>`'"\n\r]/.test(sfPath)) {
|
|
137
|
+
throw Object.assign(new Error('sf_path contains characters that are unsafe for shell execution on Windows ' +
|
|
138
|
+
'(& | ; < > ` \' " or line-breaks). Provide an absolute filesystem path to the sf executable.'), { code: 'INVALID_SF_PATH' });
|
|
86
139
|
}
|
|
87
140
|
}
|
|
88
141
|
function runSfCommand(args, sfPath) {
|
|
@@ -90,7 +143,18 @@ function runSfCommand(args, sfPath) {
|
|
|
90
143
|
const executable = sfPath ?? resolveSfExecutable();
|
|
91
144
|
if (!executable)
|
|
92
145
|
throw new SfNotFoundError();
|
|
93
|
-
const
|
|
146
|
+
const platform = sfPlatformOverride ?? process.platform;
|
|
147
|
+
const useShell = needsWindowsShell(executable, platform);
|
|
148
|
+
// Guard against injection when shell:true is used with a user-supplied path.
|
|
149
|
+
// Common install locations returned by resolveSfExecutable() are safe by construction.
|
|
150
|
+
if (useShell && sfPath) {
|
|
151
|
+
assertShellSafePath(sfPath);
|
|
152
|
+
}
|
|
153
|
+
const result = sfSpawnHelper.spawnSync(executable, args, {
|
|
154
|
+
encoding: 'utf-8',
|
|
155
|
+
shell: useShell,
|
|
156
|
+
maxBuffer: MAX_BUFFER,
|
|
157
|
+
});
|
|
94
158
|
if (result.error) {
|
|
95
159
|
const err = result.error;
|
|
96
160
|
if (err.code === 'ENOENT') {
|
|
@@ -109,37 +173,167 @@ function handleSpawnError(err, requestId, toolName) {
|
|
|
109
173
|
log('error', `${toolName} failed`, { requestId, error: error.message });
|
|
110
174
|
return {
|
|
111
175
|
isError: true,
|
|
112
|
-
content: [
|
|
176
|
+
content: [
|
|
177
|
+
{
|
|
178
|
+
type: 'text',
|
|
179
|
+
text: JSON.stringify(makeError(error.code ?? 'SF_ERROR', error.message, requestId, false)),
|
|
180
|
+
},
|
|
181
|
+
],
|
|
113
182
|
};
|
|
114
183
|
}
|
|
115
184
|
// ── Tool: provar.automation.config.load ──────────────────────────────────────
|
|
116
|
-
export function registerAutomationConfigLoad(server) {
|
|
185
|
+
export function registerAutomationConfigLoad(server, config) {
|
|
117
186
|
server.tool('provar.automation.config.load', [
|
|
118
187
|
'Register a provardx-properties.json file as the active Provar configuration.',
|
|
119
188
|
'Invokes `sf provar automation config load --properties-file <path>`, writing the path to ~/.sf/config.json.',
|
|
120
189
|
'REQUIRED before provar.automation.compile or provar.automation.testrun — without this step those commands fail with MISSING_FILE.',
|
|
121
190
|
'Typical workflow: provar.automation.config.load → provar.automation.compile → provar.automation.testrun.',
|
|
122
191
|
].join(' '), {
|
|
123
|
-
properties_path: z
|
|
124
|
-
|
|
192
|
+
properties_path: z
|
|
193
|
+
.string()
|
|
194
|
+
.describe('Absolute path to the provardx-properties.json file to register as active configuration'),
|
|
195
|
+
sf_path: z
|
|
196
|
+
.string()
|
|
197
|
+
.optional()
|
|
198
|
+
.describe('Path to the sf CLI executable when not in PATH (e.g. "~/.nvm/versions/node/v22.0.0/bin/sf")'),
|
|
125
199
|
}, ({ properties_path, sf_path }) => {
|
|
126
200
|
const requestId = makeRequestId();
|
|
127
201
|
log('info', 'provar.automation.config.load', { requestId, properties_path });
|
|
128
202
|
try {
|
|
203
|
+
assertPathAllowed(properties_path, config.allowedPaths);
|
|
129
204
|
const result = runSfCommand(['provar', 'automation', 'config', 'load', '--properties-file', properties_path], sf_path);
|
|
130
|
-
const response = {
|
|
205
|
+
const response = {
|
|
206
|
+
requestId,
|
|
207
|
+
exitCode: result.exitCode,
|
|
208
|
+
stdout: result.stdout,
|
|
209
|
+
stderr: result.stderr,
|
|
210
|
+
properties_path,
|
|
211
|
+
};
|
|
131
212
|
if (result.exitCode !== 0) {
|
|
132
|
-
return {
|
|
213
|
+
return {
|
|
214
|
+
isError: true,
|
|
215
|
+
content: [
|
|
216
|
+
{
|
|
217
|
+
type: 'text',
|
|
218
|
+
text: JSON.stringify(makeError('AUTOMATION_CONFIG_LOAD_FAILED', result.stderr || result.stdout, requestId)),
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
};
|
|
133
222
|
}
|
|
134
223
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
135
224
|
}
|
|
136
225
|
catch (err) {
|
|
226
|
+
if (err instanceof PathPolicyError) {
|
|
227
|
+
return {
|
|
228
|
+
isError: true,
|
|
229
|
+
content: [
|
|
230
|
+
{ type: 'text', text: JSON.stringify(makeError(err.code, err.message, requestId, false)) },
|
|
231
|
+
],
|
|
232
|
+
};
|
|
233
|
+
}
|
|
137
234
|
return handleSpawnError(err, requestId, 'provar.automation.config.load');
|
|
138
235
|
}
|
|
139
236
|
});
|
|
140
237
|
}
|
|
238
|
+
// ── Testrun output filter ─────────────────────────────────────────────────────
|
|
239
|
+
const NOISE_PATTERNS = [/com\.networknt\.schema/, /SEVERE.*Failed to configure logger.*\.lck/];
|
|
240
|
+
/**
|
|
241
|
+
* Strip Java schema-validator debug lines and stale logger-lock SEVERE warnings
|
|
242
|
+
* from Provar testrun output. These two patterns account for the bulk of output
|
|
243
|
+
* volume and cause MCP responses to be truncated before the pass/fail lines.
|
|
244
|
+
*
|
|
245
|
+
* Everything else (including real SEVERE failures) passes through unchanged.
|
|
246
|
+
* Collapses runs of blank lines to a single blank to keep the output readable.
|
|
247
|
+
* Returns the filtered text and the count of suppressed lines.
|
|
248
|
+
*/
|
|
249
|
+
export function filterTestRunOutput(raw) {
|
|
250
|
+
const lines = raw.split(/\r?\n/);
|
|
251
|
+
const kept = [];
|
|
252
|
+
let suppressed = 0;
|
|
253
|
+
let lastKeptWasBlank = false;
|
|
254
|
+
for (const rawLine of lines) {
|
|
255
|
+
const line = rawLine.endsWith('\r') ? rawLine.slice(0, -1) : rawLine;
|
|
256
|
+
if (NOISE_PATTERNS.some((p) => p.test(line))) {
|
|
257
|
+
suppressed++;
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
const isBlank = line.trim() === '';
|
|
261
|
+
if (isBlank && lastKeptWasBlank)
|
|
262
|
+
continue; // collapse blank runs
|
|
263
|
+
kept.push(line);
|
|
264
|
+
lastKeptWasBlank = isBlank;
|
|
265
|
+
}
|
|
266
|
+
let filtered = kept.join('\n');
|
|
267
|
+
if (suppressed > 0) {
|
|
268
|
+
filtered += `\n[testrun: ${suppressed} lines suppressed (schema validator / logger noise) — use provar.testrun.rca for full results]`;
|
|
269
|
+
}
|
|
270
|
+
return { filtered, suppressed };
|
|
271
|
+
}
|
|
272
|
+
// ── JUnit results enrichment ──────────────────────────────────────────────────
|
|
273
|
+
// Overrideable in tests — bypasses the sf config file read
|
|
274
|
+
let sfResultsPathOverride;
|
|
275
|
+
/** Exposed for testing only — set the results path returned by the sf config reader. Pass undefined to reset. */
|
|
276
|
+
export function setSfResultsPathForTesting(p) {
|
|
277
|
+
sfResultsPathOverride = p;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Resolves the actual results directory for the latest run.
|
|
281
|
+
* Provar's Increment disposition creates Results(1), Results(2)… as siblings of Results/.
|
|
282
|
+
* Returns the latest sibling dir, or the base path if no siblings exist.
|
|
283
|
+
*/
|
|
284
|
+
function resolveLatestResultsDir(resultsBase) {
|
|
285
|
+
const parent = path.dirname(resultsBase);
|
|
286
|
+
const base = path.basename(resultsBase);
|
|
287
|
+
try {
|
|
288
|
+
const safeName = base.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
289
|
+
const pattern = new RegExp(`^${safeName}\\((\\d+)\\)$`);
|
|
290
|
+
const indices = fs
|
|
291
|
+
.readdirSync(parent, { withFileTypes: true })
|
|
292
|
+
.filter((e) => e.isDirectory() && pattern.test(e.name))
|
|
293
|
+
.map((e) => parseInt(pattern.exec(e.name)[1], 10));
|
|
294
|
+
if (indices.length > 0) {
|
|
295
|
+
const maxIdx = indices.reduce((a, b) => (a > b ? a : b), 0);
|
|
296
|
+
return path.join(parent, `${base}(${maxIdx})`);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
catch {
|
|
300
|
+
// ignore filesystem errors
|
|
301
|
+
}
|
|
302
|
+
return resultsBase;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Reads resultsPath from the currently active provardx-properties.json (via ~/.sf/config.json),
|
|
306
|
+
* then resolves to the latest Increment-mode sibling directory.
|
|
307
|
+
* Returns null when the sf config or properties file cannot be read or is outside allowed paths.
|
|
308
|
+
*/
|
|
309
|
+
function readResultsPathFromSfConfig(config) {
|
|
310
|
+
if (sfResultsPathOverride !== undefined)
|
|
311
|
+
return sfResultsPathOverride;
|
|
312
|
+
try {
|
|
313
|
+
const sfConfigPath = path.join(os.homedir(), '.sf', 'config.json');
|
|
314
|
+
if (!fs.existsSync(sfConfigPath))
|
|
315
|
+
return null;
|
|
316
|
+
const sfConfig = JSON.parse(fs.readFileSync(sfConfigPath, 'utf-8'));
|
|
317
|
+
const propFilePath = sfConfig['PROVARDX_PROPERTIES_FILE_PATH'];
|
|
318
|
+
if (!propFilePath || !fs.existsSync(propFilePath))
|
|
319
|
+
return null;
|
|
320
|
+
// Guard: only read the properties file if it is within the session's allowed paths.
|
|
321
|
+
assertPathAllowed(propFilePath, config.allowedPaths);
|
|
322
|
+
const props = JSON.parse(fs.readFileSync(propFilePath, 'utf-8'));
|
|
323
|
+
const resultsBase = props['resultsPath'];
|
|
324
|
+
if (!resultsBase)
|
|
325
|
+
return null;
|
|
326
|
+
const resultsDir = resolveLatestResultsDir(resultsBase);
|
|
327
|
+
// Guard: only read the results directory if it is within the session's allowed paths.
|
|
328
|
+
assertPathAllowed(resultsDir, config.allowedPaths);
|
|
329
|
+
return resultsDir;
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
141
335
|
// ── Tool: provar.automation.testrun ───────────────────────────────────────────
|
|
142
|
-
export function registerAutomationTestRun(server) {
|
|
336
|
+
export function registerAutomationTestRun(server, config) {
|
|
143
337
|
server.tool('provar.automation.testrun', [
|
|
144
338
|
'Trigger a LOCAL Provar automation test run using installed Provar binaries. Invokes `sf provar automation test run`.',
|
|
145
339
|
'PREREQUISITE: Run provar.automation.config.load first to register a provardx-properties.json — without this the command fails with MISSING_FILE.',
|
|
@@ -148,17 +342,54 @@ export function registerAutomationTestRun(server) {
|
|
|
148
342
|
'For grid/CI execution via Provar Quality Hub instead of running locally, use provar.qualityhub.testrun.',
|
|
149
343
|
'Typical local AI loop: config.load → compile → testrun → inspect results.',
|
|
150
344
|
].join(' '), {
|
|
151
|
-
flags: z
|
|
152
|
-
|
|
345
|
+
flags: z
|
|
346
|
+
.array(z.string())
|
|
347
|
+
.optional()
|
|
348
|
+
.default([])
|
|
349
|
+
.describe('Raw CLI flags to forward (e.g. ["--project-path", "/path/to/project"])'),
|
|
350
|
+
sf_path: z
|
|
351
|
+
.string()
|
|
352
|
+
.optional()
|
|
353
|
+
.describe('Path to the sf CLI executable when not in PATH (e.g. "~/.nvm/versions/node/v22.0.0/bin/sf")'),
|
|
153
354
|
}, ({ flags, sf_path }) => {
|
|
154
355
|
const requestId = makeRequestId();
|
|
155
356
|
log('info', 'provar.automation.testrun', { requestId });
|
|
156
357
|
try {
|
|
157
358
|
const result = runSfCommand(['provar', 'automation', 'test', 'run', ...flags], sf_path);
|
|
158
|
-
const
|
|
359
|
+
const { filtered, suppressed } = filterTestRunOutput(result.stdout);
|
|
360
|
+
// Attempt to enrich the response with structured step data from JUnit XML
|
|
361
|
+
const resultsPath = readResultsPathFromSfConfig(config);
|
|
362
|
+
const { steps, warning: junitWarning } = resultsPath
|
|
363
|
+
? parseJUnitResults(resultsPath)
|
|
364
|
+
: { steps: [], warning: undefined };
|
|
159
365
|
if (result.exitCode !== 0) {
|
|
160
|
-
|
|
366
|
+
const { filtered: filteredErr, suppressed: suppressedErr } = filterTestRunOutput(result.stderr || result.stdout);
|
|
367
|
+
const errBody = {
|
|
368
|
+
...makeError('AUTOMATION_TESTRUN_FAILED', filteredErr, requestId),
|
|
369
|
+
...(suppressedErr > 0 ? { output_lines_suppressed: suppressedErr } : {}),
|
|
370
|
+
};
|
|
371
|
+
if (steps.length > 0)
|
|
372
|
+
errBody['steps'] = steps;
|
|
373
|
+
if (!resultsPath || junitWarning) {
|
|
374
|
+
errBody['details'] = {
|
|
375
|
+
warning: junitWarning ??
|
|
376
|
+
'Could not locate results directory — step-level output unavailable. Run provar.automation.config.load first.',
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
return { isError: true, content: [{ type: 'text', text: JSON.stringify(errBody) }] };
|
|
161
380
|
}
|
|
381
|
+
const response = {
|
|
382
|
+
requestId,
|
|
383
|
+
exitCode: result.exitCode,
|
|
384
|
+
stdout: filtered,
|
|
385
|
+
stderr: result.stderr,
|
|
386
|
+
};
|
|
387
|
+
if (suppressed > 0)
|
|
388
|
+
response['output_lines_suppressed'] = suppressed;
|
|
389
|
+
if (steps.length > 0)
|
|
390
|
+
response['steps'] = steps;
|
|
391
|
+
if (junitWarning)
|
|
392
|
+
response['details'] = { warning: junitWarning };
|
|
162
393
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
163
394
|
}
|
|
164
395
|
catch (err) {
|
|
@@ -173,8 +404,15 @@ export function registerAutomationCompile(server) {
|
|
|
173
404
|
'PREREQUISITE: Run provar.automation.config.load first to register a provardx-properties.json — without this the command fails with MISSING_FILE.',
|
|
174
405
|
'Run this before triggering a test run after modifying test cases.',
|
|
175
406
|
].join(' '), {
|
|
176
|
-
flags: z
|
|
177
|
-
|
|
407
|
+
flags: z
|
|
408
|
+
.array(z.string())
|
|
409
|
+
.optional()
|
|
410
|
+
.default([])
|
|
411
|
+
.describe('Raw CLI flags to forward (e.g. ["--project-path", "/path/to/project"])'),
|
|
412
|
+
sf_path: z
|
|
413
|
+
.string()
|
|
414
|
+
.optional()
|
|
415
|
+
.describe('Path to the sf CLI executable when not in PATH (e.g. "~/.nvm/versions/node/v22.0.0/bin/sf")'),
|
|
178
416
|
}, ({ flags, sf_path }) => {
|
|
179
417
|
const requestId = makeRequestId();
|
|
180
418
|
log('info', 'provar.automation.compile', { requestId });
|
|
@@ -182,7 +420,15 @@ export function registerAutomationCompile(server) {
|
|
|
182
420
|
const result = runSfCommand(['provar', 'automation', 'project', 'compile', ...flags], sf_path);
|
|
183
421
|
const response = { requestId, exitCode: result.exitCode, stdout: result.stdout, stderr: result.stderr };
|
|
184
422
|
if (result.exitCode !== 0) {
|
|
185
|
-
return {
|
|
423
|
+
return {
|
|
424
|
+
isError: true,
|
|
425
|
+
content: [
|
|
426
|
+
{
|
|
427
|
+
type: 'text',
|
|
428
|
+
text: JSON.stringify(makeError('AUTOMATION_COMPILE_FAILED', result.stderr || result.stdout, requestId)),
|
|
429
|
+
},
|
|
430
|
+
],
|
|
431
|
+
};
|
|
186
432
|
}
|
|
187
433
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
188
434
|
}
|
|
@@ -192,19 +438,52 @@ export function registerAutomationCompile(server) {
|
|
|
192
438
|
});
|
|
193
439
|
}
|
|
194
440
|
// ── Tool: provar.automation.metadata.download ─────────────────────────────────
|
|
441
|
+
const DOWNLOAD_ERROR_SUGGESTION = 'A [DOWNLOAD_ERROR] almost always means a Salesforce authentication failure for the connection being used. ' +
|
|
442
|
+
'Check: (1) the connection credentials in the Provar project .secrets file are current and not expired; ' +
|
|
443
|
+
'(2) the named connection exists in the project and the name is spelled correctly (case-sensitive); ' +
|
|
444
|
+
'(3) if using a scratch org, confirm it has not expired (`sf org list`); ' +
|
|
445
|
+
'(4) if testprojectSecrets is set in provardx-properties.json, it must be the encryption key string used to decrypt .secrets — not a file path.';
|
|
195
446
|
export function registerAutomationMetadataDownload(server) {
|
|
196
|
-
server.tool('provar.automation.metadata.download',
|
|
197
|
-
|
|
198
|
-
|
|
447
|
+
server.tool('provar.automation.metadata.download', [
|
|
448
|
+
'Download Salesforce metadata for one or more connections into a Provar project.',
|
|
449
|
+
'Invokes `sf provar automation metadata download`.',
|
|
450
|
+
'PREREQUISITE: Call provar.automation.config.load first — without it the command fails with MISSING_FILE.',
|
|
451
|
+
'Use the -c flag to specify connections: flags: ["-c", "ConnectionName1,ConnectionName2"].',
|
|
452
|
+
'Connection names are case-sensitive and must match the names defined in the Provar project.',
|
|
453
|
+
'If the download fails with [DOWNLOAD_ERROR], this is almost always a Salesforce authentication issue —',
|
|
454
|
+
'check that the credentials in the project .secrets file are current and that any referenced scratch orgs have not expired.',
|
|
455
|
+
].join(' '), {
|
|
456
|
+
flags: z
|
|
457
|
+
.array(z.string())
|
|
458
|
+
.optional()
|
|
459
|
+
.default([])
|
|
460
|
+
.describe('Raw CLI flags to forward. Use ["-c", "Name1,Name2"] (or the equivalent --connections form) to target specific connections. Example: ["-c", "MyOrg,SandboxOrg"]'),
|
|
461
|
+
sf_path: z
|
|
462
|
+
.string()
|
|
463
|
+
.optional()
|
|
464
|
+
.describe('Path to the sf CLI executable when not in PATH (e.g. "~/.nvm/versions/node/v22.0.0/bin/sf")'),
|
|
199
465
|
}, ({ flags, sf_path }) => {
|
|
200
466
|
const requestId = makeRequestId();
|
|
201
467
|
log('info', 'provar.automation.metadata.download', { requestId });
|
|
202
468
|
try {
|
|
203
469
|
const result = runSfCommand(['provar', 'automation', 'metadata', 'download', ...flags], sf_path);
|
|
204
|
-
const
|
|
470
|
+
const message = result.stderr || result.stdout;
|
|
205
471
|
if (result.exitCode !== 0) {
|
|
206
|
-
|
|
472
|
+
const isDownloadError = message.includes('[DOWNLOAD_ERROR]');
|
|
473
|
+
const details = isDownloadError
|
|
474
|
+
? { suggestion: DOWNLOAD_ERROR_SUGGESTION }
|
|
475
|
+
: undefined;
|
|
476
|
+
return {
|
|
477
|
+
isError: true,
|
|
478
|
+
content: [
|
|
479
|
+
{
|
|
480
|
+
type: 'text',
|
|
481
|
+
text: JSON.stringify(makeError('AUTOMATION_METADATA_FAILED', message, requestId, false, details)),
|
|
482
|
+
},
|
|
483
|
+
],
|
|
484
|
+
};
|
|
207
485
|
}
|
|
486
|
+
const response = { requestId, exitCode: result.exitCode, stdout: result.stdout, stderr: result.stderr };
|
|
208
487
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
209
488
|
}
|
|
210
489
|
catch (err) {
|
|
@@ -215,17 +494,9 @@ export function registerAutomationMetadataDownload(server) {
|
|
|
215
494
|
// ── Tool: provar.automation.setup ─────────────────────────────────────────────
|
|
216
495
|
/** Known system-level Provar install paths per platform. */
|
|
217
496
|
const SYSTEM_INSTALL_BASES = {
|
|
218
|
-
win32: [
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
],
|
|
222
|
-
darwin: [
|
|
223
|
-
'/Applications',
|
|
224
|
-
],
|
|
225
|
-
linux: [
|
|
226
|
-
'/opt',
|
|
227
|
-
'/usr/local',
|
|
228
|
-
],
|
|
497
|
+
win32: ['C:/Program Files', 'C:/Program Files (x86)'],
|
|
498
|
+
darwin: ['/Applications'],
|
|
499
|
+
linux: ['/opt', '/usr/local'],
|
|
229
500
|
};
|
|
230
501
|
/** Try to read a Provar version string from well-known files inside an install dir. */
|
|
231
502
|
function readProvarVersion(installPath) {
|
|
@@ -309,9 +580,19 @@ export function registerAutomationSetup(server) {
|
|
|
309
580
|
'If an existing installation is found, returns its path so you can set provarHome in the properties file — skipping the download unless force is true.',
|
|
310
581
|
'After a successful install, update the provarHome property in provardx-properties.json to the returned install_path using provar.properties.set.',
|
|
311
582
|
].join(' '), {
|
|
312
|
-
version: z
|
|
313
|
-
|
|
314
|
-
|
|
583
|
+
version: z
|
|
584
|
+
.string()
|
|
585
|
+
.optional()
|
|
586
|
+
.describe('Specific Provar Automation version to install, e.g. "2.12.0". Omit to install the latest release.'),
|
|
587
|
+
force: z
|
|
588
|
+
.boolean()
|
|
589
|
+
.optional()
|
|
590
|
+
.default(false)
|
|
591
|
+
.describe('Force a fresh download even if an existing installation is already detected (default: false).'),
|
|
592
|
+
sf_path: z
|
|
593
|
+
.string()
|
|
594
|
+
.optional()
|
|
595
|
+
.describe('Path to the sf CLI executable when not in PATH (e.g. "~/.nvm/versions/node/v22.0.0/bin/sf")'),
|
|
315
596
|
}, ({ version, force, sf_path }) => {
|
|
316
597
|
const requestId = makeRequestId();
|
|
317
598
|
log('info', 'provar.automation.setup', { requestId, version, force });
|
|
@@ -343,12 +624,17 @@ export function registerAutomationSetup(server) {
|
|
|
343
624
|
if (result.exitCode !== 0) {
|
|
344
625
|
return {
|
|
345
626
|
isError: true,
|
|
346
|
-
content: [
|
|
627
|
+
content: [
|
|
628
|
+
{
|
|
629
|
+
type: 'text',
|
|
630
|
+
text: JSON.stringify(makeError('AUTOMATION_SETUP_FAILED', result.stderr || result.stdout, requestId)),
|
|
631
|
+
},
|
|
632
|
+
],
|
|
347
633
|
};
|
|
348
634
|
}
|
|
349
635
|
// ── 3. Locate the freshly installed ProvarHome ───────────────────────
|
|
350
636
|
const freshInstalls = findExistingInstallations();
|
|
351
|
-
const localInstall = freshInstalls.find(i => i.source === 'local') ?? freshInstalls[0];
|
|
637
|
+
const localInstall = freshInstalls.find((i) => i.source === 'local') ?? freshInstalls[0];
|
|
352
638
|
const installPath = localInstall?.path ?? path.resolve(process.cwd(), 'ProvarHome');
|
|
353
639
|
const detectedVersion = localInstall?.version ?? version ?? null;
|
|
354
640
|
const response = {
|
|
@@ -376,10 +662,10 @@ export function registerAutomationSetup(server) {
|
|
|
376
662
|
});
|
|
377
663
|
}
|
|
378
664
|
// ── Bulk registration ─────────────────────────────────────────────────────────
|
|
379
|
-
export function registerAllAutomationTools(server) {
|
|
665
|
+
export function registerAllAutomationTools(server, config) {
|
|
380
666
|
registerAutomationSetup(server);
|
|
381
|
-
registerAutomationConfigLoad(server);
|
|
382
|
-
registerAutomationTestRun(server);
|
|
667
|
+
registerAutomationConfigLoad(server, config);
|
|
668
|
+
registerAutomationTestRun(server, config);
|
|
383
669
|
registerAutomationCompile(server);
|
|
384
670
|
registerAutomationMetadataDownload(server);
|
|
385
671
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automationTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/automationTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"automationTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/automationTools.ts"],"names":[],"mappings":"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"}
|