@provartesting/provardx-cli 1.4.7 → 1.5.0-dev
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 +264 -9
- package/lib/commands/provar/automation/config/validate.js.map +1 -1
- package/lib/commands/provar/automation/project/validate.d.ts +14 -0
- package/lib/commands/provar/automation/project/validate.js +69 -0
- package/lib/commands/provar/automation/project/validate.js.map +1 -0
- package/lib/commands/provar/mcp/start.d.ts +16 -0
- package/lib/commands/provar/mcp/start.js +62 -0
- package/lib/commands/provar/mcp/start.js.map +1 -0
- package/lib/commands/provar/quality-hub/connect.d.ts +5 -0
- package/lib/commands/provar/quality-hub/connect.js +12 -0
- package/lib/commands/provar/quality-hub/connect.js.map +1 -0
- package/lib/commands/provar/quality-hub/display.d.ts +5 -0
- package/lib/commands/provar/quality-hub/display.js +12 -0
- package/lib/commands/provar/quality-hub/display.js.map +1 -0
- package/lib/commands/provar/quality-hub/open.d.ts +5 -0
- package/lib/commands/provar/quality-hub/open.js +12 -0
- package/lib/commands/provar/quality-hub/open.js.map +1 -0
- package/lib/commands/provar/quality-hub/test/run/abort.d.ts +5 -0
- package/lib/commands/provar/quality-hub/test/run/abort.js +12 -0
- package/lib/commands/provar/quality-hub/test/run/abort.js.map +1 -0
- package/lib/commands/provar/quality-hub/test/run/report.d.ts +5 -0
- package/lib/commands/provar/quality-hub/test/run/report.js +12 -0
- package/lib/commands/provar/quality-hub/test/run/report.js.map +1 -0
- package/lib/commands/provar/quality-hub/test/run.d.ts +5 -0
- package/lib/commands/provar/quality-hub/test/run.js +12 -0
- package/lib/commands/provar/quality-hub/test/run.js.map +1 -0
- package/lib/commands/provar/quality-hub/testcase/retrieve.d.ts +5 -0
- package/lib/commands/provar/quality-hub/testcase/retrieve.js +12 -0
- package/lib/commands/provar/quality-hub/testcase/retrieve.js.map +1 -0
- package/lib/mcp/licensing/algasClient.d.ts +19 -0
- package/lib/mcp/licensing/algasClient.js +144 -0
- package/lib/mcp/licensing/algasClient.js.map +1 -0
- package/lib/mcp/licensing/ideDetection.d.ts +34 -0
- package/lib/mcp/licensing/ideDetection.js +179 -0
- package/lib/mcp/licensing/ideDetection.js.map +1 -0
- package/lib/mcp/licensing/index.d.ts +5 -0
- package/lib/mcp/licensing/index.js +10 -0
- package/lib/mcp/licensing/index.js.map +1 -0
- package/lib/mcp/licensing/licenseCache.d.ts +20 -0
- package/lib/mcp/licensing/licenseCache.js +79 -0
- package/lib/mcp/licensing/licenseCache.js.map +1 -0
- package/lib/mcp/licensing/licenseError.d.ts +4 -0
- package/lib/mcp/licensing/licenseError.js +15 -0
- package/lib/mcp/licensing/licenseError.js.map +1 -0
- package/lib/mcp/licensing/licenseValidator.d.ts +33 -0
- package/lib/mcp/licensing/licenseValidator.js +103 -0
- package/lib/mcp/licensing/licenseValidator.js.map +1 -0
- package/lib/mcp/logging/logger.d.ts +7 -0
- package/lib/mcp/logging/logger.js +22 -0
- package/lib/mcp/logging/logger.js.map +1 -0
- package/lib/mcp/rules/page_object_validation_rules.json +344 -0
- package/lib/mcp/rules/provar_best_practices_rules.json +3192 -0
- package/lib/mcp/schemas/common.d.ts +20 -0
- package/lib/mcp/schemas/common.js +16 -0
- package/lib/mcp/schemas/common.js.map +1 -0
- package/lib/mcp/security/pathPolicy.d.ts +14 -0
- package/lib/mcp/security/pathPolicy.js +38 -0
- package/lib/mcp/security/pathPolicy.js.map +1 -0
- package/lib/mcp/server.d.ts +5 -0
- package/lib/mcp/server.js +59 -0
- package/lib/mcp/server.js.map +1 -0
- package/lib/mcp/tools/antTools.d.ts +21 -0
- package/lib/mcp/tools/antTools.js +602 -0
- package/lib/mcp/tools/antTools.js.map +1 -0
- package/lib/mcp/tools/automationTools.d.ts +14 -0
- package/lib/mcp/tools/automationTools.js +386 -0
- package/lib/mcp/tools/automationTools.js.map +1 -0
- package/lib/mcp/tools/bestPracticesEngine.d.ts +30 -0
- package/lib/mcp/tools/bestPracticesEngine.js +632 -0
- package/lib/mcp/tools/bestPracticesEngine.js.map +1 -0
- package/lib/mcp/tools/defectTools.d.ts +15 -0
- package/lib/mcp/tools/defectTools.js +199 -0
- package/lib/mcp/tools/defectTools.js.map +1 -0
- package/lib/mcp/tools/hierarchyValidate.d.ts +139 -0
- package/lib/mcp/tools/hierarchyValidate.js +540 -0
- package/lib/mcp/tools/hierarchyValidate.js.map +1 -0
- package/lib/mcp/tools/pageObjectGenerate.d.ts +3 -0
- package/lib/mcp/tools/pageObjectGenerate.js +153 -0
- package/lib/mcp/tools/pageObjectGenerate.js.map +1 -0
- package/lib/mcp/tools/pageObjectValidate.d.ts +18 -0
- package/lib/mcp/tools/pageObjectValidate.js +420 -0
- package/lib/mcp/tools/pageObjectValidate.js.map +1 -0
- package/lib/mcp/tools/projectInspect.d.ts +3 -0
- package/lib/mcp/tools/projectInspect.js +694 -0
- package/lib/mcp/tools/projectInspect.js.map +1 -0
- package/lib/mcp/tools/projectValidateFromPath.d.ts +3 -0
- package/lib/mcp/tools/projectValidateFromPath.js +153 -0
- package/lib/mcp/tools/projectValidateFromPath.js.map +1 -0
- package/lib/mcp/tools/propertiesTools.d.ts +7 -0
- package/lib/mcp/tools/propertiesTools.js +314 -0
- package/lib/mcp/tools/propertiesTools.js.map +1 -0
- package/lib/mcp/tools/qualityHubTools.d.ts +8 -0
- package/lib/mcp/tools/qualityHubTools.js +178 -0
- package/lib/mcp/tools/qualityHubTools.js.map +1 -0
- package/lib/mcp/tools/rcaTools.d.ts +4 -0
- package/lib/mcp/tools/rcaTools.js +620 -0
- package/lib/mcp/tools/rcaTools.js.map +1 -0
- package/lib/mcp/tools/sfSpawn.d.ts +28 -0
- package/lib/mcp/tools/sfSpawn.js +50 -0
- package/lib/mcp/tools/sfSpawn.js.map +1 -0
- package/lib/mcp/tools/testCaseGenerate.d.ts +3 -0
- package/lib/mcp/tools/testCaseGenerate.js +221 -0
- package/lib/mcp/tools/testCaseGenerate.js.map +1 -0
- package/lib/mcp/tools/testCaseValidate.d.ts +20 -0
- package/lib/mcp/tools/testCaseValidate.js +227 -0
- package/lib/mcp/tools/testCaseValidate.js.map +1 -0
- package/lib/mcp/tools/testPlanTools.d.ts +6 -0
- package/lib/mcp/tools/testPlanTools.js +311 -0
- package/lib/mcp/tools/testPlanTools.js.map +1 -0
- package/lib/mcp/tools/testPlanValidate.d.ts +2 -0
- package/lib/mcp/tools/testPlanValidate.js +75 -0
- package/lib/mcp/tools/testPlanValidate.js.map +1 -0
- package/lib/mcp/tools/testSuiteValidate.d.ts +2 -0
- package/lib/mcp/tools/testSuiteValidate.js +63 -0
- package/lib/mcp/tools/testSuiteValidate.js.map +1 -0
- package/lib/services/projectValidation.d.ts +119 -0
- package/lib/services/projectValidation.js +678 -0
- package/lib/services/projectValidation.js.map +1 -0
- package/messages/sf.provar.automation.project.validate.md +52 -0
- package/messages/sf.provar.mcp.start.md +74 -0
- package/oclif.manifest.json +1298 -1
- package/package.json +29 -15
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Stable error shape returned in every isError=true response */
|
|
2
|
+
export interface ErrorResponse {
|
|
3
|
+
error_code: string;
|
|
4
|
+
message: string;
|
|
5
|
+
retryable: boolean;
|
|
6
|
+
details?: Record<string, unknown>;
|
|
7
|
+
requestId: string;
|
|
8
|
+
}
|
|
9
|
+
/** Single validation finding produced by the PO / TC validators */
|
|
10
|
+
export interface ValidationIssue {
|
|
11
|
+
rule_id: string;
|
|
12
|
+
severity: 'ERROR' | 'WARNING' | 'INFO';
|
|
13
|
+
message: string;
|
|
14
|
+
applies_to: string;
|
|
15
|
+
suggestion?: string;
|
|
16
|
+
line_number?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function makeError(code: string, message: string, requestId: string, retryable?: boolean, details?: Record<string, unknown>): ErrorResponse;
|
|
19
|
+
/** Generate a correlation ID for each tool invocation */
|
|
20
|
+
export declare function makeRequestId(): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Provar Limited.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* Licensed under the BSD 3-Clause license.
|
|
5
|
+
* For full license text, see LICENSE.md file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
+
*/
|
|
7
|
+
/* eslint-disable camelcase */
|
|
8
|
+
import { randomUUID } from 'node:crypto';
|
|
9
|
+
export function makeError(code, message, requestId, retryable = false, details) {
|
|
10
|
+
return { error_code: code, message, retryable, details, requestId };
|
|
11
|
+
}
|
|
12
|
+
/** Generate a correlation ID for each tool invocation */
|
|
13
|
+
export function makeRequestId() {
|
|
14
|
+
return randomUUID();
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/mcp/schemas/common.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAqBzC,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,OAAe,EACf,SAAiB,EACjB,SAAS,GAAG,KAAK,EACjB,OAAiC;IAEjC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACtE,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare class PathPolicyError extends Error {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
constructor(code: string, message: string);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Asserts that filePath is within at least one of allowedPaths.
|
|
7
|
+
*
|
|
8
|
+
* Throws PathPolicyError with code:
|
|
9
|
+
* - PATH_TRAVERSAL — path contains `..` segments
|
|
10
|
+
* - PATH_NOT_ALLOWED — resolved path is outside all allowed roots
|
|
11
|
+
*
|
|
12
|
+
* When allowedPaths is empty, all paths are permitted (unrestricted mode).
|
|
13
|
+
*/
|
|
14
|
+
export declare function assertPathAllowed(filePath: string, allowedPaths: string[]): void;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Provar Limited.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* Licensed under the BSD 3-Clause license.
|
|
5
|
+
* For full license text, see LICENSE.md file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
+
*/
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
export class PathPolicyError extends Error {
|
|
9
|
+
code;
|
|
10
|
+
constructor(code, message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'PathPolicyError';
|
|
13
|
+
this.code = code;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Asserts that filePath is within at least one of allowedPaths.
|
|
18
|
+
*
|
|
19
|
+
* Throws PathPolicyError with code:
|
|
20
|
+
* - PATH_TRAVERSAL — path contains `..` segments
|
|
21
|
+
* - PATH_NOT_ALLOWED — resolved path is outside all allowed roots
|
|
22
|
+
*
|
|
23
|
+
* When allowedPaths is empty, all paths are permitted (unrestricted mode).
|
|
24
|
+
*/
|
|
25
|
+
export function assertPathAllowed(filePath, allowedPaths) {
|
|
26
|
+
// Check the original path for `..` segments before any normalization resolves them away
|
|
27
|
+
const rawSegments = filePath.split(/[/\\]+/).filter((s) => s.length > 0);
|
|
28
|
+
if (rawSegments.some((s) => s === '..')) {
|
|
29
|
+
throw new PathPolicyError('PATH_TRAVERSAL', `Path traversal detected: ${filePath}`);
|
|
30
|
+
}
|
|
31
|
+
const resolved = path.resolve(filePath);
|
|
32
|
+
const resolvedAllowed = allowedPaths.map((p) => path.resolve(path.normalize(p)));
|
|
33
|
+
if (resolvedAllowed.length > 0 &&
|
|
34
|
+
!resolvedAllowed.some((base) => resolved === base || resolved.startsWith(base + path.sep))) {
|
|
35
|
+
throw new PathPolicyError('PATH_NOT_ALLOWED', `Path "${resolved}" is not within allowed paths: [${resolvedAllowed.join(', ')}]`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=pathPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathPolicy.js","sourceRoot":"","sources":["../../../src/mcp/security/pathPolicy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,IAAI,CAAS;IAC7B,YAAmB,IAAY,EAAE,OAAe;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,YAAsB;IACxE,wFAAwF;IACxF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,eAAe,CAAC,gBAAgB,EAAE,4BAA4B,QAAQ,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,IACE,eAAe,CAAC,MAAM,GAAG,CAAC;QAC1B,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAC1F,CAAC;QACD,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,SAAS,QAAQ,mCAAmC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024 Provar Limited.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* Licensed under the BSD 3-Clause license.
|
|
5
|
+
* For full license text, see LICENSE.md file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
+
*/
|
|
7
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
import { log } from './logging/logger.js';
|
|
10
|
+
import { registerProjectInspect } from './tools/projectInspect.js';
|
|
11
|
+
import { registerPageObjectGenerate } from './tools/pageObjectGenerate.js';
|
|
12
|
+
import { registerPageObjectValidate } from './tools/pageObjectValidate.js';
|
|
13
|
+
import { registerTestCaseGenerate } from './tools/testCaseGenerate.js';
|
|
14
|
+
import { registerTestCaseValidate } from './tools/testCaseValidate.js';
|
|
15
|
+
import { registerTestSuiteValidate } from './tools/testSuiteValidate.js';
|
|
16
|
+
import { registerTestPlanValidate } from './tools/testPlanValidate.js';
|
|
17
|
+
import { registerProjectValidateFromPath } from './tools/projectValidateFromPath.js';
|
|
18
|
+
import { registerAllPropertiesTools } from './tools/propertiesTools.js';
|
|
19
|
+
import { registerAllQualityHubTools } from './tools/qualityHubTools.js';
|
|
20
|
+
import { registerAllAutomationTools } from './tools/automationTools.js';
|
|
21
|
+
import { registerAllDefectTools } from './tools/defectTools.js';
|
|
22
|
+
import { registerAllAntTools } from './tools/antTools.js';
|
|
23
|
+
import { registerAllRcaTools } from './tools/rcaTools.js';
|
|
24
|
+
import { registerAllTestPlanTools } from './tools/testPlanTools.js';
|
|
25
|
+
export function createProvarMcpServer(config) {
|
|
26
|
+
log('info', 'Creating Provar MCP server', { allowedPaths: config.allowedPaths });
|
|
27
|
+
const server = new McpServer({
|
|
28
|
+
name: 'provar-mcp',
|
|
29
|
+
version: '1.0.0',
|
|
30
|
+
});
|
|
31
|
+
// ── Sanity-check tool ────────────────────────────────────────────────────────
|
|
32
|
+
server.tool('provardx.ping', 'Sanity-check tool. Echoes back a message with a timestamp. Use this to verify the MCP server is reachable before calling other tools.', {
|
|
33
|
+
message: z.string().optional().default('ping').describe('Optional message to echo back'),
|
|
34
|
+
}, ({ message }) => {
|
|
35
|
+
const result = { pong: message, ts: new Date().toISOString(), server: 'provar-mcp@1.0.0' };
|
|
36
|
+
return {
|
|
37
|
+
content: [{ type: 'text', text: JSON.stringify(result) }],
|
|
38
|
+
structuredContent: result,
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
// ── Provar tools ─────────────────────────────────────────────────────────────
|
|
42
|
+
registerProjectInspect(server, config);
|
|
43
|
+
registerPageObjectGenerate(server, config);
|
|
44
|
+
registerPageObjectValidate(server, config);
|
|
45
|
+
registerTestCaseGenerate(server, config);
|
|
46
|
+
registerTestCaseValidate(server, config);
|
|
47
|
+
registerTestSuiteValidate(server);
|
|
48
|
+
registerTestPlanValidate(server);
|
|
49
|
+
registerProjectValidateFromPath(server, config);
|
|
50
|
+
registerAllPropertiesTools(server, config);
|
|
51
|
+
registerAllQualityHubTools(server);
|
|
52
|
+
registerAllAutomationTools(server);
|
|
53
|
+
registerAllDefectTools(server);
|
|
54
|
+
registerAllAntTools(server, config);
|
|
55
|
+
registerAllRcaTools(server);
|
|
56
|
+
registerAllTestPlanTools(server, config);
|
|
57
|
+
return server;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { ServerConfig } from '../server.js';
|
|
3
|
+
import { type ValidationIssue } from '../schemas/common.js';
|
|
4
|
+
export declare function registerAntGenerate(server: McpServer, config: ServerConfig): void;
|
|
5
|
+
export declare function registerAntValidate(server: McpServer, config: ServerConfig): void;
|
|
6
|
+
export interface AntValidationResult {
|
|
7
|
+
is_valid: boolean;
|
|
8
|
+
validity_score: number;
|
|
9
|
+
provar_home: string | null;
|
|
10
|
+
project_path: string | null;
|
|
11
|
+
results_path: string | null;
|
|
12
|
+
web_browser: string | null;
|
|
13
|
+
test_environment: string | null;
|
|
14
|
+
fileset_count: number;
|
|
15
|
+
error_count: number;
|
|
16
|
+
warning_count: number;
|
|
17
|
+
issues: ValidationIssue[];
|
|
18
|
+
}
|
|
19
|
+
/** Pure function — exported for unit testing */
|
|
20
|
+
export declare function validateAntXml(xmlContent: string): AntValidationResult;
|
|
21
|
+
export declare function registerAllAntTools(server: McpServer, config: ServerConfig): void;
|