@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.
Files changed (147) hide show
  1. package/README.md +163 -12
  2. package/bin/mcp-start.js +74 -0
  3. package/lib/commands/provar/auth/clear.d.ts +7 -0
  4. package/lib/commands/provar/auth/clear.js +36 -0
  5. package/lib/commands/provar/auth/clear.js.map +1 -0
  6. package/lib/commands/provar/auth/login.d.ts +10 -0
  7. package/lib/commands/provar/auth/login.js +90 -0
  8. package/lib/commands/provar/auth/login.js.map +1 -0
  9. package/lib/commands/provar/auth/rotate.d.ts +7 -0
  10. package/lib/commands/provar/auth/rotate.js +42 -0
  11. package/lib/commands/provar/auth/rotate.js.map +1 -0
  12. package/lib/commands/provar/auth/status.d.ts +7 -0
  13. package/lib/commands/provar/auth/status.js +107 -0
  14. package/lib/commands/provar/auth/status.js.map +1 -0
  15. package/lib/commands/provar/mcp/start.d.ts +2 -0
  16. package/lib/commands/provar/mcp/start.js +14 -1
  17. package/lib/commands/provar/mcp/start.js.map +1 -1
  18. package/lib/mcp/docs/NITROX_CATALOG_SOURCE.json +6 -0
  19. package/lib/mcp/docs/NITROX_COMPONENT_CATALOG.md +2001 -0
  20. package/lib/mcp/docs/PROVAR_TEST_STEP_REFERENCE.md +1430 -0
  21. package/lib/mcp/docs/PROVAR_TOOL_GUIDE.md +187 -0
  22. package/lib/mcp/licensing/algasClient.js +14 -5
  23. package/lib/mcp/licensing/algasClient.js.map +1 -1
  24. package/lib/mcp/licensing/ideDetection.d.ts +0 -12
  25. package/lib/mcp/licensing/ideDetection.js +1 -73
  26. package/lib/mcp/licensing/ideDetection.js.map +1 -1
  27. package/lib/mcp/licensing/licenseCache.js +7 -1
  28. package/lib/mcp/licensing/licenseCache.js.map +1 -1
  29. package/lib/mcp/licensing/licenseValidator.d.ts +3 -3
  30. package/lib/mcp/licensing/licenseValidator.js +11 -4
  31. package/lib/mcp/licensing/licenseValidator.js.map +1 -1
  32. package/lib/mcp/prompts/guidePrompts.d.ts +4 -0
  33. package/lib/mcp/prompts/guidePrompts.js +334 -0
  34. package/lib/mcp/prompts/guidePrompts.js.map +1 -0
  35. package/lib/mcp/prompts/index.d.ts +2 -0
  36. package/lib/mcp/prompts/index.js +23 -0
  37. package/lib/mcp/prompts/index.js.map +1 -0
  38. package/lib/mcp/prompts/loopPrompts.d.ts +6 -0
  39. package/lib/mcp/prompts/loopPrompts.js +435 -0
  40. package/lib/mcp/prompts/loopPrompts.js.map +1 -0
  41. package/lib/mcp/prompts/migrationPrompts.d.ts +4 -0
  42. package/lib/mcp/prompts/migrationPrompts.js +207 -0
  43. package/lib/mcp/prompts/migrationPrompts.js.map +1 -0
  44. package/lib/mcp/rules/provar_best_practices_rules.json +256 -544
  45. package/lib/mcp/security/pathPolicy.d.ts +5 -0
  46. package/lib/mcp/security/pathPolicy.js +58 -3
  47. package/lib/mcp/security/pathPolicy.js.map +1 -1
  48. package/lib/mcp/server.d.ts +18 -0
  49. package/lib/mcp/server.js +232 -19
  50. package/lib/mcp/server.js.map +1 -1
  51. package/lib/mcp/tools/antTools.d.ts +15 -0
  52. package/lib/mcp/tools/antTools.js +369 -170
  53. package/lib/mcp/tools/antTools.js.map +1 -1
  54. package/lib/mcp/tools/automationTools.d.ts +18 -8
  55. package/lib/mcp/tools/automationTools.js +333 -176
  56. package/lib/mcp/tools/automationTools.js.map +1 -1
  57. package/lib/mcp/tools/bestPracticesEngine.js +161 -23
  58. package/lib/mcp/tools/bestPracticesEngine.js.map +1 -1
  59. package/lib/mcp/tools/connectionTools.d.ts +4 -0
  60. package/lib/mcp/tools/connectionTools.js +242 -0
  61. package/lib/mcp/tools/connectionTools.js.map +1 -0
  62. package/lib/mcp/tools/defectTools.d.ts +1 -1
  63. package/lib/mcp/tools/defectTools.js +61 -50
  64. package/lib/mcp/tools/defectTools.js.map +1 -1
  65. package/lib/mcp/tools/descHelper.d.ts +5 -0
  66. package/lib/mcp/tools/descHelper.js +14 -0
  67. package/lib/mcp/tools/descHelper.js.map +1 -0
  68. package/lib/mcp/tools/hierarchyValidate.d.ts +1 -1
  69. package/lib/mcp/tools/hierarchyValidate.js +127 -42
  70. package/lib/mcp/tools/hierarchyValidate.js.map +1 -1
  71. package/lib/mcp/tools/nitroXTools.d.ts +23 -0
  72. package/lib/mcp/tools/nitroXTools.js +863 -0
  73. package/lib/mcp/tools/nitroXTools.js.map +1 -0
  74. package/lib/mcp/tools/pageObjectGenerate.js +150 -57
  75. package/lib/mcp/tools/pageObjectGenerate.js.map +1 -1
  76. package/lib/mcp/tools/pageObjectValidate.js +143 -46
  77. package/lib/mcp/tools/pageObjectValidate.js.map +1 -1
  78. package/lib/mcp/tools/projectInspect.js +79 -32
  79. package/lib/mcp/tools/projectInspect.js.map +1 -1
  80. package/lib/mcp/tools/projectValidateFromPath.js +185 -58
  81. package/lib/mcp/tools/projectValidateFromPath.js.map +1 -1
  82. package/lib/mcp/tools/propertiesTools.d.ts +2 -0
  83. package/lib/mcp/tools/propertiesTools.js +358 -78
  84. package/lib/mcp/tools/propertiesTools.js.map +1 -1
  85. package/lib/mcp/tools/qualityHubApiTools.d.ts +3 -0
  86. package/lib/mcp/tools/qualityHubApiTools.js +139 -0
  87. package/lib/mcp/tools/qualityHubApiTools.js.map +1 -0
  88. package/lib/mcp/tools/qualityHubTools.js +292 -72
  89. package/lib/mcp/tools/qualityHubTools.js.map +1 -1
  90. package/lib/mcp/tools/rcaTools.d.ts +3 -2
  91. package/lib/mcp/tools/rcaTools.js +194 -56
  92. package/lib/mcp/tools/rcaTools.js.map +1 -1
  93. package/lib/mcp/tools/sfSpawn.d.ts +25 -3
  94. package/lib/mcp/tools/sfSpawn.js +154 -6
  95. package/lib/mcp/tools/sfSpawn.js.map +1 -1
  96. package/lib/mcp/tools/testCaseGenerate.js +285 -78
  97. package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
  98. package/lib/mcp/tools/testCaseStepTools.d.ts +4 -0
  99. package/lib/mcp/tools/testCaseStepTools.js +244 -0
  100. package/lib/mcp/tools/testCaseStepTools.js.map +1 -0
  101. package/lib/mcp/tools/testCaseValidate.d.ts +11 -0
  102. package/lib/mcp/tools/testCaseValidate.js +381 -46
  103. package/lib/mcp/tools/testCaseValidate.js.map +1 -1
  104. package/lib/mcp/tools/testPlanTools.d.ts +1 -0
  105. package/lib/mcp/tools/testPlanTools.js +316 -59
  106. package/lib/mcp/tools/testPlanTools.js.map +1 -1
  107. package/lib/mcp/tools/testPlanValidate.js +114 -23
  108. package/lib/mcp/tools/testPlanValidate.js.map +1 -1
  109. package/lib/mcp/tools/testSuiteValidate.js +130 -15
  110. package/lib/mcp/tools/testSuiteValidate.js.map +1 -1
  111. package/lib/mcp/update/updateChecker.d.ts +14 -0
  112. package/lib/mcp/update/updateChecker.js +228 -0
  113. package/lib/mcp/update/updateChecker.js.map +1 -0
  114. package/lib/mcp/utils/detailLevel.d.ts +9 -0
  115. package/lib/mcp/utils/detailLevel.js +20 -0
  116. package/lib/mcp/utils/detailLevel.js.map +1 -0
  117. package/lib/mcp/utils/fieldMask.d.ts +17 -0
  118. package/lib/mcp/utils/fieldMask.js +75 -0
  119. package/lib/mcp/utils/fieldMask.js.map +1 -0
  120. package/lib/mcp/utils/tokenMeta.d.ts +40 -0
  121. package/lib/mcp/utils/tokenMeta.js +90 -0
  122. package/lib/mcp/utils/tokenMeta.js.map +1 -0
  123. package/lib/mcp/utils/validationDiff.d.ts +57 -0
  124. package/lib/mcp/utils/validationDiff.js +191 -0
  125. package/lib/mcp/utils/validationDiff.js.map +1 -0
  126. package/lib/mcp/utils/validationScore.d.ts +15 -0
  127. package/lib/mcp/utils/validationScore.js +31 -0
  128. package/lib/mcp/utils/validationScore.js.map +1 -0
  129. package/lib/services/auth/credentials.d.ts +21 -0
  130. package/lib/services/auth/credentials.js +75 -0
  131. package/lib/services/auth/credentials.js.map +1 -0
  132. package/lib/services/auth/loginFlow.d.ts +68 -0
  133. package/lib/services/auth/loginFlow.js +216 -0
  134. package/lib/services/auth/loginFlow.js.map +1 -0
  135. package/lib/services/projectValidation.d.ts +5 -2
  136. package/lib/services/projectValidation.js +83 -31
  137. package/lib/services/projectValidation.js.map +1 -1
  138. package/lib/services/qualityHub/client.d.ts +161 -0
  139. package/lib/services/qualityHub/client.js +226 -0
  140. package/lib/services/qualityHub/client.js.map +1 -0
  141. package/messages/sf.provar.auth.clear.md +16 -0
  142. package/messages/sf.provar.auth.login.md +31 -0
  143. package/messages/sf.provar.auth.rotate.md +23 -0
  144. package/messages/sf.provar.auth.status.md +16 -0
  145. package/messages/sf.provar.mcp.start.md +83 -48
  146. package/oclif.manifest.json +325 -28
  147. package/package.json +35 -12
@@ -62,6 +62,8 @@ export interface ProjectValidationResult {
62
62
  uncovered_test_cases: string[];
63
63
  };
64
64
  saved_to: string | null;
65
+ /** Directories within plans/ that are missing a .planitem file and will be silently ignored by the Provar runner. */
66
+ plan_integrity_warnings?: string[];
65
67
  /** Set when save_results was requested but the write failed (disk full, permissions, etc.). */
66
68
  save_error?: string;
67
69
  }
@@ -88,11 +90,12 @@ export declare function readProjectContext(projectPath: string): {
88
90
  context: ProjectContext;
89
91
  };
90
92
  export declare function resolveTestInstance(instancePath: string, projectPath: string): TestCaseInput | null;
91
- export declare function readSuiteDirectory(dirPath: string, name: string, projectPath: string, depth?: number, coveredPaths?: Set<string>, idMap?: Map<string, string>): TestSuiteInput;
92
- export declare function readPlanDirectory(planPath: string, name: string, projectPath: string, coveredPaths?: Set<string>, idMap?: Map<string, string>): TestPlanInput;
93
+ export declare function readSuiteDirectory(dirPath: string, name: string, projectPath: string, depth?: number, coveredPaths?: Set<string>, idMap?: Map<string, string>, planIntegrityWarnings?: string[]): TestSuiteInput;
94
+ export declare function readPlanDirectory(planPath: string, name: string, projectPath: string, coveredPaths?: Set<string>, idMap?: Map<string, string>, planIntegrityWarnings?: string[]): TestPlanInput;
93
95
  export declare function readPlansDir(projectPath: string): {
94
96
  plans: TestPlanInput[];
95
97
  coveredPaths: Set<string>;
98
+ planIntegrityWarnings: string[];
96
99
  };
97
100
  /**
98
101
  * Collects all .testcase file basenames (without extension) found under tests/.
@@ -70,7 +70,9 @@ export function resolveProjectRoot(givenPath) {
70
70
  candidates.push(sub);
71
71
  }
72
72
  }
73
- catch { /* skip */ }
73
+ catch {
74
+ /* skip */
75
+ }
74
76
  if (candidates.length === 1)
75
77
  return { root: candidates[0], candidates: [] };
76
78
  return { root: givenPath, candidates }; // caller handles 0 or multiple
@@ -127,7 +129,9 @@ export function readProjectContext(projectPath) {
127
129
  unencryptedSecretCount++;
128
130
  }
129
131
  }
130
- catch { /* skip */ }
132
+ catch {
133
+ /* skip */
134
+ }
131
135
  }
132
136
  return {
133
137
  projectName,
@@ -158,16 +162,21 @@ function resolveTestInstanceFull(instancePath, projectPath) {
158
162
  // Bounds check: only read test case files within the project directory
159
163
  const tcInBounds = tcFullPath === projResolved || tcFullPath.startsWith(projResolved + path.sep);
160
164
  // Derive name from the bounds-checked resolved path to prevent injection via crafted testCasePath
161
- const tcName = tcInBounds
162
- ? path.basename(tcFullPath, '.testcase')
163
- : path.basename(testCasePath, '.testcase');
165
+ const tcName = tcInBounds ? path.basename(tcFullPath, '.testcase') : path.basename(testCasePath, '.testcase');
164
166
  if (tcInBounds && fs.existsSync(tcFullPath)) {
165
167
  try {
166
168
  xml_content = fs.readFileSync(tcFullPath, 'utf-8');
167
169
  }
168
- catch { /* xml_content stays undefined */ }
170
+ catch {
171
+ /* xml_content stays undefined */
172
+ }
169
173
  }
170
- return { testCase: { name: tcName, xml_content }, testCasePath, testCaseId };
174
+ // Only expose testCasePath/testCaseId when in-bounds out-of-bounds paths must not affect coverage totals
175
+ return {
176
+ testCase: { name: tcName, xml_content },
177
+ testCasePath: tcInBounds ? testCasePath : null,
178
+ testCaseId: tcInBounds ? testCaseId : null,
179
+ };
171
180
  }
172
181
  catch {
173
182
  return { testCase: null, testCasePath: null, testCaseId: null };
@@ -188,7 +197,7 @@ function accumulateCoveredPath(testCasePath, testCaseId, coveredPaths, idMap) {
188
197
  coveredPaths.add(resolved);
189
198
  }
190
199
  }
191
- export function readSuiteDirectory(dirPath, name, projectPath, depth = 0, coveredPaths, idMap) {
200
+ export function readSuiteDirectory(dirPath, name, projectPath, depth = 0, coveredPaths, idMap, planIntegrityWarnings) {
192
201
  const testCases = [];
193
202
  const testSuites = [];
194
203
  if (depth > MAX_SUITE_DEPTH)
@@ -200,7 +209,13 @@ export function readSuiteDirectory(dirPath, name, projectPath, depth = 0, covere
200
209
  continue;
201
210
  const fullPath = path.join(dirPath, entry.name);
202
211
  if (entry.isDirectory() && !entry.name.startsWith('.')) {
203
- testSuites.push(readSuiteDirectory(fullPath, entry.name, projectPath, depth + 1, coveredPaths, idMap));
212
+ const subHasPlanItem = fs.existsSync(path.join(fullPath, '.planitem'));
213
+ if (planIntegrityWarnings && !subHasPlanItem) {
214
+ const rel = path.relative(projectPath, fullPath).replace(/\\/g, '/');
215
+ planIntegrityWarnings.push(`${rel}/ is missing a .planitem file — test instances in this suite will be invisible to the runner.`);
216
+ continue;
217
+ }
218
+ testSuites.push(readSuiteDirectory(fullPath, entry.name, projectPath, depth + 1, subHasPlanItem ? coveredPaths : undefined, subHasPlanItem ? idMap : undefined, planIntegrityWarnings));
204
219
  }
205
220
  else if (entry.name.endsWith('.testinstance')) {
206
221
  const { testCase, testCasePath, testCaseId } = resolveTestInstanceFull(fullPath, projectPath);
@@ -211,10 +226,12 @@ export function readSuiteDirectory(dirPath, name, projectPath, depth = 0, covere
211
226
  }
212
227
  }
213
228
  }
214
- catch { /* skip */ }
229
+ catch {
230
+ /* skip */
231
+ }
215
232
  return { name, test_cases: testCases, test_suites: testSuites };
216
233
  }
217
- export function readPlanDirectory(planPath, name, projectPath, coveredPaths, idMap) {
234
+ export function readPlanDirectory(planPath, name, projectPath, coveredPaths, idMap, planIntegrityWarnings) {
218
235
  const testCases = [];
219
236
  const testSuites = [];
220
237
  try {
@@ -224,7 +241,13 @@ export function readPlanDirectory(planPath, name, projectPath, coveredPaths, idM
224
241
  continue;
225
242
  const fullPath = path.join(planPath, entry.name);
226
243
  if (entry.isDirectory() && !entry.name.startsWith('.')) {
227
- testSuites.push(readSuiteDirectory(fullPath, entry.name, projectPath, 0, coveredPaths, idMap));
244
+ const suiteHasPlanItem = fs.existsSync(path.join(fullPath, '.planitem'));
245
+ if (planIntegrityWarnings && !suiteHasPlanItem) {
246
+ const rel = path.relative(projectPath, fullPath).replace(/\\/g, '/');
247
+ planIntegrityWarnings.push(`${rel}/ is missing a .planitem file — test instances in this suite will be invisible to the runner.`);
248
+ continue;
249
+ }
250
+ testSuites.push(readSuiteDirectory(fullPath, entry.name, projectPath, 0, suiteHasPlanItem ? coveredPaths : undefined, suiteHasPlanItem ? idMap : undefined, planIntegrityWarnings));
228
251
  }
229
252
  else if (entry.name.endsWith('.testinstance')) {
230
253
  const { testCase, testCasePath, testCaseId } = resolveTestInstanceFull(fullPath, projectPath);
@@ -235,14 +258,17 @@ export function readPlanDirectory(planPath, name, projectPath, coveredPaths, idM
235
258
  }
236
259
  }
237
260
  }
238
- catch { /* skip */ }
261
+ catch {
262
+ /* skip */
263
+ }
239
264
  return { name, test_cases: testCases, test_suites: testSuites };
240
265
  }
241
266
  export function readPlansDir(projectPath) {
242
267
  const plansDir = path.join(projectPath, 'plans');
243
268
  const coveredPaths = new Set();
269
+ const planIntegrityWarnings = [];
244
270
  if (!fs.existsSync(plansDir))
245
- return { plans: [], coveredPaths };
271
+ return { plans: [], coveredPaths, planIntegrityWarnings };
246
272
  // Build UUID→path map once so the plan walk can resolve testCaseId fallbacks
247
273
  // without a separate pass over the tests/ directory later.
248
274
  const idMap = buildTestCaseIdMap(projectPath);
@@ -253,11 +279,17 @@ export function readPlansDir(projectPath) {
253
279
  if (!entry.isDirectory() || entry.name.startsWith('.') || entry.name === 'node_modules')
254
280
  continue;
255
281
  const planPath = path.join(plansDir, entry.name);
256
- plans.push(readPlanDirectory(planPath, entry.name, projectPath, coveredPaths, idMap));
282
+ const planHasPlanItem = fs.existsSync(path.join(planPath, '.planitem'));
283
+ if (!planHasPlanItem) {
284
+ planIntegrityWarnings.push(`plans/${entry.name}/ is missing a .planitem file — this plan will not be recognised by the Provar runner.`);
285
+ }
286
+ plans.push(readPlanDirectory(planPath, entry.name, projectPath, planHasPlanItem ? coveredPaths : undefined, planHasPlanItem ? idMap : undefined, planIntegrityWarnings));
257
287
  }
258
288
  }
259
- catch { /* skip */ }
260
- return { plans, coveredPaths };
289
+ catch {
290
+ /* skip */
291
+ }
292
+ return { plans, coveredPaths, planIntegrityWarnings };
261
293
  }
262
294
  /**
263
295
  * Builds a map of testcase UUID (registryId / id / guid) → project-relative path.
@@ -284,15 +316,20 @@ function buildTestCaseIdMap(projectPath) {
284
316
  const rel = path.relative(projectPath, fullPath).replace(/\\/g, '/');
285
317
  for (const attr of ['registryId', 'id', 'guid']) {
286
318
  const m = content.match(new RegExp(`${attr}=["']([^"']+)["']`));
287
- if (m?.[1] && !idMap.has(m[1]))
319
+ // Skip id="1" new generator emits this literal and it is not UUID-unique
320
+ if (m?.[1] && m[1] !== '1' && !idMap.has(m[1]))
288
321
  idMap.set(m[1], rel);
289
322
  }
290
323
  }
291
- catch { /* skip */ }
324
+ catch {
325
+ /* skip */
326
+ }
292
327
  }
293
328
  }
294
329
  }
295
- catch { /* skip */ }
330
+ catch {
331
+ /* skip */
332
+ }
296
333
  }
297
334
  walk(testsDir);
298
335
  return idMap;
@@ -320,7 +357,9 @@ export function collectAllTestCaseNames(projectPath) {
320
357
  names.push(path.basename(entry.name, '.testcase'));
321
358
  }
322
359
  }
323
- catch { /* skip */ }
360
+ catch {
361
+ /* skip */
362
+ }
324
363
  }
325
364
  walk(testsDir);
326
365
  return names;
@@ -360,11 +399,15 @@ export function collectCoveredPathsFromDisk(projectPath) {
360
399
  covered.add(resolvedPath);
361
400
  }
362
401
  }
363
- catch { /* skip */ }
402
+ catch {
403
+ /* skip */
404
+ }
364
405
  }
365
406
  }
366
407
  }
367
- catch { /* skip */ }
408
+ catch {
409
+ /* skip */
410
+ }
368
411
  }
369
412
  walk(plansDir);
370
413
  return covered;
@@ -390,7 +433,9 @@ export function findUncoveredTestCases(projectPath, coveredPaths) {
390
433
  }
391
434
  }
392
435
  }
393
- catch { /* skip */ }
436
+ catch {
437
+ /* skip */
438
+ }
394
439
  }
395
440
  walk(testsDir);
396
441
  return uncovered.sort();
@@ -426,7 +471,7 @@ function tcIssuesToQhViolations(tc) {
426
471
  appliesTo: issue.applies_to,
427
472
  });
428
473
  }
429
- for (const bp of (tc.best_practices_violations ?? [])) {
474
+ for (const bp of tc.best_practices_violations ?? []) {
430
475
  violations.push({
431
476
  number: num++,
432
477
  ruleId: bp.rule_id,
@@ -530,7 +575,13 @@ export function buildQhReport(result, projectName) {
530
575
  return {
531
576
  reportInfo: {
532
577
  name: `VR-LOCAL-${now.toISOString().replace(/[:.]/g, '-').slice(0, 19)}`,
533
- generatedAt: now.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' }),
578
+ generatedAt: now.toLocaleDateString('en-US', {
579
+ year: 'numeric',
580
+ month: 'short',
581
+ day: 'numeric',
582
+ hour: '2-digit',
583
+ minute: '2-digit',
584
+ }),
534
585
  exportedAt: now.toISOString(),
535
586
  source: 'provar-mcp-local',
536
587
  },
@@ -551,9 +602,7 @@ export function buildQhReport(result, projectName) {
551
602
  };
552
603
  }
553
604
  export function saveResults(projectPath, resultsDir, report, projectName) {
554
- const targetDir = resultsDir
555
- ? path.resolve(resultsDir)
556
- : path.join(projectPath, 'provardx', 'validation');
605
+ const targetDir = resultsDir ? path.resolve(resultsDir) : path.join(projectPath, 'provardx', 'validation');
557
606
  fs.mkdirSync(targetDir, { recursive: true });
558
607
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
559
608
  const safeName = projectName.replace(/[^a-zA-Z0-9_-]/g, '-').toLowerCase();
@@ -582,7 +631,9 @@ export function validateProjectFromPath(options) {
582
631
  }
583
632
  const { root: projectRoot, candidates } = resolveProjectRoot(resolved);
584
633
  if (candidates.length > 1) {
585
- throw new ProjectValidationError('AMBIGUOUS_PROJECT', `Multiple Provar projects found under "${resolved}". Specify the exact project directory: ${candidates.map((c) => path.basename(c)).join(', ')}`);
634
+ throw new ProjectValidationError('AMBIGUOUS_PROJECT', `Multiple Provar projects found under "${resolved}". Specify the exact project directory: ${candidates
635
+ .map((c) => path.basename(c))
636
+ .join(', ')}`);
586
637
  }
587
638
  if (!fs.existsSync(path.join(projectRoot, '.testproject'))) {
588
639
  throw new ProjectValidationError('NOT_A_PROJECT', `No Provar project found at "${projectRoot}". Ensure the path points to a directory containing a .testproject file.`);
@@ -592,7 +643,7 @@ export function validateProjectFromPath(options) {
592
643
  const { projectName, context } = readProjectContext(projectRoot);
593
644
  // 2. Read plan hierarchy from plans/ directory; covered paths are computed
594
645
  // as a byproduct of the walk — no second traversal needed.
595
- const { plans: testPlans, coveredPaths } = readPlansDir(projectRoot);
646
+ const { plans: testPlans, coveredPaths, planIntegrityWarnings } = readPlansDir(projectRoot);
596
647
  // 3. Validate
597
648
  const input = {
598
649
  name: projectName,
@@ -672,6 +723,7 @@ export function validateProjectFromPath(options) {
672
723
  uncovered_test_cases: uncoveredTestCases,
673
724
  },
674
725
  saved_to: savedTo,
726
+ ...(planIntegrityWarnings.length > 0 ? { plan_integrity_warnings: planIntegrityWarnings } : {}),
675
727
  save_error: saveError,
676
728
  };
677
729
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projectValidation.js","sourceRoot":"","sources":["../../src/services/projectValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectValidation.js","sourceRoot":"","sources":["../../src/services/projectValidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,qBAAqB,GAYtB,MAAM,mCAAmC,CAAC;AAE3C,iFAAiF;AAEjF,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/B,IAAI,CAAS;IAC7B,YAAmB,IAAY,EAAE,OAAe;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AA0ED,iFAAiF;AAEjF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,WAAW,CAAC;IACpC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,SAAS;YAClG,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,+BAA+B;AACzE,CAAC;AAED,iFAAiF;AAEjF,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IAIpD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;IAED,4BAA4B;IAC5B,MAAM,UAAU,GAAG,sCAAsC,CAAC;IAC1D,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI;QAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,2BAA2B;IAC3B,MAAM,WAAW,GAAG,qCAAqC,CAAC;IAC1D,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,OAAO,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI;QAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5E,kCAAkC;IAClC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,sBAAsB,GAAG,CAAC,CAAC;IAC/B,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC1F,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC;IACnE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAC7E,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtD,4EAA4E;IAC5E,MAAM,eAAe,GACnB,eAAe,KAAK,mBAAmB,IAAI,eAAe,CAAC,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxG,IAAI,eAAe,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACjE,kBAAkB,GAAG,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YACjE,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC7E,IAAI,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;oBAAE,SAAS;gBACrD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,KAAK,KAAK,CAAC,CAAC;oBAAE,SAAS;gBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9C,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;oBAAE,sBAAsB,EAAE,CAAC;YACpE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IAED,OAAO;QACL,WAAW;QACX,OAAO,EAAE;YACP,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;YAC5D,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YACtE,kBAAkB;YAClB,wBAAwB,EAAE,sBAAsB;SACjD;KACF,CAAC;AACJ,CAAC;AAYD;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,YAAoB,EAAE,WAAmB;IACxE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC7E,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAE/E,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAI,WAA+B,CAAC;QACpC,uEAAuE;QACvE,MAAM,UAAU,GAAG,UAAU,KAAK,YAAY,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACjG,kGAAkG;QAClG,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC9G,IAAI,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;QACH,CAAC;QAED,2GAA2G;QAC3G,OAAO;YACL,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE;YACvC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;YAC9C,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;SAC3C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAClE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAoB,EAAE,WAAmB;IAC3E,OAAO,uBAAuB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC;AACrE,CAAC;AAED,wEAAwE;AACxE,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,gFAAgF;AAChF,SAAS,qBAAqB,CAC5B,YAA2B,EAC3B,UAAyB,EACzB,YAAyB,EACzB,KAA0B;IAE1B,IAAI,YAAY;QAAE,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,QAAQ;YAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,IAAY,EACZ,WAAmB,EACnB,KAAK,GAAG,CAAC,EACT,YAA0B,EAC1B,KAA2B,EAC3B,qBAAgC;IAEhC,MAAM,SAAS,GAAoB,EAAE,CAAC;IACtC,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,IAAI,KAAK,GAAG,eAAe;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IAE7F,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,SAAS;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;gBACvE,IAAI,qBAAqB,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACrE,qBAAqB,CAAC,IAAI,CACxB,GAAG,GAAG,+FAA+F,CACtG,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,UAAU,CAAC,IAAI,CACb,kBAAkB,CAChB,QAAQ,EACR,KAAK,CAAC,IAAI,EACV,WAAW,EACX,KAAK,GAAG,CAAC,EACT,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EACzC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAClC,qBAAqB,CACtB,CACF,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC9F,IAAI,QAAQ;oBAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,YAAY,IAAI,KAAK;oBAAE,qBAAqB,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,IAAY,EACZ,WAAmB,EACnB,YAA0B,EAC1B,KAA2B,EAC3B,qBAAgC;IAEhC,MAAM,SAAS,GAAoB,EAAE,CAAC;IACtC,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,SAAS;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,gBAAgB,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;gBACzE,IAAI,qBAAqB,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACrE,qBAAqB,CAAC,IAAI,CACxB,GAAG,GAAG,+FAA+F,CACtG,CAAC;oBACF,SAAS;gBACX,CAAC;gBACD,UAAU,CAAC,IAAI,CACb,kBAAkB,CAChB,QAAQ,EACR,KAAK,CAAC,IAAI,EACV,WAAW,EACX,CAAC,EACD,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAC3C,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACpC,qBAAqB,CACtB,CACF,CAAC;YACJ,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChD,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC9F,IAAI,QAAQ;oBAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvC,IAAI,YAAY,IAAI,KAAK;oBAAE,qBAAqB,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAmB;IAK9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,qBAAqB,GAAa,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC;IAExF,6EAA6E;IAC7E,2DAA2D;IAC3D,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;gBAAE,SAAS;YAClG,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,qBAAqB,CAAC,IAAI,CACxB,SAAS,KAAK,CAAC,IAAI,wFAAwF,CAC5G,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,IAAI,CACR,iBAAiB,CACf,QAAQ,EACR,KAAK,CAAC,IAAI,EACV,WAAW,EACX,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAC1C,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACnC,qBAAqB,CACtB,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3C,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;oBAAE,SAAS;gBAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACnD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBACrE,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAU,EAAE,CAAC;4BACzD,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC;4BAChE,2EAA2E;4BAC3E,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBACvE,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,UAAU;oBACZ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;oBAAE,SAAS;gBAC1E,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnC,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAmB;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAE7C,+EAA+E;IAC/E,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAE9C,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;oBAAE,SAAS;gBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACnD,4BAA4B;wBAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;wBAC7D,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;4BAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;wBAC1D,oEAAoE;wBACpE,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;wBACzD,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACb,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvC,IAAI,YAAY;gCAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;wBAC9C,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,UAAU;oBACZ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAmB,EAAE,YAAyB;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;oBAAE,SAAS;gBAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACrE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AA2BD,SAAS,sBAAsB,CAAC,CAAqB,EAAE,GAAW;IAChE,OAAO;QACL,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,CAAC,CAAC,OAAO;QACjB,QAAQ,EAAE,CAAC,CAAC,IAAI;QAChB,eAAe,EAAE,CAAC,CAAC,WAAW;QAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjC,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,cAAc,EAAE,CAAC,CAAC,cAAc;QAChC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAkB;IAChD,MAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,GAAG,EAAE;YACb,MAAM,EAAE,KAAK,CAAC,OAAO;YACrB,QAAQ,EAAE,KAAK,CAAC,OAAO;YACvB,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YAChG,MAAM,EAAE,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,cAAc,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;YACtC,SAAS,EAAE,KAAK,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,yBAAyB,IAAI,EAAE,EAAE,CAAC;QACpD,UAAU,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,GAAG,EAAE;YACb,MAAM,EAAE,EAAE,CAAC,OAAO;YAClB,QAAQ,EAAE,EAAE,CAAC,IAAI;YACjB,eAAe,EAAE,EAAE,CAAC,WAAW;YAC/B,QAAQ,EAAE,EAAE,CAAC,QAAQ;YACrB,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;YAClC,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,cAAc,EAAE,EAAE,CAAC,cAAc;YACjC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAkB;IAC3C,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,yBAAyB,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,eAAe,CAAC,QAAqB,EAAE,KAAkB;IAChE,QAAQ,CAAC,IAAI,CAAC;QACZ,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,KAAK,CAAC,IAAI;QACvB,YAAY,EAAE,KAAK,CAAC,aAAa;QACjC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC;QAC/C,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;QACxC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC7E,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,WAAW;QAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAExE,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,EAAE,CAAC,IAAI;gBACpB,YAAY,EAAE,EAAE,CAAC,aAAa;gBAC9B,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC;gBAC5C,eAAe,EAAE,KAAK;gBACtB,UAAU,EAAE,sBAAsB,CAAC,EAAE,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,QAAqB,EAAE,IAAgB;IAC9D,QAAQ,CAAC,IAAI,CAAC;QACZ,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,IAAI,CAAC,IAAI;QACtB,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;QAC9C,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;QACvC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5E,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW;QAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEvE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,EAAE,CAAC,IAAI;gBACpB,YAAY,EAAE,EAAE,CAAC,aAAa;gBAC9B,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC;gBAC5C,eAAe,EAAE,KAAK;gBACtB,UAAU,EAAE,sBAAsB,CAAC,EAAE,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAqB;IAC9C,MAAM,QAAQ,GAAgB,EAAE,CAAC;IAEjC,QAAQ,CAAC,IAAI,CAAC;QACZ,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,MAAM,CAAC,IAAI;QACxB,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;QACzC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9E,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,WAAW;QAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEzE,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,EAAE,CAAC,IAAI;gBACpB,YAAY,EAAE,EAAE,CAAC,aAAa;gBAC9B,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC;gBAC5C,eAAe,EAAE,KAAK;gBACtB,UAAU,EAAE,sBAAsB,CAAC,EAAE,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU;QAAE,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEtE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE,WAAmB;IACtE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9C,OAAO;QACL,UAAU,EAAE;YACV,IAAI,EAAE,YAAY,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;YACxE,WAAW,EAAE,GAAG,CAAC,kBAAkB,CAAC,OAAO,EAAE;gBAC3C,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,OAAO;gBACd,GAAG,EAAE,SAAS;gBACd,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE;YAC7B,MAAM,EAAE,kBAAkB;SAC3B;QACD,OAAO,EAAE;YACP,YAAY,EAAE,MAAM,CAAC,aAAa;YAClC,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;YAClD,eAAe,EAAE,OAAO,CAAC,gBAAgB;YACzC,kBAAkB,EAAE,OAAO,CAAC,sBAAsB,CAAC,QAAQ;YAC3D,eAAe,EAAE,OAAO,CAAC,sBAAsB,CAAC,KAAK;YACrD,eAAe,EAAE,OAAO,CAAC,sBAAsB,CAAC,KAAK;YACrD,cAAc,EAAE,OAAO,CAAC,sBAAsB,CAAC,IAAI;SACpD;QACD,OAAO,EAAE;YACP,eAAe,EAAE,SAAS;YAC1B,eAAe,EAAE,WAAW;SAC7B;QACD,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,WAAmB,EACnB,UAA8B,EAC9B,MAA+B,EAC/B,WAAmB;IAEnB,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAE3G,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3E,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,QAAQ,OAAO,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,mGAAmG;IACnG,iEAAiE;IACjE,IAAI,UAAU;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,iFAAiF;AAEjF;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAiC;IACvE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,sBAAsB,CAAC,gBAAgB,EAAE,gCAAgC,QAAQ,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAEvE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,sBAAsB,CAC9B,mBAAmB,EACnB,yCAAyC,QAAQ,2CAA2C,UAAU;aACnG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,sBAAsB,CAC9B,eAAe,EACf,+BAA+B,WAAW,0EAA0E,CACrH,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,iBAAiB,IAAI,EAAE,CAAC;IAE1C,4CAA4C;IAC5C,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEjE,2EAA2E;IAC3E,8DAA8D;IAC9D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAE5F,cAAc;IACd,MAAM,KAAK,GAAiB;QAC1B,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,OAAO;QACxB,wBAAwB,EAAE,uBAAuB,CAAC,WAAW,CAAC;KAC/D,CAAC;IAEF,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9C,gEAAgE;IAChE,2EAA2E;IAC3E,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC7E,iFAAiF;IACjF,MAAM,aAAa,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE3G,iCAAiC;IACjC,MAAM,KAAK,GAAoB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,aAAa,EAAE,EAAE,CAAC,aAAa;gBAC/B,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC;gBAC7C,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,aAAa,EAAE,EAAE,CAAC,aAAa;gBAC/B,MAAM,EAAE,EAAE,CAAC,MAAM;aAClB,CAAC,CAAC;YACH,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACvC,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,aAAa,EAAE,EAAE,CAAC,aAAa;gBAC/B,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,eAAe,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;aACtC,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,oBAAoB,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,aAAa,EAAE,EAAE,CAAC,aAAa;YAC/B,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,MAAM,EAAE,EAAE,CAAC,MAAM;SAClB,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;IAEJ,+BAA+B;IAC/B,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,SAA6B,CAAC;IAClC,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,OAAO,GAAG,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAI,GAAa,CAAC,OAAO,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO;QACL,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,WAAW;QACzB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC;QACjD,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;QACnD,OAAO;QACP,kBAAkB,EAAE,MAAM,CAAC,UAAU;QACrC,KAAK;QACL,QAAQ,EAAE;YACR,wBAAwB,EAAE,aAAa,GAAG,kBAAkB,CAAC,MAAM;YACnE,gBAAgB,EAAE,aAAa;YAC/B,eAAe,EAAE,kBAAkB,CAAC,MAAM;YAC1C,oBAAoB,EAAE,kBAAkB;SACzC;QACD,QAAQ,EAAE,OAAO;QACjB,GAAG,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Quality Hub validation result — our internal normalised shape.
3
+ * Mapped from the raw API response by normaliseApiResponse().
4
+ * Also returned by the local validator so both paths share one shape.
5
+ */
6
+ export interface QualityHubValidationResult {
7
+ is_valid: boolean;
8
+ validity_score: number;
9
+ quality_score: number;
10
+ issues: Array<{
11
+ rule_id: string;
12
+ severity: 'ERROR' | 'WARNING';
13
+ message: string;
14
+ applies_to?: string;
15
+ suggestion?: string;
16
+ }>;
17
+ }
18
+ interface QualityHubApiViolation {
19
+ severity: 'critical' | 'major' | 'minor' | 'info';
20
+ rule_id: string;
21
+ name: string;
22
+ description: string;
23
+ category: string;
24
+ message: string;
25
+ test_item_id?: string;
26
+ weight: number;
27
+ recommendation: string;
28
+ applies_to: string[];
29
+ }
30
+ interface QualityHubApiResponse {
31
+ valid: boolean;
32
+ errors: QualityHubApiViolation[];
33
+ warnings: QualityHubApiViolation[];
34
+ metadata: Record<string, unknown>;
35
+ quality_metrics: {
36
+ quality_score: number;
37
+ max_score: number;
38
+ total_violations: number;
39
+ best_practices_grade: number;
40
+ };
41
+ validation_mode: string;
42
+ validated_at: string;
43
+ }
44
+ /**
45
+ * Map the raw API response to our internal validation result shape.
46
+ * Exported for unit testing; called by validateTestCaseViaApi once the stub is replaced.
47
+ *
48
+ * Mapping rules (from AWS memo 2026-04-10):
49
+ * raw.valid → is_valid
50
+ * raw.errors[].severity "critical" → issues[].severity "ERROR"
51
+ * raw.warnings[].severity * → issues[].severity "WARNING"
52
+ * raw.quality_metrics.quality_score → quality_score
53
+ * validity_score: 100 when valid, else max(0, 100 - errors.length * 20)
54
+ */
55
+ export declare function normaliseApiResponse(raw: QualityHubApiResponse): QualityHubValidationResult;
56
+ /**
57
+ * Typed errors returned when the API call fails in a known way.
58
+ * The MCP tool maps these to appropriate fallback behaviour.
59
+ */
60
+ export declare class QualityHubAuthError extends Error {
61
+ readonly code = "AUTH_ERROR";
62
+ }
63
+ export declare class QualityHubRateLimitError extends Error {
64
+ readonly code = "RATE_LIMITED";
65
+ }
66
+ /**
67
+ * POST /validate — submit XML to the Quality Hub validation API.
68
+ *
69
+ * Request:
70
+ * POST <baseUrl>/validate
71
+ * x-provar-key: pv_k_... (user auth — no x-api-key infra gate on this endpoint)
72
+ * Content-Type: application/json
73
+ * { "test_case_xml": "<full XML string>" }
74
+ *
75
+ * On failure the MCP tool catches and falls back to local validation
76
+ * (validation_source: "local_fallback"). No user-visible crash.
77
+ */
78
+ export declare function validateTestCaseViaApi(xml: string, apiKey: string, baseUrl: string): Promise<QualityHubValidationResult>;
79
+ /**
80
+ * Self-service access request page for users who do not yet have a Provar MCP account.
81
+ * Public HTML — no API key or Cognito token required.
82
+ * Update when staging/prod stages are deployed.
83
+ */
84
+ export declare const REQUEST_ACCESS_URL = "https://aqqlrlhga7.execute-api.us-east-1.amazonaws.com/dev/auth/request-access";
85
+ export declare function getQualityHubBaseUrl(): string;
86
+ export interface AuthExchangeResponse {
87
+ api_key: string;
88
+ prefix: string;
89
+ tier: string;
90
+ username: string;
91
+ expires_at: string;
92
+ }
93
+ export interface KeyStatusResponse {
94
+ valid: boolean;
95
+ tier?: string;
96
+ username?: string;
97
+ expires_at?: string;
98
+ }
99
+ /**
100
+ * POST /auth/exchange — exchange a Cognito access token for a pv_k_ key.
101
+ * Called immediately after PKCE callback; Cognito tokens are discarded after this call.
102
+ */
103
+ export declare function exchangeTokenForKey(cognitoAccessToken: string, baseUrl: string): Promise<AuthExchangeResponse>;
104
+ /**
105
+ * GET /auth/status — verify a stored pv_k_ key is still valid server-side.
106
+ * Best-effort: callers should catch and fall back to locally cached values on failure.
107
+ */
108
+ export declare function fetchKeyStatus(apiKey: string, baseUrl: string): Promise<KeyStatusResponse>;
109
+ /**
110
+ * POST /auth/revoke — invalidate a pv_k_ key on the server.
111
+ * Best-effort: callers should catch, log a note, then delete the local file regardless.
112
+ */
113
+ export declare function revokeKey(apiKey: string, baseUrl: string): Promise<void>;
114
+ /**
115
+ * POST /auth/rotate — atomically replace the current pv_k_ key with a new one.
116
+ * The old key is invalidated immediately. Returns the same shape as /auth/exchange.
117
+ * On 401: key is invalid/expired — caller should direct user to sf provar auth login.
118
+ */
119
+ export declare function rotateKey(apiKey: string, baseUrl: string): Promise<AuthExchangeResponse>;
120
+ export interface CorpusExample {
121
+ id: string;
122
+ name: string;
123
+ xml: string;
124
+ similarity_score: number;
125
+ salesforce_object: string;
126
+ quality_tier: string;
127
+ full_content?: boolean;
128
+ }
129
+ export interface CorpusRetrievalResponse {
130
+ retrieval_id: string;
131
+ examples: CorpusExample[];
132
+ count: number;
133
+ query_truncated: boolean;
134
+ }
135
+ export interface CorpusRetrievalOptions {
136
+ n?: number;
137
+ app_filter?: string;
138
+ prefer_high_quality?: boolean;
139
+ }
140
+ /**
141
+ * POST /corpus/retrieve — fetch N similar Provar test examples from the Bedrock KB corpus.
142
+ * Used by provar.qualityhub.examples.retrieve as the few-shot grounding step before
143
+ * the client LLM synthesises a new test case.
144
+ *
145
+ * Throws QualityHubAuthError on 401, QualityHubRateLimitError on 429.
146
+ * All other non-2xx responses throw a generic Error with status + body.
147
+ */
148
+ export declare function retrieveCorpusExamples(query: string, apiKey: string, baseUrl: string, options?: CorpusRetrievalOptions): Promise<CorpusRetrievalResponse>;
149
+ /**
150
+ * MCP tools and auth commands call qualityHubClient.X() so tests can replace
151
+ * properties with stubs without ESM re-export issues.
152
+ */
153
+ export declare const qualityHubClient: {
154
+ validateTestCaseViaApi: typeof validateTestCaseViaApi;
155
+ exchangeTokenForKey: typeof exchangeTokenForKey;
156
+ fetchKeyStatus: typeof fetchKeyStatus;
157
+ revokeKey: typeof revokeKey;
158
+ rotateKey: typeof rotateKey;
159
+ retrieveCorpusExamples: typeof retrieveCorpusExamples;
160
+ };
161
+ export {};