@provartesting/provardx-cli 1.5.0-beta.13 → 1.5.0-beta.15
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/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/PROVAR_TEST_STEP_REFERENCE.md +2 -2
- package/lib/mcp/prompts/loopPrompts.js +18 -18
- package/lib/mcp/prompts/migrationPrompts.js +10 -10
- package/lib/mcp/server.d.ts +5 -0
- package/lib/mcp/server.js +14 -3
- package/lib/mcp/server.js.map +1 -1
- package/lib/mcp/tools/antTools.js +140 -129
- package/lib/mcp/tools/antTools.js.map +1 -1
- package/lib/mcp/tools/automationTools.js +125 -103
- package/lib/mcp/tools/automationTools.js.map +1 -1
- package/lib/mcp/tools/connectionTools.js +17 -13
- package/lib/mcp/tools/connectionTools.js.map +1 -1
- package/lib/mcp/tools/defectTools.js +35 -28
- package/lib/mcp/tools/defectTools.js.map +1 -1
- 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.js +161 -142
- package/lib/mcp/tools/nitroXTools.js.map +1 -1
- package/lib/mcp/tools/pageObjectGenerate.js +47 -40
- package/lib/mcp/tools/pageObjectGenerate.js.map +1 -1
- package/lib/mcp/tools/pageObjectValidate.js +136 -46
- package/lib/mcp/tools/pageObjectValidate.js.map +1 -1
- package/lib/mcp/tools/projectInspect.js +51 -30
- package/lib/mcp/tools/projectInspect.js.map +1 -1
- package/lib/mcp/tools/projectValidateFromPath.js +70 -49
- package/lib/mcp/tools/projectValidateFromPath.js.map +1 -1
- package/lib/mcp/tools/propertiesTools.js +64 -48
- package/lib/mcp/tools/propertiesTools.js.map +1 -1
- package/lib/mcp/tools/qualityHubApiTools.js +48 -44
- package/lib/mcp/tools/qualityHubApiTools.js.map +1 -1
- package/lib/mcp/tools/qualityHubTools.js +76 -52
- package/lib/mcp/tools/qualityHubTools.js.map +1 -1
- package/lib/mcp/tools/rcaTools.js +63 -55
- package/lib/mcp/tools/rcaTools.js.map +1 -1
- package/lib/mcp/tools/testCaseGenerate.js +46 -35
- package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
- package/lib/mcp/tools/testCaseStepTools.js +38 -34
- package/lib/mcp/tools/testCaseStepTools.js.map +1 -1
- package/lib/mcp/tools/testCaseValidate.js +60 -41
- package/lib/mcp/tools/testCaseValidate.js.map +1 -1
- package/lib/mcp/tools/testPlanTools.js +198 -76
- package/lib/mcp/tools/testPlanTools.js.map +1 -1
- package/lib/mcp/tools/testPlanValidate.js +56 -18
- package/lib/mcp/tools/testPlanValidate.js.map +1 -1
- package/lib/mcp/tools/testSuiteValidate.js +37 -11
- 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/services/projectValidation.d.ts +5 -2
- package/lib/services/projectValidation.js +83 -31
- package/lib/services/projectValidation.js.map +1 -1
- package/messages/sf.provar.auth.clear.md +1 -1
- package/messages/sf.provar.mcp.start.md +83 -48
- package/oclif.manifest.json +224 -212
- package/package.json +1 -1
|
@@ -23,47 +23,51 @@ const CORPUS_RATE_LIMIT_WARNING = 'Corpus retrieval skipped — rate limit reach
|
|
|
23
23
|
const CORPUS_UNREACHABLE_WARNING = 'Corpus retrieval skipped — API unreachable. Continuing without example grounding.\n' +
|
|
24
24
|
'Check your network connection or try again later.\n' +
|
|
25
25
|
CORPUS_FALLBACK_HINT;
|
|
26
|
-
// ── Tool:
|
|
26
|
+
// ── Tool: provar_qualityhub_examples_retrieve ─────────────────────────────────
|
|
27
27
|
export function registerCorpusExamplesRetrieve(server) {
|
|
28
|
-
server.
|
|
29
|
-
'Retrieve
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
28
|
+
server.registerTool('provar_qualityhub_examples_retrieve', {
|
|
29
|
+
title: 'Retrieve Corpus Examples',
|
|
30
|
+
description: [
|
|
31
|
+
'Retrieve N similar Provar test case examples from the Quality Hub corpus (1000+ tests in Bedrock KB).',
|
|
32
|
+
'Use this BEFORE writing any Provar .testcase XML — whether via provar_testcase_generate, Write, or Edit.',
|
|
33
|
+
'Pass a user story, requirement, source test file content, or step type keywords as the query.',
|
|
34
|
+
'Returns up to N example Provar XML test cases ordered by similarity score.',
|
|
35
|
+
'If retrieval fails (no auth, network error, rate limit), returns empty examples with a warning — the',
|
|
36
|
+
'generation workflow can still continue without grounding. Never hard-errors on API failure.',
|
|
37
|
+
'',
|
|
38
|
+
'For org-specific field metadata: first call getObjectSchema from the Salesforce Hosted MCP',
|
|
39
|
+
'(platform/sobject-reads — https://api.salesforce.com/platform/mcp/v1/platform/sobject-reads),',
|
|
40
|
+
'then include key field names in your query (e.g. "Opportunity: CloseDate, Amount, StageName").',
|
|
41
|
+
'',
|
|
42
|
+
'Requires a Provar API key (sf provar auth login). Without a key, returns empty examples with onboarding instructions.',
|
|
43
|
+
].join('\n'),
|
|
44
|
+
inputSchema: {
|
|
45
|
+
query: z
|
|
46
|
+
.string()
|
|
47
|
+
.describe('Text to search against the corpus — a user story, requirement description, or source test file content. ' +
|
|
48
|
+
'Longer is better: include Salesforce object names, field names, and action descriptions. ' +
|
|
49
|
+
'Truncated server-side at 2000 characters.'),
|
|
50
|
+
n: z
|
|
51
|
+
.number()
|
|
52
|
+
.int()
|
|
53
|
+
.min(1)
|
|
54
|
+
.max(10)
|
|
55
|
+
.optional()
|
|
56
|
+
.default(5)
|
|
57
|
+
.describe('Number of examples to return. Default 5, max 10.'),
|
|
58
|
+
app_filter: z
|
|
59
|
+
.string()
|
|
60
|
+
.optional()
|
|
61
|
+
.describe('Optional Salesforce cloud filter to bias results (e.g. "SalesCloud", "ServiceCloud", "HealthCloud").'),
|
|
62
|
+
prefer_high_quality: z
|
|
63
|
+
.boolean()
|
|
64
|
+
.optional()
|
|
65
|
+
.default(true)
|
|
66
|
+
.describe('When true (default), favours tier4/tier3 corpus examples. Set false to include all tiers.'),
|
|
67
|
+
},
|
|
64
68
|
}, async ({ query, n, app_filter, prefer_high_quality }) => {
|
|
65
69
|
const requestId = makeRequestId();
|
|
66
|
-
log('info', '
|
|
70
|
+
log('info', 'provar_qualityhub_examples_retrieve', { requestId, query_length: query.length, n, app_filter });
|
|
67
71
|
if (!query || query.trim().length === 0) {
|
|
68
72
|
return {
|
|
69
73
|
isError: true,
|
|
@@ -77,7 +81,7 @@ export function registerCorpusExamplesRetrieve(server) {
|
|
|
77
81
|
}
|
|
78
82
|
const apiKey = credentialsService.resolveApiKey();
|
|
79
83
|
if (!apiKey) {
|
|
80
|
-
log('warn', '
|
|
84
|
+
log('warn', 'provar_qualityhub_examples_retrieve: no api key', { requestId });
|
|
81
85
|
const result = {
|
|
82
86
|
requestId,
|
|
83
87
|
examples: [],
|
|
@@ -95,9 +99,9 @@ export function registerCorpusExamplesRetrieve(server) {
|
|
|
95
99
|
prefer_high_quality,
|
|
96
100
|
});
|
|
97
101
|
if (response.query_truncated) {
|
|
98
|
-
log('warn', '
|
|
102
|
+
log('warn', 'provar_qualityhub_examples_retrieve: query truncated', { requestId });
|
|
99
103
|
}
|
|
100
|
-
log('info', '
|
|
104
|
+
log('info', 'provar_qualityhub_examples_retrieve: success', {
|
|
101
105
|
requestId,
|
|
102
106
|
retrieval_id: response.retrieval_id,
|
|
103
107
|
count: response.count,
|
|
@@ -110,16 +114,16 @@ export function registerCorpusExamplesRetrieve(server) {
|
|
|
110
114
|
let warning;
|
|
111
115
|
if (err instanceof QualityHubAuthError) {
|
|
112
116
|
warning = CORPUS_AUTH_WARNING;
|
|
113
|
-
log('warn', '
|
|
117
|
+
log('warn', 'provar_qualityhub_examples_retrieve: auth error', { requestId });
|
|
114
118
|
}
|
|
115
119
|
else if (err instanceof QualityHubRateLimitError) {
|
|
116
120
|
warning = CORPUS_RATE_LIMIT_WARNING;
|
|
117
|
-
log('warn', '
|
|
121
|
+
log('warn', 'provar_qualityhub_examples_retrieve: rate limited', { requestId });
|
|
118
122
|
}
|
|
119
123
|
else {
|
|
120
124
|
warning = CORPUS_UNREACHABLE_WARNING;
|
|
121
125
|
const errMsg = err.message.slice(0, 200);
|
|
122
|
-
log('warn', '
|
|
126
|
+
log('warn', 'provar_qualityhub_examples_retrieve: api error', { requestId, error: errMsg });
|
|
123
127
|
}
|
|
124
128
|
// Degrade gracefully — never isError:true. The LLM continues without grounding.
|
|
125
129
|
const result = { requestId, examples: [], count: 0, query_truncated: false, warning };
|
|
@@ -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;AAE7C,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,
|
|
1
|
+
{"version":3,"file":"qualityHubApiTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/qualityHubApiTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,18 +22,22 @@ function handleSpawnError(err, requestId, toolName) {
|
|
|
22
22
|
],
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
// ── Tool:
|
|
25
|
+
// ── Tool: provar_qualityhub_connect ───────────────────────────────────────────
|
|
26
26
|
export function registerQualityHubConnect(server) {
|
|
27
|
-
server.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
.
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
server.registerTool('provar_qualityhub_connect', {
|
|
28
|
+
title: 'Connect to Quality Hub',
|
|
29
|
+
description: 'Connect to a Provar Quality Hub org. Invokes `sf provar quality-hub connect` with the supplied flags.',
|
|
30
|
+
inputSchema: {
|
|
31
|
+
target_org: z.string().describe('SF org alias or username to connect as'),
|
|
32
|
+
flags: z
|
|
33
|
+
.array(z.string())
|
|
34
|
+
.optional()
|
|
35
|
+
.default([])
|
|
36
|
+
.describe('Additional raw CLI flags to forward (e.g. ["--json"])'),
|
|
37
|
+
},
|
|
34
38
|
}, ({ target_org, flags }) => {
|
|
35
39
|
const requestId = makeRequestId();
|
|
36
|
-
log('info', '
|
|
40
|
+
log('info', 'provar_qualityhub_connect', { requestId, target_org });
|
|
37
41
|
try {
|
|
38
42
|
const result = runSfCommand(['provar', 'quality-hub', 'connect', '--target-org', target_org, ...flags]);
|
|
39
43
|
const response = { requestId, exitCode: result.exitCode, stdout: result.stdout, stderr: result.stderr };
|
|
@@ -51,18 +55,22 @@ export function registerQualityHubConnect(server) {
|
|
|
51
55
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
52
56
|
}
|
|
53
57
|
catch (err) {
|
|
54
|
-
return handleSpawnError(err, requestId, '
|
|
58
|
+
return handleSpawnError(err, requestId, 'provar_qualityhub_connect');
|
|
55
59
|
}
|
|
56
60
|
});
|
|
57
61
|
}
|
|
58
|
-
// ── Tool:
|
|
62
|
+
// ── Tool: provar_qualityhub_display ──────────────────────────────────────────
|
|
59
63
|
export function registerQualityHubDisplay(server) {
|
|
60
|
-
server.
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
server.registerTool('provar_qualityhub_display', {
|
|
65
|
+
title: 'Display Quality Hub Info',
|
|
66
|
+
description: 'Display connected Quality Hub org info. Invokes `sf provar quality-hub display`.',
|
|
67
|
+
inputSchema: {
|
|
68
|
+
target_org: z.string().optional().describe('SF org alias or username (uses default if omitted)'),
|
|
69
|
+
flags: z.array(z.string()).optional().default([]).describe('Additional raw CLI flags to forward'),
|
|
70
|
+
},
|
|
63
71
|
}, ({ target_org, flags }) => {
|
|
64
72
|
const requestId = makeRequestId();
|
|
65
|
-
log('info', '
|
|
73
|
+
log('info', 'provar_qualityhub_display', { requestId, target_org });
|
|
66
74
|
try {
|
|
67
75
|
const args = ['provar', 'quality-hub', 'display', ...flags];
|
|
68
76
|
if (target_org)
|
|
@@ -83,11 +91,11 @@ export function registerQualityHubDisplay(server) {
|
|
|
83
91
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
84
92
|
}
|
|
85
93
|
catch (err) {
|
|
86
|
-
return handleSpawnError(err, requestId, '
|
|
94
|
+
return handleSpawnError(err, requestId, 'provar_qualityhub_display');
|
|
87
95
|
}
|
|
88
96
|
});
|
|
89
97
|
}
|
|
90
|
-
// ── Tool:
|
|
98
|
+
// ── Tool: provar_qualityhub_testrun ──────────────────────────────────────────
|
|
91
99
|
function detectWildcardFlags(flags) {
|
|
92
100
|
for (let i = 0; i < flags.length - 1; i++) {
|
|
93
101
|
if (flags[i] === '--plan-name') {
|
|
@@ -102,17 +110,21 @@ function detectWildcardFlags(flags) {
|
|
|
102
110
|
return undefined;
|
|
103
111
|
}
|
|
104
112
|
export function registerQualityHubTestRun(server) {
|
|
105
|
-
server.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
+
server.registerTool('provar_qualityhub_testrun', {
|
|
114
|
+
title: 'Trigger Quality Hub Test Run',
|
|
115
|
+
description: 'Trigger a Quality Hub test run. Invokes `sf provar quality-hub test run`. ' +
|
|
116
|
+
'Warning: wildcard characters (* or ?) in flag values will cause QH plan-level reporting to be skipped — use exact plan names.',
|
|
117
|
+
inputSchema: {
|
|
118
|
+
target_org: z.string().describe('SF org alias or username'),
|
|
119
|
+
flags: z
|
|
120
|
+
.array(z.string())
|
|
121
|
+
.optional()
|
|
122
|
+
.default([])
|
|
123
|
+
.describe('Additional raw CLI flags (e.g. ["--plan-name", "SmokeTests"]). Avoid wildcards in --plan-name values — they skip QH plan-level reporting.'),
|
|
124
|
+
},
|
|
113
125
|
}, ({ target_org, flags }) => {
|
|
114
126
|
const requestId = makeRequestId();
|
|
115
|
-
log('info', '
|
|
127
|
+
log('info', 'provar_qualityhub_testrun', { requestId, target_org });
|
|
116
128
|
try {
|
|
117
129
|
const wildcardWarning = detectWildcardFlags(flags);
|
|
118
130
|
const result = runSfCommand(['provar', 'quality-hub', 'test', 'run', '--target-org', target_org, ...flags]);
|
|
@@ -139,19 +151,23 @@ export function registerQualityHubTestRun(server) {
|
|
|
139
151
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
140
152
|
}
|
|
141
153
|
catch (err) {
|
|
142
|
-
return handleSpawnError(err, requestId, '
|
|
154
|
+
return handleSpawnError(err, requestId, 'provar_qualityhub_testrun');
|
|
143
155
|
}
|
|
144
156
|
});
|
|
145
157
|
}
|
|
146
|
-
// ── Tool:
|
|
158
|
+
// ── Tool: provar_qualityhub_testrun_report ────────────────────────────────────
|
|
147
159
|
export function registerQualityHubTestRunReport(server) {
|
|
148
|
-
server.
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
160
|
+
server.registerTool('provar_qualityhub_testrun_report', {
|
|
161
|
+
title: 'Poll Quality Hub Test Run',
|
|
162
|
+
description: 'Poll the status of a Quality Hub test run. Invokes `sf provar quality-hub test run report`.',
|
|
163
|
+
inputSchema: {
|
|
164
|
+
target_org: z.string().describe('SF org alias or username'),
|
|
165
|
+
run_id: z.string().describe('Test run ID returned by provar_qualityhub_testrun'),
|
|
166
|
+
flags: z.array(z.string()).optional().default([]).describe('Additional raw CLI flags'),
|
|
167
|
+
},
|
|
152
168
|
}, ({ target_org, run_id, flags }) => {
|
|
153
169
|
const requestId = makeRequestId();
|
|
154
|
-
log('info', '
|
|
170
|
+
log('info', 'provar_qualityhub_testrun_report', { requestId, target_org, run_id });
|
|
155
171
|
try {
|
|
156
172
|
const result = runSfCommand([
|
|
157
173
|
'provar',
|
|
@@ -190,7 +206,7 @@ export function registerQualityHubTestRunReport(server) {
|
|
|
190
206
|
hasFailures = normalizedStatus !== undefined && failureStatuses.has(normalizedStatus);
|
|
191
207
|
}
|
|
192
208
|
const suggestion = hasFailures
|
|
193
|
-
? 'Failures detected. Use
|
|
209
|
+
? 'Failures detected. Use provar_qualityhub_defect_create with run_id and target_org to automatically create Defect__c records for each failure (syncs to Jira/ADO if configured).'
|
|
194
210
|
: '';
|
|
195
211
|
const responseWithSuggestion = { ...response, suggestion: suggestion || undefined };
|
|
196
212
|
return {
|
|
@@ -199,19 +215,23 @@ export function registerQualityHubTestRunReport(server) {
|
|
|
199
215
|
};
|
|
200
216
|
}
|
|
201
217
|
catch (err) {
|
|
202
|
-
return handleSpawnError(err, requestId, '
|
|
218
|
+
return handleSpawnError(err, requestId, 'provar_qualityhub_testrun_report');
|
|
203
219
|
}
|
|
204
220
|
});
|
|
205
221
|
}
|
|
206
|
-
// ── Tool:
|
|
222
|
+
// ── Tool: provar_qualityhub_testrun_abort ─────────────────────────────────────
|
|
207
223
|
export function registerQualityHubTestRunAbort(server) {
|
|
208
|
-
server.
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
224
|
+
server.registerTool('provar_qualityhub_testrun_abort', {
|
|
225
|
+
title: 'Abort Quality Hub Test Run',
|
|
226
|
+
description: 'Abort an in-progress Quality Hub test run. Invokes `sf provar quality-hub test run abort`.',
|
|
227
|
+
inputSchema: {
|
|
228
|
+
target_org: z.string().describe('SF org alias or username'),
|
|
229
|
+
run_id: z.string().describe('Test run ID to abort'),
|
|
230
|
+
flags: z.array(z.string()).optional().default([]).describe('Additional raw CLI flags'),
|
|
231
|
+
},
|
|
212
232
|
}, ({ target_org, run_id, flags }) => {
|
|
213
233
|
const requestId = makeRequestId();
|
|
214
|
-
log('info', '
|
|
234
|
+
log('info', 'provar_qualityhub_testrun_abort', { requestId, target_org, run_id });
|
|
215
235
|
try {
|
|
216
236
|
const result = runSfCommand([
|
|
217
237
|
'provar',
|
|
@@ -240,22 +260,26 @@ export function registerQualityHubTestRunAbort(server) {
|
|
|
240
260
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
241
261
|
}
|
|
242
262
|
catch (err) {
|
|
243
|
-
return handleSpawnError(err, requestId, '
|
|
263
|
+
return handleSpawnError(err, requestId, 'provar_qualityhub_testrun_abort');
|
|
244
264
|
}
|
|
245
265
|
});
|
|
246
266
|
}
|
|
247
|
-
// ── Tool:
|
|
267
|
+
// ── Tool: provar_qualityhub_testcase_retrieve ─────────────────────────────────
|
|
248
268
|
export function registerQualityHubTestcaseRetrieve(server) {
|
|
249
|
-
server.
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
.
|
|
254
|
-
|
|
255
|
-
|
|
269
|
+
server.registerTool('provar_qualityhub_testcase_retrieve', {
|
|
270
|
+
title: 'Retrieve Quality Hub Test Cases',
|
|
271
|
+
description: 'Retrieve Quality Hub test cases by user story or component. Invokes `sf provar quality-hub testcase retrieve`.',
|
|
272
|
+
inputSchema: {
|
|
273
|
+
target_org: z.string().describe('SF org alias or username'),
|
|
274
|
+
flags: z
|
|
275
|
+
.array(z.string())
|
|
276
|
+
.optional()
|
|
277
|
+
.default([])
|
|
278
|
+
.describe('Additional raw CLI flags (e.g. ["--user-story", "US-123"])'),
|
|
279
|
+
},
|
|
256
280
|
}, ({ target_org, flags }) => {
|
|
257
281
|
const requestId = makeRequestId();
|
|
258
|
-
log('info', '
|
|
282
|
+
log('info', 'provar_qualityhub_testcase_retrieve', { requestId, target_org });
|
|
259
283
|
try {
|
|
260
284
|
const result = runSfCommand([
|
|
261
285
|
'provar',
|
|
@@ -281,7 +305,7 @@ export function registerQualityHubTestcaseRetrieve(server) {
|
|
|
281
305
|
return { content: [{ type: 'text', text: JSON.stringify(response) }], structuredContent: response };
|
|
282
306
|
}
|
|
283
307
|
catch (err) {
|
|
284
|
-
return handleSpawnError(err, requestId, '
|
|
308
|
+
return handleSpawnError(err, requestId, 'provar_qualityhub_testcase_retrieve');
|
|
285
309
|
}
|
|
286
310
|
});
|
|
287
311
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qualityHubTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/qualityHubTools.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,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,SAAS,gBAAgB,CACvB,GAAY,EACZ,SAAiB,EACjB,QAAgB;IAEhB,MAAM,KAAK,GAAG,GAAgC,CAAC;IAC/C,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACxE,OAAO;QACL,OAAO,EAAE,IAAa;QACtB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;aAC3F;SACF;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,uGAAuG,EACvG;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACzE,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,uDAAuD,CAAC;KACrE,EACD,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACxB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YACxG,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAExG,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;yBAChG;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,2BAA2B,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,kFAAkF,EAClF;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAChG,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAClG,EACD,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACxB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC;YAC5D,IAAI,UAAU;gBAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;YAE9D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAExG,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;yBAChG;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,2BAA2B,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,mBAAmB,CAAC,KAAe;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,OAAO,CACL,sCAAsC,KAAK,MAAM;oBACjD,2CAA2C;oBAC3C,6CAA6C,CAC9C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,4EAA4E;QAC1E,+HAA+H,EACjI;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC3D,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,2IAA2I,CAC5I;KACJ,EACD,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACxB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YAC5G,MAAM,QAAQ,GAA4B;gBACxC,SAAS;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,IAAI,eAAe,EAAE,CAAC;gBACpB,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;YACrD,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;yBAChG;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,2BAA2B,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,+BAA+B,CAAC,MAAiB;IAC/D,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,6FAA6F,EAC7F;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QAChF,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACvF,EACD,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAChC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,kCAAkC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,QAAQ;gBACR,aAAa;gBACb,MAAM;gBACN,KAAK;gBACL,QAAQ;gBACR,cAAc;gBACd,UAAU;gBACV,UAAU;gBACV,MAAM;gBACN,GAAG,KAAK;aACT,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAExG,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;yBAC/F;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YACpD,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAqC,CAAC;gBAC7E,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACrE,WAAW,GAAG,gBAAgB,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACxF,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACrE,MAAM,gBAAgB,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAChE,WAAW,GAAG,gBAAgB,KAAK,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,UAAU,GAAG,WAAW;gBAC5B,CAAC,CAAC,iLAAiL;gBACnL,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,sBAAsB,GAAG,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,UAAU,IAAI,SAAS,EAAE,CAAC;YAEpF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBAClF,iBAAiB,EAAE,sBAAsB;aAC1C,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,kCAAkC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,8BAA8B,CAAC,MAAiB;IAC9D,MAAM,CAAC,IAAI,CACT,iCAAiC,EACjC,4FAA4F,EAC5F;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACnD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACvF,EACD,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;QAChC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,iCAAiC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,QAAQ;gBACR,aAAa;gBACb,MAAM;gBACN,KAAK;gBACL,OAAO;gBACP,cAAc;gBACd,UAAU;gBACV,UAAU;gBACV,MAAM;gBACN,GAAG,KAAK;aACT,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAExG,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;yBAC9F;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,iCAAiC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,kCAAkC,CAAC,MAAiB;IAClE,MAAM,CAAC,IAAI,CACT,qCAAqC,EACrC,gHAAgH,EAChH;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC3D,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,4DAA4D,CAAC;KAC1E,EACD,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;QACxB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,qCAAqC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC;gBAC1B,QAAQ;gBACR,aAAa;gBACb,UAAU;gBACV,UAAU;gBACV,cAAc;gBACd,UAAU;gBACV,GAAG,KAAK;aACT,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;YAExG,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAa;oBACtB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;yBACjG;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,qCAAqC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IACxC,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACvC,kCAAkC,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"qualityHubTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/qualityHubTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ const RCA_RULES = [
|
|
|
78
78
|
category: 'MISSING_CALLABLE',
|
|
79
79
|
pattern: /caseCall.*cannot.*resolv|callable.*not.*found/i,
|
|
80
80
|
summary: 'caseCall references unresolvable callable',
|
|
81
|
-
recommendation: 'Use
|
|
81
|
+
recommendation: 'Use provar_project_validate to diagnose PROJ-CALLABLE violations',
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
84
|
category: 'METADATA_CACHE',
|
|
@@ -90,7 +90,7 @@ const RCA_RULES = [
|
|
|
90
90
|
category: 'PAGE_OBJECT_COMPILE',
|
|
91
91
|
pattern: /ClassNotFoundException|CompilationException/i,
|
|
92
92
|
summary: 'Page object class not compiled',
|
|
93
|
-
recommendation: 'Run
|
|
93
|
+
recommendation: 'Run provar_automation_compile before testrun',
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
96
|
category: 'CONNECTION_REFUSED',
|
|
@@ -327,28 +327,32 @@ function resolveResultsLocation(project_path, results_path, run_index) {
|
|
|
327
327
|
resolution_source,
|
|
328
328
|
};
|
|
329
329
|
}
|
|
330
|
-
// ──
|
|
330
|
+
// ── provar_testrun_report_locate tool ─────────────────────────────────────────
|
|
331
331
|
export function registerTestRunLocate(server) {
|
|
332
|
-
server.
|
|
333
|
-
'
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
.
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
332
|
+
server.registerTool('provar_testrun_report_locate', {
|
|
333
|
+
title: 'Locate Test Report',
|
|
334
|
+
description: [
|
|
335
|
+
'Resolve exactly where Provar test run artifacts were written, without parsing them.',
|
|
336
|
+
'Returns the results directory, paths to JUnit.xml and Index.html if they exist,',
|
|
337
|
+
'paths to per-test HTML reports, and any validation JSON files.',
|
|
338
|
+
'Supports explicit results_path override or auto-detection from sf config, provardx properties file, or ANT build.xml.',
|
|
339
|
+
].join(' '),
|
|
340
|
+
inputSchema: {
|
|
341
|
+
project_path: z.string().describe('Absolute path to the Provar project root'),
|
|
342
|
+
results_path: z
|
|
343
|
+
.string()
|
|
344
|
+
.optional()
|
|
345
|
+
.describe('Explicit override for the results base directory; if provided, skip auto-detection'),
|
|
346
|
+
run_index: z
|
|
347
|
+
.number()
|
|
348
|
+
.int()
|
|
349
|
+
.positive()
|
|
350
|
+
.optional()
|
|
351
|
+
.describe('Which Increment run to target (default: latest); must be a positive integer'),
|
|
352
|
+
},
|
|
349
353
|
}, (input) => {
|
|
350
354
|
const requestId = makeRequestId();
|
|
351
|
-
log('info', '
|
|
355
|
+
log('info', 'provar_testrun_report_locate', { requestId });
|
|
352
356
|
try {
|
|
353
357
|
const resolved = resolveResultsLocation(input.project_path, input.results_path, input.run_index);
|
|
354
358
|
if ('error' in resolved) {
|
|
@@ -401,7 +405,7 @@ export function registerTestRunLocate(server) {
|
|
|
401
405
|
catch (err) {
|
|
402
406
|
const error = err;
|
|
403
407
|
const errResult = makeError('LOCATE_ERROR', error.message, requestId);
|
|
404
|
-
log('error', '
|
|
408
|
+
log('error', 'provar_testrun_report_locate failed', { requestId, error: error.message });
|
|
405
409
|
return { isError: true, content: [{ type: 'text', text: JSON.stringify(errResult) }] };
|
|
406
410
|
}
|
|
407
411
|
});
|
|
@@ -565,41 +569,45 @@ function buildFailureReports(testcases, htmlFiles, screenshotDir, priorFailed) {
|
|
|
565
569
|
}
|
|
566
570
|
return reports;
|
|
567
571
|
}
|
|
568
|
-
// ──
|
|
572
|
+
// ── provar_testrun_rca tool ───────────────────────────────────────────────────
|
|
569
573
|
export function registerTestRunRca(server, config) {
|
|
570
|
-
server.
|
|
571
|
-
'
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
.
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
574
|
+
server.registerTool('provar_testrun_rca', {
|
|
575
|
+
title: 'Root Cause Analysis',
|
|
576
|
+
description: [
|
|
577
|
+
'Parse a completed Provar test run and produce a structured Root Cause Analysis (RCA) report.',
|
|
578
|
+
'Resolves the results directory, parses JUnit.xml, classifies each failure by category,',
|
|
579
|
+
'and produces recommendations. Use locate_only=true to skip parsing and just resolve artifact locations.',
|
|
580
|
+
'Use mode="failures" to get a lightweight array of failed test cases',
|
|
581
|
+
'([{ testItemId, title, errorMessage }]) without the full RCA classification — useful when you',
|
|
582
|
+
'need failure names quickly without loading the HTML report.',
|
|
583
|
+
].join(' '),
|
|
584
|
+
inputSchema: {
|
|
585
|
+
project_path: z.string().describe('Absolute path to the Provar project root'),
|
|
586
|
+
results_path: z
|
|
587
|
+
.string()
|
|
588
|
+
.optional()
|
|
589
|
+
.describe('Explicit override for the results base directory; must be within --allowed-paths if provided'),
|
|
590
|
+
run_index: z
|
|
591
|
+
.number()
|
|
592
|
+
.int()
|
|
593
|
+
.positive()
|
|
594
|
+
.optional()
|
|
595
|
+
.describe('Which Increment run to target (default: latest); must be a positive integer'),
|
|
596
|
+
locate_only: z
|
|
597
|
+
.boolean()
|
|
598
|
+
.optional()
|
|
599
|
+
.default(false)
|
|
600
|
+
.describe('If true, skip parsing and return just artifact locations'),
|
|
601
|
+
mode: z
|
|
602
|
+
.enum(['rca', 'failures'])
|
|
603
|
+
.optional()
|
|
604
|
+
.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 }].'),
|
|
607
|
+
},
|
|
600
608
|
}, (input) => {
|
|
601
609
|
const requestId = makeRequestId();
|
|
602
|
-
log('info', '
|
|
610
|
+
log('info', 'provar_testrun_rca', { requestId, locate_only: input.locate_only, mode: input.mode });
|
|
603
611
|
try {
|
|
604
612
|
// ── Path policy ──────────────────────────────────────────────────────
|
|
605
613
|
const pathsToCheck = [path.resolve(input.project_path)];
|
|
@@ -732,7 +740,7 @@ export function registerTestRunRca(server, config) {
|
|
|
732
740
|
catch (err) {
|
|
733
741
|
const error = err;
|
|
734
742
|
const errResult = makeError('RCA_ERROR', error.message, requestId);
|
|
735
|
-
log('error', '
|
|
743
|
+
log('error', 'provar_testrun_rca failed', { requestId, error: error.message });
|
|
736
744
|
return { isError: true, content: [{ type: 'text', text: JSON.stringify(errResult) }] };
|
|
737
745
|
}
|
|
738
746
|
});
|