agentic-qe 2.4.0 → 2.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 (174) hide show
  1. package/.claude/agents/qe-a11y-ally.md +855 -0
  2. package/.claude/agents/qx-partner.md +120 -4
  3. package/.claude/skills/testability-scoring/SKILL.md +107 -6
  4. package/CHANGELOG.md +135 -0
  5. package/README.md +7 -6
  6. package/dist/agents/AccessibilityAllyAgent.d.ts +168 -0
  7. package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -0
  8. package/dist/agents/AccessibilityAllyAgent.js +462 -0
  9. package/dist/agents/AccessibilityAllyAgent.js.map +1 -0
  10. package/dist/agents/SONAIntegration.d.ts +109 -0
  11. package/dist/agents/SONAIntegration.d.ts.map +1 -0
  12. package/dist/agents/SONAIntegration.js +167 -0
  13. package/dist/agents/SONAIntegration.js.map +1 -0
  14. package/dist/agents/index.d.ts +3 -0
  15. package/dist/agents/index.d.ts.map +1 -1
  16. package/dist/agents/index.js +93 -2
  17. package/dist/agents/index.js.map +1 -1
  18. package/dist/cli/init/agents.js +1 -1
  19. package/dist/cli/init/claude-config.js +2 -2
  20. package/dist/cli/init/database-init.js +1 -1
  21. package/dist/core/cache/BinaryCacheImpl.d.ts +161 -0
  22. package/dist/core/cache/BinaryCacheImpl.d.ts.map +1 -0
  23. package/dist/core/cache/BinaryCacheImpl.js +685 -0
  24. package/dist/core/cache/BinaryCacheImpl.js.map +1 -0
  25. package/dist/core/cache/BinaryMetadataCache.d.ts +244 -0
  26. package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -1
  27. package/dist/core/cache/BinaryMetadataCache.js +63 -1
  28. package/dist/core/cache/BinaryMetadataCache.js.map +1 -1
  29. package/dist/core/cache/index.d.ts +1 -0
  30. package/dist/core/cache/index.d.ts.map +1 -1
  31. package/dist/core/cache/index.js +10 -1
  32. package/dist/core/cache/index.js.map +1 -1
  33. package/dist/core/memory/AgentDBService.d.ts +30 -4
  34. package/dist/core/memory/AgentDBService.d.ts.map +1 -1
  35. package/dist/core/memory/AgentDBService.js +122 -12
  36. package/dist/core/memory/AgentDBService.js.map +1 -1
  37. package/dist/core/memory/CachedHNSWVectorMemory.d.ts +153 -0
  38. package/dist/core/memory/CachedHNSWVectorMemory.d.ts.map +1 -0
  39. package/dist/core/memory/CachedHNSWVectorMemory.js +329 -0
  40. package/dist/core/memory/CachedHNSWVectorMemory.js.map +1 -0
  41. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  42. package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
  43. package/dist/core/memory/RuVectorPatternStore.js +8 -2
  44. package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
  45. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +50 -0
  46. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -1
  47. package/dist/core/memory/UnifiedMemoryCoordinator.js +206 -0
  48. package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -1
  49. package/dist/core/memory/index.d.ts +2 -0
  50. package/dist/core/memory/index.d.ts.map +1 -1
  51. package/dist/core/memory/index.js +8 -1
  52. package/dist/core/memory/index.js.map +1 -1
  53. package/dist/core/optimization/RecursiveOptimizer.d.ts +233 -0
  54. package/dist/core/optimization/RecursiveOptimizer.d.ts.map +1 -0
  55. package/dist/core/optimization/RecursiveOptimizer.js +509 -0
  56. package/dist/core/optimization/RecursiveOptimizer.js.map +1 -0
  57. package/dist/core/strategies/SONALearningStrategy.d.ts +115 -0
  58. package/dist/core/strategies/SONALearningStrategy.d.ts.map +1 -0
  59. package/dist/core/strategies/SONALearningStrategy.js +656 -0
  60. package/dist/core/strategies/SONALearningStrategy.js.map +1 -0
  61. package/dist/core/strategies/TRMLearningStrategy.d.ts +162 -0
  62. package/dist/core/strategies/TRMLearningStrategy.d.ts.map +1 -0
  63. package/dist/core/strategies/TRMLearningStrategy.js +670 -0
  64. package/dist/core/strategies/TRMLearningStrategy.js.map +1 -0
  65. package/dist/core/strategies/index.d.ts +10 -1
  66. package/dist/core/strategies/index.d.ts.map +1 -1
  67. package/dist/core/strategies/index.js +4 -1
  68. package/dist/core/strategies/index.js.map +1 -1
  69. package/dist/learning/SONAFeedbackLoop.d.ts +168 -0
  70. package/dist/learning/SONAFeedbackLoop.d.ts.map +1 -0
  71. package/dist/learning/SONAFeedbackLoop.js +344 -0
  72. package/dist/learning/SONAFeedbackLoop.js.map +1 -0
  73. package/dist/learning/baselines/BaselineCollector.d.ts +1 -1
  74. package/dist/learning/baselines/BaselineCollector.js +1 -1
  75. package/dist/learning/baselines/StandardTaskSuite.d.ts +1 -1
  76. package/dist/learning/baselines/StandardTaskSuite.js +1 -1
  77. package/dist/learning/index.d.ts +2 -0
  78. package/dist/learning/index.d.ts.map +1 -1
  79. package/dist/learning/index.js +6 -1
  80. package/dist/learning/index.js.map +1 -1
  81. package/dist/mcp/server-instructions.d.ts +1 -1
  82. package/dist/mcp/server-instructions.js +1 -1
  83. package/dist/mcp/server.d.ts.map +1 -1
  84. package/dist/mcp/server.js +23 -16
  85. package/dist/mcp/server.js.map +1 -1
  86. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  87. package/dist/mcp/services/AgentRegistry.js +6 -1
  88. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  89. package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts +114 -0
  90. package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts.map +1 -0
  91. package/dist/mcp/tools/qe/accessibility/accname-computation.js +566 -0
  92. package/dist/mcp/tools/qe/accessibility/accname-computation.js.map +1 -0
  93. package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts +103 -0
  94. package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts.map +1 -0
  95. package/dist/mcp/tools/qe/accessibility/apg-patterns.js +1028 -0
  96. package/dist/mcp/tools/qe/accessibility/apg-patterns.js.map +1 -0
  97. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts +48 -0
  98. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts.map +1 -0
  99. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js +565 -0
  100. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js.map +1 -0
  101. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts +117 -0
  102. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts.map +1 -0
  103. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js +571 -0
  104. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js.map +1 -0
  105. package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts +23 -0
  106. package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts.map +1 -0
  107. package/dist/mcp/tools/qe/accessibility/html-report-generator.js +1152 -0
  108. package/dist/mcp/tools/qe/accessibility/html-report-generator.js.map +1 -0
  109. package/dist/mcp/tools/qe/accessibility/index.d.ts +22 -0
  110. package/dist/mcp/tools/qe/accessibility/index.d.ts.map +1 -0
  111. package/dist/mcp/tools/qe/accessibility/index.js +38 -0
  112. package/dist/mcp/tools/qe/accessibility/index.js.map +1 -0
  113. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts +18 -0
  114. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts.map +1 -0
  115. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js +549 -0
  116. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js.map +1 -0
  117. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts +139 -0
  118. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts.map +1 -0
  119. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js +1300 -0
  120. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js.map +1 -0
  121. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts +138 -0
  122. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts.map +1 -0
  123. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js +1298 -0
  124. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js.map +1 -0
  125. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts +50 -0
  126. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts.map +1 -0
  127. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js +469 -0
  128. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js.map +1 -0
  129. package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts +193 -0
  130. package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts.map +1 -0
  131. package/dist/mcp/tools/qe/accessibility/webvtt-generator.js +511 -0
  132. package/dist/mcp/tools/qe/accessibility/webvtt-generator.js.map +1 -0
  133. package/dist/mcp/tools.d.ts +1 -0
  134. package/dist/mcp/tools.d.ts.map +1 -1
  135. package/dist/mcp/tools.js +61 -0
  136. package/dist/mcp/tools.js.map +1 -1
  137. package/dist/providers/HybridRouter.d.ts +34 -3
  138. package/dist/providers/HybridRouter.d.ts.map +1 -1
  139. package/dist/providers/HybridRouter.js +69 -4
  140. package/dist/providers/HybridRouter.js.map +1 -1
  141. package/dist/providers/LLMProviderFactory.d.ts +68 -1
  142. package/dist/providers/LLMProviderFactory.d.ts.map +1 -1
  143. package/dist/providers/LLMProviderFactory.js +173 -6
  144. package/dist/providers/LLMProviderFactory.js.map +1 -1
  145. package/dist/providers/OpenRouterProvider.d.ts +150 -0
  146. package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
  147. package/dist/providers/OpenRouterProvider.js +545 -0
  148. package/dist/providers/OpenRouterProvider.js.map +1 -0
  149. package/dist/providers/RuvllmProvider.d.ts +130 -16
  150. package/dist/providers/RuvllmProvider.d.ts.map +1 -1
  151. package/dist/providers/RuvllmProvider.js +399 -83
  152. package/dist/providers/RuvllmProvider.js.map +1 -1
  153. package/dist/providers/index.d.ts +33 -4
  154. package/dist/providers/index.d.ts.map +1 -1
  155. package/dist/providers/index.js +72 -21
  156. package/dist/providers/index.js.map +1 -1
  157. package/dist/telemetry/instrumentation/agent.d.ts +1 -1
  158. package/dist/telemetry/instrumentation/agent.js +1 -1
  159. package/dist/telemetry/instrumentation/index.d.ts +1 -1
  160. package/dist/telemetry/instrumentation/index.js +1 -1
  161. package/dist/types/index.d.ts +2 -1
  162. package/dist/types/index.d.ts.map +1 -1
  163. package/dist/types/index.js +2 -0
  164. package/dist/types/index.js.map +1 -1
  165. package/dist/types/ruvllm.d.ts +97 -0
  166. package/dist/types/ruvllm.d.ts.map +1 -0
  167. package/dist/types/ruvllm.js +46 -0
  168. package/dist/types/ruvllm.js.map +1 -0
  169. package/dist/utils/ruvllm-loader.d.ts +94 -0
  170. package/dist/utils/ruvllm-loader.d.ts.map +1 -0
  171. package/dist/utils/ruvllm-loader.js +87 -0
  172. package/dist/utils/ruvllm-loader.js.map +1 -0
  173. package/docs/reference/agents.md +36 -1
  174. package/package.json +5 -2
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Remediation Code Generator
3
+ *
4
+ * Generates context-aware, copy-paste ready code examples for accessibility violations.
5
+ * Includes framework detection, brand color extraction, and multi-language support.
6
+ *
7
+ * @version 1.0.0
8
+ * @author Agentic QE Team
9
+ */
10
+ import { AccessibilityViolation } from './scan-comprehensive.js';
11
+ /**
12
+ * Detected UI framework
13
+ */
14
+ export type UIFramework = 'slick' | 'swiper' | 'bootstrap' | 'owl-carousel' | 'flickity' | 'glide' | 'splide' | 'vanilla' | 'unknown';
15
+ /**
16
+ * Remediation code output
17
+ */
18
+ export interface RemediationCode {
19
+ /** Violation ID this remediation addresses */
20
+ violationId: string;
21
+ /** WCAG criterion */
22
+ wcagCriterion: string;
23
+ /** Human-readable title */
24
+ title: string;
25
+ /** Before code (broken) */
26
+ beforeCode: string;
27
+ /** After code (fixed) */
28
+ afterCode: string;
29
+ /** Language/format of the code */
30
+ language: 'html' | 'css' | 'javascript' | 'typescript' | 'vtt';
31
+ /** Explanation of the fix */
32
+ explanation: string;
33
+ /** Estimated fix time */
34
+ estimatedTime: string;
35
+ /** Additional notes */
36
+ notes?: string[];
37
+ /** Related WCAG success criteria */
38
+ relatedCriteria?: string[];
39
+ }
40
+ /**
41
+ * Framework detection result
42
+ */
43
+ export interface FrameworkDetection {
44
+ framework: UIFramework;
45
+ version?: string;
46
+ confidence: number;
47
+ selectors: string[];
48
+ }
49
+ /**
50
+ * Color analysis result
51
+ */
52
+ export interface ColorAnalysis {
53
+ foreground: string;
54
+ background: string;
55
+ currentRatio: number;
56
+ requiredRatio: number;
57
+ suggestedForeground: string;
58
+ suggestedBackground: string;
59
+ newRatio: number;
60
+ brandColors?: string[];
61
+ }
62
+ /**
63
+ * Detect carousel/slider framework from HTML
64
+ */
65
+ export declare function detectFramework(html: string, selectors: string[]): FrameworkDetection;
66
+ /**
67
+ * Suggest accessible color alternatives
68
+ */
69
+ export declare function analyzeColors(foreground: string, background: string, level?: 'AA' | 'AAA'): ColorAnalysis;
70
+ /**
71
+ * Generate video caption remediation code
72
+ */
73
+ export declare function generateVideoCaptionRemediation(violation: AccessibilityViolation, pageLanguage?: string, pageTitle?: string): RemediationCode[];
74
+ /**
75
+ * Generate ARIA hidden focus remediation code
76
+ */
77
+ export declare function generateAriaHiddenFocusRemediation(violation: AccessibilityViolation, framework: FrameworkDetection): RemediationCode[];
78
+ /**
79
+ * Generate color contrast remediation code
80
+ */
81
+ export declare function generateColorContrastRemediation(violation: AccessibilityViolation, colorAnalysis?: ColorAnalysis): RemediationCode[];
82
+ /**
83
+ * Generate Playwright test for a violation
84
+ */
85
+ export declare function generatePlaywrightTest(violation: AccessibilityViolation, url: string): RemediationCode;
86
+ /**
87
+ * Generate complete CSS utilities for accessibility
88
+ */
89
+ export declare function generateAccessibilityCSSUtilities(): RemediationCode;
90
+ /**
91
+ * Generate all remediation codes for a violation
92
+ */
93
+ export declare function generateRemediationCodes(violation: AccessibilityViolation, options?: {
94
+ url?: string;
95
+ pageLanguage?: string;
96
+ pageTitle?: string;
97
+ framework?: FrameworkDetection;
98
+ colorAnalysis?: ColorAnalysis;
99
+ }): RemediationCode[];
100
+ /**
101
+ * Generate image alt text remediation with context-specific suggestions
102
+ */
103
+ export declare function generateImageAltRemediation(violation: AccessibilityViolation, pageContext?: {
104
+ url?: string;
105
+ pageTitle?: string;
106
+ pageLanguage?: string;
107
+ }): RemediationCode[];
108
+ /**
109
+ * Generate link name remediation with context-specific aria-labels
110
+ */
111
+ export declare function generateLinkNameRemediation(violation: AccessibilityViolation, pageContext?: {
112
+ url?: string;
113
+ pageTitle?: string;
114
+ pageLanguage?: string;
115
+ }): RemediationCode[];
116
+ /**
117
+ * Generate list structure remediation code
118
+ */
119
+ export declare function generateListStructureRemediation(violation: AccessibilityViolation): RemediationCode[];
120
+ /**
121
+ * Generate touch target size remediation code
122
+ */
123
+ export declare function generateTouchTargetRemediation(violation: AccessibilityViolation): RemediationCode[];
124
+ declare const _default: {
125
+ detectFramework: typeof detectFramework;
126
+ analyzeColors: typeof analyzeColors;
127
+ generateRemediationCodes: typeof generateRemediationCodes;
128
+ generateVideoCaptionRemediation: typeof generateVideoCaptionRemediation;
129
+ generateAriaHiddenFocusRemediation: typeof generateAriaHiddenFocusRemediation;
130
+ generateColorContrastRemediation: typeof generateColorContrastRemediation;
131
+ generateImageAltRemediation: typeof generateImageAltRemediation;
132
+ generateLinkNameRemediation: typeof generateLinkNameRemediation;
133
+ generateListStructureRemediation: typeof generateListStructureRemediation;
134
+ generateTouchTargetRemediation: typeof generateTouchTargetRemediation;
135
+ generatePlaywrightTest: typeof generatePlaywrightTest;
136
+ generateAccessibilityCSSUtilities: typeof generateAccessibilityCSSUtilities;
137
+ };
138
+ export default _default;
139
+ //# sourceMappingURL=remediation-code-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remediation-code-generator.d.ts","sourceRoot":"","sources":["../../../../../src/mcp/tools/qe/accessibility/remediation-code-generator.ts"],"names":[],"mappings":"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"}