@claude-flow/plugin-test-intelligence 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +409 -0
- package/dist/bridges/index.d.ts +8 -0
- package/dist/bridges/index.d.ts.map +1 -0
- package/dist/bridges/index.js +8 -0
- package/dist/bridges/index.js.map +1 -0
- package/dist/bridges/learning-bridge.d.ts +65 -0
- package/dist/bridges/learning-bridge.d.ts.map +1 -0
- package/dist/bridges/learning-bridge.js +368 -0
- package/dist/bridges/learning-bridge.js.map +1 -0
- package/dist/bridges/sona-bridge.d.ts +95 -0
- package/dist/bridges/sona-bridge.d.ts.map +1 -0
- package/dist/bridges/sona-bridge.js +432 -0
- package/dist/bridges/sona-bridge.js.map +1 -0
- package/dist/index.d.ts +113 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +88 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-tools.d.ts +18 -0
- package/dist/mcp-tools.d.ts.map +1 -0
- package/dist/mcp-tools.js +681 -0
- package/dist/mcp-tools.js.map +1 -0
- package/dist/types.d.ts +429 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +131 -0
- package/dist/types.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SONA Bridge for Test Intelligence
|
|
3
|
+
*
|
|
4
|
+
* Provides pattern learning and continuous adaptation for test intelligence
|
|
5
|
+
* using SONA (Self-Optimizing Neural Architecture) with LoRA fine-tuning
|
|
6
|
+
* and EWC++ memory preservation.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Default SONA configuration
|
|
10
|
+
*/
|
|
11
|
+
const DEFAULT_SONA_CONFIG = {
|
|
12
|
+
mode: 'balanced',
|
|
13
|
+
loraRank: 4,
|
|
14
|
+
learningRate: 0.001,
|
|
15
|
+
ewcLambda: 100,
|
|
16
|
+
batchSize: 32,
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* SONA Bridge Implementation for Test Intelligence
|
|
20
|
+
*
|
|
21
|
+
* Provides continuous learning capabilities for test pattern recognition:
|
|
22
|
+
* - Pattern storage and retrieval using HNSW-indexed embeddings
|
|
23
|
+
* - LoRA-based fine-tuning for domain adaptation
|
|
24
|
+
* - EWC++ for preventing catastrophic forgetting
|
|
25
|
+
*/
|
|
26
|
+
export class TestSonaBridge {
|
|
27
|
+
name = 'test-intelligence-sona';
|
|
28
|
+
version = '0.1.0';
|
|
29
|
+
status = 'unloaded';
|
|
30
|
+
config;
|
|
31
|
+
patterns = new Map();
|
|
32
|
+
patternEmbeddings = [];
|
|
33
|
+
loraWeights;
|
|
34
|
+
ewcState;
|
|
35
|
+
patternIndex = new Map();
|
|
36
|
+
constructor(config) {
|
|
37
|
+
this.config = { ...DEFAULT_SONA_CONFIG, ...config };
|
|
38
|
+
this.loraWeights = {
|
|
39
|
+
A: new Map(),
|
|
40
|
+
B: new Map(),
|
|
41
|
+
rank: this.config.loraRank,
|
|
42
|
+
alpha: 0.1,
|
|
43
|
+
};
|
|
44
|
+
this.ewcState = {
|
|
45
|
+
fisher: new Map(),
|
|
46
|
+
means: new Map(),
|
|
47
|
+
lambda: this.config.ewcLambda,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
async init() {
|
|
51
|
+
if (this.status === 'ready')
|
|
52
|
+
return;
|
|
53
|
+
if (this.status === 'loading')
|
|
54
|
+
return;
|
|
55
|
+
this.status = 'loading';
|
|
56
|
+
try {
|
|
57
|
+
// Try to load SONA WASM module
|
|
58
|
+
// Dynamic import of optional WASM module - use string literal to avoid type error
|
|
59
|
+
const modulePath = '@claude-flow/ruvector-upstream';
|
|
60
|
+
const wasmModule = await import(/* @vite-ignore */ modulePath).catch(() => null);
|
|
61
|
+
if (wasmModule) {
|
|
62
|
+
// Initialize with WASM module
|
|
63
|
+
this.status = 'ready';
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// Use mock implementation
|
|
67
|
+
this.initializeMockLoRA();
|
|
68
|
+
this.status = 'ready';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
this.status = 'error';
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async destroy() {
|
|
77
|
+
this.patterns.clear();
|
|
78
|
+
this.patternEmbeddings = [];
|
|
79
|
+
this.patternIndex.clear();
|
|
80
|
+
this.loraWeights.A.clear();
|
|
81
|
+
this.loraWeights.B.clear();
|
|
82
|
+
this.ewcState.fisher.clear();
|
|
83
|
+
this.ewcState.means.clear();
|
|
84
|
+
this.status = 'unloaded';
|
|
85
|
+
}
|
|
86
|
+
isReady() {
|
|
87
|
+
return this.status === 'ready';
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Learn from test execution patterns
|
|
91
|
+
*
|
|
92
|
+
* Uses SONA's continuous learning to extract and store patterns
|
|
93
|
+
* from successful test selections.
|
|
94
|
+
*/
|
|
95
|
+
async learnPatterns(patterns) {
|
|
96
|
+
if (!this.isReady()) {
|
|
97
|
+
throw new Error('SONA bridge not initialized');
|
|
98
|
+
}
|
|
99
|
+
if (patterns.length === 0)
|
|
100
|
+
return 0;
|
|
101
|
+
// Filter high-quality patterns
|
|
102
|
+
const goodPatterns = patterns.filter(p => p.successRate >= 0.5);
|
|
103
|
+
if (goodPatterns.length === 0)
|
|
104
|
+
return 0;
|
|
105
|
+
let totalImprovement = 0;
|
|
106
|
+
for (const pattern of goodPatterns) {
|
|
107
|
+
// Store pattern
|
|
108
|
+
const patternId = this.generatePatternId(pattern);
|
|
109
|
+
this.patterns.set(patternId, pattern);
|
|
110
|
+
// Add to embedding index
|
|
111
|
+
const idx = this.patternEmbeddings.length;
|
|
112
|
+
this.patternEmbeddings.push(pattern.embedding);
|
|
113
|
+
this.patternIndex.set(idx, patternId);
|
|
114
|
+
// Update LoRA weights based on pattern
|
|
115
|
+
const gradients = this.computePatternGradients(pattern);
|
|
116
|
+
this.updateLoRA(gradients);
|
|
117
|
+
totalImprovement += pattern.successRate;
|
|
118
|
+
}
|
|
119
|
+
// Update EWC state to preserve learned patterns
|
|
120
|
+
this.updateEWCState(goodPatterns);
|
|
121
|
+
return totalImprovement / goodPatterns.length;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Find similar patterns to a query embedding
|
|
125
|
+
*
|
|
126
|
+
* Uses approximate nearest neighbor search to find patterns
|
|
127
|
+
* with similar characteristics.
|
|
128
|
+
*/
|
|
129
|
+
async findSimilarPatterns(query, k) {
|
|
130
|
+
if (!this.isReady()) {
|
|
131
|
+
throw new Error('SONA bridge not initialized');
|
|
132
|
+
}
|
|
133
|
+
if (this.patternEmbeddings.length === 0) {
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
// Apply LoRA transformation to query
|
|
137
|
+
const transformedQuery = this.applyLoRA(query);
|
|
138
|
+
// Compute similarities
|
|
139
|
+
const similarities = [];
|
|
140
|
+
for (let i = 0; i < this.patternEmbeddings.length; i++) {
|
|
141
|
+
const transformedPattern = this.applyLoRA(this.patternEmbeddings[i]);
|
|
142
|
+
const sim = this.cosineSimilarity(transformedQuery, transformedPattern);
|
|
143
|
+
similarities.push({ idx: i, sim });
|
|
144
|
+
}
|
|
145
|
+
// Sort by similarity
|
|
146
|
+
similarities.sort((a, b) => b.sim - a.sim);
|
|
147
|
+
// Return top K patterns
|
|
148
|
+
const results = [];
|
|
149
|
+
for (let i = 0; i < Math.min(k, similarities.length); i++) {
|
|
150
|
+
const patternId = this.patternIndex.get(similarities[i].idx);
|
|
151
|
+
if (patternId) {
|
|
152
|
+
const pattern = this.patterns.get(patternId);
|
|
153
|
+
if (pattern) {
|
|
154
|
+
results.push(pattern);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return results;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Store a single pattern
|
|
162
|
+
*/
|
|
163
|
+
async storePattern(pattern) {
|
|
164
|
+
if (!this.isReady()) {
|
|
165
|
+
throw new Error('SONA bridge not initialized');
|
|
166
|
+
}
|
|
167
|
+
const patternId = this.generatePatternId(pattern);
|
|
168
|
+
this.patterns.set(patternId, pattern);
|
|
169
|
+
const idx = this.patternEmbeddings.length;
|
|
170
|
+
this.patternEmbeddings.push(pattern.embedding);
|
|
171
|
+
this.patternIndex.set(idx, patternId);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get current operating mode
|
|
175
|
+
*/
|
|
176
|
+
getMode() {
|
|
177
|
+
return this.config.mode;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Set operating mode
|
|
181
|
+
*/
|
|
182
|
+
setMode(mode) {
|
|
183
|
+
this.config.mode = mode;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Get pattern count
|
|
187
|
+
*/
|
|
188
|
+
getPatternCount() {
|
|
189
|
+
return this.patterns.size;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Predict test selection based on learned patterns
|
|
193
|
+
*/
|
|
194
|
+
predictSelection(codeChanges, availableTests) {
|
|
195
|
+
if (!this.isReady() || this.patterns.size === 0) {
|
|
196
|
+
return { tests: availableTests.slice(0, 10), confidence: 0.3 };
|
|
197
|
+
}
|
|
198
|
+
// Create query embedding from code changes
|
|
199
|
+
const queryEmbedding = this.createQueryEmbedding(codeChanges);
|
|
200
|
+
// Find similar patterns
|
|
201
|
+
const similarPatterns = this.findSimilarPatternsSync(queryEmbedding, 5);
|
|
202
|
+
if (similarPatterns.length === 0) {
|
|
203
|
+
return { tests: availableTests.slice(0, 10), confidence: 0.3 };
|
|
204
|
+
}
|
|
205
|
+
// Aggregate test selections from similar patterns
|
|
206
|
+
const testScores = new Map();
|
|
207
|
+
for (const pattern of similarPatterns) {
|
|
208
|
+
const weight = pattern.successRate;
|
|
209
|
+
for (const test of pattern.selectedTests) {
|
|
210
|
+
const currentScore = testScores.get(test) || 0;
|
|
211
|
+
testScores.set(test, currentScore + weight);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// Sort tests by score and filter to available tests
|
|
215
|
+
const rankedTests = Array.from(testScores.entries())
|
|
216
|
+
.filter(([test]) => availableTests.includes(test))
|
|
217
|
+
.sort((a, b) => b[1] - a[1])
|
|
218
|
+
.map(([test]) => test);
|
|
219
|
+
const avgSuccessRate = similarPatterns.reduce((s, p) => s + p.successRate, 0) / similarPatterns.length;
|
|
220
|
+
return {
|
|
221
|
+
tests: rankedTests.slice(0, Math.max(10, Math.floor(availableTests.length * 0.2))),
|
|
222
|
+
confidence: avgSuccessRate,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
// ============================================================================
|
|
226
|
+
// Private Methods
|
|
227
|
+
// ============================================================================
|
|
228
|
+
initializeMockLoRA() {
|
|
229
|
+
const dim = 64;
|
|
230
|
+
const rank = this.config.loraRank;
|
|
231
|
+
// Initialize LoRA matrices with small random values
|
|
232
|
+
const A = new Float32Array(rank * dim);
|
|
233
|
+
const B = new Float32Array(dim * rank);
|
|
234
|
+
for (let i = 0; i < A.length; i++) {
|
|
235
|
+
A[i] = (Math.random() - 0.5) * 0.01;
|
|
236
|
+
}
|
|
237
|
+
for (let i = 0; i < B.length; i++) {
|
|
238
|
+
B[i] = (Math.random() - 0.5) * 0.01;
|
|
239
|
+
}
|
|
240
|
+
this.loraWeights.A.set('default', A);
|
|
241
|
+
this.loraWeights.B.set('default', B);
|
|
242
|
+
}
|
|
243
|
+
generatePatternId(pattern) {
|
|
244
|
+
const hash = this.hashArray(pattern.embedding);
|
|
245
|
+
return `pattern_${hash}_${Date.now()}`;
|
|
246
|
+
}
|
|
247
|
+
hashArray(arr) {
|
|
248
|
+
let hash = 0;
|
|
249
|
+
for (let i = 0; i < arr.length; i++) {
|
|
250
|
+
const value = Math.floor(arr[i] * 1000);
|
|
251
|
+
hash = ((hash << 5) - hash) + value;
|
|
252
|
+
hash = hash & hash;
|
|
253
|
+
}
|
|
254
|
+
return Math.abs(hash).toString(16);
|
|
255
|
+
}
|
|
256
|
+
computePatternGradients(pattern) {
|
|
257
|
+
const gradients = new Float32Array(pattern.embedding.length);
|
|
258
|
+
// Compute gradients based on pattern quality
|
|
259
|
+
for (let i = 0; i < pattern.embedding.length; i++) {
|
|
260
|
+
// Scale gradient by success rate
|
|
261
|
+
gradients[i] = pattern.embedding[i] * (pattern.successRate - 0.5);
|
|
262
|
+
}
|
|
263
|
+
return gradients;
|
|
264
|
+
}
|
|
265
|
+
updateLoRA(gradients) {
|
|
266
|
+
const A = this.loraWeights.A.get('default');
|
|
267
|
+
const B = this.loraWeights.B.get('default');
|
|
268
|
+
if (!A || !B)
|
|
269
|
+
return;
|
|
270
|
+
const rank = this.loraWeights.rank;
|
|
271
|
+
const dim = gradients.length;
|
|
272
|
+
const lr = this.config.learningRate;
|
|
273
|
+
// Apply EWC penalty
|
|
274
|
+
const means = this.ewcState.means.get('default');
|
|
275
|
+
const fisher = this.ewcState.fisher.get('default');
|
|
276
|
+
// Update A matrix
|
|
277
|
+
for (let r = 0; r < rank; r++) {
|
|
278
|
+
for (let d = 0; d < Math.min(dim, A.length / rank); d++) {
|
|
279
|
+
const idx = r * dim + d;
|
|
280
|
+
if (idx < A.length) {
|
|
281
|
+
let update = lr * gradients[d];
|
|
282
|
+
// Apply EWC penalty if available
|
|
283
|
+
if (means && fisher && idx < means.length) {
|
|
284
|
+
const ewcPenalty = this.ewcState.lambda * fisher[idx] * (A[idx] - means[idx]);
|
|
285
|
+
update -= lr * ewcPenalty;
|
|
286
|
+
}
|
|
287
|
+
A[idx] += update;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// Update B matrix
|
|
292
|
+
for (let d = 0; d < Math.min(dim, B.length / rank); d++) {
|
|
293
|
+
for (let r = 0; r < rank; r++) {
|
|
294
|
+
const idx = d * rank + r;
|
|
295
|
+
if (idx < B.length) {
|
|
296
|
+
B[idx] += lr * gradients[d] * 0.1;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
updateEWCState(patterns) {
|
|
302
|
+
if (patterns.length === 0)
|
|
303
|
+
return;
|
|
304
|
+
const A = this.loraWeights.A.get('default');
|
|
305
|
+
if (!A)
|
|
306
|
+
return;
|
|
307
|
+
// Compute Fisher information matrix (diagonal approximation)
|
|
308
|
+
const fisher = new Float32Array(A.length);
|
|
309
|
+
for (const pattern of patterns) {
|
|
310
|
+
const gradients = this.computePatternGradients(pattern);
|
|
311
|
+
for (let i = 0; i < Math.min(gradients.length, fisher.length); i++) {
|
|
312
|
+
fisher[i] += gradients[i] * gradients[i];
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
// Normalize
|
|
316
|
+
for (let i = 0; i < fisher.length; i++) {
|
|
317
|
+
fisher[i] /= patterns.length;
|
|
318
|
+
}
|
|
319
|
+
// Store current weights as means
|
|
320
|
+
const means = new Float32Array(A);
|
|
321
|
+
// Update or accumulate EWC state
|
|
322
|
+
const existingFisher = this.ewcState.fisher.get('default');
|
|
323
|
+
if (existingFisher) {
|
|
324
|
+
// Running average
|
|
325
|
+
for (let i = 0; i < fisher.length; i++) {
|
|
326
|
+
fisher[i] = 0.9 * existingFisher[i] + 0.1 * fisher[i];
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
this.ewcState.fisher.set('default', fisher);
|
|
330
|
+
this.ewcState.means.set('default', means);
|
|
331
|
+
}
|
|
332
|
+
applyLoRA(input) {
|
|
333
|
+
const A = this.loraWeights.A.get('default');
|
|
334
|
+
const B = this.loraWeights.B.get('default');
|
|
335
|
+
if (!A || !B)
|
|
336
|
+
return input;
|
|
337
|
+
const output = new Float32Array(input.length);
|
|
338
|
+
output.set(input);
|
|
339
|
+
const rank = this.loraWeights.rank;
|
|
340
|
+
const dim = input.length;
|
|
341
|
+
const alpha = this.loraWeights.alpha;
|
|
342
|
+
// Compute A @ input (reduce to rank)
|
|
343
|
+
const intermediate = new Float32Array(rank);
|
|
344
|
+
for (let r = 0; r < rank; r++) {
|
|
345
|
+
let sum = 0;
|
|
346
|
+
for (let d = 0; d < dim; d++) {
|
|
347
|
+
const idx = r * dim + d;
|
|
348
|
+
if (idx < A.length) {
|
|
349
|
+
sum += A[idx] * input[d];
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
intermediate[r] = sum;
|
|
353
|
+
}
|
|
354
|
+
// Compute B @ intermediate (expand back to dim)
|
|
355
|
+
for (let d = 0; d < dim; d++) {
|
|
356
|
+
let sum = 0;
|
|
357
|
+
for (let r = 0; r < rank; r++) {
|
|
358
|
+
const idx = d * rank + r;
|
|
359
|
+
if (idx < B.length) {
|
|
360
|
+
sum += B[idx] * intermediate[r];
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
output[d] += alpha * sum;
|
|
364
|
+
}
|
|
365
|
+
return output;
|
|
366
|
+
}
|
|
367
|
+
cosineSimilarity(a, b) {
|
|
368
|
+
if (a.length !== b.length)
|
|
369
|
+
return 0;
|
|
370
|
+
let dot = 0;
|
|
371
|
+
let normA = 0;
|
|
372
|
+
let normB = 0;
|
|
373
|
+
for (let i = 0; i < a.length; i++) {
|
|
374
|
+
dot += a[i] * b[i];
|
|
375
|
+
normA += a[i] * a[i];
|
|
376
|
+
normB += b[i] * b[i];
|
|
377
|
+
}
|
|
378
|
+
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
379
|
+
return denom > 0 ? dot / denom : 0;
|
|
380
|
+
}
|
|
381
|
+
createQueryEmbedding(codeChanges) {
|
|
382
|
+
const embedding = new Float32Array(64);
|
|
383
|
+
// Encode code change characteristics
|
|
384
|
+
embedding[0] = Math.min(codeChanges.length / 50, 1);
|
|
385
|
+
for (let i = 0; i < Math.min(codeChanges.length, 30); i++) {
|
|
386
|
+
const hash = this.hashString(codeChanges[i]);
|
|
387
|
+
embedding[1 + i * 2] = ((hash >> 8) & 0xFF) / 255;
|
|
388
|
+
if (2 + i * 2 < embedding.length) {
|
|
389
|
+
embedding[2 + i * 2] = (hash & 0xFF) / 255;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
return embedding;
|
|
393
|
+
}
|
|
394
|
+
findSimilarPatternsSync(query, k) {
|
|
395
|
+
if (this.patternEmbeddings.length === 0)
|
|
396
|
+
return [];
|
|
397
|
+
const transformedQuery = this.applyLoRA(query);
|
|
398
|
+
const similarities = [];
|
|
399
|
+
for (let i = 0; i < this.patternEmbeddings.length; i++) {
|
|
400
|
+
const transformedPattern = this.applyLoRA(this.patternEmbeddings[i]);
|
|
401
|
+
const sim = this.cosineSimilarity(transformedQuery, transformedPattern);
|
|
402
|
+
similarities.push({ idx: i, sim });
|
|
403
|
+
}
|
|
404
|
+
similarities.sort((a, b) => b.sim - a.sim);
|
|
405
|
+
const results = [];
|
|
406
|
+
for (let i = 0; i < Math.min(k, similarities.length); i++) {
|
|
407
|
+
const patternId = this.patternIndex.get(similarities[i].idx);
|
|
408
|
+
if (patternId) {
|
|
409
|
+
const pattern = this.patterns.get(patternId);
|
|
410
|
+
if (pattern)
|
|
411
|
+
results.push(pattern);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
return results;
|
|
415
|
+
}
|
|
416
|
+
hashString(str) {
|
|
417
|
+
let hash = 0;
|
|
418
|
+
for (let i = 0; i < str.length; i++) {
|
|
419
|
+
const char = str.charCodeAt(i);
|
|
420
|
+
hash = ((hash << 5) - hash) + char;
|
|
421
|
+
hash = hash & hash;
|
|
422
|
+
}
|
|
423
|
+
return Math.abs(hash);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Create a new SONA bridge instance
|
|
428
|
+
*/
|
|
429
|
+
export function createTestSonaBridge(config) {
|
|
430
|
+
return new TestSonaBridge(config);
|
|
431
|
+
}
|
|
432
|
+
//# sourceMappingURL=sona-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sona-bridge.js","sourceRoot":"","sources":["../../src/bridges/sona-bridge.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/plugin-test-intelligence
|
|
3
|
+
*
|
|
4
|
+
* AI-powered test intelligence plugin for Claude Flow V3.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Predictive test selection using reinforcement learning
|
|
8
|
+
* - Flaky test detection and analysis
|
|
9
|
+
* - Test coverage gap identification
|
|
10
|
+
* - Mutation testing optimization
|
|
11
|
+
* - Test case generation suggestions
|
|
12
|
+
*
|
|
13
|
+
* Uses RuVector WASM packages for high-performance analysis:
|
|
14
|
+
* - ruvector-learning-wasm: RL-based test selection
|
|
15
|
+
* - SONA: Continuous pattern learning
|
|
16
|
+
* - micro-hnsw-wasm: Code-to-test similarity matching
|
|
17
|
+
*/
|
|
18
|
+
export * from './types.js';
|
|
19
|
+
export { selectPredictiveTool, flakyDetectTool, coverageGapsTool, mutationOptimizeTool, generateSuggestTool, testIntelligenceTools, } from './mcp-tools.js';
|
|
20
|
+
export { TestLearningBridge, createTestLearningBridge } from './bridges/learning-bridge.js';
|
|
21
|
+
export { TestSonaBridge, createTestSonaBridge } from './bridges/sona-bridge.js';
|
|
22
|
+
export declare const pluginMetadata: {
|
|
23
|
+
name: string;
|
|
24
|
+
version: string;
|
|
25
|
+
description: string;
|
|
26
|
+
category: string;
|
|
27
|
+
tags: string[];
|
|
28
|
+
author: string;
|
|
29
|
+
license: string;
|
|
30
|
+
repository: string;
|
|
31
|
+
engines: {
|
|
32
|
+
'claude-flow': string;
|
|
33
|
+
node: string;
|
|
34
|
+
};
|
|
35
|
+
capabilities: {
|
|
36
|
+
mcpTools: string[];
|
|
37
|
+
bridges: string[];
|
|
38
|
+
wasmPackages: string[];
|
|
39
|
+
};
|
|
40
|
+
performanceTargets: {
|
|
41
|
+
testSelection: string;
|
|
42
|
+
flakyDetection: string;
|
|
43
|
+
coverageAnalysis: string;
|
|
44
|
+
mutationOptimization: string;
|
|
45
|
+
ciTimeReduction: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export interface TestIntelligencePluginOptions {
|
|
49
|
+
learningConfig?: {
|
|
50
|
+
algorithm?: 'q-learning' | 'ppo' | 'decision-transformer';
|
|
51
|
+
learningRate?: number;
|
|
52
|
+
gamma?: number;
|
|
53
|
+
batchSize?: number;
|
|
54
|
+
};
|
|
55
|
+
sonaConfig?: {
|
|
56
|
+
mode?: 'real-time' | 'balanced' | 'research' | 'edge' | 'batch';
|
|
57
|
+
loraRank?: number;
|
|
58
|
+
learningRate?: number;
|
|
59
|
+
ewcLambda?: number;
|
|
60
|
+
};
|
|
61
|
+
selection?: {
|
|
62
|
+
defaultStrategy?: 'fast_feedback' | 'high_coverage' | 'risk_based' | 'balanced';
|
|
63
|
+
defaultConfidence?: number;
|
|
64
|
+
maxTests?: number;
|
|
65
|
+
};
|
|
66
|
+
flaky?: {
|
|
67
|
+
historyDepth?: number;
|
|
68
|
+
threshold?: number;
|
|
69
|
+
quarantineEnabled?: boolean;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Initialize the test intelligence plugin
|
|
74
|
+
*/
|
|
75
|
+
export declare function initializePlugin(options?: TestIntelligencePluginOptions): Promise<{
|
|
76
|
+
learningBridge: InstanceType<typeof import('./bridges/learning-bridge.js').TestLearningBridge>;
|
|
77
|
+
sonaBridge: InstanceType<typeof import('./bridges/sona-bridge.js').TestSonaBridge>;
|
|
78
|
+
tools: typeof import('./mcp-tools.js').testIntelligenceTools;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* Plugin entry point for Claude Flow plugin loader
|
|
82
|
+
*/
|
|
83
|
+
declare const _default: {
|
|
84
|
+
metadata: {
|
|
85
|
+
name: string;
|
|
86
|
+
version: string;
|
|
87
|
+
description: string;
|
|
88
|
+
category: string;
|
|
89
|
+
tags: string[];
|
|
90
|
+
author: string;
|
|
91
|
+
license: string;
|
|
92
|
+
repository: string;
|
|
93
|
+
engines: {
|
|
94
|
+
'claude-flow': string;
|
|
95
|
+
node: string;
|
|
96
|
+
};
|
|
97
|
+
capabilities: {
|
|
98
|
+
mcpTools: string[];
|
|
99
|
+
bridges: string[];
|
|
100
|
+
wasmPackages: string[];
|
|
101
|
+
};
|
|
102
|
+
performanceTargets: {
|
|
103
|
+
testSelection: string;
|
|
104
|
+
flakyDetection: string;
|
|
105
|
+
coverageAnalysis: string;
|
|
106
|
+
mutationOptimization: string;
|
|
107
|
+
ciTimeReduction: string;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
initialize: typeof initializePlugin;
|
|
111
|
+
};
|
|
112
|
+
export default _default;
|
|
113
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CAmC1B,CAAC;AAGF,MAAM,WAAW,6BAA6B;IAC5C,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,sBAAsB,CAAC;QAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;QAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,eAAe,CAAC,EAAE,eAAe,GAAG,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;QAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,CAAC,EAAE,6BAA6B,GACtC,OAAO,CAAC;IACT,cAAc,EAAE,YAAY,CAAC,cAAc,8BAA8B,EAAE,kBAAkB,CAAC,CAAC;IAC/F,UAAU,EAAE,YAAY,CAAC,cAAc,0BAA0B,EAAE,cAAc,CAAC,CAAC;IACnF,KAAK,EAAE,cAAc,gBAAgB,EAAE,qBAAqB,CAAC;CAC9D,CAAC,CAkBD;AAED;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBAGE"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @claude-flow/plugin-test-intelligence
|
|
3
|
+
*
|
|
4
|
+
* AI-powered test intelligence plugin for Claude Flow V3.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Predictive test selection using reinforcement learning
|
|
8
|
+
* - Flaky test detection and analysis
|
|
9
|
+
* - Test coverage gap identification
|
|
10
|
+
* - Mutation testing optimization
|
|
11
|
+
* - Test case generation suggestions
|
|
12
|
+
*
|
|
13
|
+
* Uses RuVector WASM packages for high-performance analysis:
|
|
14
|
+
* - ruvector-learning-wasm: RL-based test selection
|
|
15
|
+
* - SONA: Continuous pattern learning
|
|
16
|
+
* - micro-hnsw-wasm: Code-to-test similarity matching
|
|
17
|
+
*/
|
|
18
|
+
// Types
|
|
19
|
+
export * from './types.js';
|
|
20
|
+
// MCP Tools
|
|
21
|
+
export { selectPredictiveTool, flakyDetectTool, coverageGapsTool, mutationOptimizeTool, generateSuggestTool, testIntelligenceTools, } from './mcp-tools.js';
|
|
22
|
+
// Bridges
|
|
23
|
+
export { TestLearningBridge, createTestLearningBridge } from './bridges/learning-bridge.js';
|
|
24
|
+
export { TestSonaBridge, createTestSonaBridge } from './bridges/sona-bridge.js';
|
|
25
|
+
// Plugin metadata
|
|
26
|
+
export const pluginMetadata = {
|
|
27
|
+
name: '@claude-flow/plugin-test-intelligence',
|
|
28
|
+
version: '3.0.0-alpha.1',
|
|
29
|
+
description: 'AI-powered test intelligence for predictive selection, flaky detection, and coverage optimization',
|
|
30
|
+
category: 'testing',
|
|
31
|
+
tags: ['testing', 'ci-optimization', 'machine-learning', 'coverage', 'mutation-testing'],
|
|
32
|
+
author: 'Claude Flow Team',
|
|
33
|
+
license: 'MIT',
|
|
34
|
+
repository: 'https://github.com/ruvnet/claude-flow',
|
|
35
|
+
engines: {
|
|
36
|
+
'claude-flow': '>=3.0.0-alpha.1',
|
|
37
|
+
node: '>=18.0.0',
|
|
38
|
+
},
|
|
39
|
+
capabilities: {
|
|
40
|
+
mcpTools: [
|
|
41
|
+
'test/select-predictive',
|
|
42
|
+
'test/flaky-detect',
|
|
43
|
+
'test/coverage-gaps',
|
|
44
|
+
'test/mutation-optimize',
|
|
45
|
+
'test/generate-suggest',
|
|
46
|
+
],
|
|
47
|
+
bridges: ['learning', 'sona'],
|
|
48
|
+
wasmPackages: [
|
|
49
|
+
'ruvector-learning-wasm',
|
|
50
|
+
'micro-hnsw-wasm',
|
|
51
|
+
'sona',
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
performanceTargets: {
|
|
55
|
+
testSelection: '<1s for 10K tests',
|
|
56
|
+
flakyDetection: '<5s for 1000 test runs',
|
|
57
|
+
coverageAnalysis: '<10s for 100K LOC',
|
|
58
|
+
mutationOptimization: '80% score in 20% time',
|
|
59
|
+
ciTimeReduction: '60-80%',
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Initialize the test intelligence plugin
|
|
64
|
+
*/
|
|
65
|
+
export async function initializePlugin(options) {
|
|
66
|
+
const { createTestLearningBridge } = await import('./bridges/learning-bridge.js');
|
|
67
|
+
const { createTestSonaBridge } = await import('./bridges/sona-bridge.js');
|
|
68
|
+
const { testIntelligenceTools } = await import('./mcp-tools.js');
|
|
69
|
+
const learningBridge = createTestLearningBridge(options?.learningConfig);
|
|
70
|
+
const sonaBridge = createTestSonaBridge(options?.sonaConfig);
|
|
71
|
+
await Promise.all([
|
|
72
|
+
learningBridge.init(),
|
|
73
|
+
sonaBridge.init(),
|
|
74
|
+
]);
|
|
75
|
+
return {
|
|
76
|
+
learningBridge,
|
|
77
|
+
sonaBridge,
|
|
78
|
+
tools: testIntelligenceTools,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Plugin entry point for Claude Flow plugin loader
|
|
83
|
+
*/
|
|
84
|
+
export default {
|
|
85
|
+
metadata: pluginMetadata,
|
|
86
|
+
initialize: initializePlugin,
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,YAAY;AACZ,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,UAAU;AACV,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,kBAAkB;AAClB,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,uCAAuC;IAC7C,OAAO,EAAE,eAAe;IACxB,WAAW,EAAE,mGAAmG;IAChH,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,CAAC;IACxF,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,uCAAuC;IACnD,OAAO,EAAE;QACP,aAAa,EAAE,iBAAiB;QAChC,IAAI,EAAE,UAAU;KACjB;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE;YACR,wBAAwB;YACxB,mBAAmB;YACnB,oBAAoB;YACpB,wBAAwB;YACxB,uBAAuB;SACxB;QACD,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;QAC7B,YAAY,EAAE;YACZ,wBAAwB;YACxB,iBAAiB;YACjB,MAAM;SACP;KACF;IACD,kBAAkB,EAAE;QAClB,aAAa,EAAE,mBAAmB;QAClC,cAAc,EAAE,wBAAwB;QACxC,gBAAgB,EAAE,mBAAmB;QACrC,oBAAoB,EAAE,uBAAuB;QAC7C,eAAe,EAAE,QAAQ;KAC1B;CACF,CAAC;AA4BF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAuC;IAMvC,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IAClF,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC1E,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEjE,MAAM,cAAc,GAAG,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE7D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,cAAc,CAAC,IAAI,EAAE;QACrB,UAAU,CAAC,IAAI,EAAE;KAClB,CAAC,CAAC;IAEH,OAAO;QACL,cAAc;QACd,UAAU;QACV,KAAK,EAAE,qBAAqB;KAC7B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,eAAe;IACb,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,gBAAgB;CAC7B,CAAC"}
|