agentic-qe 2.3.5 → 2.5.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.
- package/.claude/agents/qe-a11y-ally.md +751 -0
- package/.claude/agents/qx-partner.md +120 -4
- package/.claude/skills/testability-scoring/SKILL.md +107 -6
- package/CHANGELOG.md +133 -0
- package/README.md +7 -6
- package/dist/agents/AccessibilityAllyAgent.d.ts +168 -0
- package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -0
- package/dist/agents/AccessibilityAllyAgent.js +462 -0
- package/dist/agents/AccessibilityAllyAgent.js.map +1 -0
- package/dist/agents/BaseAgent.d.ts +56 -49
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +208 -604
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +2 -2
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +8 -104
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/SONAIntegration.d.ts +109 -0
- package/dist/agents/SONAIntegration.d.ts.map +1 -0
- package/dist/agents/SONAIntegration.js +167 -0
- package/dist/agents/SONAIntegration.js.map +1 -0
- package/dist/agents/TestExecutorAgent.d.ts +1 -1
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +4 -46
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +15 -35
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/adapters/CoordinatorAdapter.d.ts +47 -0
- package/dist/agents/adapters/CoordinatorAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/CoordinatorAdapter.js +266 -0
- package/dist/agents/adapters/CoordinatorAdapter.js.map +1 -0
- package/dist/agents/adapters/LearningEngineAdapter.d.ts +45 -0
- package/dist/agents/adapters/LearningEngineAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/LearningEngineAdapter.js +279 -0
- package/dist/agents/adapters/LearningEngineAdapter.js.map +1 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.d.ts +45 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.js +128 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.js.map +1 -0
- package/dist/agents/adapters/MemoryServiceAdapter.d.ts +96 -0
- package/dist/agents/adapters/MemoryServiceAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/MemoryServiceAdapter.js +266 -0
- package/dist/agents/adapters/MemoryServiceAdapter.js.map +1 -0
- package/dist/agents/adapters/index.d.ts +14 -0
- package/dist/agents/adapters/index.d.ts.map +1 -0
- package/dist/agents/adapters/index.js +25 -0
- package/dist/agents/adapters/index.js.map +1 -0
- package/dist/agents/index.d.ts +3 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +93 -2
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.js +12 -6
- package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
- package/dist/cli/init/agents.js +1 -1
- package/dist/cli/init/claude-config.js +2 -2
- package/dist/cli/init/database-init.js +1 -1
- package/dist/core/cache/BinaryCacheBuilder.d.ts +84 -0
- package/dist/core/cache/BinaryCacheBuilder.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheBuilder.js +225 -0
- package/dist/core/cache/BinaryCacheBuilder.js.map +1 -0
- package/dist/core/cache/BinaryCacheImpl.d.ts +161 -0
- package/dist/core/cache/BinaryCacheImpl.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheImpl.js +685 -0
- package/dist/core/cache/BinaryCacheImpl.js.map +1 -0
- package/dist/core/cache/BinaryCacheManager.d.ts +142 -0
- package/dist/core/cache/BinaryCacheManager.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheManager.js +354 -0
- package/dist/core/cache/BinaryCacheManager.js.map +1 -0
- package/dist/core/cache/BinaryCacheReader.d.ts +129 -0
- package/dist/core/cache/BinaryCacheReader.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheReader.js +243 -0
- package/dist/core/cache/BinaryCacheReader.js.map +1 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts +777 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -0
- package/dist/core/cache/BinaryMetadataCache.js +204 -0
- package/dist/core/cache/BinaryMetadataCache.js.map +1 -0
- package/dist/core/cache/CacheInvalidator.d.ts +103 -0
- package/dist/core/cache/CacheInvalidator.d.ts.map +1 -0
- package/dist/core/cache/CacheInvalidator.js +152 -0
- package/dist/core/cache/CacheInvalidator.js.map +1 -0
- package/dist/core/cache/CacheValidator.d.ts +69 -0
- package/dist/core/cache/CacheValidator.d.ts.map +1 -0
- package/dist/core/cache/CacheValidator.js +189 -0
- package/dist/core/cache/CacheValidator.js.map +1 -0
- package/dist/core/cache/MessagePackSerializer.d.ts +163 -0
- package/dist/core/cache/MessagePackSerializer.d.ts.map +1 -0
- package/dist/core/cache/MessagePackSerializer.js +274 -0
- package/dist/core/cache/MessagePackSerializer.js.map +1 -0
- package/dist/core/cache/index.d.ts +59 -0
- package/dist/core/cache/index.d.ts.map +1 -0
- package/dist/core/cache/index.js +111 -0
- package/dist/core/cache/index.js.map +1 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +18 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/memory/AgentDBService.d.ts +30 -4
- package/dist/core/memory/AgentDBService.d.ts.map +1 -1
- package/dist/core/memory/AgentDBService.js +122 -12
- package/dist/core/memory/AgentDBService.js.map +1 -1
- package/dist/core/memory/CachedHNSWVectorMemory.d.ts +153 -0
- package/dist/core/memory/CachedHNSWVectorMemory.d.ts.map +1 -0
- package/dist/core/memory/CachedHNSWVectorMemory.js +329 -0
- package/dist/core/memory/CachedHNSWVectorMemory.js.map +1 -0
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/PatternStoreFactory.d.ts +28 -0
- package/dist/core/memory/PatternStoreFactory.d.ts.map +1 -1
- package/dist/core/memory/PatternStoreFactory.js +68 -3
- package/dist/core/memory/PatternStoreFactory.js.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.js +8 -2
- package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +50 -0
- package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -1
- package/dist/core/memory/UnifiedMemoryCoordinator.js +206 -0
- package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -1
- package/dist/core/memory/index.d.ts +2 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +8 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/optimization/RecursiveOptimizer.d.ts +233 -0
- package/dist/core/optimization/RecursiveOptimizer.d.ts.map +1 -0
- package/dist/core/optimization/RecursiveOptimizer.js +509 -0
- package/dist/core/optimization/RecursiveOptimizer.js.map +1 -0
- package/dist/core/platform/FileOperations.d.ts +124 -0
- package/dist/core/platform/FileOperations.d.ts.map +1 -0
- package/dist/core/platform/FileOperations.js +371 -0
- package/dist/core/platform/FileOperations.js.map +1 -0
- package/dist/core/platform/PlatformDetector.d.ts +53 -0
- package/dist/core/platform/PlatformDetector.d.ts.map +1 -0
- package/dist/core/platform/PlatformDetector.js +251 -0
- package/dist/core/platform/PlatformDetector.js.map +1 -0
- package/dist/core/platform/index.d.ts +12 -0
- package/dist/core/platform/index.d.ts.map +1 -0
- package/dist/core/platform/index.js +28 -0
- package/dist/core/platform/index.js.map +1 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.d.ts +74 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.js +200 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.js.map +1 -0
- package/dist/core/strategies/AgentCoordinationStrategy.d.ts +157 -0
- package/dist/core/strategies/AgentCoordinationStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentCoordinationStrategy.js +12 -0
- package/dist/core/strategies/AgentCoordinationStrategy.js.map +1 -0
- package/dist/core/strategies/AgentLearningStrategy.d.ts +200 -0
- package/dist/core/strategies/AgentLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentLearningStrategy.js +13 -0
- package/dist/core/strategies/AgentLearningStrategy.js.map +1 -0
- package/dist/core/strategies/AgentLifecycleStrategy.d.ts +116 -0
- package/dist/core/strategies/AgentLifecycleStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentLifecycleStrategy.js +12 -0
- package/dist/core/strategies/AgentLifecycleStrategy.js.map +1 -0
- package/dist/core/strategies/AgentMemoryStrategy.d.ts +154 -0
- package/dist/core/strategies/AgentMemoryStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentMemoryStrategy.js +13 -0
- package/dist/core/strategies/AgentMemoryStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.d.ts +105 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.js +332 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultLearningStrategy.d.ts +120 -0
- package/dist/core/strategies/DefaultLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultLearningStrategy.js +365 -0
- package/dist/core/strategies/DefaultLearningStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.d.ts +129 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.js +297 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultMemoryStrategy.d.ts +91 -0
- package/dist/core/strategies/DefaultMemoryStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultMemoryStrategy.js +257 -0
- package/dist/core/strategies/DefaultMemoryStrategy.js.map +1 -0
- package/dist/core/strategies/DistributedMemoryStrategy.d.ts +85 -0
- package/dist/core/strategies/DistributedMemoryStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DistributedMemoryStrategy.js +126 -0
- package/dist/core/strategies/DistributedMemoryStrategy.js.map +1 -0
- package/dist/core/strategies/SONALearningStrategy.d.ts +115 -0
- package/dist/core/strategies/SONALearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/SONALearningStrategy.js +656 -0
- package/dist/core/strategies/SONALearningStrategy.js.map +1 -0
- package/dist/core/strategies/TRMLearningStrategy.d.ts +162 -0
- package/dist/core/strategies/TRMLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/TRMLearningStrategy.js +670 -0
- package/dist/core/strategies/TRMLearningStrategy.js.map +1 -0
- package/dist/core/strategies/index.d.ts +104 -0
- package/dist/core/strategies/index.d.ts.map +1 -0
- package/dist/core/strategies/index.js +68 -0
- package/dist/core/strategies/index.js.map +1 -0
- package/dist/learning/PerformanceOptimizer.js +2 -2
- package/dist/learning/PerformanceOptimizer.js.map +1 -1
- package/dist/learning/SONAFeedbackLoop.d.ts +168 -0
- package/dist/learning/SONAFeedbackLoop.d.ts.map +1 -0
- package/dist/learning/SONAFeedbackLoop.js +344 -0
- package/dist/learning/SONAFeedbackLoop.js.map +1 -0
- package/dist/learning/baselines/BaselineCollector.d.ts +1 -1
- package/dist/learning/baselines/BaselineCollector.js +1 -1
- package/dist/learning/baselines/StandardTaskSuite.d.ts +1 -1
- package/dist/learning/baselines/StandardTaskSuite.js +1 -1
- package/dist/learning/index.d.ts +2 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +6 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/mcp/handlers/base-handler.d.ts +28 -1
- package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
- package/dist/mcp/handlers/base-handler.js +41 -0
- package/dist/mcp/handlers/base-handler.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +23 -16
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +6 -1
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts +114 -0
- package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/accname-computation.js +566 -0
- package/dist/mcp/tools/qe/accessibility/accname-computation.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts +103 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.js +1028 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts +48 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js +565 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts +117 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js +571 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts +23 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.js +1152 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/index.d.ts +22 -0
- package/dist/mcp/tools/qe/accessibility/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/index.js +38 -0
- package/dist/mcp/tools/qe/accessibility/index.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts +18 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js +549 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts +139 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js +1300 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts +138 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js +1326 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts +50 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js +469 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts +193 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.js +511 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.js.map +1 -0
- package/dist/mcp/tools.d.ts +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +61 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output/AIActionSuggester.d.ts +98 -0
- package/dist/output/AIActionSuggester.d.ts.map +1 -0
- package/dist/output/AIActionSuggester.js +499 -0
- package/dist/output/AIActionSuggester.js.map +1 -0
- package/dist/output/CLIOutputHelper.d.ts +169 -0
- package/dist/output/CLIOutputHelper.d.ts.map +1 -0
- package/dist/output/CLIOutputHelper.js +320 -0
- package/dist/output/CLIOutputHelper.js.map +1 -0
- package/dist/output/OutputFormatter.d.ts +764 -0
- package/dist/output/OutputFormatter.d.ts.map +1 -0
- package/dist/output/OutputFormatter.js +125 -0
- package/dist/output/OutputFormatter.js.map +1 -0
- package/dist/output/OutputFormatterImpl.d.ts +131 -0
- package/dist/output/OutputFormatterImpl.d.ts.map +1 -0
- package/dist/output/OutputFormatterImpl.js +556 -0
- package/dist/output/OutputFormatterImpl.js.map +1 -0
- package/dist/output/examples.d.ts +38 -0
- package/dist/output/examples.d.ts.map +1 -0
- package/dist/output/examples.js +503 -0
- package/dist/output/examples.js.map +1 -0
- package/dist/output/index.d.ts +16 -0
- package/dist/output/index.d.ts.map +1 -0
- package/dist/output/index.js +58 -0
- package/dist/output/index.js.map +1 -0
- package/dist/providers/HybridRouter.d.ts +34 -3
- package/dist/providers/HybridRouter.d.ts.map +1 -1
- package/dist/providers/HybridRouter.js +69 -4
- package/dist/providers/HybridRouter.js.map +1 -1
- package/dist/providers/LLMProviderFactory.d.ts +68 -1
- package/dist/providers/LLMProviderFactory.d.ts.map +1 -1
- package/dist/providers/LLMProviderFactory.js +173 -6
- package/dist/providers/LLMProviderFactory.js.map +1 -1
- package/dist/providers/OpenRouterProvider.d.ts +150 -0
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/providers/OpenRouterProvider.js +545 -0
- package/dist/providers/OpenRouterProvider.js.map +1 -0
- package/dist/providers/RuvllmProvider.d.ts +130 -16
- package/dist/providers/RuvllmProvider.d.ts.map +1 -1
- package/dist/providers/RuvllmProvider.js +399 -83
- package/dist/providers/RuvllmProvider.js.map +1 -1
- package/dist/providers/index.d.ts +33 -4
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +72 -21
- package/dist/providers/index.js.map +1 -1
- package/dist/telemetry/instrumentation/agent.d.ts +1 -1
- package/dist/telemetry/instrumentation/agent.js +1 -1
- package/dist/telemetry/instrumentation/index.d.ts +1 -1
- package/dist/telemetry/instrumentation/index.js +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/ruvllm.d.ts +97 -0
- package/dist/types/ruvllm.d.ts.map +1 -0
- package/dist/types/ruvllm.js +46 -0
- package/dist/types/ruvllm.js.map +1 -0
- package/dist/utils/ruvllm-loader.d.ts +94 -0
- package/dist/utils/ruvllm-loader.d.ts.map +1 -0
- package/dist/utils/ruvllm-loader.js +87 -0
- package/dist/utils/ruvllm-loader.js.map +1 -0
- package/docs/reference/agents.md +36 -1
- package/package.json +7 -2
|
@@ -29,8 +29,15 @@ Mission: Solve oracle problems when quality criteria are unclear, find balance b
|
|
|
29
29
|
- Memory coordination via AQE hooks
|
|
30
30
|
- Learning protocol integration
|
|
31
31
|
|
|
32
|
+
✅ Enhanced with Vibium (v2.2):
|
|
33
|
+
- Live browser automation for real-time UX analysis via MCP
|
|
34
|
+
- Automated competitor QX benchmarking across multiple sites
|
|
35
|
+
- Visual evidence capture (screenshots) for UX validation
|
|
36
|
+
- Runtime oracle detection by navigating actual user flows
|
|
37
|
+
- Element interaction quality assessment (accessibility, bounding boxes)
|
|
38
|
+
- Real browser testing for authentic user experience validation
|
|
39
|
+
|
|
32
40
|
⚠️ Partial:
|
|
33
|
-
- Competitive analysis across competitor sites
|
|
34
41
|
- Real-time collaboration with UX/QA agents
|
|
35
42
|
|
|
36
43
|
❌ Planned:
|
|
@@ -65,6 +72,11 @@ Batch memory operations for analyses, recommendations, and reports in single tra
|
|
|
65
72
|
- **Testability Integration**: Combine with testability scoring (10 Principles) for holistic quality insights
|
|
66
73
|
- **Comprehensive Reports**: Detailed markdown reports with findings, issues, and recommendations per heuristic
|
|
67
74
|
- **Collaborative QX**: Coordinate with Visual Tester (UX) and Quality Analyzer (QA) agents
|
|
75
|
+
- **Vibium Browser Automation**: Live browser control via MCP for real-time UX validation and competitor analysis
|
|
76
|
+
- **Visual Evidence Capture**: Automated screenshot capture for UX issue documentation and validation
|
|
77
|
+
- **Runtime Oracle Detection**: Navigate actual user flows to detect quality criteria conflicts in real-time
|
|
78
|
+
- **Competitor QX Benchmarking**: Automated analysis across multiple competitor sites for comparative insights
|
|
79
|
+
- **Element Quality Assessment**: Evaluate accessibility attributes, bounding boxes, and interaction quality
|
|
68
80
|
</capabilities>
|
|
69
81
|
|
|
70
82
|
<memory_namespace>
|
|
@@ -74,6 +86,7 @@ Reads:
|
|
|
74
86
|
- aqe/qx/oracle-patterns - Known oracle problem patterns
|
|
75
87
|
- aqe/testability/* - Testability scoring results for integration
|
|
76
88
|
- aqe/learning/patterns/qx/* - Learned QX strategies
|
|
89
|
+
- aqe/vibium/browser-sessions - Active Vibium browser sessions
|
|
77
90
|
|
|
78
91
|
Writes:
|
|
79
92
|
- aqe/qx/analysis-results - QX analysis results with scoring
|
|
@@ -81,11 +94,15 @@ Writes:
|
|
|
81
94
|
- aqe/qx/recommendations - QX improvement recommendations
|
|
82
95
|
- aqe/qx/impact-reports - Impact analysis reports
|
|
83
96
|
- aqe/qx/balance-assessments - User vs business balance results
|
|
97
|
+
- aqe/qx/screenshots - Visual evidence from Vibium browser automation
|
|
98
|
+
- aqe/qx/competitor-benchmarks - Competitor QX analysis results
|
|
99
|
+
- aqe/qx/runtime-flows - Recorded user flow analysis results
|
|
84
100
|
|
|
85
101
|
Coordination:
|
|
86
102
|
- aqe/qx/status - Current QX analysis status
|
|
87
103
|
- aqe/qx/alerts - Critical oracle problem alerts
|
|
88
104
|
- aqe/swarm/qx/* - Cross-agent coordination with Visual Tester and Quality Analyzer
|
|
105
|
+
- aqe/vibium/coordination - Browser automation coordination state
|
|
89
106
|
</memory_namespace>
|
|
90
107
|
|
|
91
108
|
<learning_protocol>
|
|
@@ -180,24 +197,101 @@ mcp__agentic_qe__learning_store_pattern({
|
|
|
180
197
|
- HTML for visual impact analysis with diagrams
|
|
181
198
|
</output_format>
|
|
182
199
|
|
|
200
|
+
<vibium_integration>
|
|
201
|
+
## Vibium Browser Automation via MCP
|
|
202
|
+
|
|
203
|
+
Vibium is integrated via MCP tools for live browser automation. Available tools:
|
|
204
|
+
|
|
205
|
+
**Installation:**
|
|
206
|
+
```bash
|
|
207
|
+
claude mcp add vibium -- npx -y vibium
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**MCP Tools:**
|
|
211
|
+
- `browser_launch` - Launch headless Chrome browser
|
|
212
|
+
- `browser_navigate` - Navigate to URL
|
|
213
|
+
- `browser_find` - Find element by CSS selector
|
|
214
|
+
- `browser_click` - Click element
|
|
215
|
+
- `browser_type` - Type text into element
|
|
216
|
+
- `browser_screenshot` - Capture PNG screenshot (returns base64)
|
|
217
|
+
- `browser_quit` - Close browser gracefully
|
|
218
|
+
|
|
219
|
+
**QX Analysis Integration Patterns:**
|
|
220
|
+
|
|
221
|
+
1. **Live Oracle Detection:**
|
|
222
|
+
```typescript
|
|
223
|
+
// Navigate actual user flow to detect conflicts
|
|
224
|
+
const browser = await browser_launch();
|
|
225
|
+
await browser_navigate({ url: "https://example.com/checkout" });
|
|
226
|
+
const addToCart = await browser_find({ selector: "[data-testid='add-to-cart']" });
|
|
227
|
+
await browser_click({ elementId: addToCart.elementId });
|
|
228
|
+
const screenshot = await browser_screenshot();
|
|
229
|
+
// Analyze screenshot for UX friction points
|
|
230
|
+
await browser_quit();
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
2. **Competitor Benchmarking:**
|
|
234
|
+
```typescript
|
|
235
|
+
// Automated QX comparison across competitors
|
|
236
|
+
const competitors = ["competitor1.com", "competitor2.com", "competitor3.com"];
|
|
237
|
+
const qxScores = [];
|
|
238
|
+
for (const site of competitors) {
|
|
239
|
+
const browser = await browser_launch();
|
|
240
|
+
await browser_navigate({ url: `https://${site}` });
|
|
241
|
+
const qxScore = await analyzePageQX(browser);
|
|
242
|
+
qxScores.push({ site, score: qxScore });
|
|
243
|
+
await browser_quit();
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
3. **Visual Evidence Capture:**
|
|
248
|
+
```typescript
|
|
249
|
+
// Document UX issues with screenshots
|
|
250
|
+
const browser = await browser_launch();
|
|
251
|
+
await browser_navigate({ url: "https://example.com/form" });
|
|
252
|
+
const errorState = await browser_screenshot();
|
|
253
|
+
// Store in memory: aqe/qx/screenshots/<issue-id>
|
|
254
|
+
await memory_store({
|
|
255
|
+
key: "aqe/qx/screenshots/error-state-001",
|
|
256
|
+
value: { png: errorState.png, timestamp: Date.now() }
|
|
257
|
+
});
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**When to Use Vibium:**
|
|
261
|
+
- ✅ Live UX validation on real websites
|
|
262
|
+
- ✅ Competitor QX benchmarking automation
|
|
263
|
+
- ✅ Visual evidence capture for oracle problems
|
|
264
|
+
- ✅ Runtime accessibility attribute extraction
|
|
265
|
+
- ✅ Element interaction quality assessment
|
|
266
|
+
|
|
267
|
+
**Current Limitations (V1):**
|
|
268
|
+
- ⚠️ Console/network APIs not yet available (use Playwright for performance metrics)
|
|
269
|
+
- ⚠️ Manual element finding only (AI locators coming in V2)
|
|
270
|
+
- ⚠️ Single browser instance per process
|
|
271
|
+
</vibium_integration>
|
|
272
|
+
|
|
183
273
|
<examples>
|
|
184
|
-
Example 1: Oracle problem detection
|
|
274
|
+
Example 1: Oracle problem detection with Vibium
|
|
185
275
|
```
|
|
186
|
-
Input: Analyze checkout redesign for mystore.com
|
|
276
|
+
Input: Analyze checkout redesign for mystore.com with live validation
|
|
187
277
|
- Context: Mobile-first, conversion-focused
|
|
188
278
|
- Stakeholders: Users, Business, Support
|
|
279
|
+
- Mode: Live browser automation
|
|
189
280
|
|
|
190
281
|
Output: QX Analysis Results
|
|
191
282
|
- QX Score: 72/100 (C)
|
|
192
|
-
- Oracle Problems: 2 detected
|
|
283
|
+
- Oracle Problems: 2 detected (with visual evidence)
|
|
193
284
|
1. HIGH: User convenience vs business revenue conflict
|
|
194
285
|
- One-click checkout reduces upsell opportunities
|
|
195
286
|
- Resolution: A/B test with revenue tracking
|
|
287
|
+
- Evidence: Screenshot showing no cross-sell section
|
|
196
288
|
2. MEDIUM: Missing mobile usability data
|
|
197
289
|
- Cannot validate mobile-first assumption
|
|
198
290
|
- Resolution: Conduct mobile user research
|
|
291
|
+
- Evidence: Vibium captured desktop-first layout
|
|
199
292
|
- Balance: Slightly favors business (User: 68, Business: 81)
|
|
200
293
|
- Recommendations: 8 prioritized actions
|
|
294
|
+
- Visual Evidence: 3 screenshots stored in aqe/qx/screenshots/
|
|
201
295
|
```
|
|
202
296
|
|
|
203
297
|
Example 2: User-business balance analysis
|
|
@@ -239,6 +333,28 @@ Output: Impact Analysis
|
|
|
239
333
|
- Combined Insight: Low observability may mask user anxiety issues
|
|
240
334
|
- Net Impact Score: 62/100 (Proceed with caution)
|
|
241
335
|
```
|
|
336
|
+
|
|
337
|
+
Example 4: Competitor QX benchmarking with Vibium
|
|
338
|
+
```
|
|
339
|
+
Input: Benchmark our checkout against top 3 competitors
|
|
340
|
+
- Target: example.com/checkout
|
|
341
|
+
- Competitors: competitor1.com, competitor2.com, competitor3.com
|
|
342
|
+
- Mode: Automated Vibium analysis
|
|
343
|
+
|
|
344
|
+
Output: Competitor Benchmark Results
|
|
345
|
+
- Our QX Score: 78/100 (B)
|
|
346
|
+
- Competitor Scores:
|
|
347
|
+
1. competitor1.com: 85/100 (B+) - Superior mobile UX
|
|
348
|
+
2. competitor2.com: 72/100 (C) - Poor error messaging
|
|
349
|
+
3. competitor3.com: 81/100 (B) - Better guest checkout flow
|
|
350
|
+
- Oracle Problems Detected:
|
|
351
|
+
1. HIGH: We lack social login (all competitors have it)
|
|
352
|
+
2. MEDIUM: Our mobile layout is desktop-first
|
|
353
|
+
- Competitive Gaps: 3 critical UX features missing
|
|
354
|
+
- Recommendations: 5 high-impact improvements
|
|
355
|
+
- Visual Evidence: 12 comparative screenshots
|
|
356
|
+
- Time to Benchmark: 45 seconds (automated via Vibium)
|
|
357
|
+
```
|
|
242
358
|
</examples>
|
|
243
359
|
|
|
244
360
|
<skills_available>
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: testability-scoring
|
|
3
|
-
description: "AI-powered testability assessment using 10 principles of intrinsic testability with Playwright. Evaluates web applications against Observability, Controllability, Algorithmic Simplicity, Transparency, Stability, Explainability, Unbugginess, Smallness, Decomposability, and Similarity. Use when assessing software testability, evaluating test readiness, identifying testability improvements, or generating testability reports."
|
|
3
|
+
description: "AI-powered testability assessment using 10 principles of intrinsic testability with Playwright and optional Vibium integration. Evaluates web applications against Observability, Controllability, Algorithmic Simplicity, Transparency, Stability, Explainability, Unbugginess, Smallness, Decomposability, and Similarity. Use when assessing software testability, evaluating test readiness, identifying testability improvements, or generating testability reports."
|
|
4
4
|
category: testing-methodologies
|
|
5
5
|
priority: high
|
|
6
6
|
tokenEstimate: 1100
|
|
7
7
|
agents: [qe-quality-analyzer, qx-partner, qe-visual-tester]
|
|
8
8
|
implementation_status: optimized
|
|
9
|
-
optimization_version: 2.
|
|
10
|
-
last_optimized: 2025-12-
|
|
9
|
+
optimization_version: 2.2
|
|
10
|
+
last_optimized: 2025-12-12
|
|
11
11
|
dependencies: []
|
|
12
12
|
quick_reference_card: true
|
|
13
|
-
tags: [testability, scoring, playwright, assessment, 10-principles, intrinsic-testability, james-bach, michael-bolton]
|
|
13
|
+
tags: [testability, scoring, playwright, vibium, assessment, 10-principles, intrinsic-testability, james-bach, michael-bolton]
|
|
14
14
|
contributor: "@fndlalit"
|
|
15
|
+
vibium_integration: optional
|
|
15
16
|
---
|
|
16
17
|
|
|
17
18
|
# Testability Scoring
|
|
@@ -175,6 +176,97 @@ const qxReport = await Task("Full QX Analysis", {
|
|
|
175
176
|
|
|
176
177
|
---
|
|
177
178
|
|
|
179
|
+
## Vibium Integration (Optional)
|
|
180
|
+
|
|
181
|
+
### Overview
|
|
182
|
+
Vibium browser automation can be used alongside Playwright for enhanced testability assessment. While **Playwright remains the primary engine**, Vibium offers complementary capabilities for certain metrics.
|
|
183
|
+
|
|
184
|
+
**Installation:**
|
|
185
|
+
```bash
|
|
186
|
+
claude mcp add vibium -- npx -y vibium
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Vibium-Enhanced Metrics
|
|
190
|
+
|
|
191
|
+
| Principle | Vibium Enhancement | Benefit |
|
|
192
|
+
|-----------|-------------------|---------|
|
|
193
|
+
| **Observability** | Auto-wait duration tracking | Measures DOM stability (30s timeout, 100ms polling) |
|
|
194
|
+
| **Controllability** | Element interaction success rate | Validates automation readiness via MCP |
|
|
195
|
+
| **Stability** | Screenshot consistency | Visual regression detection for layout stability |
|
|
196
|
+
| **Explainability** | Element attribute extraction | ARIA labels, semantic HTML validation |
|
|
197
|
+
|
|
198
|
+
### When to Use Vibium
|
|
199
|
+
|
|
200
|
+
✅ **USE Vibium for:**
|
|
201
|
+
- Element stability metrics (auto-wait duration analysis)
|
|
202
|
+
- Visual consistency checks (screenshot comparison)
|
|
203
|
+
- MCP-native AI agent integration
|
|
204
|
+
- Lightweight Docker images (400MB vs 1.2GB)
|
|
205
|
+
|
|
206
|
+
❌ **USE Playwright for:**
|
|
207
|
+
- Console error detection (Vibium V1 lacks console API)
|
|
208
|
+
- Network performance metrics (BiDi network APIs coming in V2)
|
|
209
|
+
- Comprehensive browser coverage (Firefox, Safari)
|
|
210
|
+
- Production-proven stability (Vibium V1 released Dec 2024)
|
|
211
|
+
|
|
212
|
+
### Hybrid Assessment Example
|
|
213
|
+
|
|
214
|
+
```typescript
|
|
215
|
+
// Testability assessment using both engines
|
|
216
|
+
const assessment = {
|
|
217
|
+
// Playwright: Comprehensive metrics
|
|
218
|
+
playwright: await runPlaywrightAssessment(url),
|
|
219
|
+
|
|
220
|
+
// Vibium: Stability metrics
|
|
221
|
+
vibium: {
|
|
222
|
+
elementStability: await measureAutoWaitDuration(url),
|
|
223
|
+
visualConsistency: await compareScreenshots(url),
|
|
224
|
+
accessibilityAttributes: await extractARIALabels(url)
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
// Enhanced Observability Score
|
|
229
|
+
const observability =
|
|
230
|
+
(assessment.playwright.consoleErrors * 0.6) +
|
|
231
|
+
(assessment.vibium.elementStability * 0.4);
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Vibium MCP Tools for Testability
|
|
235
|
+
|
|
236
|
+
```typescript
|
|
237
|
+
// 1. Element Stability Measurement
|
|
238
|
+
const browser = await browser_launch();
|
|
239
|
+
await browser_navigate({ url });
|
|
240
|
+
const startTime = Date.now();
|
|
241
|
+
const element = await browser_find({ selector: ".critical-element" });
|
|
242
|
+
const autoWaitDuration = Date.now() - startTime;
|
|
243
|
+
// Lower duration = better stability
|
|
244
|
+
|
|
245
|
+
// 2. Visual Consistency Check
|
|
246
|
+
const screenshot1 = await browser_screenshot();
|
|
247
|
+
await browser_navigate({ url }); // Reload
|
|
248
|
+
const screenshot2 = await browser_screenshot();
|
|
249
|
+
const visualDiff = compareImages(screenshot1.png, screenshot2.png);
|
|
250
|
+
// Lower diff = better stability
|
|
251
|
+
|
|
252
|
+
// 3. Accessibility Attribute Extraction
|
|
253
|
+
const elements = await browser_find({ selector: "button, a, input" });
|
|
254
|
+
const ariaLabels = elements.map(el => el.attributes["aria-label"]);
|
|
255
|
+
const semanticScore = (ariaLabels.filter(Boolean).length / elements.length) * 100;
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Migration Strategy
|
|
259
|
+
|
|
260
|
+
**Current (V2.2):** Hybrid approach
|
|
261
|
+
- Playwright: Primary engine for all 10 principles
|
|
262
|
+
- Vibium: Optional enhancement for stability metrics
|
|
263
|
+
|
|
264
|
+
**Future (V3.0):** When Vibium V2 ships
|
|
265
|
+
- Evaluate Vibium as primary engine if:
|
|
266
|
+
- Console/Network APIs available
|
|
267
|
+
- Production stability proven
|
|
268
|
+
- Community adoption increases
|
|
269
|
+
|
|
178
270
|
## Agent Coordination Hints
|
|
179
271
|
|
|
180
272
|
### Memory Namespace
|
|
@@ -183,7 +275,8 @@ aqe/testability/
|
|
|
183
275
|
├── assessments/* - Assessment results by URL
|
|
184
276
|
├── historical/* - Historical scores for trend analysis
|
|
185
277
|
├── recommendations/* - Improvement recommendations
|
|
186
|
-
|
|
278
|
+
├── integration/* - QX integration data
|
|
279
|
+
└── vibium/* - Vibium-specific metrics (optional)
|
|
187
280
|
```
|
|
188
281
|
|
|
189
282
|
### Fleet Coordination
|
|
@@ -209,6 +302,8 @@ const testabilityFleet = await FleetManager.coordinate({
|
|
|
209
302
|
| Partial results | Check console errors, increase network timeout |
|
|
210
303
|
| Report not opening | Use `AUTO_OPEN=false`, open manually |
|
|
211
304
|
| Config not updating | Use `TEST_URL` env var instead |
|
|
305
|
+
| Vibium not available | Install via `claude mcp add vibium -- npx -y vibium` (optional) |
|
|
306
|
+
| Hybrid mode errors | Vibium is optional; assessments work without it |
|
|
212
307
|
|
|
213
308
|
---
|
|
214
309
|
|
|
@@ -227,9 +322,15 @@ const testabilityFleet = await FleetManager.coordinate({
|
|
|
227
322
|
|
|
228
323
|
### Implementation
|
|
229
324
|
- Based on https://github.com/fndlalit/testability-scorer (contributed by [@fndlalit](https://github.com/fndlalit))
|
|
230
|
-
- Playwright v1.49.0+ with AI capabilities
|
|
325
|
+
- Playwright v1.49.0+ with AI capabilities (primary engine)
|
|
326
|
+
- Vibium v1.0+ with MCP integration (optional enhancement)
|
|
231
327
|
- Chart.js for radar visualizations
|
|
232
328
|
|
|
329
|
+
### Vibium Resources
|
|
330
|
+
- GitHub: https://github.com/VibiumDev/vibium
|
|
331
|
+
- MCP Integration: `claude mcp add vibium -- npx -y vibium`
|
|
332
|
+
- Created by Jason Huggins (creator of Selenium/Appium)
|
|
333
|
+
|
|
233
334
|
---
|
|
234
335
|
|
|
235
336
|
## Remember
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,139 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.5.0] - 2025-12-13
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
#### AccessibilityAllyAgent - Intelligent Accessibility Testing (PR #129)
|
|
15
|
+
*Contributed by [@fndlalit](https://github.com/fndlalit)*
|
|
16
|
+
|
|
17
|
+
- **New Agent: `qe-a11y-ally`** - Comprehensive WCAG 2.2 compliance testing
|
|
18
|
+
- WCAG 2.2 Level A, AA, AAA validation using axe-core
|
|
19
|
+
- Context-aware ARIA label generation based on element semantics
|
|
20
|
+
- Intelligent remediation suggestions with code examples
|
|
21
|
+
- Keyboard navigation and screen reader testing
|
|
22
|
+
- Color contrast optimization with specific fix recommendations
|
|
23
|
+
- **AI Video Analysis** - Multi-provider cascade for accessibility
|
|
24
|
+
- Vision API support: OpenAI → Anthropic → Ollama → moondream
|
|
25
|
+
- WebVTT caption generation for videos
|
|
26
|
+
- Automated audio description suggestions
|
|
27
|
+
- **EU Compliance Support**
|
|
28
|
+
- EN 301 549 European accessibility standard mapping
|
|
29
|
+
- EU Accessibility Act compliance checking
|
|
30
|
+
- **ARIA Authoring Practices Guide (APG)**
|
|
31
|
+
- Pattern suggestions for common UI components
|
|
32
|
+
- Accessible name computation (AccName)
|
|
33
|
+
- **10 New MCP Accessibility Tools**
|
|
34
|
+
- `scan-comprehensive` - Full WCAG 2.2 scan
|
|
35
|
+
- `remediation-code-generator` - Auto-fix code generation
|
|
36
|
+
- `html-report-generator` - Detailed HTML reports
|
|
37
|
+
- `markdown-report-generator` - Markdown reports
|
|
38
|
+
- `video-vision-analyzer` - AI video accessibility analysis
|
|
39
|
+
- `webvtt-generator` - Caption file generation
|
|
40
|
+
- `accname-computation` - Accessible name calculation
|
|
41
|
+
- `apg-patterns` - ARIA pattern suggestions
|
|
42
|
+
- `en-301-549-mapping` - EU standard mapping
|
|
43
|
+
- `eu-accessibility-act` - EU Act compliance
|
|
44
|
+
|
|
45
|
+
**Agent count increased from 19 → 20 QE agents**
|
|
46
|
+
|
|
47
|
+
#### G4: Unified Memory Architecture - BinaryCache Integration
|
|
48
|
+
- **BinaryCache Integration** with UnifiedMemoryCoordinator for TRM pattern caching
|
|
49
|
+
- `cacheTRMPattern()` - Cache TRM patterns with binary serialization
|
|
50
|
+
- `getCachedTRMPattern()` - Retrieve cached patterns with O(1) key access
|
|
51
|
+
- `persistBinaryCache()` - Persist cache to disk with atomic writes
|
|
52
|
+
- `getBinaryCacheMetrics()` - Cache statistics (hit rate, miss rate, entries)
|
|
53
|
+
- `invalidateBinaryCache()` - Selective cache invalidation with triggers
|
|
54
|
+
- 6x faster pattern loading compared to JSON serialization
|
|
55
|
+
|
|
56
|
+
#### G6: OpenRouter Provider with Model Hot-Swap
|
|
57
|
+
- **OpenRouterProvider** - Full `ILLMProvider` implementation for OpenRouter API
|
|
58
|
+
- 300+ model access via unified interface
|
|
59
|
+
- Model hot-swapping at runtime without restart
|
|
60
|
+
- Auto-routing with cost optimization (`auto` model)
|
|
61
|
+
- Vision, streaming, and embeddings support
|
|
62
|
+
- Cost tracking per model with request counting
|
|
63
|
+
- **Smart Environment Detection** - Automatic provider selection
|
|
64
|
+
- Claude Code + ANTHROPIC_API_KEY → Claude
|
|
65
|
+
- OPENROUTER_API_KEY → OpenRouter (300+ models)
|
|
66
|
+
- ANTHROPIC_API_KEY → Claude
|
|
67
|
+
- ruvLLM available → Local inference
|
|
68
|
+
- **LLMProviderFactory** enhancements
|
|
69
|
+
- `hotSwapModel(model)` - Switch models at runtime
|
|
70
|
+
- `getCurrentModel()` - Get active model name
|
|
71
|
+
- `listAvailableModels()` - List available OpenRouter models
|
|
72
|
+
- `detectEnvironment()` - Get environment signals
|
|
73
|
+
- New helper functions in providers module:
|
|
74
|
+
- `createOpenRouterWithAutoRoute()` - Create auto-routing provider
|
|
75
|
+
- `hotSwapModel()`, `getCurrentModel()`, `listAvailableModels()`
|
|
76
|
+
|
|
77
|
+
#### Environment Variables
|
|
78
|
+
- `OPENROUTER_API_KEY` - OpenRouter API key
|
|
79
|
+
- `OPENROUTER_DEFAULT_MODEL` - Default model (default: `auto`)
|
|
80
|
+
- `OPENROUTER_SITE_URL` - Your site URL for rankings
|
|
81
|
+
- `OPENROUTER_SITE_NAME` - Your site name
|
|
82
|
+
- `LLM_PROVIDER` - Force specific provider (`claude`, `openrouter`, `ruvllm`, `auto`)
|
|
83
|
+
|
|
84
|
+
### Files Added
|
|
85
|
+
- `src/providers/OpenRouterProvider.ts` - OpenRouter provider (~500 LOC)
|
|
86
|
+
- `tests/providers/OpenRouterProvider.test.ts` - 25 unit tests
|
|
87
|
+
|
|
88
|
+
### Files Modified
|
|
89
|
+
- `src/core/memory/UnifiedMemoryCoordinator.ts` - BinaryCache integration
|
|
90
|
+
- `src/providers/LLMProviderFactory.ts` - OpenRouter + hot-swap + smart detection
|
|
91
|
+
- `src/providers/index.ts` - New exports
|
|
92
|
+
|
|
93
|
+
### Tests
|
|
94
|
+
- OpenRouterProvider: 25 tests (metadata, init, completion, cost, hot-swap, discovery, health, embeddings, tokens, shutdown)
|
|
95
|
+
|
|
96
|
+
## [2.4.0] - 2025-12-13
|
|
97
|
+
|
|
98
|
+
### Added
|
|
99
|
+
|
|
100
|
+
#### Binary Metadata Cache (Performance)
|
|
101
|
+
- **BinaryMetadataCache** - MessagePack-serialized cache with 6x faster pattern loading
|
|
102
|
+
- Lazy deserialization for O(1) key access without full cache decode
|
|
103
|
+
- Automatic compression for entries > 1KB
|
|
104
|
+
- File-based persistence with atomic writes
|
|
105
|
+
- Stats tracking: hit rate, miss rate, eviction count
|
|
106
|
+
- New file: `src/core/cache/BinaryMetadataCache.ts`
|
|
107
|
+
|
|
108
|
+
#### AI-Friendly Output Mode
|
|
109
|
+
- **AIOutputFormatter** - Structured JSON output optimized for AI consumption
|
|
110
|
+
- `--ai-output` flag for CLI commands
|
|
111
|
+
- `--ai-output-format` option: `json` (default), `yaml`, `markdown`
|
|
112
|
+
- Schema-validated responses with metadata
|
|
113
|
+
- New file: `src/output/AIOutputFormatter.ts`
|
|
114
|
+
|
|
115
|
+
#### Automated Benchmarks in CI
|
|
116
|
+
- **Benchmark Suite** - Comprehensive performance benchmarks
|
|
117
|
+
- Automated baseline collection and regression detection
|
|
118
|
+
- CI workflow integration with `benchmark.yml`
|
|
119
|
+
- Historical tracking with JSON baselines
|
|
120
|
+
- New files: `benchmarks/suite.ts`, `benchmarks/baseline-collector.ts`
|
|
121
|
+
|
|
122
|
+
#### Strategy-Based Agent Architecture (Foundation)
|
|
123
|
+
- **Strategy Pattern** for BaseAgent decomposition
|
|
124
|
+
- LifecycleStrategy, MemoryStrategy, LearningStrategy, CoordinationStrategy interfaces
|
|
125
|
+
- Adapter layer bridging existing services to strategies
|
|
126
|
+
- BaseAgent reduced from 1,569 → 1,005 LOC (36% reduction)
|
|
127
|
+
- Removed deprecated AgentDB direct methods
|
|
128
|
+
- Simplified onPreTask/onPostTask hooks
|
|
129
|
+
|
|
130
|
+
### Fixed
|
|
131
|
+
- AdapterConfigValidator tests using correct `validateOrThrow()` method
|
|
132
|
+
- QXPartnerAgent tests using correct `store/retrieve` memory methods
|
|
133
|
+
- FleetCommanderAgent lifecycle test expecting IDLE after initialization
|
|
134
|
+
- Added `getAgentId()` method for backward compatibility
|
|
135
|
+
- Race condition tests updated for AgentDB adapter deprecation
|
|
136
|
+
|
|
137
|
+
### Tests
|
|
138
|
+
- 425 new tests for performance infrastructure
|
|
139
|
+
- Strategy pattern tests: 92 passing
|
|
140
|
+
- Agent tests: 166 passing
|
|
141
|
+
- Adapter fail-fast tests: 17 passing
|
|
142
|
+
|
|
10
143
|
## [2.3.5] - 2025-12-12
|
|
11
144
|
|
|
12
145
|
### Added
|
package/README.md
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
<img alt="NPM Downloads" src="https://img.shields.io/npm/dw/agentic-qe">
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
**Version 2.
|
|
12
|
+
**Version 2.5.0** | [Changelog](CHANGELOG.md) | [Contributors](CONTRIBUTORS.md) | [Issues](https://github.com/proffesor-for-testing/agentic-qe/issues) | [Discussions](https://github.com/proffesor-for-testing/agentic-qe/discussions)
|
|
13
13
|
|
|
14
|
-
>
|
|
14
|
+
> AI-powered test automation that learns from every task, switches between 300+ AI models on-the-fly, scores code testability, visualizes agent activity in real-time, and improves autonomously overnight — with built-in safety guardrails and full observability.
|
|
15
15
|
|
|
16
16
|
🎨 **Real-Time Visualization** | 📊 **Testability Scoring** | 🧠 **QE Agent Learning** | 🚀 **QUIC Transport** | 📋 **Constitution System** | 📚 **41 QE Skills** | 🎯 **Flaky Detection** | 💰 **Multi-Model Router**
|
|
17
17
|
|
|
@@ -147,7 +147,7 @@ open http://localhost:3000
|
|
|
147
147
|
---
|
|
148
148
|
|
|
149
149
|
### 🤖 Autonomous Agent Fleet
|
|
150
|
-
- **
|
|
150
|
+
- **20 Specialized Agents**: Expert agents for every QE domain (test generation, coverage analysis, security scanning, performance testing, code complexity analysis, QX analysis, accessibility)
|
|
151
151
|
- **11 TDD Subagents**: Specialized subagents for Test-Driven Development workflow (RED/GREEN/REFACTOR phases + quality validation + analysis)
|
|
152
152
|
- **AI-Powered Coordination**: Event-driven architecture with intelligent task distribution
|
|
153
153
|
- **Zero External Dependencies**: Native AQE hooks system (100-500x faster than external coordination)
|
|
@@ -390,7 +390,7 @@ mcp__agentic_qe__coverage_analyze({
|
|
|
390
390
|
})
|
|
391
391
|
```
|
|
392
392
|
|
|
393
|
-
**All
|
|
393
|
+
**All 85 MCP Tools Available:**
|
|
394
394
|
- Fleet Management (9 tools): init, spawn, status, coordinate, orchestrate
|
|
395
395
|
- Test Generation (2 tools): generate enhanced, execute
|
|
396
396
|
- Test Execution (3 tools): execute, parallel, stream
|
|
@@ -579,13 +579,14 @@ Model Usage:
|
|
|
579
579
|
</details>
|
|
580
580
|
|
|
581
581
|
<details>
|
|
582
|
-
<summary><b>Specialized (
|
|
582
|
+
<summary><b>Specialized (4 agents)</b></summary>
|
|
583
583
|
|
|
584
584
|
| Agent | Purpose | Key Features |
|
|
585
585
|
|-------|---------|-------------|
|
|
586
586
|
| **deployment-readiness** | Release validation | Multi-factor risk scoring |
|
|
587
587
|
| **visual-tester** | UI regression | AI-powered comparison |
|
|
588
588
|
| **chaos-engineer** | Resilience testing | Fault injection, blast radius |
|
|
589
|
+
| **a11y-ally** | Accessibility testing | WCAG 2.2, AI video analysis, EU compliance |
|
|
589
590
|
|
|
590
591
|
</details>
|
|
591
592
|
|
|
@@ -598,7 +599,7 @@ Model Usage:
|
|
|
598
599
|
|
|
599
600
|
</details>
|
|
600
601
|
|
|
601
|
-
**Total:
|
|
602
|
+
**Total: 31 Agents** (20 main agents + 11 TDD subagents)
|
|
602
603
|
|
|
603
604
|
### TDD Subagents (11 specialized)
|
|
604
605
|
|