@provartesting/provardx-cli 1.5.0-dev.2 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +163 -12
- package/bin/mcp-start.js +74 -0
- package/lib/commands/provar/auth/clear.d.ts +7 -0
- package/lib/commands/provar/auth/clear.js +36 -0
- package/lib/commands/provar/auth/clear.js.map +1 -0
- package/lib/commands/provar/auth/login.d.ts +10 -0
- package/lib/commands/provar/auth/login.js +90 -0
- package/lib/commands/provar/auth/login.js.map +1 -0
- package/lib/commands/provar/auth/rotate.d.ts +7 -0
- package/lib/commands/provar/auth/rotate.js +42 -0
- package/lib/commands/provar/auth/rotate.js.map +1 -0
- package/lib/commands/provar/auth/status.d.ts +7 -0
- package/lib/commands/provar/auth/status.js +107 -0
- package/lib/commands/provar/auth/status.js.map +1 -0
- package/lib/commands/provar/mcp/start.d.ts +2 -0
- package/lib/commands/provar/mcp/start.js +14 -1
- package/lib/commands/provar/mcp/start.js.map +1 -1
- package/lib/mcp/docs/NITROX_CATALOG_SOURCE.json +6 -0
- package/lib/mcp/docs/NITROX_COMPONENT_CATALOG.md +2001 -0
- package/lib/mcp/docs/PROVAR_TEST_STEP_REFERENCE.md +1430 -0
- package/lib/mcp/docs/PROVAR_TOOL_GUIDE.md +187 -0
- package/lib/mcp/licensing/algasClient.js +14 -5
- package/lib/mcp/licensing/algasClient.js.map +1 -1
- package/lib/mcp/licensing/ideDetection.d.ts +0 -12
- package/lib/mcp/licensing/ideDetection.js +1 -73
- package/lib/mcp/licensing/ideDetection.js.map +1 -1
- package/lib/mcp/licensing/licenseCache.js +7 -1
- package/lib/mcp/licensing/licenseCache.js.map +1 -1
- package/lib/mcp/licensing/licenseValidator.d.ts +3 -3
- package/lib/mcp/licensing/licenseValidator.js +11 -4
- package/lib/mcp/licensing/licenseValidator.js.map +1 -1
- package/lib/mcp/prompts/guidePrompts.d.ts +4 -0
- package/lib/mcp/prompts/guidePrompts.js +334 -0
- package/lib/mcp/prompts/guidePrompts.js.map +1 -0
- package/lib/mcp/prompts/index.d.ts +2 -0
- package/lib/mcp/prompts/index.js +23 -0
- package/lib/mcp/prompts/index.js.map +1 -0
- package/lib/mcp/prompts/loopPrompts.d.ts +6 -0
- package/lib/mcp/prompts/loopPrompts.js +435 -0
- package/lib/mcp/prompts/loopPrompts.js.map +1 -0
- package/lib/mcp/prompts/migrationPrompts.d.ts +4 -0
- package/lib/mcp/prompts/migrationPrompts.js +207 -0
- package/lib/mcp/prompts/migrationPrompts.js.map +1 -0
- package/lib/mcp/rules/provar_best_practices_rules.json +256 -544
- package/lib/mcp/security/pathPolicy.d.ts +5 -0
- package/lib/mcp/security/pathPolicy.js +58 -3
- package/lib/mcp/security/pathPolicy.js.map +1 -1
- package/lib/mcp/server.d.ts +18 -0
- package/lib/mcp/server.js +232 -19
- package/lib/mcp/server.js.map +1 -1
- package/lib/mcp/tools/antTools.d.ts +15 -0
- package/lib/mcp/tools/antTools.js +369 -170
- package/lib/mcp/tools/antTools.js.map +1 -1
- package/lib/mcp/tools/automationTools.d.ts +18 -8
- package/lib/mcp/tools/automationTools.js +333 -176
- package/lib/mcp/tools/automationTools.js.map +1 -1
- package/lib/mcp/tools/bestPracticesEngine.js +161 -23
- package/lib/mcp/tools/bestPracticesEngine.js.map +1 -1
- package/lib/mcp/tools/connectionTools.d.ts +4 -0
- package/lib/mcp/tools/connectionTools.js +242 -0
- package/lib/mcp/tools/connectionTools.js.map +1 -0
- package/lib/mcp/tools/defectTools.d.ts +1 -1
- package/lib/mcp/tools/defectTools.js +61 -50
- package/lib/mcp/tools/defectTools.js.map +1 -1
- package/lib/mcp/tools/descHelper.d.ts +5 -0
- package/lib/mcp/tools/descHelper.js +14 -0
- package/lib/mcp/tools/descHelper.js.map +1 -0
- package/lib/mcp/tools/hierarchyValidate.d.ts +1 -1
- package/lib/mcp/tools/hierarchyValidate.js +127 -42
- package/lib/mcp/tools/hierarchyValidate.js.map +1 -1
- package/lib/mcp/tools/nitroXTools.d.ts +23 -0
- package/lib/mcp/tools/nitroXTools.js +863 -0
- package/lib/mcp/tools/nitroXTools.js.map +1 -0
- package/lib/mcp/tools/pageObjectGenerate.js +150 -57
- package/lib/mcp/tools/pageObjectGenerate.js.map +1 -1
- package/lib/mcp/tools/pageObjectValidate.js +143 -46
- package/lib/mcp/tools/pageObjectValidate.js.map +1 -1
- package/lib/mcp/tools/projectInspect.js +79 -32
- package/lib/mcp/tools/projectInspect.js.map +1 -1
- package/lib/mcp/tools/projectValidateFromPath.js +185 -58
- package/lib/mcp/tools/projectValidateFromPath.js.map +1 -1
- package/lib/mcp/tools/propertiesTools.d.ts +2 -0
- package/lib/mcp/tools/propertiesTools.js +358 -78
- package/lib/mcp/tools/propertiesTools.js.map +1 -1
- package/lib/mcp/tools/qualityHubApiTools.d.ts +3 -0
- package/lib/mcp/tools/qualityHubApiTools.js +139 -0
- package/lib/mcp/tools/qualityHubApiTools.js.map +1 -0
- package/lib/mcp/tools/qualityHubTools.js +292 -72
- package/lib/mcp/tools/qualityHubTools.js.map +1 -1
- package/lib/mcp/tools/rcaTools.d.ts +3 -2
- package/lib/mcp/tools/rcaTools.js +194 -56
- package/lib/mcp/tools/rcaTools.js.map +1 -1
- package/lib/mcp/tools/sfSpawn.d.ts +25 -3
- package/lib/mcp/tools/sfSpawn.js +154 -6
- package/lib/mcp/tools/sfSpawn.js.map +1 -1
- package/lib/mcp/tools/testCaseGenerate.js +285 -78
- package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
- package/lib/mcp/tools/testCaseStepTools.d.ts +4 -0
- package/lib/mcp/tools/testCaseStepTools.js +244 -0
- package/lib/mcp/tools/testCaseStepTools.js.map +1 -0
- package/lib/mcp/tools/testCaseValidate.d.ts +11 -0
- package/lib/mcp/tools/testCaseValidate.js +381 -46
- package/lib/mcp/tools/testCaseValidate.js.map +1 -1
- package/lib/mcp/tools/testPlanTools.d.ts +1 -0
- package/lib/mcp/tools/testPlanTools.js +316 -59
- package/lib/mcp/tools/testPlanTools.js.map +1 -1
- package/lib/mcp/tools/testPlanValidate.js +114 -23
- package/lib/mcp/tools/testPlanValidate.js.map +1 -1
- package/lib/mcp/tools/testSuiteValidate.js +130 -15
- package/lib/mcp/tools/testSuiteValidate.js.map +1 -1
- package/lib/mcp/update/updateChecker.d.ts +14 -0
- package/lib/mcp/update/updateChecker.js +228 -0
- package/lib/mcp/update/updateChecker.js.map +1 -0
- package/lib/mcp/utils/detailLevel.d.ts +9 -0
- package/lib/mcp/utils/detailLevel.js +20 -0
- package/lib/mcp/utils/detailLevel.js.map +1 -0
- package/lib/mcp/utils/fieldMask.d.ts +17 -0
- package/lib/mcp/utils/fieldMask.js +75 -0
- package/lib/mcp/utils/fieldMask.js.map +1 -0
- package/lib/mcp/utils/tokenMeta.d.ts +40 -0
- package/lib/mcp/utils/tokenMeta.js +90 -0
- package/lib/mcp/utils/tokenMeta.js.map +1 -0
- package/lib/mcp/utils/validationDiff.d.ts +57 -0
- package/lib/mcp/utils/validationDiff.js +191 -0
- package/lib/mcp/utils/validationDiff.js.map +1 -0
- package/lib/mcp/utils/validationScore.d.ts +15 -0
- package/lib/mcp/utils/validationScore.js +31 -0
- package/lib/mcp/utils/validationScore.js.map +1 -0
- package/lib/services/auth/credentials.d.ts +21 -0
- package/lib/services/auth/credentials.js +75 -0
- package/lib/services/auth/credentials.js.map +1 -0
- package/lib/services/auth/loginFlow.d.ts +68 -0
- package/lib/services/auth/loginFlow.js +216 -0
- package/lib/services/auth/loginFlow.js.map +1 -0
- package/lib/services/projectValidation.d.ts +5 -2
- package/lib/services/projectValidation.js +83 -31
- package/lib/services/projectValidation.js.map +1 -1
- package/lib/services/qualityHub/client.d.ts +161 -0
- package/lib/services/qualityHub/client.js +226 -0
- package/lib/services/qualityHub/client.js.map +1 -0
- package/messages/sf.provar.auth.clear.md +16 -0
- package/messages/sf.provar.auth.login.md +31 -0
- package/messages/sf.provar.auth.rotate.md +23 -0
- package/messages/sf.provar.auth.status.md +16 -0
- package/messages/sf.provar.mcp.start.md +83 -48
- package/oclif.manifest.json +325 -28
- package/package.json +35 -12
|
@@ -12,6 +12,7 @@ import { z } from 'zod';
|
|
|
12
12
|
import { assertPathAllowed, PathPolicyError } from '../security/pathPolicy.js';
|
|
13
13
|
import { makeError, makeRequestId } from '../schemas/common.js';
|
|
14
14
|
import { log } from '../logging/logger.js';
|
|
15
|
+
import { desc } from './descHelper.js';
|
|
15
16
|
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
16
17
|
/**
|
|
17
18
|
* Try to extract testCaseId from testcase XML content.
|
|
@@ -49,24 +50,153 @@ function buildPlanItemXml(guid) {
|
|
|
49
50
|
'</testPlan>',
|
|
50
51
|
].join('\n');
|
|
51
52
|
}
|
|
52
|
-
// ──
|
|
53
|
+
// ── provar_testplan_create ────────────────────────────────────────────────────
|
|
54
|
+
export function registerTestPlanCreate(server, config) {
|
|
55
|
+
server.registerTool('provar_testplan_create', {
|
|
56
|
+
title: 'Create Test Plan',
|
|
57
|
+
description: desc([
|
|
58
|
+
'Create a new Provar test plan: makes the plans/{plan_name}/ directory and writes the root .planitem file.',
|
|
59
|
+
'Use this before provar_testplan_create-suite or provar_testplan_add-instance, which both require the plan to already exist.',
|
|
60
|
+
'Returns the guid assigned to the new plan, the plan directory path, and the .planitem path written.',
|
|
61
|
+
].join(' '), 'Create a new Provar test plan directory with a root .planitem file.'),
|
|
62
|
+
inputSchema: {
|
|
63
|
+
project_path: z
|
|
64
|
+
.string()
|
|
65
|
+
.describe(desc('Absolute path to the Provar project root (must contain a .testproject file)', 'string, absolute path to project root')),
|
|
66
|
+
plan_name: z
|
|
67
|
+
.string()
|
|
68
|
+
.describe(desc('Name of the new test plan (becomes the directory name under plans/)', 'string, test plan name')),
|
|
69
|
+
overwrite: z
|
|
70
|
+
.boolean()
|
|
71
|
+
.optional()
|
|
72
|
+
.default(false)
|
|
73
|
+
.describe(desc('Overwrite the .planitem file if the plan directory already exists (default: false)', 'bool, optional; overwrite .planitem if exists')),
|
|
74
|
+
dry_run: z
|
|
75
|
+
.boolean()
|
|
76
|
+
.optional()
|
|
77
|
+
.default(false)
|
|
78
|
+
.describe(desc('Return what would be created without writing to disk (default: false)', 'bool, optional; default false, skip write')),
|
|
79
|
+
},
|
|
80
|
+
}, ({ project_path, plan_name, overwrite, dry_run }) => {
|
|
81
|
+
const requestId = makeRequestId();
|
|
82
|
+
log('info', 'provar_testplan_create', { requestId, project_path, plan_name });
|
|
83
|
+
try {
|
|
84
|
+
assertPathAllowed(project_path, config.allowedPaths);
|
|
85
|
+
const projectRoot = path.resolve(project_path);
|
|
86
|
+
const testProjectFiles = fs.existsSync(projectRoot)
|
|
87
|
+
? fs.readdirSync(projectRoot).filter((f) => f.endsWith('.testproject'))
|
|
88
|
+
: [];
|
|
89
|
+
if (testProjectFiles.length === 0) {
|
|
90
|
+
return {
|
|
91
|
+
isError: true,
|
|
92
|
+
content: [
|
|
93
|
+
{
|
|
94
|
+
type: 'text',
|
|
95
|
+
text: JSON.stringify(makeError('NOT_A_PROJECT', `No .testproject file found in ${projectRoot}`, requestId)),
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (!/^[A-Za-z0-9][\w\- ]*$/.test(plan_name)) {
|
|
101
|
+
return {
|
|
102
|
+
isError: true,
|
|
103
|
+
content: [
|
|
104
|
+
{
|
|
105
|
+
type: 'text',
|
|
106
|
+
text: JSON.stringify(makeError('INVALID_PLAN_NAME', `plan_name must start with a letter or digit and contain only letters, digits, underscores, hyphens, or spaces: "${plan_name}"`, requestId)),
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const planDir = path.join(projectRoot, 'plans', plan_name);
|
|
112
|
+
assertPathAllowed(planDir, config.allowedPaths);
|
|
113
|
+
const planItemPath = path.join(planDir, '.planitem');
|
|
114
|
+
if (!overwrite && fs.existsSync(planItemPath)) {
|
|
115
|
+
return {
|
|
116
|
+
isError: true,
|
|
117
|
+
content: [
|
|
118
|
+
{
|
|
119
|
+
type: 'text',
|
|
120
|
+
text: JSON.stringify(makeError('PLAN_EXISTS', `Plan already exists: ${planItemPath}. Set overwrite: true to replace the .planitem file.`, requestId)),
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const guid = randomUUID();
|
|
126
|
+
const xmlContent = buildPlanItemXml(guid);
|
|
127
|
+
if (!dry_run) {
|
|
128
|
+
fs.mkdirSync(planDir, { recursive: true });
|
|
129
|
+
fs.writeFileSync(planItemPath, xmlContent, 'utf-8');
|
|
130
|
+
}
|
|
131
|
+
const response = {
|
|
132
|
+
requestId,
|
|
133
|
+
plan_dir: planDir,
|
|
134
|
+
planitem_path: planItemPath,
|
|
135
|
+
guid,
|
|
136
|
+
dry_run: dry_run ?? false,
|
|
137
|
+
created: !dry_run,
|
|
138
|
+
next_steps: dry_run
|
|
139
|
+
? 'Review the plan structure, then call provar_testplan_create with dry_run=false to write to disk.'
|
|
140
|
+
: `Plan created at ${planDir}. Use provar_testplan_create-suite to add suites, then provar_testplan_add-instance to wire test cases into the plan.`,
|
|
141
|
+
};
|
|
142
|
+
return {
|
|
143
|
+
content: [{ type: 'text', text: JSON.stringify(response) }],
|
|
144
|
+
structuredContent: response,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
const error = err;
|
|
149
|
+
return {
|
|
150
|
+
isError: true,
|
|
151
|
+
content: [
|
|
152
|
+
{
|
|
153
|
+
type: 'text',
|
|
154
|
+
text: JSON.stringify(makeError(error instanceof PathPolicyError ? error.code : error.code ?? 'CREATE_PLAN_ERROR', error.message, requestId)),
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
// ── provar_testplan_add-instance ──────────────────────────────────────────────
|
|
53
162
|
export function registerTestPlanAddInstance(server, config) {
|
|
54
|
-
server.
|
|
55
|
-
'Add
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
163
|
+
server.registerTool('provar_testplan_add-instance', {
|
|
164
|
+
title: 'Add Test Plan Instance',
|
|
165
|
+
description: desc([
|
|
166
|
+
'Add a .testinstance file to an existing Provar test plan suite directory.',
|
|
167
|
+
'The plan directory and suite directory must already exist.',
|
|
168
|
+
'test_case_path is relative to the project root (e.g. "tests/MyTest.testcase").',
|
|
169
|
+
'suite_path is the path within the plan (e.g. "MySuite" or "MySuite/SubSuite").',
|
|
170
|
+
'Returns the guid assigned to the new instance and the path where it was written.',
|
|
171
|
+
].join(' '), 'Add a .testinstance file to an existing test plan suite directory.'),
|
|
172
|
+
inputSchema: {
|
|
173
|
+
project_path: z
|
|
174
|
+
.string()
|
|
175
|
+
.describe(desc('Absolute path to the Provar project root', 'string, absolute path to project root')),
|
|
176
|
+
test_case_path: z
|
|
177
|
+
.string()
|
|
178
|
+
.describe(desc('Path to the .testcase file, relative to project root (e.g. "tests/MyTest.testcase")', 'string, relative path to .testcase file')),
|
|
179
|
+
plan_name: z
|
|
180
|
+
.string()
|
|
181
|
+
.describe(desc('Name of the test plan (directory under plans/)', 'string, test plan name')),
|
|
182
|
+
suite_path: z
|
|
183
|
+
.string()
|
|
184
|
+
.optional()
|
|
185
|
+
.describe(desc('Path within the plan to place the instance (e.g. "MySuite" or "MySuite/SubSuite")', 'string, optional; suite path within plan')),
|
|
186
|
+
overwrite: z
|
|
187
|
+
.boolean()
|
|
188
|
+
.optional()
|
|
189
|
+
.default(false)
|
|
190
|
+
.describe(desc('Overwrite the .testinstance file if it already exists (default: false)', 'bool, optional; overwrite if exists')),
|
|
191
|
+
dry_run: z
|
|
192
|
+
.boolean()
|
|
193
|
+
.optional()
|
|
194
|
+
.default(false)
|
|
195
|
+
.describe(desc('Return what would be written without writing to disk (default: false)', 'bool, optional; default false, skip write')),
|
|
196
|
+
},
|
|
67
197
|
}, ({ project_path, test_case_path, plan_name, suite_path, overwrite, dry_run }) => {
|
|
68
198
|
const requestId = makeRequestId();
|
|
69
|
-
log('info', '
|
|
199
|
+
log('info', 'provar_testplan_add-instance', { requestId, project_path, test_case_path, plan_name });
|
|
70
200
|
try {
|
|
71
201
|
assertPathAllowed(project_path, config.allowedPaths);
|
|
72
202
|
const projectRoot = path.resolve(project_path);
|
|
@@ -77,21 +207,54 @@ export function registerTestPlanAddInstance(server, config) {
|
|
|
77
207
|
if (testProjectFiles.length === 0) {
|
|
78
208
|
return {
|
|
79
209
|
isError: true,
|
|
80
|
-
content: [
|
|
210
|
+
content: [
|
|
211
|
+
{
|
|
212
|
+
type: 'text',
|
|
213
|
+
text: JSON.stringify(makeError('NOT_A_PROJECT', `No .testproject file found in ${projectRoot}`, requestId)),
|
|
214
|
+
},
|
|
215
|
+
],
|
|
81
216
|
};
|
|
82
217
|
}
|
|
83
|
-
//
|
|
84
|
-
|
|
218
|
+
// Reject absolute test_case_path: path.join(root, absPath) ignores root on Windows (drive-letter paths)
|
|
219
|
+
// and Unix, allowing the caller to escape the project directory entirely.
|
|
220
|
+
if (path.isAbsolute(test_case_path)) {
|
|
221
|
+
return {
|
|
222
|
+
isError: true,
|
|
223
|
+
content: [
|
|
224
|
+
{
|
|
225
|
+
type: 'text',
|
|
226
|
+
text: JSON.stringify(makeError('INVALID_PATH', 'test_case_path must be relative to project_path, not absolute', requestId)),
|
|
227
|
+
},
|
|
228
|
+
],
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
// Resolve testcase absolute path — normalize backslashes so Windows-style paths work on macOS/Linux
|
|
232
|
+
const normalizedTestCasePath = toForwardSlashes(test_case_path);
|
|
233
|
+
if (normalizedTestCasePath.split('/').some((seg) => seg === '..')) {
|
|
234
|
+
throw new PathPolicyError('PATH_TRAVERSAL', `Path traversal detected in test_case_path: ${test_case_path}`);
|
|
235
|
+
}
|
|
236
|
+
const absoluteTestCasePath = path.join(projectRoot, normalizedTestCasePath);
|
|
237
|
+
assertPathAllowed(absoluteTestCasePath, config.allowedPaths);
|
|
85
238
|
if (!fs.existsSync(absoluteTestCasePath)) {
|
|
86
239
|
return {
|
|
87
240
|
isError: true,
|
|
88
|
-
content: [
|
|
241
|
+
content: [
|
|
242
|
+
{
|
|
243
|
+
type: 'text',
|
|
244
|
+
text: JSON.stringify(makeError('FILE_NOT_FOUND', `Test case not found: ${absoluteTestCasePath}`, requestId)),
|
|
245
|
+
},
|
|
246
|
+
],
|
|
89
247
|
};
|
|
90
248
|
}
|
|
91
|
-
if (!
|
|
249
|
+
if (!normalizedTestCasePath.endsWith('.testcase')) {
|
|
92
250
|
return {
|
|
93
251
|
isError: true,
|
|
94
|
-
content: [
|
|
252
|
+
content: [
|
|
253
|
+
{
|
|
254
|
+
type: 'text',
|
|
255
|
+
text: JSON.stringify(makeError('INVALID_PATH', 'test_case_path must end with .testcase', requestId)),
|
|
256
|
+
},
|
|
257
|
+
],
|
|
95
258
|
};
|
|
96
259
|
}
|
|
97
260
|
// Read testcase XML and extract testCaseId
|
|
@@ -100,7 +263,12 @@ export function registerTestPlanAddInstance(server, config) {
|
|
|
100
263
|
if (!testCaseId) {
|
|
101
264
|
return {
|
|
102
265
|
isError: true,
|
|
103
|
-
content: [
|
|
266
|
+
content: [
|
|
267
|
+
{
|
|
268
|
+
type: 'text',
|
|
269
|
+
text: JSON.stringify(makeError('NO_TEST_CASE_ID', `Cannot extract registryId, id, or guid from ${absoluteTestCasePath}`, requestId)),
|
|
270
|
+
},
|
|
271
|
+
],
|
|
104
272
|
};
|
|
105
273
|
}
|
|
106
274
|
// Determine instance directory
|
|
@@ -111,21 +279,30 @@ export function registerTestPlanAddInstance(server, config) {
|
|
|
111
279
|
if (!fs.existsSync(instanceDir)) {
|
|
112
280
|
return {
|
|
113
281
|
isError: true,
|
|
114
|
-
content: [
|
|
282
|
+
content: [
|
|
283
|
+
{
|
|
284
|
+
type: 'text',
|
|
285
|
+
text: JSON.stringify(makeError('DIR_NOT_FOUND', `Suite directory does not exist: ${instanceDir}. Create it with provar_testplan_create-suite first.`, requestId)),
|
|
286
|
+
},
|
|
287
|
+
],
|
|
115
288
|
};
|
|
116
289
|
}
|
|
117
290
|
// Determine filename and full path
|
|
118
|
-
const instanceFileName = path.basename(
|
|
291
|
+
const instanceFileName = path.basename(normalizedTestCasePath, '.testcase') + '.testinstance';
|
|
119
292
|
const instanceFilePath = path.join(instanceDir, instanceFileName);
|
|
120
293
|
if (!overwrite && fs.existsSync(instanceFilePath)) {
|
|
121
294
|
return {
|
|
122
295
|
isError: true,
|
|
123
|
-
content: [
|
|
296
|
+
content: [
|
|
297
|
+
{
|
|
298
|
+
type: 'text',
|
|
299
|
+
text: JSON.stringify(makeError('FILE_EXISTS', `Instance file already exists: ${instanceFilePath}. Set overwrite: true to replace it.`, requestId)),
|
|
300
|
+
},
|
|
301
|
+
],
|
|
124
302
|
};
|
|
125
303
|
}
|
|
126
304
|
// Build XML
|
|
127
305
|
const guid = randomUUID();
|
|
128
|
-
const normalizedTestCasePath = toForwardSlashes(test_case_path);
|
|
129
306
|
const xmlContent = buildTestInstanceXml(guid, testCaseId, normalizedTestCasePath);
|
|
130
307
|
if (!dry_run) {
|
|
131
308
|
fs.writeFileSync(instanceFilePath, xmlContent, 'utf-8');
|
|
@@ -148,27 +325,49 @@ export function registerTestPlanAddInstance(server, config) {
|
|
|
148
325
|
const error = err;
|
|
149
326
|
return {
|
|
150
327
|
isError: true,
|
|
151
|
-
content: [
|
|
328
|
+
content: [
|
|
329
|
+
{
|
|
330
|
+
type: 'text',
|
|
331
|
+
text: JSON.stringify(makeError(error instanceof PathPolicyError ? error.code : error.code ?? 'ADD_INSTANCE_ERROR', error.message, requestId)),
|
|
332
|
+
},
|
|
333
|
+
],
|
|
152
334
|
};
|
|
153
335
|
}
|
|
154
336
|
});
|
|
155
337
|
}
|
|
156
|
-
// ──
|
|
338
|
+
// ── provar_testplan_create-suite ──────────────────────────────────────────────
|
|
157
339
|
export function registerTestPlanCreateSuite(server, config) {
|
|
158
|
-
server.
|
|
159
|
-
'Create
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
340
|
+
server.registerTool('provar_testplan_create-suite', {
|
|
341
|
+
title: 'Create Test Plan Suite',
|
|
342
|
+
description: desc([
|
|
343
|
+
'Create a new suite directory inside a Provar test plan.',
|
|
344
|
+
'The plan directory must already exist with a .planitem file at its root.',
|
|
345
|
+
'Writes a new .planitem file into the created suite directory.',
|
|
346
|
+
'Returns the guid assigned to the new suite.',
|
|
347
|
+
].join(' '), 'Create a new suite directory with a .planitem inside a test plan.'),
|
|
348
|
+
inputSchema: {
|
|
349
|
+
project_path: z
|
|
350
|
+
.string()
|
|
351
|
+
.describe(desc('Absolute path to the Provar project root', 'string, absolute path to project root')),
|
|
352
|
+
plan_name: z
|
|
353
|
+
.string()
|
|
354
|
+
.describe(desc('Name of the test plan (directory under plans/)', 'string, test plan name')),
|
|
355
|
+
suite_name: z
|
|
356
|
+
.string()
|
|
357
|
+
.describe(desc('Name of the new suite directory to create', 'string, new suite directory name')),
|
|
358
|
+
parent_suite_path: z
|
|
359
|
+
.string()
|
|
360
|
+
.optional()
|
|
361
|
+
.describe(desc('Path of the parent suite within the plan (e.g. "MySuite"). Omit to create at plan root.', 'string, optional; parent suite path within plan')),
|
|
362
|
+
dry_run: z
|
|
363
|
+
.boolean()
|
|
364
|
+
.optional()
|
|
365
|
+
.default(false)
|
|
366
|
+
.describe(desc('Return what would be created without writing to disk (default: false)', 'bool, optional; default false, skip write')),
|
|
367
|
+
},
|
|
169
368
|
}, ({ project_path, plan_name, suite_name, parent_suite_path, dry_run }) => {
|
|
170
369
|
const requestId = makeRequestId();
|
|
171
|
-
log('info', '
|
|
370
|
+
log('info', 'provar_testplan_create-suite', { requestId, project_path, plan_name, suite_name });
|
|
172
371
|
try {
|
|
173
372
|
assertPathAllowed(project_path, config.allowedPaths);
|
|
174
373
|
const projectRoot = path.resolve(project_path);
|
|
@@ -179,7 +378,12 @@ export function registerTestPlanCreateSuite(server, config) {
|
|
|
179
378
|
if (testProjectFiles.length === 0) {
|
|
180
379
|
return {
|
|
181
380
|
isError: true,
|
|
182
|
-
content: [
|
|
381
|
+
content: [
|
|
382
|
+
{
|
|
383
|
+
type: 'text',
|
|
384
|
+
text: JSON.stringify(makeError('NOT_A_PROJECT', `No .testproject file found in ${projectRoot}`, requestId)),
|
|
385
|
+
},
|
|
386
|
+
],
|
|
183
387
|
};
|
|
184
388
|
}
|
|
185
389
|
// Verify plan directory exists
|
|
@@ -187,7 +391,12 @@ export function registerTestPlanCreateSuite(server, config) {
|
|
|
187
391
|
if (!fs.existsSync(planDir)) {
|
|
188
392
|
return {
|
|
189
393
|
isError: true,
|
|
190
|
-
content: [
|
|
394
|
+
content: [
|
|
395
|
+
{
|
|
396
|
+
type: 'text',
|
|
397
|
+
text: JSON.stringify(makeError('DIR_NOT_FOUND', `Plan directory does not exist: ${planDir}`, requestId)),
|
|
398
|
+
},
|
|
399
|
+
],
|
|
191
400
|
};
|
|
192
401
|
}
|
|
193
402
|
// Verify plan .planitem exists
|
|
@@ -195,7 +404,12 @@ export function registerTestPlanCreateSuite(server, config) {
|
|
|
195
404
|
if (!fs.existsSync(planItemPath)) {
|
|
196
405
|
return {
|
|
197
406
|
isError: true,
|
|
198
|
-
content: [
|
|
407
|
+
content: [
|
|
408
|
+
{
|
|
409
|
+
type: 'text',
|
|
410
|
+
text: JSON.stringify(makeError('FILE_NOT_FOUND', `Plan .planitem file does not exist: ${planItemPath}`, requestId)),
|
|
411
|
+
},
|
|
412
|
+
],
|
|
199
413
|
};
|
|
200
414
|
}
|
|
201
415
|
// Determine suite directory
|
|
@@ -207,7 +421,12 @@ export function registerTestPlanCreateSuite(server, config) {
|
|
|
207
421
|
if (fs.existsSync(suiteDir)) {
|
|
208
422
|
return {
|
|
209
423
|
isError: true,
|
|
210
|
-
content: [
|
|
424
|
+
content: [
|
|
425
|
+
{
|
|
426
|
+
type: 'text',
|
|
427
|
+
text: JSON.stringify(makeError('DIR_EXISTS', `Suite directory already exists: ${suiteDir}`, requestId)),
|
|
428
|
+
},
|
|
429
|
+
],
|
|
211
430
|
};
|
|
212
431
|
}
|
|
213
432
|
const guid = randomUUID();
|
|
@@ -234,24 +453,41 @@ export function registerTestPlanCreateSuite(server, config) {
|
|
|
234
453
|
const error = err;
|
|
235
454
|
return {
|
|
236
455
|
isError: true,
|
|
237
|
-
content: [
|
|
456
|
+
content: [
|
|
457
|
+
{
|
|
458
|
+
type: 'text',
|
|
459
|
+
text: JSON.stringify(makeError(error instanceof PathPolicyError ? error.code : error.code ?? 'CREATE_SUITE_ERROR', error.message, requestId)),
|
|
460
|
+
},
|
|
461
|
+
],
|
|
238
462
|
};
|
|
239
463
|
}
|
|
240
464
|
});
|
|
241
465
|
}
|
|
242
|
-
// ──
|
|
466
|
+
// ── provar_testplan_remove-instance ──────────────────────────────────────────
|
|
243
467
|
export function registerTestPlanRemoveInstance(server, config) {
|
|
244
|
-
server.
|
|
245
|
-
'Remove
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
468
|
+
server.registerTool('provar_testplan_remove-instance', {
|
|
469
|
+
title: 'Remove Test Plan Instance',
|
|
470
|
+
description: desc([
|
|
471
|
+
'Remove a .testinstance file from a Provar test plan.',
|
|
472
|
+
'instance_path is relative to the project root.',
|
|
473
|
+
'Returns the path of the removed file.',
|
|
474
|
+
].join(' '), 'Remove a .testinstance file from a Provar test plan.'),
|
|
475
|
+
inputSchema: {
|
|
476
|
+
project_path: z
|
|
477
|
+
.string()
|
|
478
|
+
.describe(desc('Absolute path to the Provar project root', 'string, absolute path to project root')),
|
|
479
|
+
instance_path: z
|
|
480
|
+
.string()
|
|
481
|
+
.describe(desc('Path to the .testinstance file, relative to project root', 'string, relative path to .testinstance file')),
|
|
482
|
+
dry_run: z
|
|
483
|
+
.boolean()
|
|
484
|
+
.optional()
|
|
485
|
+
.default(false)
|
|
486
|
+
.describe(desc('Return what would be removed without deleting (default: false)', 'bool, optional; default false, skip delete')),
|
|
487
|
+
},
|
|
252
488
|
}, ({ project_path, instance_path, dry_run }) => {
|
|
253
489
|
const requestId = makeRequestId();
|
|
254
|
-
log('info', '
|
|
490
|
+
log('info', 'provar_testplan_remove-instance', { requestId, project_path, instance_path });
|
|
255
491
|
try {
|
|
256
492
|
assertPathAllowed(project_path, config.allowedPaths);
|
|
257
493
|
const projectRoot = path.resolve(project_path);
|
|
@@ -262,21 +498,36 @@ export function registerTestPlanRemoveInstance(server, config) {
|
|
|
262
498
|
if (!resolvedAbsolute.startsWith(resolvedProjectRoot + path.sep) && resolvedAbsolute !== resolvedProjectRoot) {
|
|
263
499
|
return {
|
|
264
500
|
isError: true,
|
|
265
|
-
content: [
|
|
501
|
+
content: [
|
|
502
|
+
{
|
|
503
|
+
type: 'text',
|
|
504
|
+
text: JSON.stringify(makeError('PATH_TRAVERSAL', `Path traversal detected: ${instance_path}`, requestId)),
|
|
505
|
+
},
|
|
506
|
+
],
|
|
266
507
|
};
|
|
267
508
|
}
|
|
268
509
|
// Must end with .testinstance
|
|
269
510
|
if (!instance_path.endsWith('.testinstance')) {
|
|
270
511
|
return {
|
|
271
512
|
isError: true,
|
|
272
|
-
content: [
|
|
513
|
+
content: [
|
|
514
|
+
{
|
|
515
|
+
type: 'text',
|
|
516
|
+
text: JSON.stringify(makeError('INVALID_PATH', 'instance_path must end with .testinstance', requestId)),
|
|
517
|
+
},
|
|
518
|
+
],
|
|
273
519
|
};
|
|
274
520
|
}
|
|
275
521
|
// File must exist
|
|
276
522
|
if (!fs.existsSync(absolutePath)) {
|
|
277
523
|
return {
|
|
278
524
|
isError: true,
|
|
279
|
-
content: [
|
|
525
|
+
content: [
|
|
526
|
+
{
|
|
527
|
+
type: 'text',
|
|
528
|
+
text: JSON.stringify(makeError('FILE_NOT_FOUND', `Instance file not found: ${absolutePath}`, requestId)),
|
|
529
|
+
},
|
|
530
|
+
],
|
|
280
531
|
};
|
|
281
532
|
}
|
|
282
533
|
if (!dry_run) {
|
|
@@ -297,13 +548,19 @@ export function registerTestPlanRemoveInstance(server, config) {
|
|
|
297
548
|
const error = err;
|
|
298
549
|
return {
|
|
299
550
|
isError: true,
|
|
300
|
-
content: [
|
|
551
|
+
content: [
|
|
552
|
+
{
|
|
553
|
+
type: 'text',
|
|
554
|
+
text: JSON.stringify(makeError(error instanceof PathPolicyError ? error.code : error.code ?? 'REMOVE_INSTANCE_ERROR', error.message, requestId)),
|
|
555
|
+
},
|
|
556
|
+
],
|
|
301
557
|
};
|
|
302
558
|
}
|
|
303
559
|
});
|
|
304
560
|
}
|
|
305
561
|
// ── Convenience re-export ─────────────────────────────────────────────────────
|
|
306
562
|
export function registerAllTestPlanTools(server, config) {
|
|
563
|
+
registerTestPlanCreate(server, config);
|
|
307
564
|
registerTestPlanAddInstance(server, config);
|
|
308
565
|
registerTestPlanCreateSuite(server, config);
|
|
309
566
|
registerTestPlanRemoveInstance(server, config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testPlanTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/testPlanTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testPlanTools.js","sourceRoot":"","sources":["../../../src/mcp/tools/testPlanTools.ts"],"names":[],"mappings":"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"}
|