@provartesting/provardx-cli 1.5.0-beta.14 → 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/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.js +6 -2
- 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 -105
- 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 +63 -59
- 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 +30 -26
- 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 +18 -14
- 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/services/projectValidation.js +8 -2
- package/lib/services/projectValidation.js.map +1 -1
- package/messages/sf.provar.auth.clear.md +1 -1
- package/messages/sf.provar.mcp.start.md +41 -42
- package/oclif.manifest.json +212 -212
- package/package.json +1 -1
package/oclif.manifest.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"commands": {
|
|
3
|
-
"provar:
|
|
3
|
+
"provar:config:get": {
|
|
4
4
|
"aliases": [],
|
|
5
5
|
"args": {},
|
|
6
|
-
"description": "
|
|
6
|
+
"description": "Retrieve a value from the specified JSON file.",
|
|
7
7
|
"examples": [
|
|
8
|
-
"
|
|
8
|
+
"Get the testEnvironment value within the environment property from the config.json file:\n$ sf provar config get environment.testEnvironment -f config.json"
|
|
9
9
|
],
|
|
10
10
|
"flags": {
|
|
11
11
|
"json": {
|
|
@@ -22,42 +22,52 @@
|
|
|
22
22
|
"hasDynamicHelp": false,
|
|
23
23
|
"multiple": false,
|
|
24
24
|
"type": "option"
|
|
25
|
+
},
|
|
26
|
+
"file-path": {
|
|
27
|
+
"char": "f",
|
|
28
|
+
"name": "file-path",
|
|
29
|
+
"required": true,
|
|
30
|
+
"summary": "Config file-path to get the properties from.",
|
|
31
|
+
"hasDynamicHelp": false,
|
|
32
|
+
"multiple": false,
|
|
33
|
+
"type": "option"
|
|
25
34
|
}
|
|
26
35
|
},
|
|
27
36
|
"hasDynamicHelp": false,
|
|
28
37
|
"hiddenAliases": [],
|
|
29
|
-
"id": "provar:
|
|
38
|
+
"id": "provar:config:get",
|
|
30
39
|
"pluginAlias": "@provartesting/provardx-cli",
|
|
31
40
|
"pluginName": "@provartesting/provardx-cli",
|
|
32
41
|
"pluginType": "core",
|
|
33
|
-
"strict":
|
|
34
|
-
"summary": "
|
|
42
|
+
"strict": false,
|
|
43
|
+
"summary": "Retrieve a value from the specified JSON file.",
|
|
35
44
|
"enableJsonFlag": true,
|
|
36
45
|
"isESM": true,
|
|
37
46
|
"relativePath": [
|
|
38
47
|
"lib",
|
|
39
48
|
"commands",
|
|
40
49
|
"provar",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
50
|
+
"config",
|
|
51
|
+
"get.js"
|
|
43
52
|
],
|
|
44
53
|
"aliasPermutations": [],
|
|
45
54
|
"permutations": [
|
|
46
|
-
"provar:
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"provar:
|
|
50
|
-
"
|
|
51
|
-
"
|
|
55
|
+
"provar:config:get",
|
|
56
|
+
"config:provar:get",
|
|
57
|
+
"config:get:provar",
|
|
58
|
+
"provar:get:config",
|
|
59
|
+
"get:provar:config",
|
|
60
|
+
"get:config:provar"
|
|
52
61
|
]
|
|
53
62
|
},
|
|
54
|
-
"provar:
|
|
63
|
+
"provar:config:set": {
|
|
55
64
|
"aliases": [],
|
|
56
65
|
"args": {},
|
|
57
|
-
"description": "
|
|
66
|
+
"description": "Set one or more properties in the specified JSON file.",
|
|
58
67
|
"examples": [
|
|
59
|
-
"
|
|
60
|
-
"
|
|
68
|
+
"Set the environment to “SIT” in the config.json properties file:\n$ sf provar config set environment.testEnvironment=\"SIT\" -f config.json",
|
|
69
|
+
"Set the testEnvironment to “SIT” and the webBrowser to “Chrome”, within the environment property.\n$ sf provar config set environment.testEnvironment=\"SIT\" environment.webBrowser=\"Chrome\" -f config.json",
|
|
70
|
+
"Set testCases to a list of test case paths in the config.json properties file.\n$ sf provar config set testCases='[\"tests/myTestCase.testcase\",\"tests/testSuite1/myTestCase1.testCase\"]' -f config.json"
|
|
61
71
|
],
|
|
62
72
|
"flags": {
|
|
63
73
|
"json": {
|
|
@@ -75,10 +85,11 @@
|
|
|
75
85
|
"multiple": false,
|
|
76
86
|
"type": "option"
|
|
77
87
|
},
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
88
|
+
"file-path": {
|
|
89
|
+
"char": "f",
|
|
90
|
+
"name": "file-path",
|
|
91
|
+
"required": true,
|
|
92
|
+
"summary": "Config file-path to set the properties to.",
|
|
82
93
|
"hasDynamicHelp": false,
|
|
83
94
|
"multiple": false,
|
|
84
95
|
"type": "option"
|
|
@@ -86,37 +97,37 @@
|
|
|
86
97
|
},
|
|
87
98
|
"hasDynamicHelp": false,
|
|
88
99
|
"hiddenAliases": [],
|
|
89
|
-
"id": "provar:
|
|
100
|
+
"id": "provar:config:set",
|
|
90
101
|
"pluginAlias": "@provartesting/provardx-cli",
|
|
91
102
|
"pluginName": "@provartesting/provardx-cli",
|
|
92
103
|
"pluginType": "core",
|
|
93
|
-
"strict":
|
|
94
|
-
"summary": "
|
|
104
|
+
"strict": false,
|
|
105
|
+
"summary": "Set one or more properties in the specified JSON file.",
|
|
95
106
|
"enableJsonFlag": true,
|
|
96
107
|
"isESM": true,
|
|
97
108
|
"relativePath": [
|
|
98
109
|
"lib",
|
|
99
110
|
"commands",
|
|
100
111
|
"provar",
|
|
101
|
-
"
|
|
102
|
-
"
|
|
112
|
+
"config",
|
|
113
|
+
"set.js"
|
|
103
114
|
],
|
|
104
115
|
"aliasPermutations": [],
|
|
105
116
|
"permutations": [
|
|
106
|
-
"provar:
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"provar:
|
|
110
|
-
"
|
|
111
|
-
"
|
|
117
|
+
"provar:config:set",
|
|
118
|
+
"config:provar:set",
|
|
119
|
+
"config:set:provar",
|
|
120
|
+
"provar:set:config",
|
|
121
|
+
"set:provar:config",
|
|
122
|
+
"set:config:provar"
|
|
112
123
|
]
|
|
113
124
|
},
|
|
114
|
-
"provar:auth:
|
|
125
|
+
"provar:auth:clear": {
|
|
115
126
|
"aliases": [],
|
|
116
127
|
"args": {},
|
|
117
|
-
"description": "
|
|
128
|
+
"description": "Deletes the API key stored at ~/.provar/credentials.json. After clearing, the\nprovar_testcase_validate MCP tool falls back to local validation (structural rules only,\nno Quality Hub quality scoring).\n\nThe PROVAR_API_KEY environment variable is not affected by this command.",
|
|
118
129
|
"examples": [
|
|
119
|
-
"
|
|
130
|
+
"Clear the stored API key:\n<%= config.bin %> <%= command.id %>"
|
|
120
131
|
],
|
|
121
132
|
"flags": {
|
|
122
133
|
"json": {
|
|
@@ -137,12 +148,12 @@
|
|
|
137
148
|
},
|
|
138
149
|
"hasDynamicHelp": false,
|
|
139
150
|
"hiddenAliases": [],
|
|
140
|
-
"id": "provar:auth:
|
|
151
|
+
"id": "provar:auth:clear",
|
|
141
152
|
"pluginAlias": "@provartesting/provardx-cli",
|
|
142
153
|
"pluginName": "@provartesting/provardx-cli",
|
|
143
154
|
"pluginType": "core",
|
|
144
155
|
"strict": true,
|
|
145
|
-
"summary": "
|
|
156
|
+
"summary": "Remove the stored Provar API key.",
|
|
146
157
|
"enableJsonFlag": true,
|
|
147
158
|
"isESM": true,
|
|
148
159
|
"relativePath": [
|
|
@@ -150,24 +161,25 @@
|
|
|
150
161
|
"commands",
|
|
151
162
|
"provar",
|
|
152
163
|
"auth",
|
|
153
|
-
"
|
|
164
|
+
"clear.js"
|
|
154
165
|
],
|
|
155
166
|
"aliasPermutations": [],
|
|
156
167
|
"permutations": [
|
|
157
|
-
"provar:auth:
|
|
158
|
-
"auth:provar:
|
|
159
|
-
"auth:
|
|
160
|
-
"provar:
|
|
161
|
-
"
|
|
162
|
-
"
|
|
168
|
+
"provar:auth:clear",
|
|
169
|
+
"auth:provar:clear",
|
|
170
|
+
"auth:clear:provar",
|
|
171
|
+
"provar:clear:auth",
|
|
172
|
+
"clear:provar:auth",
|
|
173
|
+
"clear:auth:provar"
|
|
163
174
|
]
|
|
164
175
|
},
|
|
165
|
-
"provar:auth:
|
|
176
|
+
"provar:auth:login": {
|
|
166
177
|
"aliases": [],
|
|
167
178
|
"args": {},
|
|
168
|
-
"description": "
|
|
179
|
+
"description": "Opens a browser to the Provar login page. After you authenticate, your API key\nis stored at ~/.provar/credentials.json and used automatically by the Provar MCP\ntools and CI/CD integrations.\n\nThe Cognito session tokens are held in memory only for the duration of the key\nexchange and are then discarded — only the pv*k* API key is written to disk.\n\nRun 'sf provar auth status' after login to confirm the key is configured correctly.\n\nDon't have an account? Request access at:\nhttps://aqqlrlhga7.execute-api.us-east-1.amazonaws.com/dev/auth/request-access",
|
|
169
180
|
"examples": [
|
|
170
|
-
"
|
|
181
|
+
"Log in interactively (opens browser):\n<%= config.bin %> <%= command.id %>",
|
|
182
|
+
"Log in against a staging environment:\n<%= config.bin %> <%= command.id %> --url https://dev.api.example.com"
|
|
171
183
|
],
|
|
172
184
|
"flags": {
|
|
173
185
|
"json": {
|
|
@@ -184,16 +196,24 @@
|
|
|
184
196
|
"hasDynamicHelp": false,
|
|
185
197
|
"multiple": false,
|
|
186
198
|
"type": "option"
|
|
199
|
+
},
|
|
200
|
+
"url": {
|
|
201
|
+
"name": "url",
|
|
202
|
+
"required": false,
|
|
203
|
+
"summary": "Override the Quality Hub API base URL (for testing against a non-production environment).",
|
|
204
|
+
"hasDynamicHelp": false,
|
|
205
|
+
"multiple": false,
|
|
206
|
+
"type": "option"
|
|
187
207
|
}
|
|
188
208
|
},
|
|
189
209
|
"hasDynamicHelp": false,
|
|
190
210
|
"hiddenAliases": [],
|
|
191
|
-
"id": "provar:auth:
|
|
211
|
+
"id": "provar:auth:login",
|
|
192
212
|
"pluginAlias": "@provartesting/provardx-cli",
|
|
193
213
|
"pluginName": "@provartesting/provardx-cli",
|
|
194
214
|
"pluginType": "core",
|
|
195
215
|
"strict": true,
|
|
196
|
-
"summary": "
|
|
216
|
+
"summary": "Log in to Provar Quality Hub and store your API key.",
|
|
197
217
|
"enableJsonFlag": true,
|
|
198
218
|
"isESM": true,
|
|
199
219
|
"relativePath": [
|
|
@@ -201,24 +221,24 @@
|
|
|
201
221
|
"commands",
|
|
202
222
|
"provar",
|
|
203
223
|
"auth",
|
|
204
|
-
"
|
|
224
|
+
"login.js"
|
|
205
225
|
],
|
|
206
226
|
"aliasPermutations": [],
|
|
207
227
|
"permutations": [
|
|
208
|
-
"provar:auth:
|
|
209
|
-
"auth:provar:
|
|
210
|
-
"auth:
|
|
211
|
-
"provar:
|
|
212
|
-
"
|
|
213
|
-
"
|
|
228
|
+
"provar:auth:login",
|
|
229
|
+
"auth:provar:login",
|
|
230
|
+
"auth:login:provar",
|
|
231
|
+
"provar:login:auth",
|
|
232
|
+
"login:provar:auth",
|
|
233
|
+
"login:auth:provar"
|
|
214
234
|
]
|
|
215
235
|
},
|
|
216
|
-
"provar:
|
|
236
|
+
"provar:auth:rotate": {
|
|
217
237
|
"aliases": [],
|
|
218
238
|
"args": {},
|
|
219
|
-
"description": "
|
|
239
|
+
"description": "Exchanges your current pv*k* key for a new one in a single atomic operation.\nThe old key is invalidated the moment the new key is issued — there is no window\nwhere both are valid.\n\nThe new key is written to ~/.provar/credentials.json automatically.\n\nUse this command to rotate your key on a regular schedule (every ~90 days) without\ngoing through the browser login flow again.\n\nIf the current key is already expired or revoked, rotation is not possible — run\nsf provar auth login instead to authenticate via browser and get a fresh key.",
|
|
220
240
|
"examples": [
|
|
221
|
-
"
|
|
241
|
+
"Rotate the stored API key:\n<%= config.bin %> <%= command.id %>"
|
|
222
242
|
],
|
|
223
243
|
"flags": {
|
|
224
244
|
"json": {
|
|
@@ -235,52 +255,41 @@
|
|
|
235
255
|
"hasDynamicHelp": false,
|
|
236
256
|
"multiple": false,
|
|
237
257
|
"type": "option"
|
|
238
|
-
},
|
|
239
|
-
"file-path": {
|
|
240
|
-
"char": "f",
|
|
241
|
-
"name": "file-path",
|
|
242
|
-
"required": true,
|
|
243
|
-
"summary": "Config file-path to get the properties from.",
|
|
244
|
-
"hasDynamicHelp": false,
|
|
245
|
-
"multiple": false,
|
|
246
|
-
"type": "option"
|
|
247
258
|
}
|
|
248
259
|
},
|
|
249
260
|
"hasDynamicHelp": false,
|
|
250
261
|
"hiddenAliases": [],
|
|
251
|
-
"id": "provar:
|
|
262
|
+
"id": "provar:auth:rotate",
|
|
252
263
|
"pluginAlias": "@provartesting/provardx-cli",
|
|
253
264
|
"pluginName": "@provartesting/provardx-cli",
|
|
254
265
|
"pluginType": "core",
|
|
255
|
-
"strict":
|
|
256
|
-
"summary": "
|
|
266
|
+
"strict": true,
|
|
267
|
+
"summary": "Rotate your stored Provar Quality Hub API key.",
|
|
257
268
|
"enableJsonFlag": true,
|
|
258
269
|
"isESM": true,
|
|
259
270
|
"relativePath": [
|
|
260
271
|
"lib",
|
|
261
272
|
"commands",
|
|
262
273
|
"provar",
|
|
263
|
-
"
|
|
264
|
-
"
|
|
274
|
+
"auth",
|
|
275
|
+
"rotate.js"
|
|
265
276
|
],
|
|
266
277
|
"aliasPermutations": [],
|
|
267
278
|
"permutations": [
|
|
268
|
-
"provar:
|
|
269
|
-
"
|
|
270
|
-
"
|
|
271
|
-
"provar:
|
|
272
|
-
"
|
|
273
|
-
"
|
|
279
|
+
"provar:auth:rotate",
|
|
280
|
+
"auth:provar:rotate",
|
|
281
|
+
"auth:rotate:provar",
|
|
282
|
+
"provar:rotate:auth",
|
|
283
|
+
"rotate:provar:auth",
|
|
284
|
+
"rotate:auth:provar"
|
|
274
285
|
]
|
|
275
286
|
},
|
|
276
|
-
"provar:
|
|
287
|
+
"provar:auth:status": {
|
|
277
288
|
"aliases": [],
|
|
278
289
|
"args": {},
|
|
279
|
-
"description": "
|
|
290
|
+
"description": "Reports where the active API key comes from (environment variable or stored file),\nshows the key prefix and when it was set, and states whether validation will use the\nQuality Hub API or local rules only. The full key is never printed.\n\nIf no key is configured, guidance is shown for logging in or requesting access.",
|
|
280
291
|
"examples": [
|
|
281
|
-
"
|
|
282
|
-
"Set the testEnvironment to “SIT” and the webBrowser to “Chrome”, within the environment property.\n$ sf provar config set environment.testEnvironment=\"SIT\" environment.webBrowser=\"Chrome\" -f config.json",
|
|
283
|
-
"Set testCases to a list of test case paths in the config.json properties file.\n$ sf provar config set testCases='[\"tests/myTestCase.testcase\",\"tests/testSuite1/myTestCase1.testCase\"]' -f config.json"
|
|
292
|
+
"Check auth status:\n<%= config.bin %> <%= command.id %>"
|
|
284
293
|
],
|
|
285
294
|
"flags": {
|
|
286
295
|
"json": {
|
|
@@ -297,48 +306,39 @@
|
|
|
297
306
|
"hasDynamicHelp": false,
|
|
298
307
|
"multiple": false,
|
|
299
308
|
"type": "option"
|
|
300
|
-
},
|
|
301
|
-
"file-path": {
|
|
302
|
-
"char": "f",
|
|
303
|
-
"name": "file-path",
|
|
304
|
-
"required": true,
|
|
305
|
-
"summary": "Config file-path to set the properties to.",
|
|
306
|
-
"hasDynamicHelp": false,
|
|
307
|
-
"multiple": false,
|
|
308
|
-
"type": "option"
|
|
309
309
|
}
|
|
310
310
|
},
|
|
311
311
|
"hasDynamicHelp": false,
|
|
312
312
|
"hiddenAliases": [],
|
|
313
|
-
"id": "provar:
|
|
313
|
+
"id": "provar:auth:status",
|
|
314
314
|
"pluginAlias": "@provartesting/provardx-cli",
|
|
315
315
|
"pluginName": "@provartesting/provardx-cli",
|
|
316
316
|
"pluginType": "core",
|
|
317
|
-
"strict":
|
|
318
|
-
"summary": "
|
|
317
|
+
"strict": true,
|
|
318
|
+
"summary": "Show the current Provar API key configuration status.",
|
|
319
319
|
"enableJsonFlag": true,
|
|
320
320
|
"isESM": true,
|
|
321
321
|
"relativePath": [
|
|
322
322
|
"lib",
|
|
323
323
|
"commands",
|
|
324
324
|
"provar",
|
|
325
|
-
"
|
|
326
|
-
"
|
|
325
|
+
"auth",
|
|
326
|
+
"status.js"
|
|
327
327
|
],
|
|
328
328
|
"aliasPermutations": [],
|
|
329
329
|
"permutations": [
|
|
330
|
-
"provar:
|
|
331
|
-
"
|
|
332
|
-
"
|
|
333
|
-
"provar:
|
|
334
|
-
"
|
|
335
|
-
"
|
|
330
|
+
"provar:auth:status",
|
|
331
|
+
"auth:provar:status",
|
|
332
|
+
"auth:status:provar",
|
|
333
|
+
"provar:status:auth",
|
|
334
|
+
"status:provar:auth",
|
|
335
|
+
"status:auth:provar"
|
|
336
336
|
]
|
|
337
337
|
},
|
|
338
338
|
"provar:mcp:start": {
|
|
339
339
|
"aliases": [],
|
|
340
340
|
"args": {},
|
|
341
|
-
"description": "Launches a stateless MCP (Model Context Protocol) server that exposes Provar tools to\nAI assistants (Claude Desktop, Claude Code, Cursor) via stdio transport. All MCP\nJSON-RPC communication happens over stdout; all internal logging goes to stderr.\n\nAvailable tools:\n\nProject & inspection:\n\n-
|
|
341
|
+
"description": "Launches a stateless MCP (Model Context Protocol) server that exposes Provar tools to\nAI assistants (Claude Desktop, Claude Code, Cursor) via stdio transport. All MCP\nJSON-RPC communication happens over stdout; all internal logging goes to stderr.\n\nAvailable tools:\n\nProject & inspection:\n\n- provardx_ping — ping the MCP server (health check)\n- provar_project_inspect — inspect project folder inventory\n- provar_project_validate — validate full project from disk: coverage, quality scores\n- provar_connection_list — list connections and named environments from the project\n\nPage Object:\n\n- provar_pageobject_generate — generate a Java Page Object skeleton\n- provar_pageobject_validate — validate Page Object quality and naming\n\nTest Case:\n\n- provar_testcase_generate — generate an XML test case skeleton\n- provar_testcase_validate — validate test case XML (validity + best-practices scores)\n- provar_testcase_step_edit — atomically add or remove a single step in a test case\n\nTest Suite / Plan:\n\n- provar_testsuite_validate — validate test suite hierarchy\n- provar_testplan_validate — validate test plan metadata completeness\n- provar_testplan_create — create a new test plan\n- provar_testplan_create-suite — create a test suite under a plan\n- provar_testplan_add-instance — add a test instance to a plan\n- provar_testplan_remove-instance — remove a test instance from a plan\n\nProperties files:\n\n- provar_properties_read — read a Provar properties file\n- provar_properties_set — set a key in a Provar properties file\n- provar_properties_validate — validate a properties file structure\n- provar_properties_generate — generate a properties file skeleton\n\nQuality Hub (sf provar quality-hub wrappers):\n\n- provar_qualityhub_connect — connect to a Quality Hub org\n- provar_qualityhub_display — display connected org info\n- provar_qualityhub_testrun — trigger a Quality Hub test run\n- provar_qualityhub_testrun_report — poll test run status\n- provar_qualityhub_testrun_abort — abort a running test run\n- provar_qualityhub_testcase_retrieve — retrieve test case results\n- provar_qualityhub_defect_create — create defects for failed test executions\n- provar_qualityhub_examples_retrieve — retrieve corpus examples for test generation grounding\n\nAutomation (sf provar automation wrappers):\n\n- provar_automation_setup — set up the Provar Automation runtime\n- provar_automation_metadata_download — download Salesforce metadata\n- provar_automation_compile — compile Provar test assets\n- provar_automation_testrun — run Provar tests\n- provar_automation_config_load — load a Provar configuration\n\nANT build:\n\n- provar_ant_generate — generate an ANT build.xml\n- provar_ant_validate — validate an ANT build.xml\n\nTest result analysis:\n\n- provar_testrun_rca — root cause analysis on a test result\n- provar_testrun_report_locate — locate a test result report\n\nNitroX (Provar NitroX component tools):\n\n- provar_nitrox_discover — discover NitroX component metadata\n- provar_nitrox_generate — generate a NitroX component\n- provar_nitrox_patch — patch a NitroX component definition\n- provar_nitrox_read — read a NitroX component definition\n- provar_nitrox_validate — validate a NitroX component\n\nFor full tool documentation see docs/mcp.md in this repository.",
|
|
342
342
|
"examples": [
|
|
343
343
|
"Start MCP server (accepts stdio connections from Claude Desktop / Cursor):\n<%= config.bin %> <%= command.id %>",
|
|
344
344
|
"Start with explicit allowed paths:\n<%= config.bin %> <%= command.id %> --allowed-paths /workspace/provar",
|
|
@@ -602,6 +602,111 @@
|
|
|
602
602
|
"open:quality-hub:provar"
|
|
603
603
|
]
|
|
604
604
|
},
|
|
605
|
+
"provar:automation:project:validate": {
|
|
606
|
+
"aliases": [],
|
|
607
|
+
"args": {},
|
|
608
|
+
"description": "Reads the plan/suite/testinstance hierarchy from the plans/ directory, resolves test\ncase XML from the tests/ directory, and runs the full validation rule set. Reports a\nquality score, violation summary, and per-plan/suite breakdown. Saves a QH-compatible\nJSON report to {project_path}/provardx/validation/ by default.",
|
|
609
|
+
"examples": [
|
|
610
|
+
"Validate the Provar project in the current directory:\n<%= config.bin %> <%= command.id %>",
|
|
611
|
+
"Validate a project at a specific path and output JSON:\n<%= config.bin %> <%= command.id %> --project-path /path/to/MyProject --json",
|
|
612
|
+
"Validate with a custom quality threshold, saving results to a specific directory:\n<%= config.bin %> <%= command.id %> -p /path/to/MyProject -q 90 -d /reports/validation",
|
|
613
|
+
"Validate without saving results:\n<%= config.bin %> <%= command.id %> --no-save-results"
|
|
614
|
+
],
|
|
615
|
+
"flags": {
|
|
616
|
+
"json": {
|
|
617
|
+
"description": "Format output as json.",
|
|
618
|
+
"helpGroup": "GLOBAL",
|
|
619
|
+
"name": "json",
|
|
620
|
+
"allowNo": false,
|
|
621
|
+
"type": "boolean"
|
|
622
|
+
},
|
|
623
|
+
"flags-dir": {
|
|
624
|
+
"helpGroup": "GLOBAL",
|
|
625
|
+
"name": "flags-dir",
|
|
626
|
+
"summary": "Import flag values from a directory.",
|
|
627
|
+
"hasDynamicHelp": false,
|
|
628
|
+
"multiple": false,
|
|
629
|
+
"type": "option"
|
|
630
|
+
},
|
|
631
|
+
"project-path": {
|
|
632
|
+
"char": "p",
|
|
633
|
+
"name": "project-path",
|
|
634
|
+
"summary": "Path to the Provar project root (directory containing the .testproject file). Defaults to current directory.",
|
|
635
|
+
"default": "/home/runner/work/provardx-cli/provardx-cli",
|
|
636
|
+
"hasDynamicHelp": false,
|
|
637
|
+
"multiple": false,
|
|
638
|
+
"type": "option"
|
|
639
|
+
},
|
|
640
|
+
"quality-threshold": {
|
|
641
|
+
"char": "q",
|
|
642
|
+
"name": "quality-threshold",
|
|
643
|
+
"summary": "Minimum quality score (0-100) for a test case to pass validation (default: 80).",
|
|
644
|
+
"default": 80,
|
|
645
|
+
"hasDynamicHelp": false,
|
|
646
|
+
"multiple": false,
|
|
647
|
+
"type": "option"
|
|
648
|
+
},
|
|
649
|
+
"save-results": {
|
|
650
|
+
"name": "save-results",
|
|
651
|
+
"summary": "Write a QH-compatible JSON report to provardx/validation/. Use --no-save-results to skip (default: true).",
|
|
652
|
+
"allowNo": true,
|
|
653
|
+
"type": "boolean"
|
|
654
|
+
},
|
|
655
|
+
"results-dir": {
|
|
656
|
+
"char": "d",
|
|
657
|
+
"name": "results-dir",
|
|
658
|
+
"summary": "Override the output directory for the saved validation report.",
|
|
659
|
+
"hasDynamicHelp": false,
|
|
660
|
+
"multiple": false,
|
|
661
|
+
"type": "option"
|
|
662
|
+
}
|
|
663
|
+
},
|
|
664
|
+
"hasDynamicHelp": false,
|
|
665
|
+
"hiddenAliases": [],
|
|
666
|
+
"id": "provar:automation:project:validate",
|
|
667
|
+
"pluginAlias": "@provartesting/provardx-cli",
|
|
668
|
+
"pluginName": "@provartesting/provardx-cli",
|
|
669
|
+
"pluginType": "core",
|
|
670
|
+
"strict": true,
|
|
671
|
+
"summary": "Validate a Provar project from its directory on disk and report quality scores.",
|
|
672
|
+
"enableJsonFlag": true,
|
|
673
|
+
"isESM": true,
|
|
674
|
+
"relativePath": [
|
|
675
|
+
"lib",
|
|
676
|
+
"commands",
|
|
677
|
+
"provar",
|
|
678
|
+
"automation",
|
|
679
|
+
"project",
|
|
680
|
+
"validate.js"
|
|
681
|
+
],
|
|
682
|
+
"aliasPermutations": [],
|
|
683
|
+
"permutations": [
|
|
684
|
+
"provar:automation:project:validate",
|
|
685
|
+
"automation:provar:project:validate",
|
|
686
|
+
"automation:project:provar:validate",
|
|
687
|
+
"automation:project:validate:provar",
|
|
688
|
+
"provar:project:automation:validate",
|
|
689
|
+
"project:provar:automation:validate",
|
|
690
|
+
"project:automation:provar:validate",
|
|
691
|
+
"project:automation:validate:provar",
|
|
692
|
+
"provar:project:validate:automation",
|
|
693
|
+
"project:provar:validate:automation",
|
|
694
|
+
"project:validate:provar:automation",
|
|
695
|
+
"project:validate:automation:provar",
|
|
696
|
+
"provar:automation:validate:project",
|
|
697
|
+
"automation:provar:validate:project",
|
|
698
|
+
"automation:validate:provar:project",
|
|
699
|
+
"automation:validate:project:provar",
|
|
700
|
+
"provar:validate:automation:project",
|
|
701
|
+
"validate:provar:automation:project",
|
|
702
|
+
"validate:automation:provar:project",
|
|
703
|
+
"validate:automation:project:provar",
|
|
704
|
+
"provar:validate:project:automation",
|
|
705
|
+
"validate:provar:project:automation",
|
|
706
|
+
"validate:project:provar:automation",
|
|
707
|
+
"validate:project:automation:provar"
|
|
708
|
+
]
|
|
709
|
+
},
|
|
605
710
|
"provar:automation:config:generate": {
|
|
606
711
|
"aliases": [],
|
|
607
712
|
"args": {},
|
|
@@ -977,111 +1082,6 @@
|
|
|
977
1082
|
"validate:config:automation:provar"
|
|
978
1083
|
]
|
|
979
1084
|
},
|
|
980
|
-
"provar:automation:project:validate": {
|
|
981
|
-
"aliases": [],
|
|
982
|
-
"args": {},
|
|
983
|
-
"description": "Reads the plan/suite/testinstance hierarchy from the plans/ directory, resolves test\ncase XML from the tests/ directory, and runs the full validation rule set. Reports a\nquality score, violation summary, and per-plan/suite breakdown. Saves a QH-compatible\nJSON report to {project_path}/provardx/validation/ by default.",
|
|
984
|
-
"examples": [
|
|
985
|
-
"Validate the Provar project in the current directory:\n<%= config.bin %> <%= command.id %>",
|
|
986
|
-
"Validate a project at a specific path and output JSON:\n<%= config.bin %> <%= command.id %> --project-path /path/to/MyProject --json",
|
|
987
|
-
"Validate with a custom quality threshold, saving results to a specific directory:\n<%= config.bin %> <%= command.id %> -p /path/to/MyProject -q 90 -d /reports/validation",
|
|
988
|
-
"Validate without saving results:\n<%= config.bin %> <%= command.id %> --no-save-results"
|
|
989
|
-
],
|
|
990
|
-
"flags": {
|
|
991
|
-
"json": {
|
|
992
|
-
"description": "Format output as json.",
|
|
993
|
-
"helpGroup": "GLOBAL",
|
|
994
|
-
"name": "json",
|
|
995
|
-
"allowNo": false,
|
|
996
|
-
"type": "boolean"
|
|
997
|
-
},
|
|
998
|
-
"flags-dir": {
|
|
999
|
-
"helpGroup": "GLOBAL",
|
|
1000
|
-
"name": "flags-dir",
|
|
1001
|
-
"summary": "Import flag values from a directory.",
|
|
1002
|
-
"hasDynamicHelp": false,
|
|
1003
|
-
"multiple": false,
|
|
1004
|
-
"type": "option"
|
|
1005
|
-
},
|
|
1006
|
-
"project-path": {
|
|
1007
|
-
"char": "p",
|
|
1008
|
-
"name": "project-path",
|
|
1009
|
-
"summary": "Path to the Provar project root (directory containing the .testproject file). Defaults to current directory.",
|
|
1010
|
-
"default": "/home/runner/work/provardx-cli/provardx-cli",
|
|
1011
|
-
"hasDynamicHelp": false,
|
|
1012
|
-
"multiple": false,
|
|
1013
|
-
"type": "option"
|
|
1014
|
-
},
|
|
1015
|
-
"quality-threshold": {
|
|
1016
|
-
"char": "q",
|
|
1017
|
-
"name": "quality-threshold",
|
|
1018
|
-
"summary": "Minimum quality score (0-100) for a test case to pass validation (default: 80).",
|
|
1019
|
-
"default": 80,
|
|
1020
|
-
"hasDynamicHelp": false,
|
|
1021
|
-
"multiple": false,
|
|
1022
|
-
"type": "option"
|
|
1023
|
-
},
|
|
1024
|
-
"save-results": {
|
|
1025
|
-
"name": "save-results",
|
|
1026
|
-
"summary": "Write a QH-compatible JSON report to provardx/validation/. Use --no-save-results to skip (default: true).",
|
|
1027
|
-
"allowNo": true,
|
|
1028
|
-
"type": "boolean"
|
|
1029
|
-
},
|
|
1030
|
-
"results-dir": {
|
|
1031
|
-
"char": "d",
|
|
1032
|
-
"name": "results-dir",
|
|
1033
|
-
"summary": "Override the output directory for the saved validation report.",
|
|
1034
|
-
"hasDynamicHelp": false,
|
|
1035
|
-
"multiple": false,
|
|
1036
|
-
"type": "option"
|
|
1037
|
-
}
|
|
1038
|
-
},
|
|
1039
|
-
"hasDynamicHelp": false,
|
|
1040
|
-
"hiddenAliases": [],
|
|
1041
|
-
"id": "provar:automation:project:validate",
|
|
1042
|
-
"pluginAlias": "@provartesting/provardx-cli",
|
|
1043
|
-
"pluginName": "@provartesting/provardx-cli",
|
|
1044
|
-
"pluginType": "core",
|
|
1045
|
-
"strict": true,
|
|
1046
|
-
"summary": "Validate a Provar project from its directory on disk and report quality scores.",
|
|
1047
|
-
"enableJsonFlag": true,
|
|
1048
|
-
"isESM": true,
|
|
1049
|
-
"relativePath": [
|
|
1050
|
-
"lib",
|
|
1051
|
-
"commands",
|
|
1052
|
-
"provar",
|
|
1053
|
-
"automation",
|
|
1054
|
-
"project",
|
|
1055
|
-
"validate.js"
|
|
1056
|
-
],
|
|
1057
|
-
"aliasPermutations": [],
|
|
1058
|
-
"permutations": [
|
|
1059
|
-
"provar:automation:project:validate",
|
|
1060
|
-
"automation:provar:project:validate",
|
|
1061
|
-
"automation:project:provar:validate",
|
|
1062
|
-
"automation:project:validate:provar",
|
|
1063
|
-
"provar:project:automation:validate",
|
|
1064
|
-
"project:provar:automation:validate",
|
|
1065
|
-
"project:automation:provar:validate",
|
|
1066
|
-
"project:automation:validate:provar",
|
|
1067
|
-
"provar:project:validate:automation",
|
|
1068
|
-
"project:provar:validate:automation",
|
|
1069
|
-
"project:validate:provar:automation",
|
|
1070
|
-
"project:validate:automation:provar",
|
|
1071
|
-
"provar:automation:validate:project",
|
|
1072
|
-
"automation:provar:validate:project",
|
|
1073
|
-
"automation:validate:provar:project",
|
|
1074
|
-
"automation:validate:project:provar",
|
|
1075
|
-
"provar:validate:automation:project",
|
|
1076
|
-
"validate:provar:automation:project",
|
|
1077
|
-
"validate:automation:provar:project",
|
|
1078
|
-
"validate:automation:project:provar",
|
|
1079
|
-
"provar:validate:project:automation",
|
|
1080
|
-
"validate:provar:project:automation",
|
|
1081
|
-
"validate:project:provar:automation",
|
|
1082
|
-
"validate:project:automation:provar"
|
|
1083
|
-
]
|
|
1084
|
-
},
|
|
1085
1085
|
"provar:quality-hub:test:run": {
|
|
1086
1086
|
"aliases": [
|
|
1087
1087
|
"provar:manager:test:run"
|
|
@@ -2036,5 +2036,5 @@
|
|
|
2036
2036
|
]
|
|
2037
2037
|
}
|
|
2038
2038
|
},
|
|
2039
|
-
"version": "1.5.0-beta.
|
|
2039
|
+
"version": "1.5.0-beta.15"
|
|
2040
2040
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@provartesting/provardx-cli",
|
|
3
3
|
"description": "A plugin for the Salesforce CLI to orchestrate testing activities and report quality metrics to Provar Quality Hub",
|
|
4
|
-
"version": "1.5.0-beta.
|
|
4
|
+
"version": "1.5.0-beta.15",
|
|
5
5
|
"mcpName": "io.github.ProvarTesting/provar",
|
|
6
6
|
"license": "BSD-3-Clause",
|
|
7
7
|
"plugins": [
|