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.
- package/.claude/agents/qx-partner.md +17 -4
- package/.claude/skills/accessibility-testing/SKILL.md +144 -692
- package/.claude/skills/agentic-quality-engineering/SKILL.md +176 -529
- package/.claude/skills/api-testing-patterns/SKILL.md +180 -560
- package/.claude/skills/brutal-honesty-review/SKILL.md +113 -603
- package/.claude/skills/bug-reporting-excellence/SKILL.md +116 -517
- package/.claude/skills/chaos-engineering-resilience/SKILL.md +127 -72
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +209 -404
- package/.claude/skills/code-review-quality/SKILL.md +158 -608
- package/.claude/skills/compatibility-testing/SKILL.md +148 -38
- package/.claude/skills/compliance-testing/SKILL.md +132 -63
- package/.claude/skills/consultancy-practices/SKILL.md +114 -446
- package/.claude/skills/context-driven-testing/SKILL.md +117 -381
- package/.claude/skills/contract-testing/SKILL.md +176 -141
- package/.claude/skills/database-testing/SKILL.md +137 -130
- package/.claude/skills/exploratory-testing-advanced/SKILL.md +160 -629
- package/.claude/skills/holistic-testing-pact/SKILL.md +140 -188
- package/.claude/skills/localization-testing/SKILL.md +145 -33
- package/.claude/skills/mobile-testing/SKILL.md +132 -448
- package/.claude/skills/mutation-testing/SKILL.md +147 -41
- package/.claude/skills/performance-testing/SKILL.md +200 -546
- package/.claude/skills/quality-metrics/SKILL.md +164 -519
- package/.claude/skills/refactoring-patterns/SKILL.md +132 -699
- package/.claude/skills/regression-testing/SKILL.md +120 -926
- package/.claude/skills/risk-based-testing/SKILL.md +157 -660
- package/.claude/skills/security-testing/SKILL.md +199 -538
- package/.claude/skills/sherlock-review/SKILL.md +163 -699
- package/.claude/skills/shift-left-testing/SKILL.md +161 -465
- package/.claude/skills/shift-right-testing/SKILL.md +161 -519
- package/.claude/skills/six-thinking-hats/SKILL.md +175 -1110
- package/.claude/skills/skills-manifest.json +71 -20
- package/.claude/skills/tdd-london-chicago/SKILL.md +131 -448
- package/.claude/skills/technical-writing/SKILL.md +103 -154
- package/.claude/skills/test-automation-strategy/SKILL.md +166 -772
- package/.claude/skills/test-data-management/SKILL.md +126 -910
- package/.claude/skills/test-design-techniques/SKILL.md +179 -89
- package/.claude/skills/test-environment-management/SKILL.md +136 -91
- package/.claude/skills/test-reporting-analytics/SKILL.md +169 -92
- package/.claude/skills/testability-scoring/SKILL.md +172 -538
- package/.claude/skills/testability-scoring/scripts/generate-html-report.js +0 -0
- package/.claude/skills/visual-testing-advanced/SKILL.md +155 -78
- package/.claude/skills/xp-practices/SKILL.md +151 -587
- package/CHANGELOG.md +48 -0
- package/README.md +23 -16
- package/dist/agents/QXPartnerAgent.d.ts +8 -1
- package/dist/agents/QXPartnerAgent.d.ts.map +1 -1
- package/dist/agents/QXPartnerAgent.js +1174 -112
- package/dist/agents/QXPartnerAgent.js.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.js +34 -31
- package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
- package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -1
- package/dist/cli/commands/init-claude-md-template.js +14 -0
- package/dist/cli/commands/init-claude-md-template.js.map +1 -1
- package/dist/core/SwarmCoordinator.d.ts +180 -0
- package/dist/core/SwarmCoordinator.d.ts.map +1 -0
- package/dist/core/SwarmCoordinator.js +473 -0
- package/dist/core/SwarmCoordinator.js.map +1 -0
- package/dist/core/metrics/MetricsAggregator.d.ts +228 -0
- package/dist/core/metrics/MetricsAggregator.d.ts.map +1 -0
- package/dist/core/metrics/MetricsAggregator.js +482 -0
- package/dist/core/metrics/MetricsAggregator.js.map +1 -0
- package/dist/core/metrics/index.d.ts +5 -0
- package/dist/core/metrics/index.d.ts.map +1 -0
- package/dist/core/metrics/index.js +11 -0
- package/dist/core/metrics/index.js.map +1 -0
- package/dist/core/optimization/SwarmOptimizer.d.ts +5 -0
- package/dist/core/optimization/SwarmOptimizer.d.ts.map +1 -1
- package/dist/core/optimization/SwarmOptimizer.js +17 -0
- package/dist/core/optimization/SwarmOptimizer.js.map +1 -1
- package/dist/core/orchestration/AdaptiveScheduler.d.ts +190 -0
- package/dist/core/orchestration/AdaptiveScheduler.d.ts.map +1 -0
- package/dist/core/orchestration/AdaptiveScheduler.js +460 -0
- package/dist/core/orchestration/AdaptiveScheduler.js.map +1 -0
- package/dist/core/orchestration/WorkflowOrchestrator.d.ts +13 -0
- package/dist/core/orchestration/WorkflowOrchestrator.d.ts.map +1 -1
- package/dist/core/orchestration/WorkflowOrchestrator.js +32 -0
- package/dist/core/orchestration/WorkflowOrchestrator.js.map +1 -1
- package/dist/core/recovery/CircuitBreaker.d.ts +176 -0
- package/dist/core/recovery/CircuitBreaker.d.ts.map +1 -0
- package/dist/core/recovery/CircuitBreaker.js +382 -0
- package/dist/core/recovery/CircuitBreaker.js.map +1 -0
- package/dist/core/recovery/RecoveryOrchestrator.d.ts +186 -0
- package/dist/core/recovery/RecoveryOrchestrator.d.ts.map +1 -0
- package/dist/core/recovery/RecoveryOrchestrator.js +476 -0
- package/dist/core/recovery/RecoveryOrchestrator.js.map +1 -0
- package/dist/core/recovery/RetryStrategy.d.ts +127 -0
- package/dist/core/recovery/RetryStrategy.d.ts.map +1 -0
- package/dist/core/recovery/RetryStrategy.js +314 -0
- package/dist/core/recovery/RetryStrategy.js.map +1 -0
- package/dist/core/recovery/index.d.ts +8 -0
- package/dist/core/recovery/index.d.ts.map +1 -0
- package/dist/core/recovery/index.js +27 -0
- package/dist/core/recovery/index.js.map +1 -0
- package/dist/core/skills/DependencyResolver.d.ts +99 -0
- package/dist/core/skills/DependencyResolver.d.ts.map +1 -0
- package/dist/core/skills/DependencyResolver.js +260 -0
- package/dist/core/skills/DependencyResolver.js.map +1 -0
- package/dist/core/skills/ManifestGenerator.d.ts +114 -0
- package/dist/core/skills/ManifestGenerator.d.ts.map +1 -0
- package/dist/core/skills/ManifestGenerator.js +449 -0
- package/dist/core/skills/ManifestGenerator.js.map +1 -0
- package/dist/core/skills/index.d.ts +9 -0
- package/dist/core/skills/index.d.ts.map +1 -0
- package/dist/core/skills/index.js +24 -0
- package/dist/core/skills/index.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -9
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +1 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/types/qx.d.ts +39 -7
- package/dist/types/qx.d.ts.map +1 -1
- package/dist/types/qx.js.map +1 -1
- package/dist/visualization/api/RestEndpoints.js +1 -1
- package/dist/visualization/api/RestEndpoints.js.map +1 -1
- 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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"}
|