@provartesting/provardx-cli 1.5.0-dev.2 → 1.5.1
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 +163 -12
- package/bin/mcp-start.js +74 -0
- 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/commands/provar/mcp/start.d.ts +2 -0
- package/lib/commands/provar/mcp/start.js +14 -1
- package/lib/commands/provar/mcp/start.js.map +1 -1
- package/lib/mcp/docs/NITROX_CATALOG_SOURCE.json +6 -0
- package/lib/mcp/docs/NITROX_COMPONENT_CATALOG.md +2001 -0
- package/lib/mcp/docs/PROVAR_TEST_STEP_REFERENCE.md +1430 -0
- package/lib/mcp/docs/PROVAR_TOOL_GUIDE.md +187 -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 +1 -73
- 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/guidePrompts.d.ts +4 -0
- package/lib/mcp/prompts/guidePrompts.js +334 -0
- package/lib/mcp/prompts/guidePrompts.js.map +1 -0
- package/lib/mcp/prompts/index.d.ts +2 -0
- package/lib/mcp/prompts/index.js +23 -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 +58 -3
- package/lib/mcp/security/pathPolicy.js.map +1 -1
- package/lib/mcp/server.d.ts +18 -0
- package/lib/mcp/server.js +232 -19
- package/lib/mcp/server.js.map +1 -1
- package/lib/mcp/tools/antTools.d.ts +15 -0
- package/lib/mcp/tools/antTools.js +369 -170
- package/lib/mcp/tools/antTools.js.map +1 -1
- package/lib/mcp/tools/automationTools.d.ts +18 -8
- package/lib/mcp/tools/automationTools.js +333 -176
- 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 +242 -0
- package/lib/mcp/tools/connectionTools.js.map +1 -0
- package/lib/mcp/tools/defectTools.d.ts +1 -1
- package/lib/mcp/tools/defectTools.js +61 -50
- package/lib/mcp/tools/defectTools.js.map +1 -1
- package/lib/mcp/tools/descHelper.d.ts +5 -0
- package/lib/mcp/tools/descHelper.js +14 -0
- package/lib/mcp/tools/descHelper.js.map +1 -0
- package/lib/mcp/tools/hierarchyValidate.d.ts +1 -1
- package/lib/mcp/tools/hierarchyValidate.js +127 -42
- package/lib/mcp/tools/hierarchyValidate.js.map +1 -1
- package/lib/mcp/tools/nitroXTools.d.ts +23 -0
- package/lib/mcp/tools/nitroXTools.js +863 -0
- package/lib/mcp/tools/nitroXTools.js.map +1 -0
- package/lib/mcp/tools/pageObjectGenerate.js +150 -57
- package/lib/mcp/tools/pageObjectGenerate.js.map +1 -1
- package/lib/mcp/tools/pageObjectValidate.js +143 -46
- package/lib/mcp/tools/pageObjectValidate.js.map +1 -1
- package/lib/mcp/tools/projectInspect.js +79 -32
- package/lib/mcp/tools/projectInspect.js.map +1 -1
- package/lib/mcp/tools/projectValidateFromPath.js +185 -58
- package/lib/mcp/tools/projectValidateFromPath.js.map +1 -1
- package/lib/mcp/tools/propertiesTools.d.ts +2 -0
- package/lib/mcp/tools/propertiesTools.js +358 -78
- package/lib/mcp/tools/propertiesTools.js.map +1 -1
- package/lib/mcp/tools/qualityHubApiTools.d.ts +3 -0
- package/lib/mcp/tools/qualityHubApiTools.js +139 -0
- package/lib/mcp/tools/qualityHubApiTools.js.map +1 -0
- package/lib/mcp/tools/qualityHubTools.js +292 -72
- package/lib/mcp/tools/qualityHubTools.js.map +1 -1
- package/lib/mcp/tools/rcaTools.d.ts +3 -2
- package/lib/mcp/tools/rcaTools.js +194 -56
- package/lib/mcp/tools/rcaTools.js.map +1 -1
- package/lib/mcp/tools/sfSpawn.d.ts +25 -3
- package/lib/mcp/tools/sfSpawn.js +154 -6
- package/lib/mcp/tools/sfSpawn.js.map +1 -1
- package/lib/mcp/tools/testCaseGenerate.js +285 -78
- package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
- package/lib/mcp/tools/testCaseStepTools.d.ts +4 -0
- package/lib/mcp/tools/testCaseStepTools.js +244 -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 +381 -46
- package/lib/mcp/tools/testCaseValidate.js.map +1 -1
- package/lib/mcp/tools/testPlanTools.d.ts +1 -0
- package/lib/mcp/tools/testPlanTools.js +316 -59
- package/lib/mcp/tools/testPlanTools.js.map +1 -1
- package/lib/mcp/tools/testPlanValidate.js +114 -23
- package/lib/mcp/tools/testPlanValidate.js.map +1 -1
- package/lib/mcp/tools/testSuiteValidate.js +130 -15
- package/lib/mcp/tools/testSuiteValidate.js.map +1 -1
- package/lib/mcp/update/updateChecker.d.ts +14 -0
- package/lib/mcp/update/updateChecker.js +228 -0
- package/lib/mcp/update/updateChecker.js.map +1 -0
- package/lib/mcp/utils/detailLevel.d.ts +9 -0
- package/lib/mcp/utils/detailLevel.js +20 -0
- package/lib/mcp/utils/detailLevel.js.map +1 -0
- package/lib/mcp/utils/fieldMask.d.ts +17 -0
- package/lib/mcp/utils/fieldMask.js +75 -0
- package/lib/mcp/utils/fieldMask.js.map +1 -0
- package/lib/mcp/utils/tokenMeta.d.ts +40 -0
- package/lib/mcp/utils/tokenMeta.js +90 -0
- package/lib/mcp/utils/tokenMeta.js.map +1 -0
- package/lib/mcp/utils/validationDiff.d.ts +57 -0
- package/lib/mcp/utils/validationDiff.js +191 -0
- package/lib/mcp/utils/validationDiff.js.map +1 -0
- package/lib/mcp/utils/validationScore.d.ts +15 -0
- package/lib/mcp/utils/validationScore.js +31 -0
- package/lib/mcp/utils/validationScore.js.map +1 -0
- 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/projectValidation.d.ts +5 -2
- package/lib/services/projectValidation.js +83 -31
- package/lib/services/projectValidation.js.map +1 -1
- 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/messages/sf.provar.mcp.start.md +83 -48
- package/oclif.manifest.json +325 -28
- package/package.json +35 -12
|
@@ -11,25 +11,45 @@ import { z } from 'zod';
|
|
|
11
11
|
import { assertPathAllowed, PathPolicyError } from '../security/pathPolicy.js';
|
|
12
12
|
import { makeError, makeRequestId } from '../schemas/common.js';
|
|
13
13
|
import { log } from '../logging/logger.js';
|
|
14
|
+
import { applyDetailLevel } from '../utils/detailLevel.js';
|
|
15
|
+
import { maskFields, parseFieldsParam } from '../utils/fieldMask.js';
|
|
16
|
+
import { desc } from './descHelper.js';
|
|
17
|
+
const INSPECT_SUMMARY_FIELDS = ['requestId', 'project_path', 'provar_home', 'summary'];
|
|
14
18
|
export function registerProjectInspect(server, config) {
|
|
15
|
-
server.
|
|
16
|
-
'Inspect
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
server.registerTool('provar_project_inspect', {
|
|
20
|
+
title: 'Inspect Project',
|
|
21
|
+
description: desc([
|
|
22
|
+
'Inspect a Provar project folder and return a structured inventory.',
|
|
23
|
+
'Returns: provardx-properties.json config files (for ProvarDX CLI runs),',
|
|
24
|
+
'ANT build files (build.xml etc in ANT/ dirs, for CLI/pipeline runs),',
|
|
25
|
+
'source page object directories with Java file counts (src/pageobjects — compiled bin/ dirs excluded),',
|
|
26
|
+
'.testcase files found recursively under tests/,',
|
|
27
|
+
'count of custom test step files in src/customapis/,',
|
|
28
|
+
'count of data source files (CSV/XLSX/JSON) in data/ and templates/ dirs,',
|
|
29
|
+
'test plan coverage showing which test cases are covered vs uncovered,',
|
|
30
|
+
'and connection + environment overview parsed from the .testproject file',
|
|
31
|
+
'(Salesforce, UI Testing, Web Services, Quality Hub, Database, and other connection types).',
|
|
32
|
+
].join(' '), 'Inspect a Provar project and return inventory of files, plans, and connections.'),
|
|
33
|
+
inputSchema: {
|
|
34
|
+
project_path: z
|
|
35
|
+
.string()
|
|
36
|
+
.describe(desc('Absolute or relative path to the Provar project root directory', 'string, absolute path to project root')),
|
|
37
|
+
detail: z
|
|
38
|
+
.enum(['summary', 'standard', 'full'])
|
|
39
|
+
.optional()
|
|
40
|
+
.default('standard')
|
|
41
|
+
.describe(desc('Response verbosity: "summary" returns only requestId, project_path, provar_home, and the summary object; ' +
|
|
42
|
+
'"standard" (default) returns the full inventory; "full" is identical to standard for this tool.', 'enum summary|standard|full, optional; default standard')),
|
|
43
|
+
fields: z
|
|
44
|
+
.string()
|
|
45
|
+
.optional()
|
|
46
|
+
.describe(desc('Comma-separated list of top-level keys to retain (e.g. "test_case_files,summary"). ' +
|
|
47
|
+
'Supports dot notation for nested filtering (e.g. "test_project.connections"). ' +
|
|
48
|
+
'Unknown field names are silently ignored. Applied after the detail filter.', 'string, optional; comma-separated keys to keep (supports dot notation)')),
|
|
49
|
+
},
|
|
50
|
+
}, ({ project_path, detail, fields }) => {
|
|
31
51
|
const requestId = makeRequestId();
|
|
32
|
-
log('info', '
|
|
52
|
+
log('info', 'provar_project_inspect', { requestId, project_path });
|
|
33
53
|
try {
|
|
34
54
|
assertPathAllowed(project_path, config.allowedPaths);
|
|
35
55
|
const resolved = path.resolve(project_path);
|
|
@@ -37,7 +57,15 @@ export function registerProjectInspect(server, config) {
|
|
|
37
57
|
const err = makeError('PATH_NOT_FOUND', `Project path does not exist: ${resolved}`, requestId);
|
|
38
58
|
return { isError: true, content: [{ type: 'text', text: JSON.stringify(err) }] };
|
|
39
59
|
}
|
|
40
|
-
|
|
60
|
+
let result = buildProjectInventory(resolved, requestId);
|
|
61
|
+
const detailLevel = (detail ?? 'standard');
|
|
62
|
+
if (detailLevel !== 'standard') {
|
|
63
|
+
result = applyDetailLevel(result, detailLevel, INSPECT_SUMMARY_FIELDS);
|
|
64
|
+
}
|
|
65
|
+
const fieldList = parseFieldsParam(fields);
|
|
66
|
+
if (fieldList) {
|
|
67
|
+
result = maskFields(result, fieldList);
|
|
68
|
+
}
|
|
41
69
|
return {
|
|
42
70
|
content: [{ type: 'text', text: JSON.stringify(result) }],
|
|
43
71
|
structuredContent: result,
|
|
@@ -45,8 +73,8 @@ export function registerProjectInspect(server, config) {
|
|
|
45
73
|
}
|
|
46
74
|
catch (err) {
|
|
47
75
|
const error = err;
|
|
48
|
-
const errResult = makeError(error instanceof PathPolicyError ? error.code :
|
|
49
|
-
log('error', '
|
|
76
|
+
const errResult = makeError(error instanceof PathPolicyError ? error.code : error.code ?? 'INSPECT_ERROR', error.message, requestId, false);
|
|
77
|
+
log('error', 'provar_project_inspect failed', { requestId, error: error.message });
|
|
50
78
|
return { isError: true, content: [{ type: 'text', text: JSON.stringify(errResult) }] };
|
|
51
79
|
}
|
|
52
80
|
});
|
|
@@ -216,7 +244,9 @@ function validateSecretsFile(projectPath, testProject) {
|
|
|
216
244
|
if (match?.[1])
|
|
217
245
|
secretsRelPath = match[1].trim();
|
|
218
246
|
}
|
|
219
|
-
catch {
|
|
247
|
+
catch {
|
|
248
|
+
/* use default */
|
|
249
|
+
}
|
|
220
250
|
}
|
|
221
251
|
const notFound = {
|
|
222
252
|
secrets_file: secretsRelPath,
|
|
@@ -386,10 +416,13 @@ function categoriseConnection(result, className, name, urls) {
|
|
|
386
416
|
// ── SF environment (org type) ─────────────────────────────────────────
|
|
387
417
|
const envMatch = primaryUrl.match(/(?:^|;)environment=([^;]+)/);
|
|
388
418
|
const envValue = envMatch?.[1]?.toUpperCase();
|
|
389
|
-
const sfEnvironment = envValue === 'SANDBOX'
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
419
|
+
const sfEnvironment = envValue === 'SANDBOX'
|
|
420
|
+
? 'sandbox'
|
|
421
|
+
: envValue === 'PROD_DEV'
|
|
422
|
+
? 'production-developer'
|
|
423
|
+
: envValue
|
|
424
|
+
? 'other'
|
|
425
|
+
: null;
|
|
393
426
|
result.salesforce.push({
|
|
394
427
|
name,
|
|
395
428
|
sub_type: subType,
|
|
@@ -483,11 +516,15 @@ function buildProjectTestCaseIdMap(projectPath) {
|
|
|
483
516
|
idMap.set(m[1], rel);
|
|
484
517
|
}
|
|
485
518
|
}
|
|
486
|
-
catch {
|
|
519
|
+
catch {
|
|
520
|
+
/* skip */
|
|
521
|
+
}
|
|
487
522
|
}
|
|
488
523
|
}
|
|
489
524
|
}
|
|
490
|
-
catch {
|
|
525
|
+
catch {
|
|
526
|
+
/* skip */
|
|
527
|
+
}
|
|
491
528
|
}
|
|
492
529
|
walk(testsDir);
|
|
493
530
|
return idMap;
|
|
@@ -551,7 +588,9 @@ function buildPlanCoverage(projectPath, allTestCasePaths) {
|
|
|
551
588
|
referencedPaths.add(resolvedPath);
|
|
552
589
|
}
|
|
553
590
|
}
|
|
554
|
-
catch {
|
|
591
|
+
catch {
|
|
592
|
+
/* skip */
|
|
593
|
+
}
|
|
555
594
|
return true;
|
|
556
595
|
}
|
|
557
596
|
return true;
|
|
@@ -584,7 +623,9 @@ function detectProvarHome(projectPath, provardxFiles, antFiles) {
|
|
|
584
623
|
return { provarHome: props['provarHome'], provarHomeSource: `provardx-properties.json (${rel})` };
|
|
585
624
|
}
|
|
586
625
|
}
|
|
587
|
-
catch {
|
|
626
|
+
catch {
|
|
627
|
+
/* skip */
|
|
628
|
+
}
|
|
588
629
|
}
|
|
589
630
|
// 3. ANT build.xml — <property name="provarHome" value="..." />
|
|
590
631
|
for (const rel of antFiles) {
|
|
@@ -597,7 +638,9 @@ function detectProvarHome(projectPath, provardxFiles, antFiles) {
|
|
|
597
638
|
if (match?.[1])
|
|
598
639
|
return { provarHome: match[1], provarHomeSource: `ANT build file (${rel})` };
|
|
599
640
|
}
|
|
600
|
-
catch {
|
|
641
|
+
catch {
|
|
642
|
+
/* skip */
|
|
643
|
+
}
|
|
601
644
|
}
|
|
602
645
|
return { provarHome: null, provarHomeSource: null };
|
|
603
646
|
}
|
|
@@ -615,7 +658,9 @@ function getTopLevelTestSuites(projectPath) {
|
|
|
615
658
|
suites.push(`${candidate}/${entry.name}`);
|
|
616
659
|
}
|
|
617
660
|
}
|
|
618
|
-
catch {
|
|
661
|
+
catch {
|
|
662
|
+
/* skip */
|
|
663
|
+
}
|
|
619
664
|
break;
|
|
620
665
|
}
|
|
621
666
|
return suites;
|
|
@@ -643,7 +688,9 @@ function countFilesRecursive(dir, filter) {
|
|
|
643
688
|
}
|
|
644
689
|
}
|
|
645
690
|
}
|
|
646
|
-
catch {
|
|
691
|
+
catch {
|
|
692
|
+
/* skip */
|
|
693
|
+
}
|
|
647
694
|
return count;
|
|
648
695
|
}
|
|
649
696
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectInspect.js","sourceRoot":"","sources":["../../../src/mcp/tools/projectInspect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projectInspect.js","sourceRoot":"","sources":["../../../src/mcp/tools/projectInspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,14 +5,41 @@
|
|
|
5
5
|
* For full license text, see LICENSE.md file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
6
|
*/
|
|
7
7
|
/* eslint-disable camelcase */
|
|
8
|
+
import path from 'node:path';
|
|
8
9
|
import { z } from 'zod';
|
|
9
10
|
import { assertPathAllowed, PathPolicyError } from '../security/pathPolicy.js';
|
|
10
11
|
import { makeError, makeRequestId } from '../schemas/common.js';
|
|
11
12
|
import { log } from '../logging/logger.js';
|
|
12
13
|
import { validateProjectFromPath, ProjectValidationError } from '../../services/projectValidation.js';
|
|
14
|
+
import { applyDetailLevel } from '../utils/detailLevel.js';
|
|
15
|
+
import { calcCompletenessScore, calcNextAction } from '../utils/validationScore.js';
|
|
16
|
+
import { generateRunId, saveRun, hasAnyRun, loadBaselineViolations, computeDiff, computeContextHash, } from '../utils/validationDiff.js';
|
|
17
|
+
import { desc } from './descHelper.js';
|
|
18
|
+
function countAllProjectViolations(result) {
|
|
19
|
+
// Note: ValidatedTestCase does not carry best_practices_violations at the project
|
|
20
|
+
// layer (intentional — bp surfaces via the testcase tool). The count here covers
|
|
21
|
+
// every violation visible at project/plan/suite/child_suite level plus per-tc
|
|
22
|
+
// structural issues, which is what the stop-decision safety hedge needs.
|
|
23
|
+
let total = result.project_violations.length;
|
|
24
|
+
for (const plan of result.plans) {
|
|
25
|
+
total += plan.violations.length;
|
|
26
|
+
for (const suite of plan.suites) {
|
|
27
|
+
total += suite.violations.length;
|
|
28
|
+
for (const tc of suite.test_cases) {
|
|
29
|
+
total += tc.issues.length;
|
|
30
|
+
}
|
|
31
|
+
for (const cs of suite.child_suites) {
|
|
32
|
+
total += cs.violations.length;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
for (const utc of plan.unplanned_test_cases) {
|
|
36
|
+
total += utc.issues.length;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return total;
|
|
40
|
+
}
|
|
13
41
|
function buildPlanSummary(plan) {
|
|
14
|
-
const test_case_count = plan.suites.reduce((n, s) => n + s.test_cases.length, 0)
|
|
15
|
-
+ plan.unplanned_test_cases.length;
|
|
42
|
+
const test_case_count = plan.suites.reduce((n, s) => n + s.test_cases.length, 0) + plan.unplanned_test_cases.length;
|
|
16
43
|
return {
|
|
17
44
|
name: plan.name,
|
|
18
45
|
quality_score: plan.quality_score,
|
|
@@ -41,9 +68,7 @@ function shapeResponse(result, includePlanDetails, maxUncovered, maxViolations)
|
|
|
41
68
|
const coverage = {
|
|
42
69
|
...coverageRest,
|
|
43
70
|
uncovered_test_cases: uncovered_shown,
|
|
44
|
-
...(uncovered_truncated
|
|
45
|
-
? { uncovered_truncated: true, uncovered_total: uncovered_test_cases.length }
|
|
46
|
-
: {}),
|
|
71
|
+
...(uncovered_truncated ? { uncovered_truncated: true, uncovered_total: uncovered_test_cases.length } : {}),
|
|
47
72
|
};
|
|
48
73
|
if (includePlanDetails) {
|
|
49
74
|
const projViolationsShown = result.project_violations.slice(0, maxViolations);
|
|
@@ -69,57 +94,112 @@ function shapeResponse(result, includePlanDetails, maxUncovered, maxViolations)
|
|
|
69
94
|
coverage,
|
|
70
95
|
saved_to: result.saved_to,
|
|
71
96
|
...(result.save_error ? { save_error: result.save_error } : {}),
|
|
97
|
+
...(result.plan_integrity_warnings && result.plan_integrity_warnings.length > 0
|
|
98
|
+
? { plan_integrity_warnings: result.plan_integrity_warnings }
|
|
99
|
+
: {}),
|
|
72
100
|
hint: 'Set include_plan_details:true to get per-suite/test-case violations. project_violations and plan violations are grouped by rule_id in this view.',
|
|
73
101
|
};
|
|
74
102
|
}
|
|
103
|
+
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
104
|
+
function classifyError(err) {
|
|
105
|
+
if (err instanceof PathPolicyError || err instanceof ProjectValidationError) {
|
|
106
|
+
return { code: err.code, isUserError: true };
|
|
107
|
+
}
|
|
108
|
+
return { code: err.code ?? 'VALIDATE_ERROR', isUserError: false };
|
|
109
|
+
}
|
|
75
110
|
// ── Tool registration ─────────────────────────────────────────────────────────
|
|
111
|
+
const PROJECT_VALIDATE_SUMMARY_FIELDS = [
|
|
112
|
+
'requestId',
|
|
113
|
+
'project_path',
|
|
114
|
+
'project_name',
|
|
115
|
+
'quality_score',
|
|
116
|
+
'quality_tier',
|
|
117
|
+
'saved_to',
|
|
118
|
+
'run_id',
|
|
119
|
+
'completeness_score',
|
|
120
|
+
'recommended_next_action',
|
|
121
|
+
];
|
|
76
122
|
export function registerProjectValidateFromPath(server, config) {
|
|
77
|
-
server.
|
|
78
|
-
'Validate
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
123
|
+
server.registerTool('provar_project_validate', {
|
|
124
|
+
title: 'Validate Project',
|
|
125
|
+
description: desc([
|
|
126
|
+
'Validate a Provar project directly from its directory on disk.',
|
|
127
|
+
'Reads the plan/suite/testinstance hierarchy from the plans/ directory,',
|
|
128
|
+
'resolves test case XML from the tests/ directory, extracts project context',
|
|
129
|
+
'(connections, environments, secrets) from the .testproject file, then runs',
|
|
130
|
+
'the full validation rule set.',
|
|
131
|
+
'Returns a compact quality score, violation summary, and per-plan/suite scores.',
|
|
132
|
+
'By default returns a slim summary response to avoid token explosion.',
|
|
133
|
+
'Pass include_plan_details:true or detail:full to get full per-suite and per-test-case data.',
|
|
134
|
+
'By default saves a QH-compatible JSON report to',
|
|
135
|
+
'{project_path}/provardx/validation/ (created if absent).',
|
|
136
|
+
'Plan integrity: if any plan or suite directory is missing a .planitem file, the response includes a plan_integrity_warnings array.',
|
|
137
|
+
'Test instances in those directories are silently ignored by the Provar runner — fix these before running tests.',
|
|
138
|
+
'Every response includes run_id — pass it as baseline_run_id in the next call to receive only new/resolved violations.',
|
|
139
|
+
'IMPORTANT: Use this tool for whole-project validation —',
|
|
140
|
+
'DO NOT read individual test case files and pass XML content inline.',
|
|
141
|
+
'Pass a project_path and let this tool handle all file reading.',
|
|
142
|
+
].join(' '), 'Validate a Provar project from disk; quality score, violation summary, run_id for diff.'),
|
|
143
|
+
inputSchema: {
|
|
144
|
+
project_path: z
|
|
145
|
+
.string()
|
|
146
|
+
.describe(desc('Absolute path to the Provar project root (the directory containing the .testproject file)', 'string, absolute path to project root')),
|
|
147
|
+
quality_threshold: z
|
|
148
|
+
.number()
|
|
149
|
+
.min(0)
|
|
150
|
+
.max(100)
|
|
151
|
+
.optional()
|
|
152
|
+
.default(80)
|
|
153
|
+
.describe(desc('Minimum quality score for a test case to be considered valid (default: 80)', 'number 0–100, optional; minimum quality score threshold')),
|
|
154
|
+
save_results: z
|
|
155
|
+
.boolean()
|
|
156
|
+
.optional()
|
|
157
|
+
.default(true)
|
|
158
|
+
.describe(desc('Write a QH-compatible JSON report to provardx/validation/ (default: true)', 'bool, optional; default true, write report to disk')),
|
|
159
|
+
results_dir: z
|
|
160
|
+
.string()
|
|
161
|
+
.optional()
|
|
162
|
+
.describe(desc('Override the output directory for the saved report (default: {project_path}/provardx/validation)', 'string, optional; override report output dir')),
|
|
163
|
+
include_plan_details: z
|
|
164
|
+
.boolean()
|
|
165
|
+
.optional()
|
|
166
|
+
.default(false)
|
|
167
|
+
.describe(desc('@deprecated — use detail="full" instead. When true, include full per-suite and per-test-case violation data in the response. ' +
|
|
168
|
+
'Default false to keep response small.', 'bool, optional, @deprecated; use detail="full" instead')),
|
|
169
|
+
max_uncovered: z
|
|
170
|
+
.number()
|
|
171
|
+
.int()
|
|
172
|
+
.min(0)
|
|
173
|
+
.optional()
|
|
174
|
+
.default(20)
|
|
175
|
+
.describe(desc('@deprecated — no replacement; response is automatically scoped by detail level. Maximum number of uncovered test case paths to include in the response (default: 20).', 'int ≥0, optional, @deprecated; auto-scoped by detail')),
|
|
176
|
+
max_violations: z
|
|
177
|
+
.number()
|
|
178
|
+
.int()
|
|
179
|
+
.min(0)
|
|
180
|
+
.optional()
|
|
181
|
+
.default(50)
|
|
182
|
+
.describe(desc('@deprecated — no replacement; response is automatically scoped by detail level. When include_plan_details:true, caps project_violations returned (default: 50).', 'int ≥0, optional, @deprecated; auto-scoped by detail')),
|
|
183
|
+
detail: z
|
|
184
|
+
.enum(['summary', 'standard', 'full'])
|
|
185
|
+
.optional()
|
|
186
|
+
.default('standard')
|
|
187
|
+
.describe('Response verbosity. "summary": key scores and stop signal only. "standard": slim violation summary (default). "full": full per-suite and per-test-case data (implies include_plan_details:true).'),
|
|
188
|
+
baseline_run_id: z
|
|
189
|
+
.string()
|
|
190
|
+
.optional()
|
|
191
|
+
.describe('run_id from a previous call. When provided, returns only project-level violations that are new or resolved since that run: { added, resolved, unchanged_count, run_id }. If not found, returns error BASELINE_NOT_FOUND.'),
|
|
192
|
+
},
|
|
193
|
+
}, ({ project_path, quality_threshold, save_results, results_dir, include_plan_details, max_uncovered, max_violations, detail, baseline_run_id, }) => {
|
|
117
194
|
const requestId = makeRequestId();
|
|
118
|
-
log('info', '
|
|
195
|
+
log('info', 'provar_project_validate', { requestId, project_path, include_plan_details });
|
|
119
196
|
try {
|
|
120
197
|
assertPathAllowed(project_path, config.allowedPaths);
|
|
121
198
|
if (results_dir)
|
|
122
199
|
assertPathAllowed(results_dir, config.allowedPaths);
|
|
200
|
+
const storageDir = results_dir ?? path.join(project_path, 'provardx', 'validation');
|
|
201
|
+
const contextHash = computeContextHash('project', project_path);
|
|
202
|
+
const runId = generateRunId(project_path);
|
|
123
203
|
const result = validateProjectFromPath({
|
|
124
204
|
project_path,
|
|
125
205
|
quality_threshold,
|
|
@@ -127,25 +207,72 @@ export function registerProjectValidateFromPath(server, config) {
|
|
|
127
207
|
results_dir,
|
|
128
208
|
});
|
|
129
209
|
if (result.save_error) {
|
|
130
|
-
log('warn', '
|
|
210
|
+
log('warn', 'provar_project_validate: could not save results', { requestId, error: result.save_error });
|
|
131
211
|
}
|
|
132
|
-
const
|
|
133
|
-
const
|
|
212
|
+
const currentViolations = result.project_violations;
|
|
213
|
+
const allLevelViolationCount = countAllProjectViolations(result);
|
|
214
|
+
// Read baseline and history regardless of save_results — save_results controls
|
|
215
|
+
// whether the CURRENT run is persisted, not whether existing runs can be read.
|
|
216
|
+
// Load baseline BEFORE saving to prevent eviction of the requested baseline.
|
|
217
|
+
const baseline = baseline_run_id !== undefined && baseline_run_id !== ''
|
|
218
|
+
? loadBaselineViolations(storageDir, baseline_run_id, contextHash)
|
|
219
|
+
: null;
|
|
220
|
+
const hasBaseline = hasAnyRun(storageDir);
|
|
221
|
+
if (save_results !== false) {
|
|
222
|
+
try {
|
|
223
|
+
saveRun(storageDir, runId, currentViolations, contextHash);
|
|
224
|
+
}
|
|
225
|
+
catch (saveErr) {
|
|
226
|
+
log('warn', 'provar_project_validate: could not save run for diff', {
|
|
227
|
+
requestId,
|
|
228
|
+
error: saveErr.message,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// Diff mode
|
|
233
|
+
if (baseline_run_id !== undefined && baseline_run_id !== '') {
|
|
234
|
+
if (!baseline) {
|
|
235
|
+
const errResult = makeError('BASELINE_NOT_FOUND', 'Baseline run not found. Run validation without baseline_run_id first to establish a baseline.', requestId, false, { suggestion: 'Run provar_project_validate without baseline_run_id first to establish a baseline.' });
|
|
236
|
+
return { isError: true, content: [{ type: 'text', text: JSON.stringify(errResult) }] };
|
|
237
|
+
}
|
|
238
|
+
const diff = computeDiff(baseline, currentViolations);
|
|
239
|
+
const completeness_score = calcCompletenessScore(result.summary.test_cases_valid, result.summary.total_test_cases);
|
|
240
|
+
const recommended_next_action = calcNextAction(completeness_score, true, allLevelViolationCount);
|
|
241
|
+
const diffResponse = {
|
|
242
|
+
requestId,
|
|
243
|
+
...(save_results !== false ? { run_id: runId } : {}),
|
|
244
|
+
...diff,
|
|
245
|
+
completeness_score,
|
|
246
|
+
recommended_next_action,
|
|
247
|
+
};
|
|
248
|
+
return {
|
|
249
|
+
content: [{ type: 'text', text: JSON.stringify(diffResponse) }],
|
|
250
|
+
structuredContent: diffResponse,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
const completeness_score = calcCompletenessScore(result.summary.test_cases_valid, result.summary.total_test_cases);
|
|
254
|
+
const recommended_next_action = calcNextAction(completeness_score, hasBaseline, allLevelViolationCount);
|
|
255
|
+
const usePlanDetails = include_plan_details || detail === 'full';
|
|
256
|
+
const shaped = shapeResponse(result, usePlanDetails, max_uncovered, max_violations);
|
|
257
|
+
const response = {
|
|
258
|
+
requestId,
|
|
259
|
+
...(save_results !== false ? { run_id: runId } : {}),
|
|
260
|
+
completeness_score,
|
|
261
|
+
recommended_next_action,
|
|
262
|
+
...shaped,
|
|
263
|
+
};
|
|
264
|
+
const detailLevel = (detail ?? 'standard');
|
|
265
|
+
const finalResponse = applyDetailLevel(response, detailLevel, PROJECT_VALIDATE_SUMMARY_FIELDS);
|
|
134
266
|
return {
|
|
135
|
-
content: [{ type: 'text', text: JSON.stringify(
|
|
136
|
-
structuredContent:
|
|
267
|
+
content: [{ type: 'text', text: JSON.stringify(finalResponse) }],
|
|
268
|
+
structuredContent: finalResponse,
|
|
137
269
|
};
|
|
138
270
|
}
|
|
139
271
|
catch (err) {
|
|
140
272
|
const error = err;
|
|
141
|
-
const code = error
|
|
142
|
-
? error.code
|
|
143
|
-
: error instanceof ProjectValidationError
|
|
144
|
-
? error.code
|
|
145
|
-
: (error.code ?? 'VALIDATE_ERROR');
|
|
146
|
-
const isUserError = error instanceof PathPolicyError || error instanceof ProjectValidationError;
|
|
273
|
+
const { code, isUserError } = classifyError(error);
|
|
147
274
|
const errResult = makeError(code, error.message, requestId, !isUserError);
|
|
148
|
-
log('error', '
|
|
275
|
+
log('error', 'provar_project_validate failed', { requestId, error: error.message });
|
|
149
276
|
return { isError: true, content: [{ type: 'text', text: JSON.stringify(errResult) }] };
|
|
150
277
|
}
|
|
151
278
|
});
|