@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
|
@@ -10,6 +10,7 @@ import os from 'node:os';
|
|
|
10
10
|
import path from 'node:path';
|
|
11
11
|
import { z } from 'zod';
|
|
12
12
|
import { XMLParser } from 'fast-xml-parser';
|
|
13
|
+
import { assertPathAllowed, PathPolicyError } from '../security/pathPolicy.js';
|
|
13
14
|
import { makeError, makeRequestId } from '../schemas/common.js';
|
|
14
15
|
import { log } from '../logging/logger.js';
|
|
15
16
|
const RCA_RULES = [
|
|
@@ -37,6 +38,36 @@ const RCA_RULES = [
|
|
|
37
38
|
summary: 'Test assertion failed',
|
|
38
39
|
recommendation: 'Verify expected value is correct for current org state',
|
|
39
40
|
},
|
|
41
|
+
{
|
|
42
|
+
category: 'SALESFORCE_VALIDATION',
|
|
43
|
+
pattern: /Required fields are missing:\s*\[/i,
|
|
44
|
+
summary: 'Salesforce required-field validation failed',
|
|
45
|
+
recommendation: 'Ensure all required fields have values; check field-level security for the running user',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
category: 'SALESFORCE_PICKLIST',
|
|
49
|
+
pattern: /bad value for restricted picklist field/i,
|
|
50
|
+
summary: 'Invalid picklist value used',
|
|
51
|
+
recommendation: 'Query valid picklist values (run metadata download or Apex describe); check for trailing spaces or case differences',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
category: 'SALESFORCE_REFERENCE',
|
|
55
|
+
pattern: /INVALID_CROSS_REFERENCE_KEY/i,
|
|
56
|
+
summary: 'Referenced record ID does not exist or is inaccessible',
|
|
57
|
+
recommendation: 'Verify the referenced record exists and the running user has access to it',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
category: 'SALESFORCE_ACCESS',
|
|
61
|
+
pattern: /INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY/i,
|
|
62
|
+
summary: 'Running user lacks permission on a referenced record',
|
|
63
|
+
recommendation: 'Grant the running user appropriate object and record-level permissions',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
category: 'SALESFORCE_TRIGGER',
|
|
67
|
+
pattern: /FIELD_CUSTOM_VALIDATION_EXCEPTION/i,
|
|
68
|
+
summary: 'A Salesforce validation rule or trigger blocked the DML operation',
|
|
69
|
+
recommendation: 'Review validation rules and triggers on the target object; ensure test data satisfies all business rules',
|
|
70
|
+
},
|
|
40
71
|
{
|
|
41
72
|
category: 'CREDENTIAL_FAILURE',
|
|
42
73
|
pattern: /InvalidPasswordException|AuthenticationException|INVALID_LOGIN/i,
|
|
@@ -143,6 +174,30 @@ function numericChildDirs(dir) {
|
|
|
143
174
|
return [];
|
|
144
175
|
}
|
|
145
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Find Provar Increment-mode sibling directories next to resultsBase.
|
|
179
|
+
* Provar creates Results, Results(1), Results(2), … as siblings in the same
|
|
180
|
+
* parent directory — NOT as numeric children of Results. Returns the numeric
|
|
181
|
+
* suffixes of all matching siblings (e.g. [1, 2, 18]).
|
|
182
|
+
*/
|
|
183
|
+
function incrementSiblingDirs(resultsBase) {
|
|
184
|
+
const parent = path.dirname(resultsBase);
|
|
185
|
+
const base = path.basename(resultsBase);
|
|
186
|
+
if (!fs.existsSync(parent))
|
|
187
|
+
return [];
|
|
188
|
+
try {
|
|
189
|
+
const safeName = base.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
190
|
+
const pattern = new RegExp(`^${safeName}\\((\\d+)\\)$`);
|
|
191
|
+
return fs
|
|
192
|
+
.readdirSync(parent, { withFileTypes: true })
|
|
193
|
+
.filter((e) => e.isDirectory() && pattern.test(e.name))
|
|
194
|
+
.map((e) => parseInt(pattern.exec(e.name)[1], 10))
|
|
195
|
+
.filter((n) => n > 0);
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return [];
|
|
199
|
+
}
|
|
200
|
+
}
|
|
146
201
|
/**
|
|
147
202
|
* Expand ${env.VAR} placeholders in a string using process.env.
|
|
148
203
|
*/
|
|
@@ -240,8 +295,20 @@ function resolveResultsLocation(project_path, results_path, run_index) {
|
|
|
240
295
|
};
|
|
241
296
|
}
|
|
242
297
|
// Increment resolution
|
|
298
|
+
// Provar's primary Increment pattern: Results, Results(1), Results(2)… as siblings.
|
|
299
|
+
// Legacy fallback: purely-numeric children (Results/1/, Results/2/…).
|
|
300
|
+
const siblings = incrementSiblingDirs(resultsBase);
|
|
243
301
|
const numericDirs = numericChildDirs(resultsBase);
|
|
244
|
-
if (disposition === 'Increment' || numericDirs.length > 0) {
|
|
302
|
+
if (disposition === 'Increment' || siblings.length > 0 || numericDirs.length > 0) {
|
|
303
|
+
if (siblings.length > 0) {
|
|
304
|
+
const targetIndex = run_index ?? Math.max(...siblings);
|
|
305
|
+
return {
|
|
306
|
+
results_dir: path.join(path.dirname(resultsBase), `${path.basename(resultsBase)}(${targetIndex})`),
|
|
307
|
+
run_index: targetIndex,
|
|
308
|
+
disposition,
|
|
309
|
+
resolution_source,
|
|
310
|
+
};
|
|
311
|
+
}
|
|
245
312
|
if (numericDirs.length > 0) {
|
|
246
313
|
const targetIndex = run_index ?? Math.max(...numericDirs);
|
|
247
314
|
return {
|
|
@@ -251,7 +318,7 @@ function resolveResultsLocation(project_path, results_path, run_index) {
|
|
|
251
318
|
resolution_source,
|
|
252
319
|
};
|
|
253
320
|
}
|
|
254
|
-
// Disposition is Increment but no
|
|
321
|
+
// Disposition is Increment but no numbered dirs yet — fall through to base
|
|
255
322
|
}
|
|
256
323
|
return {
|
|
257
324
|
results_dir: resultsBase,
|
|
@@ -268,17 +335,17 @@ export function registerTestRunLocate(server) {
|
|
|
268
335
|
'paths to per-test HTML reports, and any validation JSON files.',
|
|
269
336
|
'Supports explicit results_path override or auto-detection from sf config, provardx properties file, or ANT build.xml.',
|
|
270
337
|
].join(' '), {
|
|
271
|
-
project_path: z
|
|
272
|
-
.string()
|
|
273
|
-
.describe('Absolute path to the Provar project root'),
|
|
338
|
+
project_path: z.string().describe('Absolute path to the Provar project root'),
|
|
274
339
|
results_path: z
|
|
275
340
|
.string()
|
|
276
341
|
.optional()
|
|
277
342
|
.describe('Explicit override for the results base directory; if provided, skip auto-detection'),
|
|
278
343
|
run_index: z
|
|
279
344
|
.number()
|
|
345
|
+
.int()
|
|
346
|
+
.positive()
|
|
280
347
|
.optional()
|
|
281
|
-
.describe('Which Increment run to target (default: latest)'),
|
|
348
|
+
.describe('Which Increment run to target (default: latest); must be a positive integer'),
|
|
282
349
|
}, (input) => {
|
|
283
350
|
const requestId = makeRequestId();
|
|
284
351
|
log('info', 'provar.testrun.report.locate', { requestId });
|
|
@@ -423,7 +490,8 @@ function collectValidationReports(projectPath) {
|
|
|
423
490
|
if (!fs.existsSync(validationDir))
|
|
424
491
|
return [];
|
|
425
492
|
try {
|
|
426
|
-
return fs
|
|
493
|
+
return fs
|
|
494
|
+
.readdirSync(validationDir)
|
|
427
495
|
.filter((e) => e.endsWith('.json'))
|
|
428
496
|
.map((e) => path.join(validationDir, e));
|
|
429
497
|
}
|
|
@@ -456,9 +524,14 @@ function buildPriorFailureSet(resultsDir, resolvedRunIndex) {
|
|
|
456
524
|
}
|
|
457
525
|
function buildFailureReports(testcases, htmlFiles, screenshotDir, priorFailed) {
|
|
458
526
|
const errorClassPatterns = [
|
|
459
|
-
'NoSuchElementException',
|
|
460
|
-
'
|
|
461
|
-
'
|
|
527
|
+
'NoSuchElementException',
|
|
528
|
+
'TimeoutException',
|
|
529
|
+
'AssertionException',
|
|
530
|
+
'SessionNotCreatedException',
|
|
531
|
+
'WebDriverException',
|
|
532
|
+
'ClassNotFoundException',
|
|
533
|
+
'LicenseException',
|
|
534
|
+
'InvalidPasswordException',
|
|
462
535
|
];
|
|
463
536
|
const reports = [];
|
|
464
537
|
for (const tc of testcases) {
|
|
@@ -493,32 +566,55 @@ function buildFailureReports(testcases, htmlFiles, screenshotDir, priorFailed) {
|
|
|
493
566
|
return reports;
|
|
494
567
|
}
|
|
495
568
|
// ── provar.testrun.rca tool ───────────────────────────────────────────────────
|
|
496
|
-
export function registerTestRunRca(server) {
|
|
569
|
+
export function registerTestRunRca(server, config) {
|
|
497
570
|
server.tool('provar.testrun.rca', [
|
|
498
571
|
'Parse a completed Provar test run and produce a structured Root Cause Analysis (RCA) report.',
|
|
499
572
|
'Resolves the results directory, parses JUnit.xml, classifies each failure by category,',
|
|
500
573
|
'and produces recommendations. Use locate_only=true to skip parsing and just resolve artifact locations.',
|
|
574
|
+
'Use mode="failures" to get a lightweight array of failed test cases',
|
|
575
|
+
'([{ testItemId, title, errorMessage }]) without the full RCA classification — useful when you',
|
|
576
|
+
'need failure names quickly without loading the HTML report.',
|
|
501
577
|
].join(' '), {
|
|
502
|
-
project_path: z
|
|
503
|
-
.string()
|
|
504
|
-
.describe('Absolute path to the Provar project root'),
|
|
578
|
+
project_path: z.string().describe('Absolute path to the Provar project root'),
|
|
505
579
|
results_path: z
|
|
506
580
|
.string()
|
|
507
581
|
.optional()
|
|
508
|
-
.describe('Explicit override for the results base directory'),
|
|
582
|
+
.describe('Explicit override for the results base directory; must be within --allowed-paths if provided'),
|
|
509
583
|
run_index: z
|
|
510
584
|
.number()
|
|
585
|
+
.int()
|
|
586
|
+
.positive()
|
|
511
587
|
.optional()
|
|
512
|
-
.describe('Which Increment run to target (default: latest)'),
|
|
588
|
+
.describe('Which Increment run to target (default: latest); must be a positive integer'),
|
|
513
589
|
locate_only: z
|
|
514
590
|
.boolean()
|
|
515
591
|
.optional()
|
|
516
592
|
.default(false)
|
|
517
593
|
.describe('If true, skip parsing and return just artifact locations'),
|
|
594
|
+
mode: z
|
|
595
|
+
.enum(['rca', 'failures'])
|
|
596
|
+
.optional()
|
|
597
|
+
.default('rca')
|
|
598
|
+
.describe('"rca" (default): full root-cause analysis with classification and recommendations. ' +
|
|
599
|
+
'"failures": lightweight array of failed test cases [{ testItemId, title, errorMessage }].'),
|
|
518
600
|
}, (input) => {
|
|
519
601
|
const requestId = makeRequestId();
|
|
520
|
-
log('info', 'provar.testrun.rca', { requestId, locate_only: input.locate_only });
|
|
602
|
+
log('info', 'provar.testrun.rca', { requestId, locate_only: input.locate_only, mode: input.mode });
|
|
521
603
|
try {
|
|
604
|
+
// ── Path policy ──────────────────────────────────────────────────────
|
|
605
|
+
const pathsToCheck = [path.resolve(input.project_path)];
|
|
606
|
+
if (input.results_path)
|
|
607
|
+
pathsToCheck.push(input.results_path);
|
|
608
|
+
for (const p of pathsToCheck) {
|
|
609
|
+
try {
|
|
610
|
+
assertPathAllowed(p, config.allowedPaths);
|
|
611
|
+
}
|
|
612
|
+
catch (pErr) {
|
|
613
|
+
const e = pErr;
|
|
614
|
+
const err = makeError(e instanceof PathPolicyError ? e.code : 'PATH_NOT_ALLOWED', e.message, requestId);
|
|
615
|
+
return { isError: true, content: [{ type: 'text', text: JSON.stringify(err) }] };
|
|
616
|
+
}
|
|
617
|
+
}
|
|
522
618
|
// ── Resolve location ─────────────────────────────────────────────────
|
|
523
619
|
const resolved = resolveResultsLocation(input.project_path, input.results_path, input.run_index);
|
|
524
620
|
if ('error' in resolved) {
|
|
@@ -549,11 +645,40 @@ export function registerTestRunRca(server) {
|
|
|
549
645
|
};
|
|
550
646
|
// ── locate_only shortcut ─────────────────────────────────────────────
|
|
551
647
|
if (input.locate_only) {
|
|
552
|
-
const result = {
|
|
648
|
+
const result = {
|
|
649
|
+
...locateResult,
|
|
650
|
+
rca_skipped: true,
|
|
651
|
+
failures: [],
|
|
652
|
+
infrastructure_issues: [],
|
|
653
|
+
recommendations: [],
|
|
654
|
+
};
|
|
553
655
|
return {
|
|
554
656
|
content: [{ type: 'text', text: JSON.stringify(result) }],
|
|
555
657
|
};
|
|
556
658
|
}
|
|
659
|
+
// ── mode=failures: lightweight failure list ──────────────────────────
|
|
660
|
+
if (input.mode === 'failures') {
|
|
661
|
+
if (!junit_xml) {
|
|
662
|
+
const result = {
|
|
663
|
+
requestId,
|
|
664
|
+
results_dir,
|
|
665
|
+
failures: [],
|
|
666
|
+
details: { warning: 'JUnit.xml not found in results directory — no failure data available' },
|
|
667
|
+
};
|
|
668
|
+
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
669
|
+
}
|
|
670
|
+
const xmlContent = fs.readFileSync(junit_xml, 'utf-8');
|
|
671
|
+
const parsed = parseJUnit(xmlContent);
|
|
672
|
+
const failures = parsed.testcases
|
|
673
|
+
.filter((tc) => tc.failureText !== null && !tc.isSkipped)
|
|
674
|
+
.map((tc) => ({
|
|
675
|
+
testItemId: tc.name,
|
|
676
|
+
title: tc.name,
|
|
677
|
+
errorMessage: (tc.failureText ?? '').slice(0, 500),
|
|
678
|
+
}));
|
|
679
|
+
const result = { requestId, results_dir, failures };
|
|
680
|
+
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
681
|
+
}
|
|
557
682
|
// ── Check JUnit.xml exists ───────────────────────────────────────────
|
|
558
683
|
if (!junit_xml) {
|
|
559
684
|
const result = {
|
|
@@ -613,8 +738,8 @@ export function registerTestRunRca(server) {
|
|
|
613
738
|
});
|
|
614
739
|
}
|
|
615
740
|
// ── Registration entry point ──────────────────────────────────────────────────
|
|
616
|
-
export function registerAllRcaTools(server) {
|
|
741
|
+
export function registerAllRcaTools(server, config) {
|
|
617
742
|
registerTestRunLocate(server);
|
|
618
|
-
registerTestRunRca(server);
|
|
743
|
+
registerTestRunRca(server, config);
|
|
619
744
|
}
|
|
620
745
|
//# sourceMappingURL=rcaTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rcaTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/rcaTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rcaTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/rcaTools.ts"],"names":[],"mappings":"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"}
|
package/lib/mcp/tools/sfSpawn.js
CHANGED
|
@@ -15,8 +15,14 @@ export const sfSpawnHelper = {
|
|
|
15
15
|
// ── Shared error type ─────────────────────────────────────────────────────────
|
|
16
16
|
export class SfNotFoundError extends Error {
|
|
17
17
|
code = 'SF_NOT_FOUND';
|
|
18
|
-
constructor() {
|
|
19
|
-
|
|
18
|
+
constructor(sfPath) {
|
|
19
|
+
const where = sfPath
|
|
20
|
+
? `at explicit path "${sfPath}"`
|
|
21
|
+
: 'in PATH or common npm/nvm/volta install locations';
|
|
22
|
+
super(`sf CLI not found ${where}. ` +
|
|
23
|
+
'Install Salesforce CLI (npm install -g @salesforce/cli) and ensure the install directory is in your PATH, ' +
|
|
24
|
+
'or pass sf_path pointing to the sf executable directly ' +
|
|
25
|
+
'(e.g. "~/.nvm/versions/node/v22.0.0/bin/sf").');
|
|
20
26
|
this.name = 'SfNotFoundError';
|
|
21
27
|
}
|
|
22
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sfSpawn.js","sourceRoot":"","sources":["../../../src/mcp/tools/sfSpawn.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,UAAU;CACtB,CAAC;AAEF,iFAAiF;AAEjF,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,IAAI,GAAG,cAAc,CAAC;IACtC;
|
|
1
|
+
{"version":3,"file":"sfSpawn.js","sourceRoot":"","sources":["../../../src/mcp/tools/sfSpawn.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,UAAU;CACtB,CAAC;AAEF,iFAAiF;AAEjF,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,IAAI,GAAG,cAAc,CAAC;IACtC,YAAmB,MAAe;QAChC,MAAM,KAAK,GAAG,MAAM;YAClB,CAAC,CAAC,qBAAqB,MAAM,GAAG;YAChC,CAAC,CAAC,mDAAmD,CAAC;QACxD,KAAK,CACH,oBAAoB,KAAK,IAAI;YAC7B,4GAA4G;YAC5G,yDAAyD;YACzD,+CAA+C,CAChD,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAUD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAExF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,CAAC,KAA8B,CAAC;QAClD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;KAC7B,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -77,6 +77,9 @@ const StepSchema = z.object({
|
|
|
77
77
|
const TOOL_DESCRIPTION = [
|
|
78
78
|
'Generate a Provar XML test case skeleton with proper UUID v4 guids, sequential testItemId values, and <steps> structure.',
|
|
79
79
|
'Returns XML content. Writes to disk only when dry_run=false.',
|
|
80
|
+
'URI-aware generation: use target_uri to control the XML nesting structure.',
|
|
81
|
+
' - sf:ui:target (or omit target_uri) → flat Salesforce XML structure (existing behaviour).',
|
|
82
|
+
' - ui:pageobject:target?pageId=pageobjects.PageClass → wraps all steps in a UiWithScreen element targeting that non-SF page object.',
|
|
80
83
|
'API IDs: shorthand forms (e.g. UiConnect, ApexSoqlQuery) are automatically expanded to fully-qualified IDs required by the Provar runtime.',
|
|
81
84
|
'Step arguments: attributes are emitted as <arguments><argument id="..."><value .../></argument></arguments> — the only format the Provar runtime processes.',
|
|
82
85
|
'Shorthand XML attributes on <apiCall> are silently ignored at runtime; always supply arguments via the attributes map.',
|
|
@@ -86,41 +89,42 @@ const TOOL_DESCRIPTION = [
|
|
|
86
89
|
'ApexReadObject requires field names in attributes; omitting them produces MALFORMED_QUERY. Prefer ApexSoqlQuery.',
|
|
87
90
|
'AssertValues on SOQL results: index paths like "ResultList[0].Field" are not supported.',
|
|
88
91
|
'Use ForEach to iterate the result list, or SetValues to extract a field into a variable first.',
|
|
89
|
-
'Validation: the response
|
|
92
|
+
'Validation: when validate_after_edit=true (default) the response includes a validation field and returns TESTCASE_INVALID if the generated XML fails structural checks.',
|
|
93
|
+
'Grounding: call provar.qualityhub.examples.retrieve before generating to get corpus examples for the scenario — correct XML structure for the step types you need.',
|
|
90
94
|
].join(' ');
|
|
91
95
|
export function registerTestCaseGenerate(server, config) {
|
|
92
96
|
server.tool('provar.testcase.generate', TOOL_DESCRIPTION, {
|
|
93
97
|
test_case_name: z.string().describe('Test case name (human-readable label)'),
|
|
94
|
-
test_case_id: z
|
|
95
|
-
.string()
|
|
96
|
-
.optional()
|
|
97
|
-
.describe('Explicit test case id; auto-generated UUID v4 if omitted'),
|
|
98
|
+
test_case_id: z.string().optional().describe('Explicit test case id; auto-generated UUID v4 if omitted'),
|
|
98
99
|
steps: z.array(StepSchema).default([]).describe('Ordered list of test steps'),
|
|
99
|
-
|
|
100
|
+
target_uri: z
|
|
100
101
|
.string()
|
|
101
102
|
.optional()
|
|
102
|
-
.describe('
|
|
103
|
+
.describe('Page object URI that determines the XML nesting structure. ' +
|
|
104
|
+
'Omit or use "sf:ui:target" for Salesforce targets (flat structure). ' +
|
|
105
|
+
'Use "ui:pageobject:target?pageId=pageobjects.PageClass" for non-SF page objects — ' +
|
|
106
|
+
'steps are wrapped in a UiWithScreen element targeting that class.'),
|
|
107
|
+
output_path: z.string().optional().describe('Suggested file path for the .xml file (returned in response)'),
|
|
103
108
|
overwrite: z.boolean().default(false).describe('Overwrite if output_path file already exists'),
|
|
104
|
-
dry_run: z
|
|
109
|
+
dry_run: z.boolean().default(true).describe('true = return XML only (default); false = write to output_path'),
|
|
110
|
+
validate_after_edit: z
|
|
105
111
|
.boolean()
|
|
106
112
|
.default(true)
|
|
107
|
-
.describe('
|
|
108
|
-
|
|
109
|
-
.
|
|
110
|
-
|
|
111
|
-
.describe('Caller-provided key echoed back for deduplication tracking'),
|
|
113
|
+
.describe('Run structural validation after generation (default: true). ' +
|
|
114
|
+
'Returns TESTCASE_INVALID error if the generated XML fails validation. ' +
|
|
115
|
+
'Set false to skip validation and omit the validation field from the response.'),
|
|
116
|
+
idempotency_key: z.string().optional().describe('Caller-provided key echoed back for deduplication tracking'),
|
|
112
117
|
}, (input) => {
|
|
113
118
|
const requestId = makeRequestId();
|
|
114
119
|
log('info', 'provar.testcase.generate', {
|
|
115
120
|
requestId,
|
|
116
121
|
test_case_name: input.test_case_name,
|
|
117
122
|
dry_run: input.dry_run,
|
|
123
|
+
target_uri: input.target_uri,
|
|
118
124
|
});
|
|
119
125
|
try {
|
|
120
126
|
const xmlContent = buildTestCaseXml(input);
|
|
121
|
-
const filePath = input.output_path
|
|
122
|
-
? path.resolve(input.output_path)
|
|
123
|
-
: undefined;
|
|
127
|
+
const filePath = input.output_path ? path.resolve(input.output_path) : undefined;
|
|
124
128
|
let written = false;
|
|
125
129
|
if (filePath && !input.dry_run) {
|
|
126
130
|
assertPathAllowed(filePath, config.allowedPaths);
|
|
@@ -134,16 +138,8 @@ export function registerTestCaseGenerate(server, config) {
|
|
|
134
138
|
log('info', 'provar.testcase.generate: wrote file', { requestId, filePath });
|
|
135
139
|
}
|
|
136
140
|
const warnings = buildStepWarnings(input.steps);
|
|
137
|
-
const
|
|
138
|
-
const
|
|
139
|
-
is_valid: validationFull.is_valid,
|
|
140
|
-
validity_score: validationFull.validity_score,
|
|
141
|
-
quality_score: validationFull.quality_score,
|
|
142
|
-
error_count: validationFull.error_count,
|
|
143
|
-
warning_count: validationFull.warning_count,
|
|
144
|
-
issues: validationFull.issues,
|
|
145
|
-
};
|
|
146
|
-
const result = {
|
|
141
|
+
const runValidation = input.validate_after_edit !== false;
|
|
142
|
+
const baseResult = {
|
|
147
143
|
requestId,
|
|
148
144
|
xml_content: xmlContent,
|
|
149
145
|
file_path: filePath,
|
|
@@ -151,71 +147,104 @@ export function registerTestCaseGenerate(server, config) {
|
|
|
151
147
|
dry_run: input.dry_run,
|
|
152
148
|
step_count: input.steps.length,
|
|
153
149
|
idempotency_key: input.idempotency_key,
|
|
154
|
-
validation: validationSlim,
|
|
155
150
|
...(warnings.length > 0 ? { warnings } : {}),
|
|
156
151
|
};
|
|
152
|
+
if (runValidation) {
|
|
153
|
+
const validationFull = validateTestCase(xmlContent, input.test_case_name);
|
|
154
|
+
const validationSlim = {
|
|
155
|
+
is_valid: validationFull.is_valid,
|
|
156
|
+
validity_score: validationFull.validity_score,
|
|
157
|
+
quality_score: validationFull.quality_score,
|
|
158
|
+
error_count: validationFull.error_count,
|
|
159
|
+
warning_count: validationFull.warning_count,
|
|
160
|
+
issues: validationFull.issues,
|
|
161
|
+
};
|
|
162
|
+
if (!validationFull.is_valid) {
|
|
163
|
+
const errResult = makeError('TESTCASE_INVALID', `Generated test case failed structural validation (${validationFull.error_count} error(s)). See details.validation.`, requestId, false, { validation: validationSlim });
|
|
164
|
+
log('warn', 'provar.testcase.generate: TESTCASE_INVALID', { requestId });
|
|
165
|
+
return { isError: true, content: [{ type: 'text', text: JSON.stringify(errResult) }] };
|
|
166
|
+
}
|
|
167
|
+
const result = { ...baseResult, validation: validationSlim };
|
|
168
|
+
return {
|
|
169
|
+
content: [{ type: 'text', text: JSON.stringify(result) }],
|
|
170
|
+
structuredContent: result,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
157
173
|
return {
|
|
158
|
-
content: [{ type: 'text', text: JSON.stringify(
|
|
159
|
-
structuredContent:
|
|
174
|
+
content: [{ type: 'text', text: JSON.stringify(baseResult) }],
|
|
175
|
+
structuredContent: baseResult,
|
|
160
176
|
};
|
|
161
177
|
}
|
|
162
178
|
catch (err) {
|
|
163
179
|
const error = err;
|
|
164
|
-
const errResult = makeError(error instanceof PathPolicyError ? error.code :
|
|
180
|
+
const errResult = makeError(error instanceof PathPolicyError ? error.code : error.code ?? 'GENERATE_ERROR', error.message, requestId, false);
|
|
165
181
|
log('error', 'provar.testcase.generate failed', { requestId, error: error.message });
|
|
166
182
|
return { isError: true, content: [{ type: 'text', text: JSON.stringify(errResult) }] };
|
|
167
183
|
}
|
|
168
184
|
});
|
|
169
185
|
}
|
|
170
186
|
// ── XML builder ───────────────────────────────────────────────────────────────
|
|
171
|
-
function buildArgumentsXml(attributes) {
|
|
187
|
+
function buildArgumentsXml(attributes, baseIndent = ' ') {
|
|
172
188
|
const entries = Object.entries(attributes);
|
|
173
189
|
if (entries.length === 0)
|
|
174
190
|
return '';
|
|
175
191
|
const argLines = entries
|
|
176
|
-
.map(([k, v]) =>
|
|
177
|
-
|
|
178
|
-
|
|
192
|
+
.map(([k, v]) => `${baseIndent}<argument id="${escapeXmlAttr(k)}">\n` +
|
|
193
|
+
`${baseIndent} <value class="value" valueClass="string">${escapeXmlContent(v)}</value>\n` +
|
|
194
|
+
`${baseIndent}</argument>`)
|
|
179
195
|
.join('\n');
|
|
180
|
-
return `\n
|
|
196
|
+
return `\n${baseIndent}<arguments>\n${argLines}\n${baseIndent}</arguments>\n${baseIndent.slice(0, -2)}`;
|
|
197
|
+
}
|
|
198
|
+
function buildFlatStepXml(step, testItemId, indent) {
|
|
199
|
+
const guid = randomUUID();
|
|
200
|
+
const resolvedApiId = resolveApiId(step.api_id);
|
|
201
|
+
const argumentsXml = buildArgumentsXml(step.attributes, indent + ' ');
|
|
202
|
+
if (argumentsXml) {
|
|
203
|
+
return (`${indent}<apiCall guid="${guid}" apiId="${escapeXmlAttr(resolvedApiId)}"` +
|
|
204
|
+
` name="${escapeXmlAttr(step.name)}" testItemId="${testItemId}">${argumentsXml}</apiCall>`);
|
|
205
|
+
}
|
|
206
|
+
return (`${indent}<apiCall guid="${guid}" apiId="${escapeXmlAttr(resolvedApiId)}"` +
|
|
207
|
+
` name="${escapeXmlAttr(step.name)}" testItemId="${testItemId}"/>`);
|
|
181
208
|
}
|
|
182
209
|
function buildTestCaseXml(input) {
|
|
183
210
|
const testCaseId = input.test_case_id ?? randomUUID();
|
|
184
211
|
const testCaseGuid = randomUUID();
|
|
185
212
|
const registryId = randomUUID();
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
196
|
-
return (` <apiCall guid="${guid}" apiId="${escapeXmlAttr(resolvedApiId)}"` +
|
|
197
|
-
` name="${escapeXmlAttr(step.name)}" testItemId="${testItemId}"/>`);
|
|
198
|
-
})
|
|
199
|
-
.join('\n');
|
|
213
|
+
let stepLines;
|
|
214
|
+
const isNonSf = !!input.target_uri && input.target_uri.startsWith('ui:');
|
|
215
|
+
if (isNonSf && input.target_uri) {
|
|
216
|
+
stepLines = buildUiWithScreenXml(input.steps, input.target_uri);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
const lines = input.steps.map((step, i) => buildFlatStepXml(step, i + 1, ' ')).join('\n');
|
|
220
|
+
stepLines = lines || ' <!-- TODO: Add test steps here -->';
|
|
221
|
+
}
|
|
200
222
|
return ('<?xml version="1.0" encoding="UTF-8"?>\n' +
|
|
201
223
|
`<testCase id="${testCaseId}" guid="${testCaseGuid}" registryId="${registryId}"` +
|
|
202
224
|
` name="${escapeXmlAttr(input.test_case_name)}">\n` +
|
|
203
225
|
' <steps>\n' +
|
|
204
|
-
|
|
226
|
+
stepLines +
|
|
205
227
|
'\n </steps>\n' +
|
|
206
228
|
'</testCase>\n');
|
|
207
229
|
}
|
|
230
|
+
function buildUiWithScreenXml(steps, targetUri) {
|
|
231
|
+
const wrapperGuid = randomUUID();
|
|
232
|
+
const wrapperApiId = resolveApiId('UiWithScreen');
|
|
233
|
+
// Inner steps use testItemIds starting at 3; the substeps clause itself occupies testItemId=2
|
|
234
|
+
const innerLines = steps.map((step, i) => buildFlatStepXml(step, i + 3, ' ')).join('\n');
|
|
235
|
+
const stepsContent = innerLines ? `\n${innerLines}\n ` : '';
|
|
236
|
+
const clausesXml = '\n <clauses>\n' +
|
|
237
|
+
' <clause name="substeps" testItemId="2">\n' +
|
|
238
|
+
` <steps>${stepsContent}</steps>\n` +
|
|
239
|
+
' </clause>\n' +
|
|
240
|
+
' </clauses>\n ';
|
|
241
|
+
return (` <apiCall guid="${wrapperGuid}" apiId="${wrapperApiId}"` +
|
|
242
|
+
` name="With page" testItemId="1">${buildArgumentsXml({ target: targetUri }).trimEnd()}${clausesXml}</apiCall>`);
|
|
243
|
+
}
|
|
208
244
|
function escapeXmlAttr(value) {
|
|
209
|
-
return value
|
|
210
|
-
.replace(/&/g, '&')
|
|
211
|
-
.replace(/"/g, '"')
|
|
212
|
-
.replace(/</g, '<')
|
|
213
|
-
.replace(/>/g, '>');
|
|
245
|
+
return value.replace(/&/g, '&').replace(/"/g, '"').replace(/</g, '<').replace(/>/g, '>');
|
|
214
246
|
}
|
|
215
247
|
function escapeXmlContent(value) {
|
|
216
|
-
return value
|
|
217
|
-
.replace(/&/g, '&')
|
|
218
|
-
.replace(/</g, '<')
|
|
219
|
-
.replace(/>/g, '>');
|
|
248
|
+
return value.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
220
249
|
}
|
|
221
250
|
//# sourceMappingURL=testCaseGenerate.js.map
|