agentic-qe 1.3.3 → 1.3.5
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-api-contract-validator.md +20 -0
- package/.claude/agents/qe-chaos-engineer.md +20 -0
- package/.claude/agents/qe-coverage-analyzer.md +21 -0
- package/.claude/agents/qe-deployment-readiness.md +20 -0
- package/.claude/agents/qe-flaky-test-hunter.md +20 -0
- package/.claude/agents/qe-fleet-commander.md +20 -0
- package/.claude/agents/qe-performance-tester.md +21 -0
- package/.claude/agents/qe-production-intelligence.md +20 -0
- package/.claude/agents/qe-quality-analyzer.md +20 -0
- package/.claude/agents/qe-quality-gate.md +20 -0
- package/.claude/agents/qe-regression-risk-analyzer.md +20 -0
- package/.claude/agents/qe-requirements-validator.md +20 -0
- package/.claude/agents/qe-security-scanner.md +21 -0
- package/.claude/agents/qe-test-data-architect.md +19 -0
- package/.claude/agents/qe-test-executor.md +20 -0
- package/.claude/agents/qe-test-generator.md +22 -0
- package/.claude/agents/qe-visual-tester.md +22 -0
- package/CHANGELOG.md +252 -0
- package/README.md +325 -1019
- package/README.md.backup-20251026 +1366 -0
- package/bin/aqe-mcp +1 -1
- package/dist/agents/BaseAgent.js +1 -1
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +16 -16
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +1 -1
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +71 -37
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/routing/index.d.ts +1 -1
- package/dist/cli/commands/routing/index.d.ts.map +1 -1
- package/dist/cli/commands/routing/index.js +29 -19
- package/dist/cli/commands/routing/index.js.map +1 -1
- package/dist/core/memory/EnhancedAgentDBService.d.ts +127 -0
- package/dist/core/memory/EnhancedAgentDBService.d.ts.map +1 -0
- package/dist/core/memory/EnhancedAgentDBService.js +298 -0
- package/dist/core/memory/EnhancedAgentDBService.js.map +1 -0
- package/dist/core/neural/NeuralTrainer.js +2 -2
- package/dist/core/neural/NeuralTrainer.js.map +1 -1
- package/dist/learning/ExperienceReplayBuffer.d.ts +143 -0
- package/dist/learning/ExperienceReplayBuffer.d.ts.map +1 -0
- package/dist/learning/ExperienceReplayBuffer.js +255 -0
- package/dist/learning/ExperienceReplayBuffer.js.map +1 -0
- package/dist/learning/FixRecommendationEngine.d.ts +68 -0
- package/dist/learning/FixRecommendationEngine.d.ts.map +1 -0
- package/dist/learning/FixRecommendationEngine.js +500 -0
- package/dist/learning/FixRecommendationEngine.js.map +1 -0
- package/dist/learning/FlakyTestDetector.d.ts +19 -0
- package/dist/learning/FlakyTestDetector.d.ts.map +1 -1
- package/dist/learning/FlakyTestDetector.js +121 -2
- package/dist/learning/FlakyTestDetector.js.map +1 -1
- package/dist/learning/LearningEngine.d.ts +50 -1
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +140 -0
- package/dist/learning/LearningEngine.js.map +1 -1
- package/dist/learning/QLearning.d.ts +154 -0
- package/dist/learning/QLearning.d.ts.map +1 -0
- package/dist/learning/QLearning.js +337 -0
- package/dist/learning/QLearning.js.map +1 -0
- package/dist/learning/index.d.ts +4 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +7 -0
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/types.d.ts +11 -0
- package/dist/learning/types.d.ts.map +1 -1
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts +11 -1
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.d.ts.map +1 -1
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js +12 -0
- package/dist/mcp/streaming/CoverageAnalyzeStreamHandler.js.map +1 -1
- package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts +10 -1
- package/dist/mcp/streaming/TestExecuteStreamHandler.d.ts.map +1 -1
- package/dist/mcp/streaming/TestExecuteStreamHandler.js +11 -0
- package/dist/mcp/streaming/TestExecuteStreamHandler.js.map +1 -1
- package/dist/reasoning/PatternQualityScorer.d.ts +134 -0
- package/dist/reasoning/PatternQualityScorer.d.ts.map +1 -0
- package/dist/reasoning/PatternQualityScorer.js +340 -0
- package/dist/reasoning/PatternQualityScorer.js.map +1 -0
- package/dist/reasoning/QEReasoningBank.d.ts +138 -4
- package/dist/reasoning/QEReasoningBank.d.ts.map +1 -1
- package/dist/reasoning/QEReasoningBank.js +560 -12
- package/dist/reasoning/QEReasoningBank.js.map +1 -1
- package/dist/reasoning/VectorSimilarity.d.ts +131 -0
- package/dist/reasoning/VectorSimilarity.d.ts.map +1 -0
- package/dist/reasoning/VectorSimilarity.js +250 -0
- package/dist/reasoning/VectorSimilarity.js.map +1 -0
- package/dist/reasoning/index.d.ts +8 -1
- package/dist/reasoning/index.d.ts.map +1 -1
- package/dist/reasoning/index.js +13 -2
- package/dist/reasoning/index.js.map +1 -1
- package/dist/streaming/BaseStreamHandler.d.ts +89 -0
- package/dist/streaming/BaseStreamHandler.d.ts.map +1 -0
- package/dist/streaming/BaseStreamHandler.js +168 -0
- package/dist/streaming/BaseStreamHandler.js.map +1 -0
- package/dist/streaming/TestGenerateStreamHandler.d.ts +103 -0
- package/dist/streaming/TestGenerateStreamHandler.d.ts.map +1 -0
- package/dist/streaming/TestGenerateStreamHandler.js +321 -0
- package/dist/streaming/TestGenerateStreamHandler.js.map +1 -0
- package/dist/streaming/index.d.ts +16 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/streaming/index.js +39 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/utils/__mocks__/Logger.d.ts +26 -0
- package/dist/utils/__mocks__/Logger.d.ts.map +1 -0
- package/dist/utils/__mocks__/Logger.js +42 -0
- package/dist/utils/__mocks__/Logger.js.map +1 -0
- package/package.json +15 -3
- package/dist/agents/mixins/NeuralCapableMixin.d.ts +0 -130
- package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +0 -1
- package/dist/agents/mixins/NeuralCapableMixin.js +0 -358
- package/dist/agents/mixins/NeuralCapableMixin.js.map +0 -1
- package/dist/agents/mixins/QUICCapableMixin.d.ts +0 -34
- package/dist/agents/mixins/QUICCapableMixin.d.ts.map +0 -1
- package/dist/agents/mixins/QUICCapableMixin.js +0 -346
- package/dist/agents/mixins/QUICCapableMixin.js.map +0 -1
- package/dist/core/security/CertificateValidator.d.ts +0 -130
- package/dist/core/security/CertificateValidator.d.ts.map +0 -1
- package/dist/core/security/CertificateValidator.js +0 -376
- package/dist/core/security/CertificateValidator.js.map +0 -1
- package/dist/core/transport/QUICTransport.d.ts +0 -62
- package/dist/core/transport/QUICTransport.d.ts.map +0 -1
- package/dist/core/transport/QUICTransport.js +0 -381
- package/dist/core/transport/QUICTransport.js.map +0 -1
- package/dist/core/transport/SecureQUICTransport.d.ts +0 -71
- package/dist/core/transport/SecureQUICTransport.d.ts.map +0 -1
- package/dist/core/transport/SecureQUICTransport.js +0 -253
- package/dist/core/transport/SecureQUICTransport.js.map +0 -1
- package/dist/learning/AdvancedFeatureExtractor.d.ts +0 -123
- package/dist/learning/AdvancedFeatureExtractor.d.ts.map +0 -1
- package/dist/learning/AdvancedFeatureExtractor.js +0 -423
- package/dist/learning/AdvancedFeatureExtractor.js.map +0 -1
- package/dist/learning/NeuralPatternMatcher.d.ts +0 -184
- package/dist/learning/NeuralPatternMatcher.d.ts.map +0 -1
- package/dist/learning/NeuralPatternMatcher.js +0 -702
- package/dist/learning/NeuralPatternMatcher.js.map +0 -1
- package/dist/learning/NeuralTrainer.d.ts +0 -209
- package/dist/learning/NeuralTrainer.d.ts.map +0 -1
- package/dist/learning/NeuralTrainer.js +0 -478
- package/dist/learning/NeuralTrainer.js.map +0 -1
- package/dist/transport/QUICTransport.d.ts +0 -340
- package/dist/transport/QUICTransport.d.ts.map +0 -1
- package/dist/transport/QUICTransport.js +0 -814
- package/dist/transport/QUICTransport.js.map +0 -1
- package/dist/transport/UDPTransport.d.ts +0 -348
- package/dist/transport/UDPTransport.d.ts.map +0 -1
- package/dist/transport/UDPTransport.js +0 -820
- package/dist/transport/UDPTransport.js.map +0 -1
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* QUIC Transport Implementation
|
|
4
|
-
*
|
|
5
|
-
* Fallback implementation using EventBus when QUIC library is not available.
|
|
6
|
-
* In production, this would be replaced with a real QUIC implementation
|
|
7
|
-
* using libraries like @fails-components/webtransport or node-quic.
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.QUICTransport = void 0;
|
|
11
|
-
const events_1 = require("events");
|
|
12
|
-
const quic_1 = require("../../types/quic");
|
|
13
|
-
const Logger_1 = require("../../utils/Logger");
|
|
14
|
-
/**
|
|
15
|
-
* EventBus-based QUIC Transport Fallback
|
|
16
|
-
*
|
|
17
|
-
* This implementation provides QUIC-like semantics using EventBus.
|
|
18
|
-
* It's designed to be replaced with a real QUIC transport in production.
|
|
19
|
-
*/
|
|
20
|
-
class QUICTransport extends events_1.EventEmitter {
|
|
21
|
-
constructor() {
|
|
22
|
-
super();
|
|
23
|
-
this.peers = new Map();
|
|
24
|
-
this.streams = new Map();
|
|
25
|
-
this.pendingRequests = new Map();
|
|
26
|
-
this.isInitialized = false;
|
|
27
|
-
this.logger = Logger_1.Logger.getInstance();
|
|
28
|
-
// Initialize stats
|
|
29
|
-
this.stats = {
|
|
30
|
-
bytesSent: 0,
|
|
31
|
-
bytesReceived: 0,
|
|
32
|
-
messagesSent: 0,
|
|
33
|
-
messagesReceived: 0,
|
|
34
|
-
currentRTT: 0,
|
|
35
|
-
minRTT: Infinity,
|
|
36
|
-
maxRTT: 0,
|
|
37
|
-
avgRTT: 0,
|
|
38
|
-
packetLoss: 0,
|
|
39
|
-
congestionWindow: 65536,
|
|
40
|
-
activeStreams: 0,
|
|
41
|
-
uptime: 0,
|
|
42
|
-
lastActivity: new Date()
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
async initialize(config) {
|
|
46
|
-
if (this.isInitialized) {
|
|
47
|
-
throw new Error('QUICTransport already initialized');
|
|
48
|
-
}
|
|
49
|
-
this.config = config;
|
|
50
|
-
// TODO: In production, initialize actual QUIC connection here
|
|
51
|
-
// For now, we use EventBus as fallback
|
|
52
|
-
this.logger.info('QUICTransport initialized (EventBus fallback mode)', {
|
|
53
|
-
host: config.host,
|
|
54
|
-
port: config.port,
|
|
55
|
-
channels: config.channels.length
|
|
56
|
-
});
|
|
57
|
-
this.isInitialized = true;
|
|
58
|
-
// Start periodic discovery if configured
|
|
59
|
-
if (config.channels.some(ch => ch.type === 'broadcast')) {
|
|
60
|
-
this.startDiscovery();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
async connect(peer, port) {
|
|
64
|
-
this.ensureInitialized();
|
|
65
|
-
const peerInfo = {
|
|
66
|
-
agentId: peer,
|
|
67
|
-
agentType: 'unknown', // Will be updated via discovery
|
|
68
|
-
address: this.config.host,
|
|
69
|
-
port,
|
|
70
|
-
state: 'connected',
|
|
71
|
-
rtt: 1, // Simulated RTT
|
|
72
|
-
bandwidth: 1000000, // Simulated 1MB/s
|
|
73
|
-
capabilities: [],
|
|
74
|
-
lastActivity: new Date(),
|
|
75
|
-
metadata: {}
|
|
76
|
-
};
|
|
77
|
-
this.peers.set(peer, peerInfo);
|
|
78
|
-
this.emit('connection:established', peerInfo);
|
|
79
|
-
this.logger.debug(`Connected to peer: ${peer}`);
|
|
80
|
-
return peerInfo;
|
|
81
|
-
}
|
|
82
|
-
async disconnect(peerId) {
|
|
83
|
-
const peer = this.peers.get(peerId);
|
|
84
|
-
if (!peer) {
|
|
85
|
-
return; // Already disconnected
|
|
86
|
-
}
|
|
87
|
-
peer.state = 'disconnected';
|
|
88
|
-
this.peers.delete(peerId);
|
|
89
|
-
this.emit('connection:lost', peer, new Error('Disconnected by user'));
|
|
90
|
-
this.logger.debug(`Disconnected from peer: ${peerId}`);
|
|
91
|
-
}
|
|
92
|
-
async send(to, message) {
|
|
93
|
-
this.ensureInitialized();
|
|
94
|
-
// Check if peer is connected
|
|
95
|
-
const peer = this.peers.get(to);
|
|
96
|
-
if (!peer || peer.state !== 'connected') {
|
|
97
|
-
throw this.createError(quic_1.QUICErrorCode.PEER_NOT_FOUND, `Peer ${to} not connected`, to);
|
|
98
|
-
}
|
|
99
|
-
// Update stats
|
|
100
|
-
const messageSize = this.estimateMessageSize(message);
|
|
101
|
-
this.stats.bytesSent += messageSize;
|
|
102
|
-
this.stats.messagesSent++;
|
|
103
|
-
this.stats.lastActivity = new Date();
|
|
104
|
-
// Simulate network delay
|
|
105
|
-
await this.simulateNetworkDelay();
|
|
106
|
-
// In production, send via QUIC stream
|
|
107
|
-
// For now, emit via EventBus
|
|
108
|
-
this.emit('message:sent', { to, message });
|
|
109
|
-
this.logger.debug(`Sent message to ${to}`, {
|
|
110
|
-
type: message.type,
|
|
111
|
-
channel: message.channel
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
async broadcast(message, options) {
|
|
115
|
-
this.ensureInitialized();
|
|
116
|
-
const targets = this.getBroadcastTargets(options);
|
|
117
|
-
const promises = targets.map(peerId => this.send(peerId, {
|
|
118
|
-
...message,
|
|
119
|
-
to: peerId,
|
|
120
|
-
type: quic_1.QUICMessageType.BROADCAST
|
|
121
|
-
}));
|
|
122
|
-
await Promise.all(promises);
|
|
123
|
-
this.logger.debug(`Broadcast message to ${targets.length} peers`, {
|
|
124
|
-
channel: options?.channel,
|
|
125
|
-
type: message.type
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
async request(to, message, options) {
|
|
129
|
-
this.ensureInitialized();
|
|
130
|
-
const requestId = this.generateRequestId();
|
|
131
|
-
message.requestId = requestId;
|
|
132
|
-
message.type = quic_1.QUICMessageType.REQUEST;
|
|
133
|
-
const timeout = options?.timeout || 5000;
|
|
134
|
-
const retries = options?.retries || 0;
|
|
135
|
-
return this.sendRequestWithRetry(to, message, timeout, retries);
|
|
136
|
-
}
|
|
137
|
-
async sendRequestWithRetry(to, message, timeout, retriesLeft) {
|
|
138
|
-
try {
|
|
139
|
-
return await this.sendRequest(to, message, timeout);
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
if (retriesLeft > 0) {
|
|
143
|
-
this.logger.debug(`Retrying request (${retriesLeft} retries left)`);
|
|
144
|
-
await this.delay(100); // Retry delay
|
|
145
|
-
return this.sendRequestWithRetry(to, message, timeout, retriesLeft - 1);
|
|
146
|
-
}
|
|
147
|
-
throw error;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
sendRequest(to, message, timeout) {
|
|
151
|
-
return new Promise((resolve, reject) => {
|
|
152
|
-
const timer = setTimeout(() => {
|
|
153
|
-
this.pendingRequests.delete(message.requestId);
|
|
154
|
-
reject(this.createError(quic_1.QUICErrorCode.MESSAGE_TIMEOUT, `Request timeout after ${timeout}ms`, to));
|
|
155
|
-
}, timeout);
|
|
156
|
-
this.pendingRequests.set(message.requestId, { resolve, reject, timer });
|
|
157
|
-
// Send request
|
|
158
|
-
this.send(to, message).catch(error => {
|
|
159
|
-
clearTimeout(timer);
|
|
160
|
-
this.pendingRequests.delete(message.requestId);
|
|
161
|
-
reject(error);
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
async openStream(streamId, options) {
|
|
166
|
-
this.ensureInitialized();
|
|
167
|
-
if (this.streams.has(streamId)) {
|
|
168
|
-
throw this.createError(quic_1.QUICErrorCode.STREAM_ERROR, `Stream ${streamId} already exists`);
|
|
169
|
-
}
|
|
170
|
-
const stream = {
|
|
171
|
-
id: streamId,
|
|
172
|
-
options: options || {},
|
|
173
|
-
buffer: [],
|
|
174
|
-
opened: new Date()
|
|
175
|
-
};
|
|
176
|
-
this.streams.set(streamId, stream);
|
|
177
|
-
this.stats.activeStreams++;
|
|
178
|
-
this.emit('stream:opened', streamId, options || {});
|
|
179
|
-
this.logger.debug(`Opened stream: ${streamId}`);
|
|
180
|
-
}
|
|
181
|
-
async writeStream(streamId, data) {
|
|
182
|
-
this.ensureInitialized();
|
|
183
|
-
const stream = this.streams.get(streamId);
|
|
184
|
-
if (!stream) {
|
|
185
|
-
throw this.createError(quic_1.QUICErrorCode.STREAM_ERROR, `Stream ${streamId} not found`);
|
|
186
|
-
}
|
|
187
|
-
stream.buffer.push(data);
|
|
188
|
-
const dataSize = typeof data.data === 'string'
|
|
189
|
-
? Buffer.byteLength(data.data)
|
|
190
|
-
: data.data.length;
|
|
191
|
-
this.stats.bytesSent += dataSize;
|
|
192
|
-
this.stats.lastActivity = new Date();
|
|
193
|
-
this.logger.debug(`Wrote ${dataSize} bytes to stream: ${streamId}`);
|
|
194
|
-
}
|
|
195
|
-
async closeStream(streamId) {
|
|
196
|
-
const stream = this.streams.get(streamId);
|
|
197
|
-
if (!stream) {
|
|
198
|
-
return; // Already closed
|
|
199
|
-
}
|
|
200
|
-
this.streams.delete(streamId);
|
|
201
|
-
this.stats.activeStreams--;
|
|
202
|
-
this.emit('stream:closed', streamId);
|
|
203
|
-
this.logger.debug(`Closed stream: ${streamId}`);
|
|
204
|
-
}
|
|
205
|
-
async discoverPeers(options) {
|
|
206
|
-
this.ensureInitialized();
|
|
207
|
-
// Simulate peer discovery
|
|
208
|
-
const discoveredPeers = Array.from(this.peers.values())
|
|
209
|
-
.filter(peer => peer.state === 'connected')
|
|
210
|
-
.filter(peer => !options?.filter || options.filter(peer))
|
|
211
|
-
.slice(0, options?.maxPeers || 100);
|
|
212
|
-
return discoveredPeers;
|
|
213
|
-
}
|
|
214
|
-
getPeers() {
|
|
215
|
-
return Array.from(this.peers.values())
|
|
216
|
-
.filter(peer => peer.state === 'connected');
|
|
217
|
-
}
|
|
218
|
-
getPeer(peerId) {
|
|
219
|
-
return this.peers.get(peerId);
|
|
220
|
-
}
|
|
221
|
-
getStats() {
|
|
222
|
-
const now = Date.now();
|
|
223
|
-
const startTime = now - this.stats.uptime;
|
|
224
|
-
return {
|
|
225
|
-
...this.stats,
|
|
226
|
-
uptime: this.isInitialized ? now - startTime : 0,
|
|
227
|
-
lastActivity: this.stats.lastActivity
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
getHealth() {
|
|
231
|
-
const connectedPeers = this.getPeers().length;
|
|
232
|
-
const avgRTT = this.stats.avgRTT;
|
|
233
|
-
const packetLoss = this.stats.packetLoss;
|
|
234
|
-
let status = 'healthy';
|
|
235
|
-
let message = 'Transport operating normally';
|
|
236
|
-
if (!this.isInitialized) {
|
|
237
|
-
status = 'unhealthy';
|
|
238
|
-
message = 'Transport not initialized';
|
|
239
|
-
}
|
|
240
|
-
else if (packetLoss > 0.1) {
|
|
241
|
-
status = 'unhealthy';
|
|
242
|
-
message = 'High packet loss detected';
|
|
243
|
-
}
|
|
244
|
-
else if (avgRTT > 100) {
|
|
245
|
-
status = 'degraded';
|
|
246
|
-
message = 'High latency detected';
|
|
247
|
-
}
|
|
248
|
-
else if (connectedPeers === 0) {
|
|
249
|
-
status = 'degraded';
|
|
250
|
-
message = 'No peers connected';
|
|
251
|
-
}
|
|
252
|
-
return {
|
|
253
|
-
operational: this.isInitialized,
|
|
254
|
-
connectedPeers,
|
|
255
|
-
activeChannels: this.config?.channels.length || 0,
|
|
256
|
-
avgRTT,
|
|
257
|
-
packetLoss,
|
|
258
|
-
recentErrors: 0, // TODO: Track errors
|
|
259
|
-
timestamp: new Date(),
|
|
260
|
-
status,
|
|
261
|
-
message
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
async close() {
|
|
265
|
-
if (!this.isInitialized) {
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
// Log before cleanup
|
|
269
|
-
this.logger.info('Closing QUICTransport');
|
|
270
|
-
// Stop discovery
|
|
271
|
-
if (this.discoveryInterval) {
|
|
272
|
-
clearInterval(this.discoveryInterval);
|
|
273
|
-
this.discoveryInterval = undefined;
|
|
274
|
-
}
|
|
275
|
-
// Disconnect all peers
|
|
276
|
-
const disconnectPromises = Array.from(this.peers.keys())
|
|
277
|
-
.map(peerId => this.disconnect(peerId));
|
|
278
|
-
await Promise.all(disconnectPromises);
|
|
279
|
-
// Close all streams
|
|
280
|
-
for (const streamId of this.streams.keys()) {
|
|
281
|
-
await this.closeStream(streamId);
|
|
282
|
-
}
|
|
283
|
-
// Clear pending requests with proper cleanup
|
|
284
|
-
for (const [requestId, pending] of this.pendingRequests.entries()) {
|
|
285
|
-
try {
|
|
286
|
-
clearTimeout(pending.timer);
|
|
287
|
-
pending.reject(new Error('Transport closed'));
|
|
288
|
-
}
|
|
289
|
-
catch (error) {
|
|
290
|
-
// Use logger if still available
|
|
291
|
-
if (this.logger) {
|
|
292
|
-
this.logger.warn(`Error cleaning up pending request ${requestId}:`, error);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
// Clear all collections
|
|
297
|
-
this.peers.clear();
|
|
298
|
-
this.streams.clear();
|
|
299
|
-
this.pendingRequests.clear();
|
|
300
|
-
// Remove all event listeners (prevents memory leaks)
|
|
301
|
-
this.removeAllListeners();
|
|
302
|
-
// Clear EventBus reference
|
|
303
|
-
this.eventBus = undefined;
|
|
304
|
-
this.isInitialized = false;
|
|
305
|
-
this.logger.info('QUICTransport closed');
|
|
306
|
-
}
|
|
307
|
-
// Helper methods
|
|
308
|
-
ensureInitialized() {
|
|
309
|
-
if (!this.isInitialized) {
|
|
310
|
-
throw this.createError(quic_1.QUICErrorCode.CONFIGURATION_ERROR, 'QUICTransport not initialized');
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
getBroadcastTargets(options) {
|
|
314
|
-
let targets = Array.from(this.peers.keys());
|
|
315
|
-
if (options?.exclude) {
|
|
316
|
-
targets = targets.filter(id => !options.exclude.includes(id));
|
|
317
|
-
}
|
|
318
|
-
if (options?.include) {
|
|
319
|
-
targets = targets.filter(id => options.include.includes(id));
|
|
320
|
-
}
|
|
321
|
-
return targets;
|
|
322
|
-
}
|
|
323
|
-
generateRequestId() {
|
|
324
|
-
return `req-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
325
|
-
}
|
|
326
|
-
estimateMessageSize(message) {
|
|
327
|
-
return JSON.stringify(message).length;
|
|
328
|
-
}
|
|
329
|
-
async simulateNetworkDelay() {
|
|
330
|
-
// Simulate 1-5ms network delay
|
|
331
|
-
const delay = Math.random() * 4 + 1;
|
|
332
|
-
await this.delay(delay);
|
|
333
|
-
}
|
|
334
|
-
delay(ms) {
|
|
335
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
336
|
-
}
|
|
337
|
-
createError(code, message, peer, details) {
|
|
338
|
-
const error = new Error(message);
|
|
339
|
-
error.code = code;
|
|
340
|
-
error.peer = peer;
|
|
341
|
-
error.details = details;
|
|
342
|
-
return error;
|
|
343
|
-
}
|
|
344
|
-
startDiscovery() {
|
|
345
|
-
// Periodic peer discovery (every 30 seconds)
|
|
346
|
-
this.discoveryInterval = setInterval(async () => {
|
|
347
|
-
try {
|
|
348
|
-
const peers = await this.discoverPeers();
|
|
349
|
-
this.logger.debug(`Discovered ${peers.length} peers`);
|
|
350
|
-
}
|
|
351
|
-
catch (error) {
|
|
352
|
-
this.logger.error('Peer discovery failed:', error);
|
|
353
|
-
}
|
|
354
|
-
}, 30000);
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Handle incoming response message
|
|
358
|
-
* Called by external message handler
|
|
359
|
-
*/
|
|
360
|
-
handleResponse(message) {
|
|
361
|
-
if (message.type !== quic_1.QUICMessageType.RESPONSE || !message.requestId) {
|
|
362
|
-
return;
|
|
363
|
-
}
|
|
364
|
-
const pending = this.pendingRequests.get(message.requestId);
|
|
365
|
-
if (!pending) {
|
|
366
|
-
this.logger.warn(`Received response for unknown request: ${message.requestId}`);
|
|
367
|
-
return;
|
|
368
|
-
}
|
|
369
|
-
clearTimeout(pending.timer);
|
|
370
|
-
this.pendingRequests.delete(message.requestId);
|
|
371
|
-
pending.resolve(message);
|
|
372
|
-
}
|
|
373
|
-
/**
|
|
374
|
-
* Set EventBus for fallback communication
|
|
375
|
-
*/
|
|
376
|
-
setEventBus(eventBus) {
|
|
377
|
-
this.eventBus = eventBus;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
exports.QUICTransport = QUICTransport;
|
|
381
|
-
//# sourceMappingURL=QUICTransport.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QUICTransport.js","sourceRoot":"","sources":["../../../src/core/transport/QUICTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Secure QUIC Transport with Certificate Validation
|
|
3
|
-
*
|
|
4
|
-
* Production-ready QUIC transport with comprehensive security:
|
|
5
|
-
* - Mandatory certificate validation
|
|
6
|
-
* - Certificate pinning support
|
|
7
|
-
* - TLS 1.3 enforcement
|
|
8
|
-
* - No self-signed certificates in production
|
|
9
|
-
* - Proper error handling and logging
|
|
10
|
-
*
|
|
11
|
-
* @module SecureQUICTransport
|
|
12
|
-
*/
|
|
13
|
-
import { QUICTransport } from './QUICTransport';
|
|
14
|
-
import { QUICConfig, QUICSecurityConfig } from '../../types/quic';
|
|
15
|
-
export interface SecureQUICConfig extends QUICConfig {
|
|
16
|
-
security: Required<QUICSecurityConfig> & {
|
|
17
|
-
/** Path to CA certificate bundle */
|
|
18
|
-
caPath: string;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Secure QUIC Transport
|
|
23
|
-
*
|
|
24
|
-
* Extends QUICTransport with production-grade security:
|
|
25
|
-
* - Certificate validation before connection
|
|
26
|
-
* - Certificate pinning
|
|
27
|
-
* - TLS 1.3 enforcement
|
|
28
|
-
* - Audit logging
|
|
29
|
-
*/
|
|
30
|
-
export declare class SecureQUICTransport extends QUICTransport {
|
|
31
|
-
private certificateValidator?;
|
|
32
|
-
private securityConfig?;
|
|
33
|
-
private readonly logger;
|
|
34
|
-
private environment;
|
|
35
|
-
constructor();
|
|
36
|
-
/**
|
|
37
|
-
* Initialize secure QUIC transport
|
|
38
|
-
*
|
|
39
|
-
* CRITICAL: This method validates certificates BEFORE allowing any connections.
|
|
40
|
-
* Will throw if certificates are invalid in production.
|
|
41
|
-
*/
|
|
42
|
-
initialize(config: SecureQUICConfig): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
* Connect to peer with certificate validation
|
|
45
|
-
*/
|
|
46
|
-
connect(peer: string, port: number): Promise<any>;
|
|
47
|
-
/**
|
|
48
|
-
* Get security status
|
|
49
|
-
*/
|
|
50
|
-
getSecurityStatus(): {
|
|
51
|
-
tlsEnabled: boolean;
|
|
52
|
-
peerVerification: boolean;
|
|
53
|
-
certificatePinning: boolean;
|
|
54
|
-
minTLSVersion: string;
|
|
55
|
-
environment: string;
|
|
56
|
-
certificateInfo?: any;
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Create security error
|
|
60
|
-
*/
|
|
61
|
-
private createSecurityError;
|
|
62
|
-
/**
|
|
63
|
-
* Close transport and clear security context
|
|
64
|
-
*/
|
|
65
|
-
close(): Promise<void>;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Create secure QUIC transport with configuration validation
|
|
69
|
-
*/
|
|
70
|
-
export declare function createSecureQUICTransport(config: Partial<SecureQUICConfig>): Promise<SecureQUICTransport>;
|
|
71
|
-
//# sourceMappingURL=SecureQUICTransport.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SecureQUICTransport.d.ts","sourceRoot":"","sources":["../../../src/core/transport/SecureQUICTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAGjF,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,QAAQ,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG;QACvC,oCAAoC;QACpC,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IACpD,OAAO,CAAC,cAAc,CAAC,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,WAAW,CAA+B;;IAQlD;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8HzD;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0CvD;;OAEG;IACH,iBAAiB,IAAI;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,GAAG,CAAC;KACvB;IA0BD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAChC,OAAO,CAAC,mBAAmB,CAAC,CA4C9B"}
|