@provartesting/provardx-cli 1.5.0 → 1.5.2-beta.2
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/lib/mcp/docs/PROVAR_TOOL_GUIDE.md +18 -6
- package/lib/mcp/prompts/guidePrompts.js +21 -11
- package/lib/mcp/prompts/guidePrompts.js.map +1 -1
- package/lib/mcp/rules/provar_best_practices_rules.json +29 -0
- package/lib/mcp/server.d.ts +1 -0
- package/lib/mcp/server.js +90 -21
- package/lib/mcp/server.js.map +1 -1
- package/lib/mcp/tools/antTools.d.ts +20 -0
- package/lib/mcp/tools/antTools.js +105 -41
- package/lib/mcp/tools/antTools.js.map +1 -1
- package/lib/mcp/tools/automationTools.js +65 -35
- package/lib/mcp/tools/automationTools.js.map +1 -1
- package/lib/mcp/tools/bestPracticesEngine.js +148 -9
- package/lib/mcp/tools/bestPracticesEngine.js.map +1 -1
- package/lib/mcp/tools/connectionTools.js +100 -30
- package/lib/mcp/tools/connectionTools.js.map +1 -1
- package/lib/mcp/tools/defectTools.js +12 -7
- 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/nitroXTools.js +72 -32
- package/lib/mcp/tools/nitroXTools.js.map +1 -1
- package/lib/mcp/tools/orgDescribeTools.d.ts +57 -0
- package/lib/mcp/tools/orgDescribeTools.js +329 -0
- package/lib/mcp/tools/orgDescribeTools.js.map +1 -0
- package/lib/mcp/tools/pageObjectGenerate.js +33 -15
- package/lib/mcp/tools/pageObjectGenerate.js.map +1 -1
- package/lib/mcp/tools/pageObjectValidate.js +11 -4
- package/lib/mcp/tools/pageObjectValidate.js.map +1 -1
- package/lib/mcp/tools/projectInspect.js +31 -5
- package/lib/mcp/tools/projectInspect.js.map +1 -1
- package/lib/mcp/tools/projectValidateFromPath.js +128 -22
- package/lib/mcp/tools/projectValidateFromPath.js.map +1 -1
- package/lib/mcp/tools/propertiesTools.d.ts +12 -0
- package/lib/mcp/tools/propertiesTools.js +155 -17
- package/lib/mcp/tools/propertiesTools.js.map +1 -1
- package/lib/mcp/tools/qualityHubApiTools.js +8 -7
- package/lib/mcp/tools/qualityHubApiTools.js.map +1 -1
- package/lib/mcp/tools/qualityHubTools.js +108 -37
- package/lib/mcp/tools/qualityHubTools.js.map +1 -1
- package/lib/mcp/tools/rcaTools.d.ts +17 -0
- package/lib/mcp/tools/rcaTools.js +69 -15
- package/lib/mcp/tools/rcaTools.js.map +1 -1
- package/lib/mcp/tools/testCaseGenerate.d.ts +1 -0
- package/lib/mcp/tools/testCaseGenerate.js +254 -17
- package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
- package/lib/mcp/tools/testCaseStepTools.js +27 -9
- package/lib/mcp/tools/testCaseStepTools.js.map +1 -1
- package/lib/mcp/tools/testCaseValidate.d.ts +14 -1
- package/lib/mcp/tools/testCaseValidate.js +190 -69
- package/lib/mcp/tools/testCaseValidate.js.map +1 -1
- package/lib/mcp/tools/testPlanTools.js +43 -26
- package/lib/mcp/tools/testPlanTools.js.map +1 -1
- package/lib/mcp/tools/testPlanValidate.js +64 -11
- package/lib/mcp/tools/testPlanValidate.js.map +1 -1
- package/lib/mcp/tools/testSuiteValidate.js +99 -10
- package/lib/mcp/tools/testSuiteValidate.js.map +1 -1
- 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/testCasePlanMode.d.ts +41 -0
- package/lib/mcp/utils/testCasePlanMode.js +208 -0
- package/lib/mcp/utils/testCasePlanMode.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/mcp/utils/warningCodes.d.ts +10 -0
- package/lib/mcp/utils/warningCodes.js +19 -0
- package/lib/mcp/utils/warningCodes.js.map +1 -0
- package/oclif.manifest.json +1 -1
- package/package.json +13 -1
|
@@ -10,6 +10,7 @@ import { makeError, makeRequestId } from '../schemas/common.js';
|
|
|
10
10
|
import { log } from '../logging/logger.js';
|
|
11
11
|
import { credentialsService } from '../../services/auth/credentials.js';
|
|
12
12
|
import { qualityHubClient, getQualityHubBaseUrl, QualityHubAuthError, QualityHubRateLimitError, REQUEST_ACCESS_URL, } from '../../services/qualityHub/client.js';
|
|
13
|
+
import { desc } from './descHelper.js';
|
|
13
14
|
const CORPUS_FALLBACK_HINT = 'Fallback: read the provar://docs/step-reference MCP resource for step types and attribute formats, then continue.';
|
|
14
15
|
const CORPUS_ONBOARDING_WARNING = 'Corpus retrieval skipped — no Provar API key configured. Continuing without example grounding.\n' +
|
|
15
16
|
'To enable corpus retrieval: run sf provar auth login\n' +
|
|
@@ -27,7 +28,7 @@ const CORPUS_UNREACHABLE_WARNING = 'Corpus retrieval skipped — API unreachable
|
|
|
27
28
|
export function registerCorpusExamplesRetrieve(server) {
|
|
28
29
|
server.registerTool('provar_qualityhub_examples_retrieve', {
|
|
29
30
|
title: 'Retrieve Corpus Examples',
|
|
30
|
-
description: [
|
|
31
|
+
description: desc([
|
|
31
32
|
'Retrieve N similar Provar test case examples from the Quality Hub corpus (1000+ tests in Bedrock KB).',
|
|
32
33
|
'Use this BEFORE writing any Provar .testcase XML — whether via provar_testcase_generate, Write, or Edit.',
|
|
33
34
|
'Pass a user story, requirement, source test file content, or step type keywords as the query.',
|
|
@@ -40,13 +41,13 @@ export function registerCorpusExamplesRetrieve(server) {
|
|
|
40
41
|
'then include key field names in your query (e.g. "Opportunity: CloseDate, Amount, StageName").',
|
|
41
42
|
'',
|
|
42
43
|
'Requires a Provar API key (sf provar auth login). Without a key, returns empty examples with onboarding instructions.',
|
|
43
|
-
].join('\n'),
|
|
44
|
+
].join('\n'), 'Retrieve similar Provar test case examples from the Quality Hub corpus.'),
|
|
44
45
|
inputSchema: {
|
|
45
46
|
query: z
|
|
46
47
|
.string()
|
|
47
|
-
.describe('Text to search against the corpus — a user story, requirement description, or source test file content. ' +
|
|
48
|
+
.describe(desc('Text to search against the corpus — a user story, requirement description, or source test file content. ' +
|
|
48
49
|
'Longer is better: include Salesforce object names, field names, and action descriptions. ' +
|
|
49
|
-
'Truncated server-side at 2000 characters.'),
|
|
50
|
+
'Truncated server-side at 2000 characters.', 'string, user story or requirement text; include SF object/field names')),
|
|
50
51
|
n: z
|
|
51
52
|
.number()
|
|
52
53
|
.int()
|
|
@@ -54,16 +55,16 @@ export function registerCorpusExamplesRetrieve(server) {
|
|
|
54
55
|
.max(10)
|
|
55
56
|
.optional()
|
|
56
57
|
.default(5)
|
|
57
|
-
.describe('Number of examples to return. Default 5, max 10.'),
|
|
58
|
+
.describe(desc('Number of examples to return. Default 5, max 10.', 'int 1–10, optional; examples to return')),
|
|
58
59
|
app_filter: z
|
|
59
60
|
.string()
|
|
60
61
|
.optional()
|
|
61
|
-
.describe('Optional Salesforce cloud filter to bias results (e.g. "SalesCloud", "ServiceCloud", "HealthCloud").'),
|
|
62
|
+
.describe(desc('Optional Salesforce cloud filter to bias results (e.g. "SalesCloud", "ServiceCloud", "HealthCloud").', 'string, optional; SF cloud filter e.g. SalesCloud')),
|
|
62
63
|
prefer_high_quality: z
|
|
63
64
|
.boolean()
|
|
64
65
|
.optional()
|
|
65
66
|
.default(true)
|
|
66
|
-
.describe('When true (default), favours tier4/tier3 corpus examples. Set false to include all tiers.'),
|
|
67
|
+
.describe(desc('When true (default), favours tier4/tier3 corpus examples. Set false to include all tiers.', 'bool, optional; default true, prefer high-quality corpus examples')),
|
|
67
68
|
},
|
|
68
69
|
}, async ({ query, n, app_filter, prefer_high_quality }) => {
|
|
69
70
|
const requestId = makeRequestId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qualityHubApiTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/qualityHubApiTools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"qualityHubApiTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/qualityHubApiTools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvC,MAAM,oBAAoB,GACxB,mHAAmH,CAAC;AAEtH,MAAM,yBAAyB,GAC7B,kGAAkG;IAClG,wDAAwD;IACxD,kCAAkC,kBAAkB,IAAI;IACxD,oBAAoB,CAAC;AAEvB,MAAM,mBAAmB,GACvB,mGAAmG;IACnG,oEAAoE,kBAAkB,IAAI;IAC1F,oBAAoB,CAAC;AAEvB,MAAM,yBAAyB,GAC7B,2GAA2G;IAC3G,oBAAoB,CAAC;AAEvB,MAAM,0BAA0B,GAC9B,qFAAqF;IACrF,qDAAqD;IACrD,oBAAoB,CAAC;AAEvB,iFAAiF;AAEjF,MAAM,UAAU,8BAA8B,CAAC,MAAiB;IAC9D,MAAM,CAAC,YAAY,CACjB,qCAAqC,EACrC;QACE,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,IAAI,CACf;YACE,uGAAuG;YACvG,0GAA0G;YAC1G,+FAA+F;YAC/F,4EAA4E;YAC5E,sGAAsG;YACtG,6FAA6F;YAC7F,EAAE;YACF,4FAA4F;YAC5F,+FAA+F;YAC/F,gGAAgG;YAChG,EAAE;YACF,uHAAuH;SACxH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,yEAAyE,CAC1E;QACD,WAAW,EAAE;YACX,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,CACP,IAAI,CACF,0GAA0G;gBACxG,2FAA2F;gBAC3F,2CAA2C,EAC7C,uEAAuE,CACxE,CACF;YACH,CAAC,EAAE,CAAC;iBACD,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,OAAO,CAAC,CAAC,CAAC;iBACV,QAAQ,CAAC,IAAI,CAAC,kDAAkD,EAAE,wCAAwC,CAAC,CAAC;YAC/G,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,IAAI,CACF,sGAAsG,EACtG,mDAAmD,CACpD,CACF;YACH,mBAAmB,EAAE,CAAC;iBACnB,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CACP,IAAI,CACF,2FAA2F,EAC3F,mEAAmE,CACpE,CACF;SACJ;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,EAAE;QACtD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,qCAAqC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QAE7G,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO;gBACL,OAAO,EAAE,IAAa;gBACtB,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,EAAE,mCAAmC,EAAE,SAAS,CAAC,CAAC;qBACjG;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,EAAE,CAAC;QAElD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,EAAE,iDAAiD,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG;gBACb,SAAS;gBACT,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE,CAAC;gBACR,eAAe,EAAE,KAAK;gBACtB,OAAO,EAAE,yBAAyB;aACnC,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC3G,CAAC;QAED,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;gBACrF,CAAC;gBACD,UAAU;gBACV,mBAAmB;aACpB,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAC7B,GAAG,CAAC,MAAM,EAAE,sDAAsD,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACrF,CAAC;YAED,GAAG,CAAC,MAAM,EAAE,8CAA8C,EAAE;gBAC1D,SAAS;gBACT,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,eAAe,EAAE,QAAQ,CAAC,eAAe;aAC1C,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC1C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC3G,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,OAAe,CAAC;YACpB,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;gBACvC,OAAO,GAAG,mBAAmB,CAAC;gBAC9B,GAAG,CAAC,MAAM,EAAE,iDAAiD,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,CAAC;iBAAM,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;gBACnD,OAAO,GAAG,yBAAyB,CAAC;gBACpC,GAAG,CAAC,MAAM,EAAE,mDAAmD,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,0BAA0B,CAAC;gBACrC,MAAM,MAAM,GAAI,GAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACpD,GAAG,CAAC,MAAM,EAAE,gDAAgD,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9F,CAAC;YAED,gFAAgF;YAChF,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC3G,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,6BAA6B,CAAC,MAAiB;IAC7D,8BAA8B,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
import { makeError, makeRequestId } from '../schemas/common.js';
|
|
10
10
|
import { log } from '../logging/logger.js';
|
|
11
|
+
import { applyDetailLevel } from '../utils/detailLevel.js';
|
|
12
|
+
import { maskFields, parseFieldsParam } from '../utils/fieldMask.js';
|
|
11
13
|
import { runSfCommand } from './sfSpawn.js';
|
|
14
|
+
import { desc } from './descHelper.js';
|
|
12
15
|
function handleSpawnError(err, requestId, toolName) {
|
|
13
16
|
const error = err;
|
|
14
17
|
log('error', `${toolName} failed`, { requestId, error: error.message });
|
|
@@ -22,24 +25,27 @@ function handleSpawnError(err, requestId, toolName) {
|
|
|
22
25
|
],
|
|
23
26
|
};
|
|
24
27
|
}
|
|
28
|
+
const QH_SUMMARY_FIELDS = ['requestId', 'exitCode'];
|
|
25
29
|
// ── Tool: provar_qualityhub_connect ───────────────────────────────────────────
|
|
26
30
|
export function registerQualityHubConnect(server) {
|
|
27
31
|
server.registerTool('provar_qualityhub_connect', {
|
|
28
32
|
title: 'Connect to Quality Hub',
|
|
29
|
-
description: 'Connect to a Provar Quality Hub org. Invokes `sf provar quality-hub connect` with the supplied flags.',
|
|
33
|
+
description: desc('Connect to a Provar Quality Hub org. Invokes `sf provar quality-hub connect` with the supplied flags.', 'Connect to a Provar Quality Hub org via sf CLI.'),
|
|
30
34
|
inputSchema: {
|
|
31
|
-
target_org: z
|
|
35
|
+
target_org: z
|
|
36
|
+
.string()
|
|
37
|
+
.describe(desc('SF org alias or username to connect as', 'string, SF org alias or username')),
|
|
32
38
|
flags: z
|
|
33
39
|
.array(z.string())
|
|
34
40
|
.optional()
|
|
35
41
|
.default([])
|
|
36
|
-
.describe('Additional raw CLI flags to forward (e.g. ["--json"])'),
|
|
42
|
+
.describe(desc('Additional raw CLI flags to forward (e.g. ["--json"])', 'array of strings, optional; extra CLI flags')),
|
|
37
43
|
sf_path: z
|
|
38
44
|
.string()
|
|
39
45
|
.optional()
|
|
40
|
-
.describe('Path to the sf CLI executable when not in PATH ' +
|
|
46
|
+
.describe(desc('Path to the sf CLI executable when not in PATH ' +
|
|
41
47
|
'(e.g. "C:\\\\Program Files\\\\sf\\\\bin\\\\sf.cmd" for the Windows standalone installer). ' +
|
|
42
|
-
'Leave unset to use auto-discovery.'),
|
|
48
|
+
'Leave unset to use auto-discovery.', 'string, optional; path to sf CLI executable')),
|
|
43
49
|
},
|
|
44
50
|
}, ({ target_org, flags, sf_path }) => {
|
|
45
51
|
const requestId = makeRequestId();
|
|
@@ -69,18 +75,36 @@ export function registerQualityHubConnect(server) {
|
|
|
69
75
|
export function registerQualityHubDisplay(server) {
|
|
70
76
|
server.registerTool('provar_qualityhub_display', {
|
|
71
77
|
title: 'Display Quality Hub Info',
|
|
72
|
-
description: 'Display connected Quality Hub org info. Invokes `sf provar quality-hub display`.',
|
|
78
|
+
description: desc('Display connected Quality Hub org info. Invokes `sf provar quality-hub display`.', 'Display connected Quality Hub org info via sf CLI.'),
|
|
73
79
|
inputSchema: {
|
|
74
|
-
target_org: z
|
|
75
|
-
|
|
80
|
+
target_org: z
|
|
81
|
+
.string()
|
|
82
|
+
.optional()
|
|
83
|
+
.describe(desc('SF org alias or username (uses default if omitted)', 'string, optional; SF org alias or username')),
|
|
84
|
+
flags: z
|
|
85
|
+
.array(z.string())
|
|
86
|
+
.optional()
|
|
87
|
+
.default([])
|
|
88
|
+
.describe(desc('Additional raw CLI flags to forward', 'array of strings, optional; extra CLI flags')),
|
|
76
89
|
sf_path: z
|
|
77
90
|
.string()
|
|
78
91
|
.optional()
|
|
79
|
-
.describe('Path to the sf CLI executable when not in PATH ' +
|
|
92
|
+
.describe(desc('Path to the sf CLI executable when not in PATH ' +
|
|
80
93
|
'(e.g. "C:\\\\Program Files\\\\sf\\\\bin\\\\sf.cmd" for the Windows standalone installer). ' +
|
|
81
|
-
'Leave unset to use auto-discovery.'),
|
|
94
|
+
'Leave unset to use auto-discovery.', 'string, optional; path to sf CLI executable')),
|
|
95
|
+
detail: z
|
|
96
|
+
.enum(['summary', 'standard', 'full'])
|
|
97
|
+
.optional()
|
|
98
|
+
.default('standard')
|
|
99
|
+
.describe('Response verbosity: "summary" returns only requestId and exitCode; ' +
|
|
100
|
+
'"standard" (default) returns requestId, exitCode, stdout, and stderr.'),
|
|
101
|
+
fields: z
|
|
102
|
+
.string()
|
|
103
|
+
.optional()
|
|
104
|
+
.describe('Comma-separated list of response keys to retain (e.g. "exitCode,stdout"). ' +
|
|
105
|
+
'Unknown field names are silently ignored. Applied after the detail filter.'),
|
|
82
106
|
},
|
|
83
|
-
}, ({ target_org, flags, sf_path }) => {
|
|
107
|
+
}, ({ target_org, flags, sf_path, detail, fields }) => {
|
|
84
108
|
const requestId = makeRequestId();
|
|
85
109
|
log('info', 'provar_qualityhub_display', { requestId, target_org });
|
|
86
110
|
try {
|
|
@@ -88,7 +112,12 @@ export function registerQualityHubDisplay(server) {
|
|
|
88
112
|
if (target_org)
|
|
89
113
|
args.splice(3, 0, '--target-org', target_org);
|
|
90
114
|
const result = runSfCommand(args, sf_path);
|
|
91
|
-
|
|
115
|
+
let response = {
|
|
116
|
+
requestId,
|
|
117
|
+
exitCode: result.exitCode,
|
|
118
|
+
stdout: result.stdout,
|
|
119
|
+
stderr: result.stderr,
|
|
120
|
+
};
|
|
92
121
|
if (result.exitCode !== 0) {
|
|
93
122
|
return {
|
|
94
123
|
isError: true,
|
|
@@ -100,6 +129,14 @@ export function registerQualityHubDisplay(server) {
|
|
|
100
129
|
],
|
|
101
130
|
};
|
|
102
131
|
}
|
|
132
|
+
const detailLevel = (detail ?? 'standard');
|
|
133
|
+
if (detailLevel !== 'standard') {
|
|
134
|
+
response = applyDetailLevel(response, detailLevel, QH_SUMMARY_FIELDS);
|
|
135
|
+
}
|
|
136
|
+
const fieldList = parseFieldsParam(fields);
|
|
137
|
+
if (fieldList) {
|
|
138
|
+
response = maskFields(response, fieldList);
|
|
139
|
+
}
|
|
103
140
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
104
141
|
}
|
|
105
142
|
catch (err) {
|
|
@@ -124,21 +161,21 @@ function detectWildcardFlags(flags) {
|
|
|
124
161
|
export function registerQualityHubTestRun(server) {
|
|
125
162
|
server.registerTool('provar_qualityhub_testrun', {
|
|
126
163
|
title: 'Trigger Quality Hub Test Run',
|
|
127
|
-
description: 'Trigger a Quality Hub test run. Invokes `sf provar quality-hub test run`. ' +
|
|
128
|
-
'Warning: wildcard characters (* or ?) in flag values will cause QH plan-level reporting to be skipped — use exact plan names.',
|
|
164
|
+
description: desc('Trigger a Quality Hub test run. Invokes `sf provar quality-hub test run`. ' +
|
|
165
|
+
'Warning: wildcard characters (* or ?) in flag values will cause QH plan-level reporting to be skipped — use exact plan names.', 'Trigger a Quality Hub test run via sf CLI; use exact plan names.'),
|
|
129
166
|
inputSchema: {
|
|
130
|
-
target_org: z.string().describe('SF org alias or username'),
|
|
167
|
+
target_org: z.string().describe(desc('SF org alias or username', 'string, SF org alias or username')),
|
|
131
168
|
flags: z
|
|
132
169
|
.array(z.string())
|
|
133
170
|
.optional()
|
|
134
171
|
.default([])
|
|
135
|
-
.describe('Additional raw CLI flags (e.g. ["--plan-name", "SmokeTests"]). Avoid wildcards in --plan-name values — they skip QH plan-level reporting.'),
|
|
172
|
+
.describe(desc('Additional raw CLI flags (e.g. ["--plan-name", "SmokeTests"]). Avoid wildcards in --plan-name values — they skip QH plan-level reporting.', 'array of strings, optional; extra CLI flags; avoid wildcards in --plan-name')),
|
|
136
173
|
sf_path: z
|
|
137
174
|
.string()
|
|
138
175
|
.optional()
|
|
139
|
-
.describe('Path to the sf CLI executable when not in PATH ' +
|
|
176
|
+
.describe(desc('Path to the sf CLI executable when not in PATH ' +
|
|
140
177
|
'(e.g. "C:\\\\Program Files\\\\sf\\\\bin\\\\sf.cmd" for the Windows standalone installer). ' +
|
|
141
|
-
'Leave unset to use auto-discovery.'),
|
|
178
|
+
'Leave unset to use auto-discovery.', 'string, optional; path to sf CLI executable')),
|
|
142
179
|
},
|
|
143
180
|
}, ({ target_org, flags, sf_path }) => {
|
|
144
181
|
const requestId = makeRequestId();
|
|
@@ -177,17 +214,23 @@ export function registerQualityHubTestRun(server) {
|
|
|
177
214
|
export function registerQualityHubTestRunReport(server) {
|
|
178
215
|
server.registerTool('provar_qualityhub_testrun_report', {
|
|
179
216
|
title: 'Poll Quality Hub Test Run',
|
|
180
|
-
description: 'Poll the status of a Quality Hub test run. Invokes `sf provar quality-hub test run report`.',
|
|
217
|
+
description: desc('Poll the status of a Quality Hub test run. Invokes `sf provar quality-hub test run report`.', 'Poll a Quality Hub test run status via sf CLI.'),
|
|
181
218
|
inputSchema: {
|
|
182
|
-
target_org: z.string().describe('SF org alias or username'),
|
|
183
|
-
run_id: z
|
|
184
|
-
|
|
219
|
+
target_org: z.string().describe(desc('SF org alias or username', 'string, SF org alias or username')),
|
|
220
|
+
run_id: z
|
|
221
|
+
.string()
|
|
222
|
+
.describe(desc('Test run ID returned by provar_qualityhub_testrun', 'string, run ID from qualityhub_testrun')),
|
|
223
|
+
flags: z
|
|
224
|
+
.array(z.string())
|
|
225
|
+
.optional()
|
|
226
|
+
.default([])
|
|
227
|
+
.describe(desc('Additional raw CLI flags', 'array of strings, optional; extra CLI flags')),
|
|
185
228
|
sf_path: z
|
|
186
229
|
.string()
|
|
187
230
|
.optional()
|
|
188
|
-
.describe('Path to the sf CLI executable when not in PATH ' +
|
|
231
|
+
.describe(desc('Path to the sf CLI executable when not in PATH ' +
|
|
189
232
|
'(e.g. "C:\\\\Program Files\\\\sf\\\\bin\\\\sf.cmd" for the Windows standalone installer). ' +
|
|
190
|
-
'Leave unset to use auto-discovery.'),
|
|
233
|
+
'Leave unset to use auto-discovery.', 'string, optional; path to sf CLI executable')),
|
|
191
234
|
},
|
|
192
235
|
}, ({ target_org, run_id, flags, sf_path }) => {
|
|
193
236
|
const requestId = makeRequestId();
|
|
@@ -236,17 +279,21 @@ export function registerQualityHubTestRunReport(server) {
|
|
|
236
279
|
export function registerQualityHubTestRunAbort(server) {
|
|
237
280
|
server.registerTool('provar_qualityhub_testrun_abort', {
|
|
238
281
|
title: 'Abort Quality Hub Test Run',
|
|
239
|
-
description: 'Abort an in-progress Quality Hub test run. Invokes `sf provar quality-hub test run abort`.',
|
|
282
|
+
description: desc('Abort an in-progress Quality Hub test run. Invokes `sf provar quality-hub test run abort`.', 'Abort an in-progress Quality Hub test run via sf CLI.'),
|
|
240
283
|
inputSchema: {
|
|
241
|
-
target_org: z.string().describe('SF org alias or username'),
|
|
242
|
-
run_id: z.string().describe('Test run ID to abort'),
|
|
243
|
-
flags: z
|
|
284
|
+
target_org: z.string().describe(desc('SF org alias or username', 'string, SF org alias or username')),
|
|
285
|
+
run_id: z.string().describe(desc('Test run ID to abort', 'string, run ID to abort')),
|
|
286
|
+
flags: z
|
|
287
|
+
.array(z.string())
|
|
288
|
+
.optional()
|
|
289
|
+
.default([])
|
|
290
|
+
.describe(desc('Additional raw CLI flags', 'array of strings, optional; extra CLI flags')),
|
|
244
291
|
sf_path: z
|
|
245
292
|
.string()
|
|
246
293
|
.optional()
|
|
247
|
-
.describe('Path to the sf CLI executable when not in PATH ' +
|
|
294
|
+
.describe(desc('Path to the sf CLI executable when not in PATH ' +
|
|
248
295
|
'(e.g. "C:\\\\Program Files\\\\sf\\\\bin\\\\sf.cmd" for the Windows standalone installer). ' +
|
|
249
|
-
'Leave unset to use auto-discovery.'),
|
|
296
|
+
'Leave unset to use auto-discovery.', 'string, optional; path to sf CLI executable')),
|
|
250
297
|
},
|
|
251
298
|
}, ({ target_org, run_id, flags, sf_path }) => {
|
|
252
299
|
const requestId = makeRequestId();
|
|
@@ -276,27 +323,43 @@ export function registerQualityHubTestRunAbort(server) {
|
|
|
276
323
|
export function registerQualityHubTestcaseRetrieve(server) {
|
|
277
324
|
server.registerTool('provar_qualityhub_testcase_retrieve', {
|
|
278
325
|
title: 'Retrieve Quality Hub Test Cases',
|
|
279
|
-
description: 'Retrieve Quality Hub test cases by user story or component. Invokes `sf provar quality-hub testcase retrieve`.',
|
|
326
|
+
description: desc('Retrieve Quality Hub test cases by user story or component. Invokes `sf provar quality-hub testcase retrieve`.', 'Retrieve Quality Hub test cases by user story or component via sf CLI.'),
|
|
280
327
|
inputSchema: {
|
|
281
|
-
target_org: z.string().describe('SF org alias or username'),
|
|
328
|
+
target_org: z.string().describe(desc('SF org alias or username', 'string, SF org alias or username')),
|
|
282
329
|
flags: z
|
|
283
330
|
.array(z.string())
|
|
284
331
|
.optional()
|
|
285
332
|
.default([])
|
|
286
|
-
.describe('Additional raw CLI flags (e.g. ["--user-story", "US-123"])'),
|
|
333
|
+
.describe(desc('Additional raw CLI flags (e.g. ["--user-story", "US-123"])', 'array of strings, optional; extra CLI flags e.g. --user-story')),
|
|
287
334
|
sf_path: z
|
|
288
335
|
.string()
|
|
289
336
|
.optional()
|
|
290
|
-
.describe('Path to the sf CLI executable when not in PATH ' +
|
|
337
|
+
.describe(desc('Path to the sf CLI executable when not in PATH ' +
|
|
291
338
|
'(e.g. "C:\\\\Program Files\\\\sf\\\\bin\\\\sf.cmd" for the Windows standalone installer). ' +
|
|
292
|
-
'Leave unset to use auto-discovery.'),
|
|
339
|
+
'Leave unset to use auto-discovery.', 'string, optional; path to sf CLI executable')),
|
|
340
|
+
detail: z
|
|
341
|
+
.enum(['summary', 'standard', 'full'])
|
|
342
|
+
.optional()
|
|
343
|
+
.default('standard')
|
|
344
|
+
.describe('Response verbosity: "summary" returns only requestId and exitCode; ' +
|
|
345
|
+
'"standard" (default) returns requestId, exitCode, stdout, and stderr.'),
|
|
346
|
+
fields: z
|
|
347
|
+
.string()
|
|
348
|
+
.optional()
|
|
349
|
+
.describe('Comma-separated list of response keys to retain (e.g. "exitCode,stdout"). ' +
|
|
350
|
+
'Unknown field names are silently ignored. Applied after the detail filter.'),
|
|
293
351
|
},
|
|
294
|
-
}, ({ target_org, flags, sf_path }) => {
|
|
352
|
+
}, ({ target_org, flags, sf_path, detail, fields }) => {
|
|
295
353
|
const requestId = makeRequestId();
|
|
296
354
|
log('info', 'provar_qualityhub_testcase_retrieve', { requestId, target_org });
|
|
297
355
|
try {
|
|
298
356
|
const result = runSfCommand(['provar', 'quality-hub', 'testcase', 'retrieve', '--target-org', target_org, ...flags], sf_path);
|
|
299
|
-
|
|
357
|
+
let response = {
|
|
358
|
+
requestId,
|
|
359
|
+
exitCode: result.exitCode,
|
|
360
|
+
stdout: result.stdout,
|
|
361
|
+
stderr: result.stderr,
|
|
362
|
+
};
|
|
300
363
|
if (result.exitCode !== 0) {
|
|
301
364
|
return {
|
|
302
365
|
isError: true,
|
|
@@ -308,6 +371,14 @@ export function registerQualityHubTestcaseRetrieve(server) {
|
|
|
308
371
|
],
|
|
309
372
|
};
|
|
310
373
|
}
|
|
374
|
+
const detailLevel = (detail ?? 'standard');
|
|
375
|
+
if (detailLevel !== 'standard') {
|
|
376
|
+
response = applyDetailLevel(response, detailLevel, QH_SUMMARY_FIELDS);
|
|
377
|
+
}
|
|
378
|
+
const fieldList = parseFieldsParam(fields);
|
|
379
|
+
if (fieldList) {
|
|
380
|
+
response = maskFields(response, fieldList);
|
|
381
|
+
}
|
|
311
382
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
312
383
|
}
|
|
313
384
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qualityHubTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/qualityHubTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"qualityHubTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/qualityHubTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { ServerConfig } from '../server.js';
|
|
3
|
+
type ErrorCategory = 'INFRASTRUCTURE' | 'ASSERTION' | 'LOCATOR' | 'TIMEOUT' | 'OTHER';
|
|
4
|
+
/**
|
|
5
|
+
* Classify a failure message into a structured error category for retry decisions.
|
|
6
|
+
*
|
|
7
|
+
* Categories are coarse-grained and intended to drive automated retry policy
|
|
8
|
+
* downstream (e.g. retry INFRASTRUCTURE/TIMEOUT, never retry ASSERTION/LOCATOR).
|
|
9
|
+
*
|
|
10
|
+
* Returns `undefined` when no pattern matches — callers should leave the field unset.
|
|
11
|
+
*/
|
|
12
|
+
export declare function classifyErrorCategory(errorText: string): ErrorCategory | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* A failure is retryable only when the underlying cause is transient.
|
|
15
|
+
* INFRASTRUCTURE (network blips) and TIMEOUT (slow page) can succeed on retry;
|
|
16
|
+
* ASSERTION / LOCATOR / OTHER are deterministic and should not be retried.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isRetryable(category: ErrorCategory | undefined): boolean | undefined;
|
|
3
19
|
export declare function registerTestRunLocate(server: McpServer): void;
|
|
4
20
|
export declare function registerTestRunRca(server: McpServer, config: ServerConfig): void;
|
|
5
21
|
export declare function registerAllRcaTools(server: McpServer, config: ServerConfig): void;
|
|
22
|
+
export {};
|
|
@@ -13,6 +13,45 @@ import { XMLParser } from 'fast-xml-parser';
|
|
|
13
13
|
import { assertPathAllowed, PathPolicyError } from '../security/pathPolicy.js';
|
|
14
14
|
import { makeError, makeRequestId } from '../schemas/common.js';
|
|
15
15
|
import { log } from '../logging/logger.js';
|
|
16
|
+
import { desc } from './descHelper.js';
|
|
17
|
+
/**
|
|
18
|
+
* Classify a failure message into a structured error category for retry decisions.
|
|
19
|
+
*
|
|
20
|
+
* Categories are coarse-grained and intended to drive automated retry policy
|
|
21
|
+
* downstream (e.g. retry INFRASTRUCTURE/TIMEOUT, never retry ASSERTION/LOCATOR).
|
|
22
|
+
*
|
|
23
|
+
* Returns `undefined` when no pattern matches — callers should leave the field unset.
|
|
24
|
+
*/
|
|
25
|
+
export function classifyErrorCategory(errorText) {
|
|
26
|
+
// INFRASTRUCTURE — transient network / socket / browser-process failures.
|
|
27
|
+
if (/Connection reset|Failed to read client socket message|socket hang up|ECONNRESET/i.test(errorText)) {
|
|
28
|
+
return 'INFRASTRUCTURE';
|
|
29
|
+
}
|
|
30
|
+
// LOCATOR — page object selector no longer matches the rendered DOM.
|
|
31
|
+
if (/NoSuchElementException/i.test(errorText))
|
|
32
|
+
return 'LOCATOR';
|
|
33
|
+
// TIMEOUT — element or operation did not complete in time.
|
|
34
|
+
if (/TimeoutException/i.test(errorText))
|
|
35
|
+
return 'TIMEOUT';
|
|
36
|
+
// ASSERTION — explicit assertion failure raised by the test or framework.
|
|
37
|
+
if (/AssertionException/i.test(errorText))
|
|
38
|
+
return 'ASSERTION';
|
|
39
|
+
// OTHER — known exception class but not fitting the four primary buckets.
|
|
40
|
+
if (/SessionNotCreatedException|WebDriverException|ClassNotFoundException|LicenseException|InvalidPasswordException/i.test(errorText)) {
|
|
41
|
+
return 'OTHER';
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A failure is retryable only when the underlying cause is transient.
|
|
47
|
+
* INFRASTRUCTURE (network blips) and TIMEOUT (slow page) can succeed on retry;
|
|
48
|
+
* ASSERTION / LOCATOR / OTHER are deterministic and should not be retried.
|
|
49
|
+
*/
|
|
50
|
+
export function isRetryable(category) {
|
|
51
|
+
if (category === undefined)
|
|
52
|
+
return undefined;
|
|
53
|
+
return category === 'INFRASTRUCTURE' || category === 'TIMEOUT';
|
|
54
|
+
}
|
|
16
55
|
const RCA_RULES = [
|
|
17
56
|
{
|
|
18
57
|
category: 'DRIVER_VERSION_MISMATCH',
|
|
@@ -331,24 +370,26 @@ function resolveResultsLocation(project_path, results_path, run_index) {
|
|
|
331
370
|
export function registerTestRunLocate(server) {
|
|
332
371
|
server.registerTool('provar_testrun_report_locate', {
|
|
333
372
|
title: 'Locate Test Report',
|
|
334
|
-
description: [
|
|
373
|
+
description: desc([
|
|
335
374
|
'Resolve exactly where Provar test run artifacts were written, without parsing them.',
|
|
336
375
|
'Returns the results directory, paths to JUnit.xml and Index.html if they exist,',
|
|
337
376
|
'paths to per-test HTML reports, and any validation JSON files.',
|
|
338
377
|
'Supports explicit results_path override or auto-detection from sf config, provardx properties file, or ANT build.xml.',
|
|
339
|
-
].join(' '),
|
|
378
|
+
].join(' '), 'Resolve Provar test run artifact locations without parsing them.'),
|
|
340
379
|
inputSchema: {
|
|
341
|
-
project_path: z
|
|
380
|
+
project_path: z
|
|
381
|
+
.string()
|
|
382
|
+
.describe(desc('Absolute path to the Provar project root', 'string, absolute path to project root')),
|
|
342
383
|
results_path: z
|
|
343
384
|
.string()
|
|
344
385
|
.optional()
|
|
345
|
-
.describe('Explicit override for the results base directory; if provided, skip auto-detection'),
|
|
386
|
+
.describe(desc('Explicit override for the results base directory; if provided, skip auto-detection', 'string, optional; explicit results base dir override')),
|
|
346
387
|
run_index: z
|
|
347
388
|
.number()
|
|
348
389
|
.int()
|
|
349
390
|
.positive()
|
|
350
391
|
.optional()
|
|
351
|
-
.describe('Which Increment run to target (default: latest); must be a positive integer'),
|
|
392
|
+
.describe(desc('Which Increment run to target (default: latest); must be a positive integer', 'int >0, optional; Increment run index')),
|
|
352
393
|
},
|
|
353
394
|
}, (input) => {
|
|
354
395
|
const requestId = makeRequestId();
|
|
@@ -553,7 +594,9 @@ function buildFailureReports(testcases, htmlFiles, screenshotDir, priorFailed) {
|
|
|
553
594
|
const poMatch = /Page Object:\s*([\w.]+)/i.exec(failureText);
|
|
554
595
|
const opMatch = /operation:\s*(\w+)/i.exec(failureText);
|
|
555
596
|
const matchingHtml = htmlFiles.find((f) => path.basename(f) === `${tc.name}.html`);
|
|
556
|
-
|
|
597
|
+
const error_category = classifyErrorCategory(failureText);
|
|
598
|
+
const retryable = isRetryable(error_category);
|
|
599
|
+
const report = {
|
|
557
600
|
test_case: tc.name,
|
|
558
601
|
error_class,
|
|
559
602
|
error_message: failureText.slice(0, 500),
|
|
@@ -565,7 +608,12 @@ function buildFailureReports(testcases, htmlFiles, screenshotDir, priorFailed) {
|
|
|
565
608
|
report_html: matchingHtml ?? null,
|
|
566
609
|
screenshot_dir: screenshotDir,
|
|
567
610
|
pre_existing: priorFailed.has(tc.name),
|
|
568
|
-
}
|
|
611
|
+
};
|
|
612
|
+
if (error_category !== undefined)
|
|
613
|
+
report.error_category = error_category;
|
|
614
|
+
if (retryable !== undefined)
|
|
615
|
+
report.retryable = retryable;
|
|
616
|
+
reports.push(report);
|
|
569
617
|
}
|
|
570
618
|
return reports;
|
|
571
619
|
}
|
|
@@ -573,37 +621,43 @@ function buildFailureReports(testcases, htmlFiles, screenshotDir, priorFailed) {
|
|
|
573
621
|
export function registerTestRunRca(server, config) {
|
|
574
622
|
server.registerTool('provar_testrun_rca', {
|
|
575
623
|
title: 'Root Cause Analysis',
|
|
576
|
-
description: [
|
|
624
|
+
description: desc([
|
|
577
625
|
'Parse a completed Provar test run and produce a structured Root Cause Analysis (RCA) report.',
|
|
578
626
|
'Resolves the results directory, parses JUnit.xml, classifies each failure by category,',
|
|
579
627
|
'and produces recommendations. Use locate_only=true to skip parsing and just resolve artifact locations.',
|
|
580
628
|
'Use mode="failures" to get a lightweight array of failed test cases',
|
|
581
629
|
'([{ testItemId, title, errorMessage }]) without the full RCA classification — useful when you',
|
|
582
630
|
'need failure names quickly without loading the HTML report.',
|
|
583
|
-
|
|
631
|
+
'In mode="rca" (default), each entry in failures[] additionally includes optional error_category',
|
|
632
|
+
'(INFRASTRUCTURE|ASSERTION|LOCATOR|TIMEOUT|OTHER) and retryable (boolean) fields when the failure',
|
|
633
|
+
'text matches a known pattern — INFRASTRUCTURE/TIMEOUT are flagged retryable, others are not.',
|
|
634
|
+
'These fields are NOT included in mode="failures" output.',
|
|
635
|
+
].join(' '), 'Parse a Provar test run JUnit.xml and produce an RCA report with failure classification.'),
|
|
584
636
|
inputSchema: {
|
|
585
|
-
project_path: z
|
|
637
|
+
project_path: z
|
|
638
|
+
.string()
|
|
639
|
+
.describe(desc('Absolute path to the Provar project root', 'string, absolute path to project root')),
|
|
586
640
|
results_path: z
|
|
587
641
|
.string()
|
|
588
642
|
.optional()
|
|
589
|
-
.describe('Explicit override for the results base directory; must be within --allowed-paths if provided'),
|
|
643
|
+
.describe(desc('Explicit override for the results base directory; must be within --allowed-paths if provided', 'string, optional; explicit results base dir override')),
|
|
590
644
|
run_index: z
|
|
591
645
|
.number()
|
|
592
646
|
.int()
|
|
593
647
|
.positive()
|
|
594
648
|
.optional()
|
|
595
|
-
.describe('Which Increment run to target (default: latest); must be a positive integer'),
|
|
649
|
+
.describe(desc('Which Increment run to target (default: latest); must be a positive integer', 'int >0, optional; Increment run index')),
|
|
596
650
|
locate_only: z
|
|
597
651
|
.boolean()
|
|
598
652
|
.optional()
|
|
599
653
|
.default(false)
|
|
600
|
-
.describe('If true, skip parsing and return just artifact locations'),
|
|
654
|
+
.describe(desc('If true, skip parsing and return just artifact locations', 'bool, optional; default false, skip parsing')),
|
|
601
655
|
mode: z
|
|
602
656
|
.enum(['rca', 'failures'])
|
|
603
657
|
.optional()
|
|
604
658
|
.default('rca')
|
|
605
|
-
.describe('"rca" (default): full root-cause analysis with classification and recommendations. ' +
|
|
606
|
-
'"failures": lightweight array of failed test cases [{ testItemId, title, errorMessage }].'),
|
|
659
|
+
.describe(desc('"rca" (default): full root-cause analysis with classification and recommendations. ' +
|
|
660
|
+
'"failures": lightweight array of failed test cases [{ testItemId, title, errorMessage }].', 'enum rca|failures; default rca')),
|
|
607
661
|
},
|
|
608
662
|
}, (input) => {
|
|
609
663
|
const requestId = makeRequestId();
|