@provartesting/provardx-cli 1.5.3 → 1.6.0

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 (47) hide show
  1. package/README.md +5 -37
  2. package/lib/commands/provar/automation/project/validate.js +5 -3
  3. package/lib/commands/provar/automation/project/validate.js.map +1 -1
  4. package/lib/mcp/docs/PROVAR_TEST_STEP_REFERENCE.md +13 -1
  5. package/lib/mcp/docs/VALIDATION_RULE_REGISTRY.md +225 -0
  6. package/lib/mcp/rules/comparisonTypeSets.d.ts +21 -0
  7. package/lib/mcp/rules/comparisonTypeSets.js +45 -0
  8. package/lib/mcp/rules/comparisonTypeSets.js.map +1 -0
  9. package/lib/mcp/rules/provar_best_practices_rules.json +119 -8
  10. package/lib/mcp/rules/provar_layer1_rules.json +151 -0
  11. package/lib/mcp/rules/provar_test_step_schema.json +3005 -0
  12. package/lib/mcp/server.d.ts +15 -0
  13. package/lib/mcp/server.js +64 -1
  14. package/lib/mcp/server.js.map +1 -1
  15. package/lib/mcp/tools/automationTools.js +38 -1
  16. package/lib/mcp/tools/automationTools.js.map +1 -1
  17. package/lib/mcp/tools/bestPracticesEngine.js +1068 -6
  18. package/lib/mcp/tools/bestPracticesEngine.js.map +1 -1
  19. package/lib/mcp/tools/hierarchyValidate.d.ts +2 -1
  20. package/lib/mcp/tools/hierarchyValidate.js +7 -1
  21. package/lib/mcp/tools/hierarchyValidate.js.map +1 -1
  22. package/lib/mcp/tools/projectValidateFromPath.js +1 -2
  23. package/lib/mcp/tools/projectValidateFromPath.js.map +1 -1
  24. package/lib/mcp/tools/sfSpawn.d.ts +23 -0
  25. package/lib/mcp/tools/sfSpawn.js +72 -1
  26. package/lib/mcp/tools/sfSpawn.js.map +1 -1
  27. package/lib/mcp/tools/testCaseGenerate.js +146 -12
  28. package/lib/mcp/tools/testCaseGenerate.js.map +1 -1
  29. package/lib/mcp/tools/testCaseValidate.d.ts +46 -0
  30. package/lib/mcp/tools/testCaseValidate.js +307 -41
  31. package/lib/mcp/tools/testCaseValidate.js.map +1 -1
  32. package/lib/mcp/tools/testPlanValidate.js +3 -2
  33. package/lib/mcp/tools/testPlanValidate.js.map +1 -1
  34. package/lib/mcp/tools/testSuiteValidate.js +3 -2
  35. package/lib/mcp/tools/testSuiteValidate.js.map +1 -1
  36. package/lib/mcp/utils/qualityThreshold.d.ts +8 -0
  37. package/lib/mcp/utils/qualityThreshold.js +42 -0
  38. package/lib/mcp/utils/qualityThreshold.js.map +1 -0
  39. package/lib/mcp/utils/testCaseId.d.ts +23 -0
  40. package/lib/mcp/utils/testCaseId.js +156 -0
  41. package/lib/mcp/utils/testCaseId.js.map +1 -0
  42. package/lib/services/projectValidation.js +2 -1
  43. package/lib/services/projectValidation.js.map +1 -1
  44. package/messages/sf.provar.automation.project.validate.md +1 -1
  45. package/messages/sf.provar.mcp.start.md +1 -0
  46. package/oclif.manifest.json +4 -4
  47. package/package.json +3 -2
@@ -8,6 +8,7 @@
8
8
  import fs from 'node:fs';
9
9
  import path from 'node:path';
10
10
  import { createHash } from 'node:crypto';
11
+ import { fileURLToPath } from 'node:url';
11
12
  import { z } from 'zod';
12
13
  import { XMLParser } from 'fast-xml-parser';
13
14
  import { assertPathAllowed, PathPolicyError } from '../security/pathPolicy.js';
@@ -16,13 +17,15 @@ import { log } from '../logging/logger.js';
16
17
  import { resolveApiKey } from '../../services/auth/credentials.js';
17
18
  import { qualityHubClient, getQualityHubBaseUrl, QualityHubAuthError, QualityHubRateLimitError, REQUEST_ACCESS_URL, } from '../../services/qualityHub/client.js';
18
19
  import { applyDetailLevel } from '../utils/detailLevel.js';
20
+ import { resolveQualityThreshold } from '../utils/qualityThreshold.js';
19
21
  import { calcCompletenessScore, calcNextAction } from '../utils/validationScore.js';
20
22
  import { generateRunId, saveRun, hasAnyRun, loadBaselineViolations, computeDiff, computeContextHash, resolveValidationDir, } from '../utils/validationDiff.js';
21
23
  import { resolveTestCasePlanMode } from '../utils/testCasePlanMode.js';
22
24
  import { WARNING_CODES, formatWarning } from '../utils/warningCodes.js';
25
+ import { ASSERT_VALUES_COMPARISON_TYPES, UI_ASSERT_COMPARISON_TYPES, ASSERT_VALUES_COMPARISON_TYPE_SET, UI_ASSERT_COMPARISON_TYPE_SET, } from '../rules/comparisonTypeSets.js';
23
26
  import { runBestPractices } from './bestPracticesEngine.js';
24
27
  import { desc } from './descHelper.js';
25
- import { UI_SCREEN_CONTAINER_API_IDS, UI_LOCATOR_BEARING_API_IDS } from './uiActionApiIds.js';
28
+ import { UI_ACTION_API_IDS, UI_SCREEN_CONTAINER_API_IDS, UI_LOCATOR_BEARING_API_IDS } from './uiActionApiIds.js';
26
29
  const ONBOARDING_MESSAGE = 'Quality Hub validation unavailable — running local validation only (structural rules, no quality scoring).\n' +
27
30
  'To enable Quality Hub (170 rules): run sf provar auth login\n' +
28
31
  'For CI/CD: set the PROVAR_API_KEY environment variable.\n' +
@@ -35,6 +38,9 @@ const UNREACHABLE_WARNING = 'Quality Hub API unreachable. Running local validati
35
38
  const TC_VALIDATE_SUMMARY_FIELDS = [
36
39
  'requestId',
37
40
  'is_valid',
41
+ 'status',
42
+ 'quality_threshold',
43
+ 'meets_quality_threshold',
38
44
  'validity_score',
39
45
  'quality_score',
40
46
  'validation_source',
@@ -46,6 +52,17 @@ const TC_VALIDATE_SUMMARY_FIELDS = [
46
52
  function tcStorageDir() {
47
53
  return resolveValidationDir('testcase');
48
54
  }
55
+ /**
56
+ * Combine the validity gate and the quality bar into one verdict.
57
+ * `invalid` when a critical defect blocks loading; otherwise `needs_improvement`
58
+ * when the score is below the (resolved) threshold; otherwise `valid`.
59
+ */
60
+ function deriveQualityVerdict(isValid, qualityScore, qualityThresholdArg) {
61
+ const quality_threshold = resolveQualityThreshold(qualityThresholdArg);
62
+ const meets_quality_threshold = qualityScore >= quality_threshold;
63
+ const status = !isValid ? 'invalid' : meets_quality_threshold ? 'valid' : 'needs_improvement';
64
+ return { status, quality_threshold, meets_quality_threshold };
65
+ }
49
66
  /** Resolve validation result from QualityHub API or fall back to local. */
50
67
  async function resolveBaseResult(source, apiKey, requestId, planMode = 'unknown') {
51
68
  if (!apiKey) {
@@ -101,7 +118,7 @@ function tcRunContext(filePath, xmlContent) {
101
118
  export function registerTestCaseValidate(server, config) {
102
119
  server.registerTool('provar_testcase_validate', {
103
120
  title: 'Validate Test Case',
104
- description: desc("Validate a Provar XML test case for structural correctness and quality. Checks XML declaration, root element, required attributes (guid UUID v4, testItemId integer), <steps> presence, and applies best-practice rules. When a Provar API key is configured (via sf provar auth login or PROVAR_API_KEY env var), calls the Quality Hub API for full 170-rule scoring. Falls back to local validation if no key is set or the API is unavailable. Returns validity_score (schema compliance), quality_score (best practices, 0–100), and validation_source indicating which ruleset was applied. Every response includes run_id — pass it as baseline_run_id in the next call to receive only new/resolved issues. Data-driven note (DATA-001): when file_path is supplied and the project's provardx-properties.json references the test case directly via top-level `testCase` / `testCases` rather than via a `.testinstance` inside a plan, the validator emits DATA-001 warning a <dataTable> declaration will resolve all variables to null in direct testCase-mode — wire the test into a plan via provar_testplan_add-instance to enable data-driven iteration. When structural errors are returned, consult the provar://docs/step-reference MCP resource for correct step attribute schemas.", 'Validate a Provar XML test case: structure, UUIDs, steps, quality scoring; run_id for baseline diff.'),
121
+ description: desc("Validate a Provar XML test case for structural correctness and quality. Checks XML declaration, root element, required attributes (guid UUID v4, testItemId integer), <steps> presence, and applies best-practice rules. When a Provar API key is configured (via sf provar auth login or PROVAR_API_KEY env var), calls the Quality Hub API for full 170-rule scoring. Falls back to local validation if no key is set or the API is unavailable. Returns validity_score (schema compliance), quality_score (best practices, 0–100), and validation_source indicating which ruleset was applied. Returns a tri-state status: 'invalid' (a critical defect — the test will not load in Provar, is_valid=false), 'needs_improvement' (loads but quality_score is below quality_threshold), or 'valid' (loads and clears the bar); meets_quality_threshold and the effective quality_threshold are also returned. Note: a critical best-practice violation (e.g. an unknown apiId) now gates is_valid the same way a structural error does — it surfaces in issues[] as an ERROR. major/minor/info best-practice violations affect quality_score (and the status verdict) only. Every response includes run_id — pass it as baseline_run_id in the next call to receive only new/resolved issues. Data-driven note (DATA-001): when file_path is supplied and the project's provardx-properties.json references the test case directly via top-level `testCase` / `testCases` rather than via a `.testinstance` inside a plan, the validator emits DATA-001 warning a <dataTable> declaration will resolve all variables to null in direct testCase-mode — wire the test into a plan via provar_testplan_add-instance to enable data-driven iteration. When structural errors are returned, consult the provar://docs/step-reference MCP resource for correct step attribute schemas.", 'Validate a Provar XML test case: structure, UUIDs, steps, quality scoring; run_id for baseline diff.'),
105
122
  inputSchema: {
106
123
  content: z
107
124
  .string()
@@ -117,12 +134,18 @@ export function registerTestCaseValidate(server, config) {
117
134
  .optional()
118
135
  .default('standard')
119
136
  .describe(desc('Response verbosity. "summary": is_valid, scores, and stop signal only. "standard"/"full": full issues list (default).', 'enum summary|standard|full, optional; default standard')),
137
+ quality_threshold: z
138
+ .number()
139
+ .min(0)
140
+ .max(100)
141
+ .optional()
142
+ .describe(desc('Minimum quality_score for status to be "valid" rather than "needs_improvement". Does NOT affect is_valid (only critical defects do). Precedence: this arg → PROVAR_MCP_QUALITY_THRESHOLD env → 90.', 'number 0–100, optional; default 90')),
120
143
  baseline_run_id: z
121
144
  .string()
122
145
  .optional()
123
146
  .describe(desc('run_id from a previous call. When provided, returns only issues that are new or resolved since that run: { added, resolved, unchanged_count, run_id }. If not found, returns error BASELINE_NOT_FOUND.', 'string, optional; prev run_id for diff response')),
124
147
  },
125
- }, async ({ content, xml, file_path, detail, baseline_run_id }) => {
148
+ }, async ({ content, xml, file_path, detail, baseline_run_id, quality_threshold }) => {
126
149
  const requestId = makeRequestId();
127
150
  log('info', 'provar_testcase_validate', { requestId, has_content: !!(content ?? xml), file_path });
128
151
  try {
@@ -150,7 +173,13 @@ export function registerTestCaseValidate(server, config) {
150
173
  const context = tcRunContext(file_path, source);
151
174
  const contextHash = computeContextHash('tc', context);
152
175
  const runId = generateRunId(context);
153
- const bpViolations = (baseResult.best_practices_violations ?? []);
176
+ // A bridged critical appears twice — as the surfaced issue AND as its original
177
+ // BP violation — both carrying the same BP rule_id. Hand-coded issue rule_ids
178
+ // (TC_*, UI-*, COMPARISON-TYPE-001) never collide with BP rule_ids, so a BP
179
+ // rule_id appearing in issues[] can only mean it was bridged. Drop those from
180
+ // the BP list here so the baseline diff counts each finding once.
181
+ const issueRuleIds = new Set(baseResult.issues.map((i) => i.rule_id));
182
+ const bpViolations = (baseResult.best_practices_violations ?? []).filter((v) => !issueRuleIds.has(v.rule_id));
154
183
  const currentViolations = [
155
184
  ...baseResult.issues,
156
185
  ...bpViolations,
@@ -192,12 +221,17 @@ export function registerTestCaseValidate(server, config) {
192
221
  }
193
222
  const completeness_score = calcCompletenessScore(baseResult.is_valid ? 1 : 0, 1);
194
223
  const recommended_next_action = calcNextAction(completeness_score, hasBaseline, currentViolations.length);
224
+ // PDX-509 tri-state verdict. is_valid answers "will it load" (gated by
225
+ // criticals only); status layers the quality bar on top so an AI client
226
+ // gets an explicit "loads but fix before running" signal.
227
+ const verdict = deriveQualityVerdict(baseResult.is_valid, baseResult.quality_score, quality_threshold);
195
228
  const result = {
196
229
  requestId,
197
230
  run_id: runId,
198
231
  completeness_score,
199
232
  recommended_next_action,
200
233
  ...baseResult,
234
+ ...verdict,
201
235
  };
202
236
  const detailLevel = (detail ?? 'standard');
203
237
  const finalResult = applyDetailLevel(result, detailLevel, TC_VALIDATE_SUMMARY_FIELDS);
@@ -236,22 +270,17 @@ export function validateTestCaseXml(filePath, config) {
236
270
  }
237
271
  /** TC_010/TC_011: validate testCase id and guid attributes. */
238
272
  function checkTestCaseIdAndGuid(tcId, tcGuid, issues) {
239
- if (!tcId) {
273
+ // The testCase `id` is OPTIONAL — the guid is the unique identifier (real Provar
274
+ // projects routinely omit id). When an id IS present it must be a non-negative
275
+ // integer: test case ids are project-unique sequential numbers (corpus shows 0…N),
276
+ // NOT the literal "1". Only a present-but-non-numeric id (e.g. a UUID) is rejected.
277
+ if (tcId !== null && !/^\d+$/.test(tcId)) {
240
278
  issues.push({
241
279
  rule_id: 'TC_010',
242
280
  severity: 'ERROR',
243
- message: 'testCase missing required id attribute.',
281
+ message: `testCase id="${tcId}" is invalid — when present, the id must be a non-negative integer (test case ids are unique within a project, numbered sequentially). The guid is the cross-project unique identifier.`,
244
282
  applies_to: 'testCase',
245
- suggestion: 'Add id="1" to testCase element (Provar requires the integer literal "1").',
246
- });
247
- }
248
- else if (tcId !== '1') {
249
- issues.push({
250
- rule_id: 'TC_010',
251
- severity: 'ERROR',
252
- message: `testCase id="${tcId}" is invalid — Provar requires id="1" (integer literal).`,
253
- applies_to: 'testCase',
254
- suggestion: 'Set id="1" on the testCase element. The unique identifier is the guid attribute, not id.',
283
+ suggestion: 'Set id to a project-unique non-negative integer (typically the highest in use + 1), or omit the id attribute entirely and rely on the guid.',
255
284
  });
256
285
  }
257
286
  if (!tcGuid) {
@@ -386,6 +415,11 @@ export function validateTestCase(xmlContent, testName, options = {}) {
386
415
  for (const call of apiCalls) {
387
416
  validateApiCall(call, issues);
388
417
  }
418
+ // COMPARISON-TYPE-001: context-aware comparisonType enum check (load-blocking).
419
+ // Walks the whole test case so nested steps (e.g. a UiAssert inside a
420
+ // UiWithScreen substeps clause, or an AssertValues inside an If/ForEach) are
421
+ // covered too, not just top-level apiCalls.
422
+ validateComparisonTypes(tc, issues);
389
423
  // VAR-REF-001 / VAR-REF-002: detect {VarName} tokens inside valueClass="string" elements.
390
424
  // Provar does not interpolate {…} tokens in plain string values at runtime — they must use
391
425
  // class="variable" (pure reference) or class="compound" (embedded in surrounding text).
@@ -516,6 +550,82 @@ function checkUiTarget(call, apiId, stepName, issues) {
516
550
  });
517
551
  }
518
552
  }
553
+ // UI-INTERACTION-001 (PDX-506): a UI action step's `interaction` argument must
554
+ // use class="uiInteraction". A plain string runs green from the CLI but renders
555
+ // the Provar IDE Action widget blank. Mirrors checkUiTarget / UI-LOCATOR-001.
556
+ function checkUiInteraction(call, stepName, issues) {
557
+ const interactionArg = getArgList(call).find((a) => a['@_id'] === 'interaction');
558
+ if (!interactionArg)
559
+ return;
560
+ const interactionNode = interactionArg['value'];
561
+ if (interactionNode == null)
562
+ return;
563
+ const valClass = interactionNode['@_class'];
564
+ if (valClass !== 'uiInteraction') {
565
+ issues.push({
566
+ rule_id: 'UI-INTERACTION-001',
567
+ severity: 'ERROR',
568
+ message: `"${stepName}" interaction argument uses class="${valClass ?? '(missing)'}" — must be class="uiInteraction".`,
569
+ applies_to: 'apiCall',
570
+ suggestion: 'Emit the interaction as: <value class="uiInteraction" uri="ui:interaction?name=action"/>. ' +
571
+ 'In provar_testcase_generate the "interaction" attribute is converted automatically.',
572
+ });
573
+ }
574
+ }
575
+ // Flat-form argument ids that the broken/CLI-only UiAssert shape carries at the
576
+ // top level. The IDE-renderable contract nests these inside a uiFieldAssertion.
577
+ const UI_ASSERT_FLAT_ARG_IDS = ['fieldLocator', 'attributeName', 'comparisonType', 'expectedValue'];
578
+ // UI-ASSERT-STRUCTURE-001 (PDX-507, local rule): a UiAssert field assertion must
579
+ // be nested inside fieldAssertions → uiFieldAssertion (with a bare
580
+ // <fieldLocator uri="…"/> element), not emitted as flat top-level arguments.
581
+ // The flat shape runs green from the CLI but renders the IDE Result Assertions
582
+ // tab blank. Confirmed against the real corpus (AllPOCProjects): 0 of 3,778
583
+ // UiAssert steps use a flat fieldLocator argument; ~99% use the nested form.
584
+ // (Named "-STRUCTURE-001" to match the local SETVALUES-STRUCTURE-001 convention
585
+ // and avoid colliding with the best-practice JSON rule UI-ASSERT-STRUCT-001.)
586
+ function checkUiAssertStructure(call, stepName, issues) {
587
+ const flatArg = getArgList(call).find((a) => UI_ASSERT_FLAT_ARG_IDS.includes(a['@_id'] ?? ''));
588
+ if (!flatArg)
589
+ return;
590
+ const offendingId = flatArg['@_id'] ?? '';
591
+ issues.push({
592
+ rule_id: 'UI-ASSERT-STRUCTURE-001',
593
+ severity: 'ERROR',
594
+ message: `UiAssert step "${stepName}" carries a flat "${offendingId}" argument — field assertions must be nested inside fieldAssertions/uiFieldAssertion or the Provar IDE Result Assertions tab renders blank.`,
595
+ applies_to: 'apiCall',
596
+ suggestion: 'Nest field assertions: <argument id="fieldAssertions"><value class="valueList" mutable="Mutable">' +
597
+ '<uiFieldAssertion resultName="Field"><fieldLocator uri="ui:locator?name=Field&binding=..."/>' +
598
+ '<attributeAssertions><uiAttributeAssertion attributeName="value" comparisonType="EqualTo"/></attributeAssertions>' +
599
+ '</uiFieldAssertion></value></argument> plus empty columnAssertions/pageAssertions. The fieldLocator is a bare ' +
600
+ 'uri element, NOT class="uiLocator". In provar_testcase_generate pass fieldLocator/attributeName/comparisonType/' +
601
+ 'expectedValue as flat attributes — the generator builds this structure automatically.',
602
+ });
603
+ }
604
+ // SETVALUES-STRUCTURE-001 (mirrors quality-hub-agents SETVALUES-STRUCTURE-001):
605
+ // SetValues values argument must use class="valueList" with <namedValues> children.
606
+ // A plain string value causes an immediate ClassCastException at runtime.
607
+ // Extracted to keep validateApiCallArgs within the complexity budget.
608
+ function checkSetValuesStructure(call, stepName, issues) {
609
+ const valuesArg = getArgList(call).find((a) => a['@_id'] === 'values');
610
+ if (!valuesArg)
611
+ return;
612
+ const valuesNode = valuesArg['value'];
613
+ if (valuesNode == null)
614
+ return;
615
+ const valClass = valuesNode['@_class'];
616
+ if (valClass !== 'valueList') {
617
+ issues.push({
618
+ rule_id: 'SETVALUES-STRUCTURE-001',
619
+ severity: 'ERROR',
620
+ message: `SetValues step "${stepName}" values argument uses class="${valClass ?? '(missing)'}" — must use class="valueList" with <namedValues> children.`,
621
+ applies_to: 'apiCall',
622
+ suggestion: 'Wrap variable assignments in: <value class="valueList" mutable="Mutable"><namedValues>' +
623
+ '<namedValue name="varName"><value class="value" valueClass="string">value</value></namedValue>' +
624
+ '</namedValues></value>. In provar_testcase_generate pass each variable as a flat key/value pair ' +
625
+ 'in attributes — the generator builds the valueList structure automatically.',
626
+ });
627
+ }
628
+ }
519
629
  function validateApiCallArgs(call, apiId, name, issues) {
520
630
  const stepName = name ?? '(unnamed)';
521
631
  // UI-TARGET-001 (mirrors quality-hub-agents UI-SCREEN-TARGET-001):
@@ -548,29 +658,18 @@ function validateApiCallArgs(call, apiId, name, issues) {
548
658
  }
549
659
  }
550
660
  }
551
- // SETVALUES-STRUCTURE-001 (mirrors quality-hub-agents SETVALUES-STRUCTURE-001):
552
- // SetValues values argument must use class="valueList" with <namedValues> children.
553
- // A plain string value causes an immediate ClassCastException at runtime.
661
+ // UI-INTERACTION-001 (PDX-506) for any UI action; UI-ASSERT-STRUCTURE-001
662
+ // (PDX-507) additionally for UiAssert field-assertion structure. Both are
663
+ // local rules gated on the shared UI-action set and extracted to helpers to
664
+ // keep validateApiCallArgs within the complexity budget.
665
+ if (UI_ACTION_API_IDS.has(apiId)) {
666
+ checkUiInteraction(call, stepName, issues);
667
+ if (apiId.endsWith('UiAssert'))
668
+ checkUiAssertStructure(call, stepName, issues);
669
+ }
670
+ // SETVALUES-STRUCTURE-001: SetValues values argument must use class="valueList".
554
671
  if (apiId.includes('SetValues') && !apiId.includes('AssertValues')) {
555
- const valuesArg = getArgList(call).find((a) => a['@_id'] === 'values');
556
- if (valuesArg) {
557
- const valuesNode = valuesArg['value'];
558
- if (valuesNode != null) {
559
- const valClass = valuesNode['@_class'];
560
- if (valClass !== 'valueList') {
561
- issues.push({
562
- rule_id: 'SETVALUES-STRUCTURE-001',
563
- severity: 'ERROR',
564
- message: `SetValues step "${stepName}" values argument uses class="${valClass ?? '(missing)'}" — must use class="valueList" with <namedValues> children.`,
565
- applies_to: 'apiCall',
566
- suggestion: 'Wrap variable assignments in: <value class="valueList" mutable="Mutable"><namedValues>' +
567
- '<namedValue name="varName"><value class="value" valueClass="string">value</value></namedValue>' +
568
- '</namedValues></value>. In provar_testcase_generate pass each variable as a flat key/value pair ' +
569
- 'in attributes — the generator builds the valueList structure automatically.',
570
- });
571
- }
572
- }
573
- }
672
+ checkSetValuesStructure(call, stepName, issues);
574
673
  }
575
674
  // ASSERT-001: AssertValues using UI namedValues format instead of variable format
576
675
  if (apiId.includes('AssertValues')) {
@@ -586,13 +685,180 @@ function validateApiCallArgs(call, apiId, name, issues) {
586
685
  }
587
686
  }
588
687
  }
688
+ /** Recursively collect every node stored under `key` anywhere in the tree. */
689
+ function collectNodesByKey(node, key, out) {
690
+ if (Array.isArray(node)) {
691
+ for (const item of node)
692
+ collectNodesByKey(item, key, out);
693
+ return;
694
+ }
695
+ if (node === null || typeof node !== 'object')
696
+ return;
697
+ const obj = node;
698
+ for (const [k, v] of Object.entries(obj)) {
699
+ if (k === key) {
700
+ if (Array.isArray(v)) {
701
+ for (const item of v)
702
+ if (item !== null && typeof item === 'object')
703
+ out.push(item);
704
+ }
705
+ else if (v !== null && typeof v === 'object') {
706
+ out.push(v);
707
+ }
708
+ }
709
+ collectNodesByKey(v, key, out);
710
+ }
711
+ }
712
+ /** Extract the literal text of a parsed `<value>` node, or undefined if not a literal. */
713
+ function literalValueText(valueNode) {
714
+ if (valueNode == null)
715
+ return undefined;
716
+ // Only validate literal string values — skip variable / compound references,
717
+ // whose runtime value cannot be checked statically.
718
+ const valClass = valueNode['@_class'];
719
+ if (valClass !== undefined && valClass !== 'value')
720
+ return undefined;
721
+ const text = valueNode['#text'];
722
+ if (typeof text === 'string')
723
+ return text;
724
+ if (typeof text === 'number')
725
+ return String(text);
726
+ return undefined;
727
+ }
728
+ /**
729
+ * COMPARISON-TYPE-001 — context-aware `comparisonType` enum validation.
730
+ *
731
+ * `comparisonType` is a single Provar enum, but each step type accepts only a
732
+ * SUBSET. A value outside its step's subset is load-blocking (the test case
733
+ * fails to load with `IllegalArgumentException: No enum constant
734
+ * ...ComparisonType.<value>`), so this is emitted at ERROR tier — not as a
735
+ * best-practices quality warning — to mirror the runtime failure offline.
736
+ */
737
+ function validateComparisonTypes(tc, issues) {
738
+ // AssertValues steps → the 16-value AssertValues subset.
739
+ const apiCalls = [];
740
+ collectNodesByKey(tc, 'apiCall', apiCalls);
741
+ for (const call of apiCalls) {
742
+ const apiId = call['@_apiId'];
743
+ if (!apiId || !apiId.includes('AssertValues'))
744
+ continue;
745
+ const cmpArg = getArgList(call).find((a) => a['@_id'] === 'comparisonType');
746
+ if (!cmpArg)
747
+ continue;
748
+ const cmp = literalValueText(cmpArg['value']);
749
+ if (cmp === undefined || cmp === '')
750
+ continue;
751
+ if (!ASSERT_VALUES_COMPARISON_TYPE_SET.has(cmp)) {
752
+ const stepName = call['@_name'] ?? '(unnamed)';
753
+ issues.push({
754
+ rule_id: 'COMPARISON-TYPE-001',
755
+ severity: 'ERROR',
756
+ message: `AssertValues step "${stepName}" uses comparisonType="${cmp}", which is not a valid AssertValues comparison — this is load-blocking (IllegalArgumentException: No enum constant com.provar.core.model.base.java.ComparisonType.${cmp}).`,
757
+ applies_to: 'apiCall',
758
+ suggestion: `Use one of the AssertValues comparison types: ${ASSERT_VALUES_COMPARISON_TYPES.join(', ')}.`,
759
+ });
760
+ }
761
+ }
762
+ // UI Assert attribute assertions → the narrower 6-value UI subset.
763
+ const uiAsserts = [];
764
+ collectNodesByKey(tc, 'uiAttributeAssertion', uiAsserts);
765
+ for (const node of uiAsserts) {
766
+ const cmp = node['@_comparisonType'];
767
+ if (cmp === undefined || cmp === '')
768
+ continue;
769
+ if (!UI_ASSERT_COMPARISON_TYPE_SET.has(cmp)) {
770
+ const attr = node['@_attributeName'] ?? '(unknown attribute)';
771
+ issues.push({
772
+ rule_id: 'COMPARISON-TYPE-001',
773
+ severity: 'ERROR',
774
+ message: `UI Assert attribute assertion (attributeName="${attr}") uses comparisonType="${cmp}", which is not valid for a UI Assert (uiAttributeAssertion) — this is load-blocking (IllegalArgumentException: No enum constant com.provar.core.model.base.java.ComparisonType.${cmp}).`,
775
+ applies_to: 'apiCall',
776
+ suggestion: `Use one of the UI Assert comparison types: ${UI_ASSERT_COMPARISON_TYPES.join(', ')}. The negation/relational operators (e.g. NotEqualTo) are valid only in AssertValues steps; to negate a UI comparison, invert the assertion logic.`,
777
+ });
778
+ }
779
+ }
780
+ }
781
+ export const LAYER1_RULE_CATALOG = (() => {
782
+ const catalogPath = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'rules', 'provar_layer1_rules.json');
783
+ const parsed = JSON.parse(fs.readFileSync(catalogPath, 'utf-8'));
784
+ return parsed.rules;
785
+ })();
786
+ /**
787
+ * PDX-509 — validity bridge.
788
+ *
789
+ * Best-practice violations carry a `critical|major|minor|info` severity, but
790
+ * historically that severity only moved `quality_score` and never gated
791
+ * `is_valid`. Per the canonical taxonomy, `critical` means "Provar will not
792
+ * load/render the test case" — exactly the class of defect that MUST flip
793
+ * validity. The bridge surfaces every un-suppressed `critical` BP violation as
794
+ * an ERROR issue so it gates `is_valid`.
795
+ *
796
+ * `major`/`minor`/`info` are intentionally NOT bridged — a major is a runtime
797
+ * ERROR that still loads, so it influences the quality score (and the
798
+ * `needs_improvement` verdict) without flipping `is_valid`.
799
+ *
800
+ * These BP rules cover concepts the hand-coded Layer-1 checks already OWN
801
+ * (root element, identifier, steps presence, testItemId integers, comparisonType
802
+ * enums). Layer-1 is authoritative for those: it fires only on the genuinely
803
+ * load-blocking condition (e.g. TC_020 fires on a MISSING <steps>, but an
804
+ * empty-but-present <steps> still loads — it just does nothing), whereas the
805
+ * ported BP rule is coarser (VALID-STEPS-001 also flags an empty <steps>, a
806
+ * "does nothing" design smell, not a load failure). So we never bridge these —
807
+ * Layer-1 already gates the load-blocking case, and the BP version still counts
808
+ * toward quality_score. The bridge's real value is the criticals Layer-1 does
809
+ * NOT check (unknown apiId, missing required control/connection args, invalid
810
+ * render value-class casing, NitroX connect args…).
811
+ */
812
+ // Derived from the catalog's `owns_bp_rules` — the single source shared with the
813
+ // registry generator. A Layer-2 `critical` listed here is NOT bridged into
814
+ // `is_valid` (the named Layer-1 check is authoritative; bridging would
815
+ // double-report). Ownership today: TC_003→SCHEMA-ROOT-001, TC_010→SCHEMA-ID-001,
816
+ // TC_011→VALID-GUID-001, TC_020→SCHEMA-STEPS-001/VALID-STEPS-001,
817
+ // TC_034→STEP-ITEMID-001, COMPARISON-TYPE-001→COMPARISON-TYPE-ENUM-001.
818
+ export const LAYER1_OWNED_BP_RULES = new Set(LAYER1_RULE_CATALOG.flatMap((rule) => rule.owns_bp_rules ?? []));
819
+ /** Map a Best-Practices `appliesTo` token to the issue `applies_to` vocabulary. */
820
+ const BP_APPLIES_TO_ISSUE = {
821
+ TestCase: 'testCase',
822
+ Step: 'apiCall',
823
+ Argument: 'argument',
824
+ Document: 'document',
825
+ };
826
+ /**
827
+ * Surface every un-suppressed `critical` best-practice violation as an ERROR
828
+ * issue so it gates `is_valid`. Mutates `issues` in place. The BP list itself is
829
+ * left untouched, so `quality_score` (and its Lambda parity) is unchanged — a
830
+ * bridged critical deliberately appears in BOTH `issues[]` (validity) and
831
+ * `best_practices_violations[]` (scoring).
832
+ */
833
+ function bridgeCriticalViolations(bpViolations, issues) {
834
+ const present = new Set(issues.map((i) => i.rule_id));
835
+ for (const v of bpViolations) {
836
+ if (v.severity !== 'critical')
837
+ continue;
838
+ if (present.has(v.rule_id))
839
+ continue;
840
+ if (LAYER1_OWNED_BP_RULES.has(v.rule_id))
841
+ continue; // Layer-1 is authoritative for these
842
+ issues.push({
843
+ rule_id: v.rule_id,
844
+ severity: 'ERROR',
845
+ message: v.message,
846
+ applies_to: BP_APPLIES_TO_ISSUE[v.applies_to[0] ?? ''] ?? 'testCase',
847
+ suggestion: v.recommendation,
848
+ });
849
+ present.add(v.rule_id);
850
+ }
851
+ }
589
852
  function finalize(issues, testCaseId, testCaseName, stepCount, xmlContent, testName) {
853
+ // Layer 2: quality score (best practices engine — same rules & formula as Quality Hub API)
854
+ const bp = runBestPractices(xmlContent, { testName });
855
+ // PDX-509: bridge critical BP violations into Layer-1 issues BEFORE counting,
856
+ // so a "won't load" best-practice defect flips is_valid like a structural one.
857
+ bridgeCriticalViolations(bp.violations, issues);
590
858
  const errorCount = issues.filter((i) => i.severity === 'ERROR').length;
591
859
  const warningCount = issues.filter((i) => i.severity === 'WARNING').length;
592
- // Layer 1: validity score (schema compliance — existing rules)
860
+ // Layer 1: validity score (schema compliance — existing rules + bridged criticals)
593
861
  const validity_score = Math.max(0, 100 - errorCount * 20);
594
- // Layer 2: quality score (best practices engine — same rules & formula as Quality Hub API)
595
- const bp = runBestPractices(xmlContent, { testName });
596
862
  return {
597
863
  is_valid: errorCount === 0,
598
864
  validity_score,
@@ -1 +1 @@
1
- {"version":3,"file":"testCaseValidate.js","sourceRoot":"","sources":["../../../src/mcp/tools/testCaseValidate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testCaseValidate.js","sourceRoot":"","sources":["../../../src/mcp/tools/testCaseValidate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAwB,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAoB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EACL,aAAa,EACb,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,WAAW,EACX,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAyB,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjH,MAAM,kBAAkB,GACtB,8GAA8G;IAC9G,+DAA+D;IAC/D,2DAA2D;IAC3D,kCAAkC,kBAAkB,EAAE,CAAC;AAEzD,MAAM,YAAY,GAChB,6EAA6E;IAC7E,oEAAoE,kBAAkB,EAAE,CAAC;AAE3F,MAAM,kBAAkB,GAAG,uFAAuF,CAAC;AAEnH,MAAM,mBAAmB,GACvB,sGAAsG;IACtG,iFAAiF,CAAC;AAEpF,MAAM,0BAA0B,GAAG;IACjC,WAAW;IACX,UAAU;IACV,QAAQ;IACR,mBAAmB;IACnB,yBAAyB;IACzB,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,QAAQ;IACR,oBAAoB;IACpB,yBAAyB;CAC1B,CAAC;AAEF,+FAA+F;AAC/F,SAAS,YAAY;IACnB,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AASD;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,OAAgB,EAAE,YAAoB,EAAE,mBAA4B;IAChG,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IACvE,MAAM,uBAAuB,GAAG,YAAY,IAAI,iBAAiB,CAAC;IAClE,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC9F,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;AAChE,CAAC;AAED,2EAA2E;AAC3E,KAAK,UAAU,iBAAiB,CAC9B,MAAc,EACd,MAAqB,EACrB,SAAiB,EACjB,WAA6B,SAAS;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC;YACpD,iBAAiB,EAAE,OAAO;YAC1B,kBAAkB,EAAE,kBAAkB;SACvC,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpE,GAAG,CAAC,MAAM,EAAE,uCAAuC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACpE,OAAO;YACL,GAAG,SAAS;YACZ,MAAM,EAAE,SAAS,CAAC,MAAsC;YACxD,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM;YAC1E,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM;YAC9E,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,cAAc,EAAE,SAAS,CAAC,cAAc;YACxC,iBAAiB,EAAE,aAAa;SACjC,CAAC;IACJ,CAAC;IAAC,OAAO,MAAe,EAAE,CAAC;QACzB,IAAI,OAAe,CAAC;QACpB,IAAI,MAAM,YAAY,mBAAmB,EAAE,CAAC;YAC1C,OAAO,GAAG,YAAY,CAAC;YACvB,GAAG,CAAC,MAAM,EAAE,oDAAoD,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACnF,CAAC;aAAM,IAAI,MAAM,YAAY,wBAAwB,EAAE,CAAC;YACtD,OAAO,GAAG,kBAAkB,CAAC;YAC7B,GAAG,CAAC,MAAM,EAAE,sDAAsD,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,mBAAmB,CAAC;YAC9B,GAAG,CAAC,MAAM,EAAE,yDAAyD,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,OAAO;YACL,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC;YACpD,iBAAiB,EAAE,gBAAgB;YACnC,kBAAkB,EAAE,OAAO;SAC5B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,yDAAyD;AACzD,SAAS,YAAY,CAAC,QAA4B,EAAE,UAAkB;IACpE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,MAAoB;IAC9E,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,IAAI,CACf,qxDAAqxD,EACrxD,sGAAsG,CACvG;QACD,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,IAAI,CAAC,+CAA+C,EAAE,wBAAwB,CAAC,CAAC;YAC5F,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,IAAI,CAAC,4DAA4D,EAAE,wBAAwB,CAAC,CAAC;YACzG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,sBAAsB,CAAC,CAAC;YACtG,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;iBACrC,QAAQ,EAAE;iBACV,OAAO,CAAC,UAAU,CAAC;iBACnB,QAAQ,CACP,IAAI,CACF,uHAAuH,EACvH,wDAAwD,CACzD,CACF;YACH,iBAAiB,EAAE,CAAC;iBACjB,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,IAAI,CACF,oMAAoM,EACpM,oCAAoC,CACrC,CACF;YACH,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,IAAI,CACF,wMAAwM,EACxM,iDAAiD,CAClD,CACF;SACJ;KACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,EAAE,EAAE;QAChF,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAEnG,IAAI,CAAC;YACH,wFAAwF;YACxF,IAAI,MAAM,GAAG,OAAO,IAAI,GAAG,CAAC;YAE5B,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBACzB,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,gBAAgB,EAAE,mBAAmB,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;oBAClF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5F,CAAC;gBACD,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,SAAS,CAAC,eAAe,EAAE,sCAAsC,EAAE,SAAS,CAAC,CAAC;gBAC1F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5F,CAAC;YAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAqB,SAAS;gBAC1C,CAAC,CAAC,uBAAuB,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI;gBAClG,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEhF,MAAM,UAAU,GAAG,YAAY,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACrC,+EAA+E;YAC/E,8EAA8E;YAC9E,4EAA4E;YAC5E,8EAA8E;YAC9E,kEAAkE;YAClE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC,MAAM,CACtE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CACF,CAAC;YACpC,MAAM,iBAAiB,GAAwB;gBAC7C,GAAI,UAAU,CAAC,MAAyC;gBACxD,GAAG,YAAY;aAChB,CAAC;YAEF,4EAA4E;YAC5E,MAAM,QAAQ,GACZ,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,EAAE;gBACrD,CAAC,CAAC,sBAAsB,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC;gBAClE,CAAC,CAAC,IAAI,CAAC;YAEX,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACH,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,EAAE,uDAAuD,EAAE;oBACnE,SAAS;oBACT,KAAK,EAAG,OAAiB,CAAC,OAAO;iBAClC,CAAC,CAAC;YACL,CAAC;YAED,YAAY;YACZ,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,EAAE,EAAE,CAAC;gBAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,SAAS,CACzB,oBAAoB,EACpB,+FAA+F,EAC/F,SAAS,EACT,KAAK,EACL,EAAE,UAAU,EAAE,qFAAqF,EAAE,CACtG,CAAC;oBACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClG,CAAC;gBACD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBACtD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjF,MAAM,uBAAuB,GAAG,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACnG,MAAM,YAAY,GAAG;oBACnB,SAAS;oBACT,MAAM,EAAE,KAAK;oBACb,GAAG,IAAI;oBACP,kBAAkB;oBAClB,uBAAuB;iBACxB,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;oBACxE,iBAAiB,EAAE,YAAY;iBAChC,CAAC;YACJ,CAAC;YAED,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjF,MAAM,uBAAuB,GAAG,cAAc,CAAC,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAE1G,uEAAuE;YACvE,wEAAwE;YACxE,0DAA0D;YAC1D,MAAM,OAAO,GAAG,oBAAoB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;YAEvG,MAAM,MAAM,GAAG;gBACb,SAAS;gBACT,MAAM,EAAE,KAAK;gBACb,kBAAkB;gBAClB,uBAAuB;gBACvB,GAAG,UAAU;gBACb,GAAG,OAAO;aACX,CAAC;YAEF,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,UAAU,CAAgB,CAAC;YAC1D,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;YAEtF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvE,iBAAiB,EAAE,WAAW;aAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAAgC,CAAC;YAC/C,MAAM,SAAS,GAAG,SAAS,CACzB,KAAK,YAAY,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAChE,KAAK,CAAC,OAAO,EACb,SAAS,EACT,KAAK,CACN,CAAC;YACF,GAAG,CAAC,OAAO,EAAE,iCAAiC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;QAClG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,mFAAmF;AAEnF,MAAM,UAAU,GAAG,wEAAwE,CAAC;AAqB5F;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,MAAoB;IACxE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,MAAM,QAAQ,GAAG,uBAAuB,CAAC;QACvC,gBAAgB,EAAE,QAAQ;QAC1B,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC,IAAI,CAAC;IACR,OAAO,gBAAgB,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,+DAA+D;AAC/D,SAAS,sBAAsB,CAAC,IAAmB,EAAE,MAA0B,EAAE,MAAyB;IACxG,iFAAiF;IACjF,+EAA+E;IAC/E,mFAAmF;IACnF,oFAAoF;IACpF,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,gBAAgB,IAAI,yLAAyL;YACtN,UAAU,EAAE,UAAU;YACtB,UAAU,EACR,6IAA6I;SAChJ,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,2CAA2C;YACpD,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,mDAAmD;SAChE,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,kBAAkB,MAAM,2BAA2B;YAC5D,UAAU,EAAE,UAAU;YACtB,UAAU,EACR,yGAAyG;SAC5G,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,yBAAyB,CAChC,EAA2B,EAC3B,QAA0B,EAC1B,MAAyB;IAEzB,MAAM,YAAY,GAAG,WAAW,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IAClE,IAAI,CAAC,YAAY,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO;IACjD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,aAAa,CACpB,aAAa,CAAC,QAAQ,EACtB,2MAA2M,CAC5M;YACD,UAAU,EAAE,UAAU;YACtB,UAAU,EACR,kIAAkI;SACrI,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,MAAM,CAAC,IAAI,CAAC;QACV,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,SAAS;QACnB,OAAO,EACL,yKAAyK;QAC3K,UAAU,EAAE,UAAU;QACtB,UAAU,EACR,mHAAmH;KACtH,CAAC,CAAC;AACL,CAAC;AAeD,gDAAgD;AAChD,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,QAAiB,EACjB,UAAmC,EAAE;IAErC,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,0BAA0B;IAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,uFAAuF;YAChG,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,wCAAwC;SACrD,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;IACR,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,gBAAgB,EAAE,KAAK;QACvB,mBAAmB,EAAE,IAAI;QACzB,mBAAmB,EAAE,KAAK;KAC3B,CAAC,CAAC;IACH,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAA4B,CAAC;IAC/D,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,CAAU,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,oBAAoB,UAAU,CAAC,OAAO,EAAE;YACjD,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,wBAAwB;SACrC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,kCAAkC;YAC3C,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,oCAAoC;SACjD,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,8FAA8F;IAC9F,8EAA8E;IAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,EAAE,GACN,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,IAAI,GAAI,EAAE,CAAC,MAAM,CAAwB,IAAI,IAAI,CAAC;IACxD,MAAM,MAAM,GAAI,EAAE,CAAC,QAAQ,CAAwB,IAAI,IAAI,CAAC;IAC5D,MAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAuB,CAAC;IAElD,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,0EAA0E;IAC1E,8EAA8E;IAC9E,8EAA8E;IAC9E,kEAAkE;IAElE,0BAA0B;IAC1B,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,mCAAmC;YAC5C,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,8CAA8C;SAC3D,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,yBAAyB,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS,EAAE,MAAM,CAAC,CAAC;IAErE,mEAAmE;IACnE,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,KAAK,GACT,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAE,QAAoC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAmC,WAAW;QAC1D,CAAC,CAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAoC;QAChG,CAAC,CAAC,EAAE,CAAC;IAEP,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,gFAAgF;IAChF,sEAAsE;IACtE,6EAA6E;IAC7E,4CAA4C;IAC5C,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEpC,0FAA0F;IAC1F,2FAA2F;IAC3F,wFAAwF;IACxF,MAAM,aAAa,GAAG,uDAAuD,CAAC;IAC9E,IAAI,WAAmC,CAAC;IACxC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,SAAS;QAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,oBAAoB,OAAO,6GAA6G;gBACjJ,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,uDAAuD,OAAO;qBACvE,KAAK,CAAC,GAAG,CAAC;qBACV,IAAI,CACH,oBAAoB,CACrB,wIAAwI;aAC5I,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,mBAAmB,OAAO,eAAe,QAAQ,CAAC,IAAI,CAC7D,MAAM,CACP,oGAAoG;gBACrG,UAAU,EAAE,UAAU;gBACtB,UAAU,EACR,8GAA8G;oBAC9G,oJAAoJ;aACvJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC/E,CAAC;AAED,yFAAyF;AACzF,SAAS,UAAU,CAAC,IAA6B;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAwC,CAAC;IACzE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAmC,CAAC;AACvF,CAAC;AAED,SAAS,eAAe,CAAC,IAA6B,EAAE,MAAyB;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAuB,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAuB,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAuB,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAuB,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,UAAU,KAAK,0BAA0B;YAClD,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,qCAAqC;SAClD,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,UAAU,KAAK,UAAU,QAAQ,2BAA2B;YACrE,UAAU,EAAE,SAAS;YACrB,UAAU,EACR,yGAAyG;SAC5G,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,kCAAkC;YAC3C,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,uDAAuD;SACpE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,UAAU,KAAK,0BAA0B;YAClD,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,mCAAmC;SAChD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,UAAU,KAAK,gCAAgC;YACxD,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,yCAAyC;SACtD,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,UAAU,KAAK,gBAAgB,UAAU,2BAA2B;YAC7E,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,yCAAyC;SACtD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK;QAAE,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,aAAa,CACpB,IAA6B,EAC7B,KAAa,EACb,QAAgB,EAChB,MAAyB;IAEzB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAM,CAAwB,KAAK,QAAQ,CAAC,CAAC;IAC/F,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAwC,CAAC;IAC5E,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO;IAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAuB,CAAC;IAC5D,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,GAAG,QAAQ,UAAU,QAAQ,iCACpC,QAAQ,IAAI,WACd,+BAA+B;YAC/B,UAAU,EAAE,SAAS;YACrB,UAAU,EACR,iHAAiH;gBACjH,gFAAgF;SACnF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,gFAAgF;AAChF,8EAA8E;AAC9E,SAAS,kBAAkB,CAAC,IAA6B,EAAE,QAAgB,EAAE,MAAyB;IACpG,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAM,CAAwB,KAAK,aAAa,CAAC,CAAC;IACzG,IAAI,CAAC,cAAc;QAAE,OAAO;IAC5B,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAwC,CAAC;IACvF,IAAI,eAAe,IAAI,IAAI;QAAE,OAAO;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAuB,CAAC;IAClE,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI,QAAQ,sCACnB,QAAQ,IAAI,WACd,oCAAoC;YACpC,UAAU,EAAE,SAAS;YACrB,UAAU,EACR,4FAA4F;gBAC5F,qFAAqF;SACxF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,MAAM,sBAAsB,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAEpG,iFAAiF;AACjF,mEAAmE;AACnE,6EAA6E;AAC7E,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,SAAS,sBAAsB,CAAC,IAA6B,EAAE,QAAgB,EAAE,MAAyB;IACxG,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1C,sBAAsB,CAAC,QAAQ,CAAE,CAAC,CAAC,MAAM,CAAwB,IAAI,EAAE,CAAC,CACzE,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,WAAW,GAAI,OAAO,CAAC,MAAM,CAAwB,IAAI,EAAE,CAAC;IAClE,MAAM,CAAC,IAAI,CAAC;QACV,OAAO,EAAE,yBAAyB;QAClC,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,kBAAkB,QAAQ,qBAAqB,WAAW,6IAA6I;QAChN,UAAU,EAAE,SAAS;QACrB,UAAU,EACR,mGAAmG;YACnG,8FAA8F;YAC9F,mHAAmH;YACnH,gHAAgH;YAChH,iHAAiH;YACjH,uFAAuF;KAC1F,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,oFAAoF;AACpF,0EAA0E;AAC1E,sEAAsE;AACtE,SAAS,uBAAuB,CAAC,IAA6B,EAAE,QAAgB,EAAE,MAAyB;IACzG,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAM,CAAwB,KAAK,QAAQ,CAAC,CAAC;IAC/F,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAwC,CAAC;IAC7E,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO;IAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAuB,CAAC;IAC7D,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,yBAAyB;YAClC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,mBAAmB,QAAQ,iCAClC,QAAQ,IAAI,WACd,6DAA6D;YAC7D,UAAU,EAAE,SAAS;YACrB,UAAU,EACR,wFAAwF;gBACxF,gGAAgG;gBAChG,kGAAkG;gBAClG,6EAA6E;SAChF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAA6B,EAC7B,KAAa,EACb,IAAwB,EACxB,MAAyB;IAEzB,MAAM,QAAQ,GAAG,IAAI,IAAI,WAAW,CAAC;IAErC,mEAAmE;IACnE,0FAA0F;IAC1F,oFAAoF;IACpF,oDAAoD;IACpD,IAAI,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,6DAA6D;IAC7D,yEAAyE;IACzE,0EAA0E;IAC1E,8DAA8D;IAC9D,IAAI,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAM,CAAwB,KAAK,SAAS,CAAC,CAAC;QACjG,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAwC,CAAC;YAC/E,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAuB,CAAC;gBAC9D,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,gBAAgB;wBACzB,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,IAAI,QAAQ,kCACnB,QAAQ,IAAI,WACd,gCAAgC;wBAChC,UAAU,EAAE,SAAS;wBACrB,UAAU,EACR,2EAA2E;4BAC3E,iFAAiF;qBACpF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,4EAA4E;IAC5E,yDAAyD;IACzD,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjF,CAAC;IAED,iFAAiF;IACjF,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACnE,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,kFAAkF;IAClF,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAM,CAAwB,KAAK,QAAQ,CAAC,CAAC;QAClG,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,YAAY;gBACrB,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,sBAAsB,QAAQ,kLAAkL;gBACzN,UAAU,EAAE,SAAS;gBACrB,UAAU,EACR,gHAAgH;aACnH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,iBAAiB,CAAC,IAAa,EAAE,GAAW,EAAE,GAAmC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO;IACtD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,KAAK,MAAM,IAAI,IAAI,CAAC;oBAAE,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;wBAAE,GAAG,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC;YACjH,CAAC;iBAAM,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC/C,GAAG,CAAC,IAAI,CAAC,CAA4B,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,0FAA0F;AAC1F,SAAS,gBAAgB,CAAC,SAA8C;IACtE,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACxC,6EAA6E;IAC7E,oDAAoD;IACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAuB,CAAC;IAC5D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACrE,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,uBAAuB,CAAC,EAA2B,EAAE,MAAyB;IACrF,yDAAyD;IACzD,MAAM,QAAQ,GAAmC,EAAE,CAAC;IACpD,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAuB,CAAC;QACpD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,SAAS;QACxD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,MAAM,CAAwB,KAAK,gBAAgB,CAAC,CAAC;QACpG,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAwC,CAAC,CAAC;QACrF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;YAAE,SAAS;QAC9C,IAAI,CAAC,iCAAiC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAQ,CAAwB,IAAI,WAAW,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,sBAAsB,QAAQ,0BAA0B,GAAG,sKAAsK,GAAG,IAAI;gBACjP,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,iDAAiD,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC1G,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,MAAM,SAAS,GAAmC,EAAE,CAAC;IACrD,iBAAiB,CAAC,EAAE,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;IACzD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAuB,CAAC;QAC3D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;YAAE,SAAS;QAC9C,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAI,IAAI,CAAC,iBAAiB,CAAwB,IAAI,qBAAqB,CAAC;YACtF,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO,EAAE,qBAAqB;gBAC9B,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,iDAAiD,IAAI,2BAA2B,GAAG,mLAAmL,GAAG,IAAI;gBACtR,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,8CAA8C,0BAA0B,CAAC,IAAI,CACvF,IAAI,CACL,oJAAoJ;aACtJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAqBD,MAAM,CAAC,MAAM,mBAAmB,GAAsC,CAAC,GAA6B,EAAE;IACpG,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,EACJ,OAAO,EACP,0BAA0B,CAC3B,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAwC,CAAC;IACxG,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC,CAAC,EAAE,CAAC;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,iFAAiF;AACjF,2EAA2E;AAC3E,uEAAuE;AACvE,iFAAiF;AACjF,kEAAkE;AAClE,wEAAwE;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAwB,IAAI,GAAG,CAC/D,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAChE,CAAC;AAEF,mFAAmF;AACnF,MAAM,mBAAmB,GAA2B;IAClD,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,wBAAwB,CAC/B,YAAmE,EACnE,MAAyB;IAEzB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU;YAAE,SAAS;QACxC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,SAAS;QACrC,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,SAAS,CAAC,qCAAqC;QACzF,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,UAAU;YACpE,UAAU,EAAE,CAAC,CAAC,cAAc;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,MAAyB,EACzB,UAAyB,EACzB,YAA2B,EAC3B,SAAiB,EACjB,UAAkB,EAClB,QAAiB;IAEjB,2FAA2F;IAC3F,MAAM,EAAE,GAAG,gBAAgB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEtD,8EAA8E;IAC9E,+EAA+E;IAC/E,wBAAwB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAE3E,mFAAmF;IACnF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC;IAE1D,OAAO;QACL,QAAQ,EAAE,UAAU,KAAK,CAAC;QAC1B,cAAc;QACd,aAAa,EAAE,EAAE,CAAC,aAAa;QAC/B,YAAY,EAAE,UAAU;QACxB,cAAc,EAAE,YAAY;QAC5B,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,UAAU;QACvB,aAAa,EAAE,YAAY;QAC3B,MAAM;QACN,yBAAyB,EAAE,EAAE,CAAC,UAAU;QACxC,8BAA8B,EAAE,EAAE,CAAC,eAAe;QAClD,+EAA+E;QAC/E,qFAAqF;QACrF,iBAAiB,EAAE,OAAgB;KACpC,CAAC;AACJ,CAAC"}
@@ -10,6 +10,7 @@ import { makeError, makeRequestId } from '../schemas/common.js';
10
10
  import { log } from '../logging/logger.js';
11
11
  import { applyDetailLevel } from '../utils/detailLevel.js';
12
12
  import { calcCompletenessScore, calcNextAction } from '../utils/validationScore.js';
13
+ import { resolveQualityThreshold } from '../utils/qualityThreshold.js';
13
14
  import { validatePlan, buildHierarchySummary, } from './hierarchyValidate.js';
14
15
  import { desc } from './descHelper.js';
15
16
  function countSuiteViolations(suite) {
@@ -117,7 +118,7 @@ export function registerTestPlanValidate(server) {
117
118
  .min(0)
118
119
  .max(100)
119
120
  .optional()
120
- .describe(desc('Minimum quality score for a test case to be considered valid (default: 80)', 'number 0–100, optional')),
121
+ .describe(desc('Minimum quality score for a test case to be considered valid. Precedence: this arg → PROVAR_MCP_QUALITY_THRESHOLD env → 90.', 'number 0–100, optional; default 90')),
121
122
  detail: z
122
123
  .enum(['summary', 'standard', 'full'])
123
124
  .optional()
@@ -128,7 +129,7 @@ export function registerTestPlanValidate(server) {
128
129
  const requestId = makeRequestId();
129
130
  log('info', 'provar_testplan_validate', { requestId, plan_name });
130
131
  try {
131
- const threshold = quality_threshold ?? 80;
132
+ const threshold = resolveQualityThreshold(quality_threshold);
132
133
  const input = {
133
134
  name: plan_name,
134
135
  test_suites: test_suites ?? [],
@@ -1 +1 @@
1
- {"version":3,"file":"testPlanValidate.js","sourceRoot":"","sources":["../../../src/mcp/tools/testPlanValidate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testPlanValidate.js","sourceRoot":"","sources":["../../../src/mcp/tools/testPlanValidate.ts"],"names":[],"mappings":"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"}