@nahisaho/yata-local 1.6.6
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/dist/auto-updater.d.ts +101 -0
- package/dist/auto-updater.d.ts.map +1 -0
- package/dist/auto-updater.js +402 -0
- package/dist/auto-updater.js.map +1 -0
- package/dist/database.d.ts +229 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +959 -0
- package/dist/database.js.map +1 -0
- package/dist/index.d.ts +298 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +436 -0
- package/dist/index.js.map +1 -0
- package/dist/io.d.ts +77 -0
- package/dist/io.d.ts.map +1 -0
- package/dist/io.js +403 -0
- package/dist/io.js.map +1 -0
- package/dist/kgpr/diff-engine.d.ts +110 -0
- package/dist/kgpr/diff-engine.d.ts.map +1 -0
- package/dist/kgpr/diff-engine.js +335 -0
- package/dist/kgpr/diff-engine.js.map +1 -0
- package/dist/kgpr/index.d.ts +16 -0
- package/dist/kgpr/index.d.ts.map +1 -0
- package/dist/kgpr/index.js +14 -0
- package/dist/kgpr/index.js.map +1 -0
- package/dist/kgpr/kgpr-manager.d.ts +122 -0
- package/dist/kgpr/kgpr-manager.d.ts.map +1 -0
- package/dist/kgpr/kgpr-manager.js +344 -0
- package/dist/kgpr/kgpr-manager.js.map +1 -0
- package/dist/kgpr/privacy-filter.d.ts +109 -0
- package/dist/kgpr/privacy-filter.d.ts.map +1 -0
- package/dist/kgpr/privacy-filter.js +295 -0
- package/dist/kgpr/privacy-filter.js.map +1 -0
- package/dist/kgpr/types.d.ts +234 -0
- package/dist/kgpr/types.d.ts.map +1 -0
- package/dist/kgpr/types.js +54 -0
- package/dist/kgpr/types.js.map +1 -0
- package/dist/query-engine.d.ts +78 -0
- package/dist/query-engine.d.ts.map +1 -0
- package/dist/query-engine.js +368 -0
- package/dist/query-engine.js.map +1 -0
- package/dist/reasoning.d.ts +112 -0
- package/dist/reasoning.d.ts.map +1 -0
- package/dist/reasoning.js +455 -0
- package/dist/reasoning.js.map +1 -0
- package/dist/types.d.ts +580 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +37 -0
- package/dist/types.js.map +1 -0
- package/dist/wake-sleep/cycle-manager.d.ts +76 -0
- package/dist/wake-sleep/cycle-manager.d.ts.map +1 -0
- package/dist/wake-sleep/cycle-manager.js +291 -0
- package/dist/wake-sleep/cycle-manager.js.map +1 -0
- package/dist/wake-sleep/index.d.ts +15 -0
- package/dist/wake-sleep/index.d.ts.map +1 -0
- package/dist/wake-sleep/index.js +19 -0
- package/dist/wake-sleep/index.js.map +1 -0
- package/dist/wake-sleep/pattern-compressor.d.ts +86 -0
- package/dist/wake-sleep/pattern-compressor.d.ts.map +1 -0
- package/dist/wake-sleep/pattern-compressor.js +333 -0
- package/dist/wake-sleep/pattern-compressor.js.map +1 -0
- package/dist/wake-sleep/sleep-phase.d.ts +79 -0
- package/dist/wake-sleep/sleep-phase.d.ts.map +1 -0
- package/dist/wake-sleep/sleep-phase.js +329 -0
- package/dist/wake-sleep/sleep-phase.js.map +1 -0
- package/dist/wake-sleep/types.d.ts +244 -0
- package/dist/wake-sleep/types.d.ts.map +1 -0
- package/dist/wake-sleep/types.js +35 -0
- package/dist/wake-sleep/types.js.map +1 -0
- package/dist/wake-sleep/wake-phase.d.ts +83 -0
- package/dist/wake-sleep/wake-phase.d.ts.map +1 -0
- package/dist/wake-sleep/wake-phase.js +457 -0
- package/dist/wake-sleep/wake-phase.js.map +1 -0
- package/dist/yata-bridge.d.ts +78 -0
- package/dist/yata-bridge.d.ts.map +1 -0
- package/dist/yata-bridge.js +193 -0
- package/dist/yata-bridge.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Sleep Phase Implementation for YATA Local
|
|
3
|
+
* @module @nahisaho/yata-local/wake-sleep
|
|
4
|
+
* @version 0.1.0
|
|
5
|
+
* @license MIT
|
|
6
|
+
*
|
|
7
|
+
* Trace: REQ-WSL-002, TSK-WSL-002
|
|
8
|
+
*/
|
|
9
|
+
import { randomUUID } from 'crypto';
|
|
10
|
+
/**
|
|
11
|
+
* Sleep Phase - Pattern Clustering and Consolidation
|
|
12
|
+
*
|
|
13
|
+
* Responsible for:
|
|
14
|
+
* - Clustering similar patterns
|
|
15
|
+
* - Selecting representative patterns
|
|
16
|
+
* - Confidence management (update/decay)
|
|
17
|
+
*/
|
|
18
|
+
export class LocalSleepPhase {
|
|
19
|
+
options;
|
|
20
|
+
similarityMethod;
|
|
21
|
+
constructor(options = {}, similarityMethod = 'jaccard') {
|
|
22
|
+
this.options = {
|
|
23
|
+
similarityThreshold: options.similarityThreshold ?? 0.8,
|
|
24
|
+
minClusterSize: options.minClusterSize ?? 2,
|
|
25
|
+
maxClusters: options.maxClusters ?? 100,
|
|
26
|
+
};
|
|
27
|
+
this.similarityMethod = similarityMethod;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Cluster similar pattern candidates
|
|
31
|
+
*/
|
|
32
|
+
async cluster(candidates) {
|
|
33
|
+
const startTime = Date.now();
|
|
34
|
+
const clusters = [];
|
|
35
|
+
const unclustered = [];
|
|
36
|
+
const assigned = new Set();
|
|
37
|
+
// Sort by confidence (higher first)
|
|
38
|
+
const sorted = [...candidates].sort((a, b) => b.confidence - a.confidence);
|
|
39
|
+
for (const candidate of sorted) {
|
|
40
|
+
if (assigned.has(candidate.tempId))
|
|
41
|
+
continue;
|
|
42
|
+
// Try to find or create a cluster
|
|
43
|
+
let foundCluster = false;
|
|
44
|
+
for (const cluster of clusters) {
|
|
45
|
+
const similarity = this.calculateSimilarity(candidate.signature, cluster.centroid);
|
|
46
|
+
if (similarity >= this.options.similarityThreshold) {
|
|
47
|
+
// Add to existing cluster
|
|
48
|
+
cluster.patterns.push(candidate);
|
|
49
|
+
cluster.avgSimilarity = this.recalculateAvgSimilarity(cluster);
|
|
50
|
+
cluster.totalOccurrences++;
|
|
51
|
+
assigned.add(candidate.tempId);
|
|
52
|
+
foundCluster = true;
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (!foundCluster && clusters.length < this.options.maxClusters) {
|
|
57
|
+
// Create new cluster with this candidate as seed
|
|
58
|
+
const newCluster = {
|
|
59
|
+
clusterId: `CLUST-${Date.now()}-${randomUUID().substring(0, 8)}`,
|
|
60
|
+
patterns: [candidate],
|
|
61
|
+
representative: candidate,
|
|
62
|
+
avgSimilarity: 1.0,
|
|
63
|
+
centroid: candidate.signature,
|
|
64
|
+
totalOccurrences: 1,
|
|
65
|
+
};
|
|
66
|
+
clusters.push(newCluster);
|
|
67
|
+
assigned.add(candidate.tempId);
|
|
68
|
+
}
|
|
69
|
+
else if (!foundCluster) {
|
|
70
|
+
unclustered.push(candidate);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Select representatives for each cluster
|
|
74
|
+
for (const cluster of clusters) {
|
|
75
|
+
cluster.representative = this.selectRepresentative(cluster);
|
|
76
|
+
cluster.centroid = this.computeCentroid(cluster);
|
|
77
|
+
}
|
|
78
|
+
// Filter clusters by minimum size
|
|
79
|
+
const validClusters = clusters.filter(c => c.patterns.length >= this.options.minClusterSize);
|
|
80
|
+
// Add patterns from small clusters to unclustered
|
|
81
|
+
for (const cluster of clusters) {
|
|
82
|
+
if (cluster.patterns.length < this.options.minClusterSize) {
|
|
83
|
+
unclustered.push(...cluster.patterns);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
clusters: validClusters,
|
|
88
|
+
unclustered,
|
|
89
|
+
stats: {
|
|
90
|
+
totalPatterns: candidates.length,
|
|
91
|
+
clusteredPatterns: validClusters.reduce((sum, c) => sum + c.patterns.length, 0),
|
|
92
|
+
unclusteredPatterns: unclustered.length,
|
|
93
|
+
clustersFormed: validClusters.length,
|
|
94
|
+
avgClusterSize: validClusters.length > 0
|
|
95
|
+
? validClusters.reduce((sum, c) => sum + c.patterns.length, 0) / validClusters.length
|
|
96
|
+
: 0,
|
|
97
|
+
processingTimeMs: Date.now() - startTime,
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Select the representative pattern from a cluster
|
|
103
|
+
*/
|
|
104
|
+
selectRepresentative(cluster) {
|
|
105
|
+
// Score each pattern
|
|
106
|
+
const scored = cluster.patterns.map(pattern => ({
|
|
107
|
+
pattern,
|
|
108
|
+
score: this.scorePattern(pattern, cluster),
|
|
109
|
+
}));
|
|
110
|
+
// Sort by score (higher is better)
|
|
111
|
+
scored.sort((a, b) => b.score - a.score);
|
|
112
|
+
return scored[0]?.pattern ?? cluster.patterns[0];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Update confidence for a pattern based on usage
|
|
116
|
+
*/
|
|
117
|
+
updateConfidence(pattern, used) {
|
|
118
|
+
const now = new Date();
|
|
119
|
+
if (used) {
|
|
120
|
+
// Increase confidence and update usage
|
|
121
|
+
return {
|
|
122
|
+
...pattern,
|
|
123
|
+
confidence: Math.min(1.0, pattern.confidence + 0.05),
|
|
124
|
+
usageCount: pattern.usageCount + 1,
|
|
125
|
+
lastUsedAt: now,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
return pattern;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Decay confidence for unused patterns
|
|
132
|
+
*/
|
|
133
|
+
decay(pattern, decayRate = 0.01) {
|
|
134
|
+
const now = new Date();
|
|
135
|
+
const lastUsed = pattern.lastUsedAt ?? pattern.createdAt;
|
|
136
|
+
const daysSinceUse = Math.floor((now.getTime() - lastUsed.getTime()) / (1000 * 60 * 60 * 24));
|
|
137
|
+
// Decay based on days since last use
|
|
138
|
+
const decayFactor = Math.pow(1 - decayRate, daysSinceUse);
|
|
139
|
+
const newConfidence = pattern.confidence * decayFactor;
|
|
140
|
+
return {
|
|
141
|
+
...pattern,
|
|
142
|
+
confidence: Math.max(0.0, newConfidence),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Calculate similarity between two signatures
|
|
147
|
+
*/
|
|
148
|
+
calculateSimilarity(sig1, sig2) {
|
|
149
|
+
switch (this.similarityMethod) {
|
|
150
|
+
case 'jaccard':
|
|
151
|
+
return this.jaccardSimilarity(sig1, sig2);
|
|
152
|
+
case 'cosine':
|
|
153
|
+
return this.cosineSimilarity(sig1, sig2);
|
|
154
|
+
case 'levenshtein':
|
|
155
|
+
return this.levenshteinSimilarity(sig1, sig2);
|
|
156
|
+
case 'ast':
|
|
157
|
+
return this.astSimilarity(sig1, sig2);
|
|
158
|
+
default:
|
|
159
|
+
return this.jaccardSimilarity(sig1, sig2);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Jaccard similarity coefficient
|
|
164
|
+
*/
|
|
165
|
+
jaccardSimilarity(a, b) {
|
|
166
|
+
const tokensA = new Set(a.split('|'));
|
|
167
|
+
const tokensB = new Set(b.split('|'));
|
|
168
|
+
const intersection = new Set([...tokensA].filter(x => tokensB.has(x)));
|
|
169
|
+
const union = new Set([...tokensA, ...tokensB]);
|
|
170
|
+
if (union.size === 0)
|
|
171
|
+
return 0;
|
|
172
|
+
return intersection.size / union.size;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Cosine similarity (token-based)
|
|
176
|
+
*/
|
|
177
|
+
cosineSimilarity(a, b) {
|
|
178
|
+
const tokensA = a.split('|');
|
|
179
|
+
const tokensB = b.split('|');
|
|
180
|
+
// Build vocabulary
|
|
181
|
+
const vocab = new Set([...tokensA, ...tokensB]);
|
|
182
|
+
// Create frequency vectors
|
|
183
|
+
const vectorA = new Map();
|
|
184
|
+
const vectorB = new Map();
|
|
185
|
+
for (const token of tokensA) {
|
|
186
|
+
vectorA.set(token, (vectorA.get(token) ?? 0) + 1);
|
|
187
|
+
}
|
|
188
|
+
for (const token of tokensB) {
|
|
189
|
+
vectorB.set(token, (vectorB.get(token) ?? 0) + 1);
|
|
190
|
+
}
|
|
191
|
+
// Calculate dot product and magnitudes
|
|
192
|
+
let dotProduct = 0;
|
|
193
|
+
let magA = 0;
|
|
194
|
+
let magB = 0;
|
|
195
|
+
for (const token of vocab) {
|
|
196
|
+
const a = vectorA.get(token) ?? 0;
|
|
197
|
+
const b = vectorB.get(token) ?? 0;
|
|
198
|
+
dotProduct += a * b;
|
|
199
|
+
magA += a * a;
|
|
200
|
+
magB += b * b;
|
|
201
|
+
}
|
|
202
|
+
const magnitude = Math.sqrt(magA) * Math.sqrt(magB);
|
|
203
|
+
if (magnitude === 0)
|
|
204
|
+
return 0;
|
|
205
|
+
return dotProduct / magnitude;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Levenshtein-based similarity
|
|
209
|
+
*/
|
|
210
|
+
levenshteinSimilarity(a, b) {
|
|
211
|
+
const distance = this.levenshteinDistance(a, b);
|
|
212
|
+
const maxLen = Math.max(a.length, b.length);
|
|
213
|
+
if (maxLen === 0)
|
|
214
|
+
return 1;
|
|
215
|
+
return 1 - distance / maxLen;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Levenshtein edit distance
|
|
219
|
+
*/
|
|
220
|
+
levenshteinDistance(a, b) {
|
|
221
|
+
const matrix = [];
|
|
222
|
+
for (let i = 0; i <= b.length; i++) {
|
|
223
|
+
matrix[i] = [i];
|
|
224
|
+
}
|
|
225
|
+
for (let j = 0; j <= a.length; j++) {
|
|
226
|
+
matrix[0][j] = j;
|
|
227
|
+
}
|
|
228
|
+
for (let i = 1; i <= b.length; i++) {
|
|
229
|
+
for (let j = 1; j <= a.length; j++) {
|
|
230
|
+
if (b.charAt(i - 1) === a.charAt(j - 1)) {
|
|
231
|
+
matrix[i][j] = matrix[i - 1][j - 1];
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
|
|
235
|
+
matrix[i][j - 1] + 1, // insertion
|
|
236
|
+
matrix[i - 1][j] + 1 // deletion
|
|
237
|
+
);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return matrix[b.length][a.length];
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* AST-based similarity (simplified)
|
|
245
|
+
*/
|
|
246
|
+
astSimilarity(a, b) {
|
|
247
|
+
// For now, use Jaccard with structure-aware parsing
|
|
248
|
+
const structA = a.split(':');
|
|
249
|
+
const structB = b.split(':');
|
|
250
|
+
// Check type match first
|
|
251
|
+
if (structA[0] !== structB[0]) {
|
|
252
|
+
return 0; // Different types are never similar
|
|
253
|
+
}
|
|
254
|
+
// Compare token parts
|
|
255
|
+
const tokensA = structA[1]?.split('|') ?? [];
|
|
256
|
+
const tokensB = structB[1]?.split('|') ?? [];
|
|
257
|
+
return this.jaccardSimilarity(tokensA.join('|'), tokensB.join('|'));
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Score a pattern for representative selection
|
|
261
|
+
*/
|
|
262
|
+
scorePattern(pattern, cluster) {
|
|
263
|
+
let score = pattern.confidence;
|
|
264
|
+
// Bonus for documentation
|
|
265
|
+
if (pattern.content.includes('/**') || pattern.content.includes('* @')) {
|
|
266
|
+
score += 0.2;
|
|
267
|
+
}
|
|
268
|
+
// Bonus for type annotations
|
|
269
|
+
if (pattern.content.includes(': ') || pattern.content.includes('<')) {
|
|
270
|
+
score += 0.1;
|
|
271
|
+
}
|
|
272
|
+
// Penalty for very short patterns
|
|
273
|
+
if (pattern.content.split('\n').length < 3) {
|
|
274
|
+
score -= 0.1;
|
|
275
|
+
}
|
|
276
|
+
// Penalty for very long patterns
|
|
277
|
+
if (pattern.content.split('\n').length > 100) {
|
|
278
|
+
score -= 0.2;
|
|
279
|
+
}
|
|
280
|
+
// Similarity to cluster centroid
|
|
281
|
+
const simToCentroid = this.calculateSimilarity(pattern.signature, cluster.centroid);
|
|
282
|
+
score += simToCentroid * 0.2;
|
|
283
|
+
return score;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Compute cluster centroid
|
|
287
|
+
*/
|
|
288
|
+
computeCentroid(cluster) {
|
|
289
|
+
// Use the most common tokens as centroid
|
|
290
|
+
const tokenCounts = new Map();
|
|
291
|
+
for (const pattern of cluster.patterns) {
|
|
292
|
+
const tokens = pattern.signature.split('|');
|
|
293
|
+
for (const token of tokens) {
|
|
294
|
+
tokenCounts.set(token, (tokenCounts.get(token) ?? 0) + 1);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// Get tokens that appear in majority of patterns
|
|
298
|
+
const threshold = cluster.patterns.length / 2;
|
|
299
|
+
const centroidTokens = [...tokenCounts.entries()]
|
|
300
|
+
.filter(([_, count]) => count >= threshold)
|
|
301
|
+
.map(([token]) => token);
|
|
302
|
+
// Preserve type prefix
|
|
303
|
+
const type = cluster.patterns[0].type;
|
|
304
|
+
return `${type}:${centroidTokens.join('|')}`;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Recalculate average similarity within a cluster
|
|
308
|
+
*/
|
|
309
|
+
recalculateAvgSimilarity(cluster) {
|
|
310
|
+
if (cluster.patterns.length <= 1)
|
|
311
|
+
return 1.0;
|
|
312
|
+
let totalSimilarity = 0;
|
|
313
|
+
let count = 0;
|
|
314
|
+
for (let i = 0; i < cluster.patterns.length; i++) {
|
|
315
|
+
for (let j = i + 1; j < cluster.patterns.length; j++) {
|
|
316
|
+
totalSimilarity += this.calculateSimilarity(cluster.patterns[i].signature, cluster.patterns[j].signature);
|
|
317
|
+
count++;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return count > 0 ? totalSimilarity / count : 1.0;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Factory function to create a LocalSleepPhase instance
|
|
325
|
+
*/
|
|
326
|
+
export function createLocalSleepPhase(options, similarityMethod) {
|
|
327
|
+
return new LocalSleepPhase(options, similarityMethod);
|
|
328
|
+
}
|
|
329
|
+
//# sourceMappingURL=sleep-phase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep-phase.js","sourceRoot":"","sources":["../../src/wake-sleep/sleep-phase.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Wake-Sleep Learning Types for YATA Local
|
|
3
|
+
* @module @nahisaho/yata-local/wake-sleep
|
|
4
|
+
* @version 0.1.0
|
|
5
|
+
* @license MIT
|
|
6
|
+
*
|
|
7
|
+
* Trace: REQ-WSL-001, REQ-WSL-002, REQ-WSL-003
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Pattern candidate extracted during wake phase
|
|
11
|
+
*/
|
|
12
|
+
export interface LocalPatternCandidate {
|
|
13
|
+
/** Temporary ID for tracking */
|
|
14
|
+
tempId: string;
|
|
15
|
+
/** Pattern type */
|
|
16
|
+
type: LocalPatternType;
|
|
17
|
+
/** Pattern name/identifier */
|
|
18
|
+
name: string;
|
|
19
|
+
/** Original source code or content */
|
|
20
|
+
content: string;
|
|
21
|
+
/** Source file path */
|
|
22
|
+
sourcePath: string;
|
|
23
|
+
/** Line range in source */
|
|
24
|
+
lineRange: {
|
|
25
|
+
start: number;
|
|
26
|
+
end: number;
|
|
27
|
+
};
|
|
28
|
+
/** Language of the source */
|
|
29
|
+
language: 'typescript' | 'javascript' | 'python' | 'other';
|
|
30
|
+
/** AST signature for matching */
|
|
31
|
+
signature: string;
|
|
32
|
+
/** Initial confidence (0.0 - 1.0) */
|
|
33
|
+
confidence: number;
|
|
34
|
+
/** Extraction timestamp */
|
|
35
|
+
extractedAt: Date;
|
|
36
|
+
/** Additional metadata */
|
|
37
|
+
metadata?: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Pattern types for classification
|
|
41
|
+
*/
|
|
42
|
+
export type LocalPatternType = 'function_signature' | 'class_structure' | 'interface_definition' | 'type_definition' | 'import_pattern' | 'export_pattern' | 'error_handling' | 'async_pattern' | 'factory_pattern' | 'repository_pattern' | 'service_pattern' | 'value_object' | 'entity' | 'aggregate' | 'event_handler' | 'middleware' | 'decorator' | 'hook' | 'test_pattern' | 'other';
|
|
43
|
+
/**
|
|
44
|
+
* Cluster of similar patterns
|
|
45
|
+
*/
|
|
46
|
+
export interface LocalPatternCluster {
|
|
47
|
+
/** Cluster ID */
|
|
48
|
+
clusterId: string;
|
|
49
|
+
/** Patterns in this cluster */
|
|
50
|
+
patterns: LocalPatternCandidate[];
|
|
51
|
+
/** Representative pattern */
|
|
52
|
+
representative: LocalPatternCandidate;
|
|
53
|
+
/** Average similarity within cluster */
|
|
54
|
+
avgSimilarity: number;
|
|
55
|
+
/** Cluster centroid (abstract representation) */
|
|
56
|
+
centroid: string;
|
|
57
|
+
/** Total occurrences across patterns */
|
|
58
|
+
totalOccurrences: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Consolidated pattern ready for storage
|
|
62
|
+
*/
|
|
63
|
+
export interface LocalConsolidatedPattern {
|
|
64
|
+
/** Pattern ID */
|
|
65
|
+
id: string;
|
|
66
|
+
/** Pattern name */
|
|
67
|
+
name: string;
|
|
68
|
+
/** Pattern type */
|
|
69
|
+
type: LocalPatternType;
|
|
70
|
+
/** Abstract template */
|
|
71
|
+
template: string;
|
|
72
|
+
/** Compressed representation */
|
|
73
|
+
compressed: string;
|
|
74
|
+
/** Confidence score */
|
|
75
|
+
confidence: number;
|
|
76
|
+
/** Number of source examples */
|
|
77
|
+
sourceCount: number;
|
|
78
|
+
/** Usage count */
|
|
79
|
+
usageCount: number;
|
|
80
|
+
/** Created timestamp */
|
|
81
|
+
createdAt: Date;
|
|
82
|
+
/** Last used timestamp */
|
|
83
|
+
lastUsedAt: Date | null;
|
|
84
|
+
/** Source files this pattern was extracted from */
|
|
85
|
+
sources: string[];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Wake phase observation options
|
|
89
|
+
*/
|
|
90
|
+
export interface WakeObserveOptions {
|
|
91
|
+
/** File extensions to include */
|
|
92
|
+
extensions?: string[];
|
|
93
|
+
/** Directories to exclude */
|
|
94
|
+
excludeDirs?: string[];
|
|
95
|
+
/** Minimum confidence threshold */
|
|
96
|
+
minConfidence?: number;
|
|
97
|
+
/** Maximum number of candidates */
|
|
98
|
+
maxCandidates?: number;
|
|
99
|
+
/** Include private members */
|
|
100
|
+
includePrivate?: boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Wake phase observation result
|
|
104
|
+
*/
|
|
105
|
+
export interface WakeObserveResult {
|
|
106
|
+
/** Extracted pattern candidates */
|
|
107
|
+
candidates: LocalPatternCandidate[];
|
|
108
|
+
/** Statistics */
|
|
109
|
+
stats: {
|
|
110
|
+
filesScanned: number;
|
|
111
|
+
candidatesFound: number;
|
|
112
|
+
skippedFiles: number;
|
|
113
|
+
processingTimeMs: number;
|
|
114
|
+
};
|
|
115
|
+
/** Any errors encountered */
|
|
116
|
+
errors: Array<{
|
|
117
|
+
file: string;
|
|
118
|
+
error: string;
|
|
119
|
+
}>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Sleep phase clustering options
|
|
123
|
+
*/
|
|
124
|
+
export interface SleepClusterOptions {
|
|
125
|
+
/** Similarity threshold (0.0 - 1.0) */
|
|
126
|
+
similarityThreshold?: number;
|
|
127
|
+
/** Minimum cluster size */
|
|
128
|
+
minClusterSize?: number;
|
|
129
|
+
/** Maximum clusters to form */
|
|
130
|
+
maxClusters?: number;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Sleep phase clustering result
|
|
134
|
+
*/
|
|
135
|
+
export interface SleepClusterResult {
|
|
136
|
+
/** Formed clusters */
|
|
137
|
+
clusters: LocalPatternCluster[];
|
|
138
|
+
/** Patterns that didn't cluster */
|
|
139
|
+
unclustered: LocalPatternCandidate[];
|
|
140
|
+
/** Statistics */
|
|
141
|
+
stats: {
|
|
142
|
+
totalPatterns: number;
|
|
143
|
+
clusteredPatterns: number;
|
|
144
|
+
unclusteredPatterns: number;
|
|
145
|
+
clustersFormed: number;
|
|
146
|
+
avgClusterSize: number;
|
|
147
|
+
processingTimeMs: number;
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Pattern compression options
|
|
152
|
+
*/
|
|
153
|
+
export interface CompressOptions {
|
|
154
|
+
/** Compression level (1-10) */
|
|
155
|
+
level?: number;
|
|
156
|
+
/** Preserve variable names */
|
|
157
|
+
preserveNames?: boolean;
|
|
158
|
+
/** Include type annotations */
|
|
159
|
+
includeTypes?: boolean;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Learning cycle result
|
|
163
|
+
*/
|
|
164
|
+
export interface LocalLearningCycleResult {
|
|
165
|
+
/** Cycle ID */
|
|
166
|
+
cycleId: string;
|
|
167
|
+
/** Phase that completed */
|
|
168
|
+
phase: 'wake' | 'sleep' | 'complete';
|
|
169
|
+
/** Wake phase results (if applicable) */
|
|
170
|
+
wakeResult?: WakeObserveResult;
|
|
171
|
+
/** Sleep phase results (if applicable) */
|
|
172
|
+
sleepResult?: SleepClusterResult;
|
|
173
|
+
/** New patterns added to store */
|
|
174
|
+
newPatterns: number;
|
|
175
|
+
/** Patterns updated */
|
|
176
|
+
updatedPatterns: number;
|
|
177
|
+
/** Patterns decayed */
|
|
178
|
+
decayedPatterns: number;
|
|
179
|
+
/** Cycle start time */
|
|
180
|
+
startedAt: Date;
|
|
181
|
+
/** Cycle end time */
|
|
182
|
+
completedAt: Date;
|
|
183
|
+
/** Cycle duration in ms */
|
|
184
|
+
durationMs: number;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Learning cycle status
|
|
188
|
+
*/
|
|
189
|
+
export type LearningCycleStatus = 'pending' | 'running' | 'completed' | 'failed';
|
|
190
|
+
/**
|
|
191
|
+
* Learning cycle metadata for storage
|
|
192
|
+
*/
|
|
193
|
+
export interface LocalLearningCycleMetadata {
|
|
194
|
+
/** Cycle ID */
|
|
195
|
+
id: string;
|
|
196
|
+
/** Cycle status */
|
|
197
|
+
status: LearningCycleStatus;
|
|
198
|
+
/** Wake results JSON */
|
|
199
|
+
wakeResultJson: string | null;
|
|
200
|
+
/** Sleep results JSON */
|
|
201
|
+
sleepResultJson: string | null;
|
|
202
|
+
/** New patterns count */
|
|
203
|
+
newPatterns: number;
|
|
204
|
+
/** Updated patterns count */
|
|
205
|
+
updatedPatterns: number;
|
|
206
|
+
/** Decayed patterns count */
|
|
207
|
+
decayedPatterns: number;
|
|
208
|
+
/** Started timestamp */
|
|
209
|
+
startedAt: string;
|
|
210
|
+
/** Completed timestamp */
|
|
211
|
+
completedAt: string | null;
|
|
212
|
+
/** Duration in milliseconds */
|
|
213
|
+
durationMs: number | null;
|
|
214
|
+
/** Error message if failed */
|
|
215
|
+
errorMessage: string | null;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Similarity calculation method
|
|
219
|
+
*/
|
|
220
|
+
export type SimilarityMethod = 'jaccard' | 'cosine' | 'levenshtein' | 'ast';
|
|
221
|
+
/**
|
|
222
|
+
* Wake-sleep cycle configuration
|
|
223
|
+
*/
|
|
224
|
+
export interface WakeSleepConfig {
|
|
225
|
+
/** Auto-run interval in milliseconds (0 = disabled) */
|
|
226
|
+
autoRunInterval: number;
|
|
227
|
+
/** Wake phase options */
|
|
228
|
+
wakeOptions: WakeObserveOptions;
|
|
229
|
+
/** Sleep phase options */
|
|
230
|
+
sleepOptions: SleepClusterOptions;
|
|
231
|
+
/** Compression options */
|
|
232
|
+
compressOptions: CompressOptions;
|
|
233
|
+
/** Similarity method */
|
|
234
|
+
similarityMethod: SimilarityMethod;
|
|
235
|
+
/** Confidence decay rate per day (0.0 - 1.0) */
|
|
236
|
+
decayRate: number;
|
|
237
|
+
/** Minimum confidence before removal */
|
|
238
|
+
minConfidenceThreshold: number;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Default configuration
|
|
242
|
+
*/
|
|
243
|
+
export declare const DEFAULT_WAKE_SLEEP_CONFIG: WakeSleepConfig;
|
|
244
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/wake-sleep/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Wake-Sleep Learning Types for YATA Local
|
|
3
|
+
* @module @nahisaho/yata-local/wake-sleep
|
|
4
|
+
* @version 0.1.0
|
|
5
|
+
* @license MIT
|
|
6
|
+
*
|
|
7
|
+
* Trace: REQ-WSL-001, REQ-WSL-002, REQ-WSL-003
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Default configuration
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_WAKE_SLEEP_CONFIG = {
|
|
13
|
+
autoRunInterval: 0,
|
|
14
|
+
wakeOptions: {
|
|
15
|
+
extensions: ['.ts', '.tsx', '.js', '.jsx'],
|
|
16
|
+
excludeDirs: ['node_modules', 'dist', 'build', '.git'],
|
|
17
|
+
minConfidence: 0.3,
|
|
18
|
+
maxCandidates: 1000,
|
|
19
|
+
includePrivate: false,
|
|
20
|
+
},
|
|
21
|
+
sleepOptions: {
|
|
22
|
+
similarityThreshold: 0.8,
|
|
23
|
+
minClusterSize: 2,
|
|
24
|
+
maxClusters: 100,
|
|
25
|
+
},
|
|
26
|
+
compressOptions: {
|
|
27
|
+
level: 5,
|
|
28
|
+
preserveNames: false,
|
|
29
|
+
includeTypes: true,
|
|
30
|
+
},
|
|
31
|
+
similarityMethod: 'jaccard',
|
|
32
|
+
decayRate: 0.01,
|
|
33
|
+
minConfidenceThreshold: 0.1,
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/wake-sleep/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2QH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAoB;IACxD,eAAe,EAAE,CAAC;IAClB,WAAW,EAAE;QACX,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;QAC1C,WAAW,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QACtD,aAAa,EAAE,GAAG;QAClB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,KAAK;KACtB;IACD,YAAY,EAAE;QACZ,mBAAmB,EAAE,GAAG;QACxB,cAAc,EAAE,CAAC;QACjB,WAAW,EAAE,GAAG;KACjB;IACD,eAAe,EAAE;QACf,KAAK,EAAE,CAAC;QACR,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,IAAI;KACnB;IACD,gBAAgB,EAAE,SAAS;IAC3B,SAAS,EAAE,IAAI;IACf,sBAAsB,EAAE,GAAG;CAC5B,CAAC"}
|