agentic-qe 2.0.0 → 2.1.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 (116) hide show
  1. package/.claude/agents/qx-partner.md +17 -4
  2. package/.claude/skills/accessibility-testing/SKILL.md +144 -692
  3. package/.claude/skills/agentic-quality-engineering/SKILL.md +176 -529
  4. package/.claude/skills/api-testing-patterns/SKILL.md +180 -560
  5. package/.claude/skills/brutal-honesty-review/SKILL.md +113 -603
  6. package/.claude/skills/bug-reporting-excellence/SKILL.md +116 -517
  7. package/.claude/skills/chaos-engineering-resilience/SKILL.md +127 -72
  8. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +209 -404
  9. package/.claude/skills/code-review-quality/SKILL.md +158 -608
  10. package/.claude/skills/compatibility-testing/SKILL.md +148 -38
  11. package/.claude/skills/compliance-testing/SKILL.md +132 -63
  12. package/.claude/skills/consultancy-practices/SKILL.md +114 -446
  13. package/.claude/skills/context-driven-testing/SKILL.md +117 -381
  14. package/.claude/skills/contract-testing/SKILL.md +176 -141
  15. package/.claude/skills/database-testing/SKILL.md +137 -130
  16. package/.claude/skills/exploratory-testing-advanced/SKILL.md +160 -629
  17. package/.claude/skills/holistic-testing-pact/SKILL.md +140 -188
  18. package/.claude/skills/localization-testing/SKILL.md +145 -33
  19. package/.claude/skills/mobile-testing/SKILL.md +132 -448
  20. package/.claude/skills/mutation-testing/SKILL.md +147 -41
  21. package/.claude/skills/performance-testing/SKILL.md +200 -546
  22. package/.claude/skills/quality-metrics/SKILL.md +164 -519
  23. package/.claude/skills/refactoring-patterns/SKILL.md +132 -699
  24. package/.claude/skills/regression-testing/SKILL.md +120 -926
  25. package/.claude/skills/risk-based-testing/SKILL.md +157 -660
  26. package/.claude/skills/security-testing/SKILL.md +199 -538
  27. package/.claude/skills/sherlock-review/SKILL.md +163 -699
  28. package/.claude/skills/shift-left-testing/SKILL.md +161 -465
  29. package/.claude/skills/shift-right-testing/SKILL.md +161 -519
  30. package/.claude/skills/six-thinking-hats/SKILL.md +175 -1110
  31. package/.claude/skills/skills-manifest.json +71 -20
  32. package/.claude/skills/tdd-london-chicago/SKILL.md +131 -448
  33. package/.claude/skills/technical-writing/SKILL.md +103 -154
  34. package/.claude/skills/test-automation-strategy/SKILL.md +166 -772
  35. package/.claude/skills/test-data-management/SKILL.md +126 -910
  36. package/.claude/skills/test-design-techniques/SKILL.md +179 -89
  37. package/.claude/skills/test-environment-management/SKILL.md +136 -91
  38. package/.claude/skills/test-reporting-analytics/SKILL.md +169 -92
  39. package/.claude/skills/testability-scoring/SKILL.md +172 -538
  40. package/.claude/skills/testability-scoring/scripts/generate-html-report.js +0 -0
  41. package/.claude/skills/visual-testing-advanced/SKILL.md +155 -78
  42. package/.claude/skills/xp-practices/SKILL.md +151 -587
  43. package/CHANGELOG.md +48 -0
  44. package/README.md +23 -16
  45. package/dist/agents/QXPartnerAgent.d.ts +8 -1
  46. package/dist/agents/QXPartnerAgent.d.ts.map +1 -1
  47. package/dist/agents/QXPartnerAgent.js +1174 -112
  48. package/dist/agents/QXPartnerAgent.js.map +1 -1
  49. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  50. package/dist/agents/lifecycle/AgentLifecycleManager.js +34 -31
  51. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  52. package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -1
  53. package/dist/cli/commands/init-claude-md-template.js +14 -0
  54. package/dist/cli/commands/init-claude-md-template.js.map +1 -1
  55. package/dist/core/SwarmCoordinator.d.ts +180 -0
  56. package/dist/core/SwarmCoordinator.d.ts.map +1 -0
  57. package/dist/core/SwarmCoordinator.js +473 -0
  58. package/dist/core/SwarmCoordinator.js.map +1 -0
  59. package/dist/core/metrics/MetricsAggregator.d.ts +228 -0
  60. package/dist/core/metrics/MetricsAggregator.d.ts.map +1 -0
  61. package/dist/core/metrics/MetricsAggregator.js +482 -0
  62. package/dist/core/metrics/MetricsAggregator.js.map +1 -0
  63. package/dist/core/metrics/index.d.ts +5 -0
  64. package/dist/core/metrics/index.d.ts.map +1 -0
  65. package/dist/core/metrics/index.js +11 -0
  66. package/dist/core/metrics/index.js.map +1 -0
  67. package/dist/core/optimization/SwarmOptimizer.d.ts +5 -0
  68. package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -1
  69. package/dist/core/optimization/SwarmOptimizer.js +17 -0
  70. package/dist/core/optimization/SwarmOptimizer.js.map +1 -1
  71. package/dist/core/orchestration/AdaptiveScheduler.d.ts +190 -0
  72. package/dist/core/orchestration/AdaptiveScheduler.d.ts.map +1 -0
  73. package/dist/core/orchestration/AdaptiveScheduler.js +460 -0
  74. package/dist/core/orchestration/AdaptiveScheduler.js.map +1 -0
  75. package/dist/core/orchestration/WorkflowOrchestrator.d.ts +13 -0
  76. package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -1
  77. package/dist/core/orchestration/WorkflowOrchestrator.js +32 -0
  78. package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -1
  79. package/dist/core/recovery/CircuitBreaker.d.ts +176 -0
  80. package/dist/core/recovery/CircuitBreaker.d.ts.map +1 -0
  81. package/dist/core/recovery/CircuitBreaker.js +382 -0
  82. package/dist/core/recovery/CircuitBreaker.js.map +1 -0
  83. package/dist/core/recovery/RecoveryOrchestrator.d.ts +186 -0
  84. package/dist/core/recovery/RecoveryOrchestrator.d.ts.map +1 -0
  85. package/dist/core/recovery/RecoveryOrchestrator.js +476 -0
  86. package/dist/core/recovery/RecoveryOrchestrator.js.map +1 -0
  87. package/dist/core/recovery/RetryStrategy.d.ts +127 -0
  88. package/dist/core/recovery/RetryStrategy.d.ts.map +1 -0
  89. package/dist/core/recovery/RetryStrategy.js +314 -0
  90. package/dist/core/recovery/RetryStrategy.js.map +1 -0
  91. package/dist/core/recovery/index.d.ts +8 -0
  92. package/dist/core/recovery/index.d.ts.map +1 -0
  93. package/dist/core/recovery/index.js +27 -0
  94. package/dist/core/recovery/index.js.map +1 -0
  95. package/dist/core/skills/DependencyResolver.d.ts +99 -0
  96. package/dist/core/skills/DependencyResolver.d.ts.map +1 -0
  97. package/dist/core/skills/DependencyResolver.js +260 -0
  98. package/dist/core/skills/DependencyResolver.js.map +1 -0
  99. package/dist/core/skills/ManifestGenerator.d.ts +114 -0
  100. package/dist/core/skills/ManifestGenerator.d.ts.map +1 -0
  101. package/dist/core/skills/ManifestGenerator.js +449 -0
  102. package/dist/core/skills/ManifestGenerator.js.map +1 -0
  103. package/dist/core/skills/index.d.ts +9 -0
  104. package/dist/core/skills/index.d.ts.map +1 -0
  105. package/dist/core/skills/index.js +24 -0
  106. package/dist/core/skills/index.js.map +1 -0
  107. package/dist/mcp/server.d.ts +9 -9
  108. package/dist/mcp/server.d.ts.map +1 -1
  109. package/dist/mcp/server.js +1 -2
  110. package/dist/mcp/server.js.map +1 -1
  111. package/dist/types/qx.d.ts +39 -7
  112. package/dist/types/qx.d.ts.map +1 -1
  113. package/dist/types/qx.js.map +1 -1
  114. package/dist/visualization/api/RestEndpoints.js +1 -1
  115. package/dist/visualization/api/RestEndpoints.js.map +1 -1
  116. package/package.json +13 -55
@@ -0,0 +1,228 @@
1
+ /**
2
+ * MetricsAggregator - Unified Metrics Collection and Analysis
3
+ *
4
+ * Collects metrics from all swarm components, provides trend analysis,
5
+ * anomaly detection, and performance recommendations.
6
+ */
7
+ import { EventEmitter } from 'events';
8
+ /**
9
+ * Metric source components
10
+ */
11
+ export type MetricSource = 'swarm' | 'optimizer' | 'orchestrator' | 'scheduler' | 'memory' | 'transport' | 'recovery' | 'agent';
12
+ /**
13
+ * Metric types
14
+ */
15
+ export type MetricType = 'counter' | 'gauge' | 'histogram' | 'summary';
16
+ /**
17
+ * Individual metric point
18
+ */
19
+ export interface MetricPoint {
20
+ timestamp: Date;
21
+ value: number;
22
+ labels?: Record<string, string>;
23
+ }
24
+ /**
25
+ * Metric definition
26
+ */
27
+ export interface MetricDefinition {
28
+ name: string;
29
+ type: MetricType;
30
+ source: MetricSource;
31
+ description: string;
32
+ unit?: string;
33
+ labels?: string[];
34
+ }
35
+ /**
36
+ * Metric with history
37
+ */
38
+ export interface Metric extends MetricDefinition {
39
+ points: MetricPoint[];
40
+ current: number;
41
+ min: number;
42
+ max: number;
43
+ avg: number;
44
+ sum: number;
45
+ count: number;
46
+ }
47
+ /**
48
+ * Aggregated metrics snapshot
49
+ */
50
+ export interface MetricsSnapshot {
51
+ timestamp: Date;
52
+ metrics: Record<string, Metric>;
53
+ sources: Record<MetricSource, Record<string, number>>;
54
+ summary: MetricsSummary;
55
+ }
56
+ /**
57
+ * Metrics summary
58
+ */
59
+ export interface MetricsSummary {
60
+ totalMetrics: number;
61
+ activeMetrics: number;
62
+ totalDataPoints: number;
63
+ oldestDataPoint: Date;
64
+ newestDataPoint: Date;
65
+ uptimeSeconds: number;
66
+ }
67
+ /**
68
+ * Trend analysis result
69
+ */
70
+ export interface TrendAnalysis {
71
+ metricName: string;
72
+ direction: 'increasing' | 'decreasing' | 'stable' | 'volatile';
73
+ changeRate: number;
74
+ percentChange: number;
75
+ confidence: number;
76
+ forecast: number;
77
+ anomalyScore: number;
78
+ }
79
+ /**
80
+ * Anomaly detection result
81
+ */
82
+ export interface Anomaly {
83
+ timestamp: Date;
84
+ metricName: string;
85
+ value: number;
86
+ expectedRange: {
87
+ min: number;
88
+ max: number;
89
+ };
90
+ severity: 'low' | 'medium' | 'high' | 'critical';
91
+ description: string;
92
+ }
93
+ /**
94
+ * Performance recommendation
95
+ */
96
+ export interface Recommendation {
97
+ timestamp: Date;
98
+ category: 'optimization' | 'scaling' | 'configuration' | 'alert';
99
+ priority: 'low' | 'medium' | 'high' | 'critical';
100
+ title: string;
101
+ description: string;
102
+ metrics: string[];
103
+ suggestedAction: string;
104
+ }
105
+ /**
106
+ * Aggregator configuration
107
+ */
108
+ export interface MetricsAggregatorConfig {
109
+ /** Maximum history points per metric */
110
+ maxHistoryPoints: number;
111
+ /** Retention period in milliseconds */
112
+ retentionPeriod: number;
113
+ /** Aggregation interval in milliseconds */
114
+ aggregationInterval: number;
115
+ /** Enable anomaly detection */
116
+ enableAnomalyDetection: boolean;
117
+ /** Anomaly detection sensitivity (0-1) */
118
+ anomalySensitivity: number;
119
+ /** Enable trend analysis */
120
+ enableTrendAnalysis: boolean;
121
+ /** Trend window in milliseconds */
122
+ trendWindow: number;
123
+ /** Enable recommendations */
124
+ enableRecommendations: boolean;
125
+ }
126
+ /**
127
+ * Metrics Aggregator Implementation
128
+ */
129
+ export declare class MetricsAggregator extends EventEmitter {
130
+ private readonly logger;
131
+ private readonly config;
132
+ private metrics;
133
+ private definitions;
134
+ private anomalies;
135
+ private recommendations;
136
+ private startTime;
137
+ private aggregationTimer?;
138
+ constructor(config?: Partial<MetricsAggregatorConfig>);
139
+ /**
140
+ * Start the aggregator
141
+ */
142
+ start(): void;
143
+ /**
144
+ * Stop the aggregator
145
+ */
146
+ stop(): void;
147
+ /**
148
+ * Register a metric definition
149
+ */
150
+ registerMetric(definition: MetricDefinition): void;
151
+ /**
152
+ * Record a metric value
153
+ */
154
+ record(name: string, value: number, labels?: Record<string, string>): void;
155
+ /**
156
+ * Increment a counter metric
157
+ */
158
+ increment(name: string, delta?: number, labels?: Record<string, string>): void;
159
+ /**
160
+ * Get current metric value
161
+ */
162
+ get(name: string): number | undefined;
163
+ /**
164
+ * Get metric with full history
165
+ */
166
+ getMetric(name: string): Metric | undefined;
167
+ /**
168
+ * Get all metrics
169
+ */
170
+ getAllMetrics(): Map<string, Metric>;
171
+ /**
172
+ * Get metrics by source
173
+ */
174
+ getMetricsBySource(source: MetricSource): Map<string, Metric>;
175
+ /**
176
+ * Get metrics snapshot
177
+ */
178
+ getSnapshot(): MetricsSnapshot;
179
+ /**
180
+ * Analyze trend for a metric
181
+ */
182
+ analyzeTrend(metricName: string): TrendAnalysis | null;
183
+ /**
184
+ * Get detected anomalies
185
+ */
186
+ getAnomalies(limit?: number): Anomaly[];
187
+ /**
188
+ * Get recommendations
189
+ */
190
+ getRecommendations(limit?: number): Recommendation[];
191
+ /**
192
+ * Generate recommendations based on current metrics
193
+ */
194
+ generateRecommendations(): Recommendation[];
195
+ /**
196
+ * Initialize default metric definitions
197
+ */
198
+ private initializeDefaultMetrics;
199
+ /**
200
+ * Prune old metric history
201
+ */
202
+ private pruneMetricHistory;
203
+ /**
204
+ * Check for anomaly in metric
205
+ */
206
+ private checkForAnomaly;
207
+ /**
208
+ * Calculate standard deviation
209
+ */
210
+ private calculateStdDev;
211
+ /**
212
+ * Aggregate metrics (called periodically)
213
+ */
214
+ private aggregate;
215
+ /**
216
+ * Cleanup
217
+ */
218
+ destroy(): void;
219
+ }
220
+ /**
221
+ * Get default aggregator
222
+ */
223
+ export declare function getMetricsAggregator(config?: Partial<MetricsAggregatorConfig>): MetricsAggregator;
224
+ /**
225
+ * Reset default aggregator (for testing)
226
+ */
227
+ export declare function resetMetricsAggregator(): void;
228
+ //# sourceMappingURL=MetricsAggregator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsAggregator.d.ts","sourceRoot":"","sources":["../../../src/core/metrics/MetricsAggregator.ts"],"names":[],"mappings":"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"}