@nahisaho/musubix-library-learner 2.1.1 → 2.2.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/dist/EnhancedLibraryLearner.d.ts +159 -0
- package/dist/EnhancedLibraryLearner.d.ts.map +1 -0
- package/dist/EnhancedLibraryLearner.js +296 -0
- package/dist/EnhancedLibraryLearner.js.map +1 -0
- package/dist/domain/DomainAwareAbstractor.d.ts +226 -0
- package/dist/domain/DomainAwareAbstractor.d.ts.map +1 -0
- package/dist/domain/DomainAwareAbstractor.js +237 -0
- package/dist/domain/DomainAwareAbstractor.js.map +1 -0
- package/dist/domain/__tests__/DomainAwareAbstractor.test.d.ts +9 -0
- package/dist/domain/__tests__/DomainAwareAbstractor.test.d.ts.map +1 -0
- package/dist/domain/__tests__/DomainAwareAbstractor.test.js +217 -0
- package/dist/domain/__tests__/DomainAwareAbstractor.test.js.map +1 -0
- package/dist/domain/index.d.ts +7 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +6 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/hierarchy/HierarchyManager.d.ts +227 -0
- package/dist/hierarchy/HierarchyManager.d.ts.map +1 -0
- package/dist/hierarchy/HierarchyManager.js +342 -0
- package/dist/hierarchy/HierarchyManager.js.map +1 -0
- package/dist/hierarchy/index.d.ts +9 -0
- package/dist/hierarchy/index.d.ts.map +1 -0
- package/dist/hierarchy/index.js +8 -0
- package/dist/hierarchy/index.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/library/IterativeCompressor.d.ts +196 -0
- package/dist/library/IterativeCompressor.d.ts.map +1 -0
- package/dist/library/IterativeCompressor.js +367 -0
- package/dist/library/IterativeCompressor.js.map +1 -0
- package/dist/library/PatternVersionManager.d.ts +177 -0
- package/dist/library/PatternVersionManager.d.ts.map +1 -0
- package/dist/library/PatternVersionManager.js +223 -0
- package/dist/library/PatternVersionManager.js.map +1 -0
- package/dist/library/__tests__/IterativeCompressor.test.d.ts +9 -0
- package/dist/library/__tests__/IterativeCompressor.test.d.ts.map +1 -0
- package/dist/library/__tests__/IterativeCompressor.test.js +200 -0
- package/dist/library/__tests__/IterativeCompressor.test.js.map +1 -0
- package/dist/library/__tests__/PatternVersionManager.test.d.ts +9 -0
- package/dist/library/__tests__/PatternVersionManager.test.d.ts.map +1 -0
- package/dist/library/__tests__/PatternVersionManager.test.js +218 -0
- package/dist/library/__tests__/PatternVersionManager.test.js.map +1 -0
- package/dist/library/index.d.ts +4 -0
- package/dist/library/index.d.ts.map +1 -1
- package/dist/library/index.js +4 -0
- package/dist/library/index.js.map +1 -1
- package/dist/metrics/MetricsExporter.d.ts +128 -0
- package/dist/metrics/MetricsExporter.d.ts.map +1 -0
- package/dist/metrics/MetricsExporter.js +157 -0
- package/dist/metrics/MetricsExporter.js.map +1 -0
- package/dist/metrics/index.d.ts +9 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +8 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/rewrite/RewriteRuleSet.d.ts +136 -0
- package/dist/rewrite/RewriteRuleSet.d.ts.map +1 -0
- package/dist/rewrite/RewriteRuleSet.js +460 -0
- package/dist/rewrite/RewriteRuleSet.js.map +1 -0
- package/dist/rewrite/index.d.ts +9 -0
- package/dist/rewrite/index.d.ts.map +1 -0
- package/dist/rewrite/index.js +8 -0
- package/dist/rewrite/index.js.map +1 -0
- package/dist/search/TypeDirectedPruner.d.ts +138 -0
- package/dist/search/TypeDirectedPruner.d.ts.map +1 -0
- package/dist/search/TypeDirectedPruner.js +245 -0
- package/dist/search/TypeDirectedPruner.js.map +1 -0
- package/dist/search/index.d.ts +9 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +8 -0
- package/dist/search/index.js.map +1 -0
- package/dist/updater/IncrementalUpdater.d.ts +152 -0
- package/dist/updater/IncrementalUpdater.d.ts.map +1 -0
- package/dist/updater/IncrementalUpdater.js +283 -0
- package/dist/updater/IncrementalUpdater.js.map +1 -0
- package/dist/updater/index.d.ts +7 -0
- package/dist/updater/index.d.ts.map +1 -0
- package/dist/updater/index.js +6 -0
- package/dist/updater/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HierarchyManager - Hierarchical Abstraction Manager
|
|
3
|
+
*
|
|
4
|
+
* DreamCoder-style hierarchical pattern abstraction for library learning.
|
|
5
|
+
* Manages multiple levels of abstraction from concrete to abstract patterns.
|
|
6
|
+
*
|
|
7
|
+
* @module @nahisaho/musubix-library-learner
|
|
8
|
+
* @see TSK-LL-101
|
|
9
|
+
* @see DES-LL-101
|
|
10
|
+
* @see REQ-LL-101
|
|
11
|
+
*
|
|
12
|
+
* 既存クラス関係: LibraryLearner.extractPatterns() から委譲される新規コンポーネント
|
|
13
|
+
* 依存: PatternMiner, Abstractor (既存)
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { createHierarchyManager } from './HierarchyManager.js';
|
|
18
|
+
*
|
|
19
|
+
* const manager = createHierarchyManager({ maxLevels: 4 });
|
|
20
|
+
* const result = await manager.extractHierarchy(corpus);
|
|
21
|
+
* console.log(`Extracted ${result.levels.size} levels`);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// Default Implementation
|
|
26
|
+
// =============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Default built-in abstraction levels
|
|
29
|
+
*/
|
|
30
|
+
const DEFAULT_LEVELS = [
|
|
31
|
+
{ id: 1, name: 'concrete', description: 'Token-level patterns', minOccurrences: 2 },
|
|
32
|
+
{ id: 2, name: 'parameterized', description: 'Expression-level templates', minOccurrences: 3 },
|
|
33
|
+
{ id: 3, name: 'abstract', description: 'Function-level concepts', minOccurrences: 5 },
|
|
34
|
+
{ id: 4, name: 'composite', description: 'Composite patterns', minOccurrences: 10 },
|
|
35
|
+
];
|
|
36
|
+
/**
|
|
37
|
+
* Default HierarchyManager implementation
|
|
38
|
+
*/
|
|
39
|
+
export class DefaultHierarchyManager {
|
|
40
|
+
levels = new Map();
|
|
41
|
+
patterns = new Map();
|
|
42
|
+
promotions = [];
|
|
43
|
+
config;
|
|
44
|
+
constructor(config = {}) {
|
|
45
|
+
this.config = {
|
|
46
|
+
maxLevels: config.maxLevels ?? 4,
|
|
47
|
+
promotionThreshold: config.promotionThreshold ?? 0.7,
|
|
48
|
+
minOccurrences: config.minOccurrences ?? 3,
|
|
49
|
+
patternMiner: config.patternMiner ?? null,
|
|
50
|
+
abstractor: config.abstractor ?? null,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Add a new abstraction level
|
|
55
|
+
* @throws Error if level ID already exists
|
|
56
|
+
*/
|
|
57
|
+
addLevel(level) {
|
|
58
|
+
if (this.levels.has(level.id)) {
|
|
59
|
+
throw new Error(`Duplicate level ID: ${level.id}`);
|
|
60
|
+
}
|
|
61
|
+
this.levels.set(level.id, level);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Extract hierarchical abstractions from a code corpus
|
|
65
|
+
*
|
|
66
|
+
* Process:
|
|
67
|
+
* 1. Mine concrete patterns (Level 1)
|
|
68
|
+
* 2. Abstract to parameterized templates (Level 2)
|
|
69
|
+
* 3. Extract function-level concepts (Level 3)
|
|
70
|
+
* 4. Compose higher-level patterns (Level 4+)
|
|
71
|
+
*/
|
|
72
|
+
async extractHierarchy(corpus) {
|
|
73
|
+
const startTime = Date.now();
|
|
74
|
+
// Initialize default levels if none added
|
|
75
|
+
if (this.levels.size === 0) {
|
|
76
|
+
DEFAULT_LEVELS.forEach((level) => this.addLevel(level));
|
|
77
|
+
}
|
|
78
|
+
// Step 1: Mine concrete patterns
|
|
79
|
+
const concretePatterns = await this.mineConcretePatterns(corpus);
|
|
80
|
+
this.patterns.set(1, concretePatterns);
|
|
81
|
+
// Step 2: Abstract to parameterized templates
|
|
82
|
+
const parameterizedPatterns = await this.abstractToTemplates(concretePatterns);
|
|
83
|
+
this.patterns.set(2, parameterizedPatterns);
|
|
84
|
+
// Step 3: Extract function-level concepts
|
|
85
|
+
const abstractPatterns = await this.extractAbstractConcepts(parameterizedPatterns);
|
|
86
|
+
this.patterns.set(3, abstractPatterns);
|
|
87
|
+
// Step 4: Compose higher-level patterns
|
|
88
|
+
if (this.config.maxLevels >= 4) {
|
|
89
|
+
const compositePatterns = await this.composeHigherLevel(abstractPatterns);
|
|
90
|
+
this.patterns.set(4, compositePatterns);
|
|
91
|
+
}
|
|
92
|
+
const endTime = Date.now();
|
|
93
|
+
// Calculate metrics
|
|
94
|
+
const totalRaw = concretePatterns.length;
|
|
95
|
+
const totalAbstracted = Array.from(this.patterns.values()).reduce((sum, patterns) => sum + patterns.length, 0);
|
|
96
|
+
const metrics = {
|
|
97
|
+
extractionTimeMs: endTime - startTime,
|
|
98
|
+
patternsPerLevel: Array.from(this.patterns.entries())
|
|
99
|
+
.sort(([a], [b]) => a - b)
|
|
100
|
+
.map(([, patterns]) => patterns.length),
|
|
101
|
+
compressionRatio: totalRaw > 0 ? totalAbstracted / totalRaw : 0,
|
|
102
|
+
totalPatternsRaw: totalRaw,
|
|
103
|
+
totalPatternsAbstracted: totalAbstracted,
|
|
104
|
+
};
|
|
105
|
+
return {
|
|
106
|
+
levels: new Map(this.patterns),
|
|
107
|
+
promotions: [...this.promotions],
|
|
108
|
+
metrics,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Determine if a pattern should be promoted to a higher level
|
|
113
|
+
*/
|
|
114
|
+
shouldPromote(pattern) {
|
|
115
|
+
const meetsOccurrenceThreshold = pattern.occurrenceCount >= this.config.minOccurrences;
|
|
116
|
+
const meetsConfidenceThreshold = pattern.confidence >= this.config.promotionThreshold;
|
|
117
|
+
return meetsOccurrenceThreshold && meetsConfidenceThreshold;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get the current depth (number of levels)
|
|
121
|
+
*/
|
|
122
|
+
getDepth() {
|
|
123
|
+
return this.levels.size;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get all registered abstraction levels
|
|
127
|
+
*/
|
|
128
|
+
getLevels() {
|
|
129
|
+
return Array.from(this.levels.values()).sort((a, b) => a.id - b.id);
|
|
130
|
+
}
|
|
131
|
+
// ===========================================================================
|
|
132
|
+
// Private Methods
|
|
133
|
+
// ===========================================================================
|
|
134
|
+
/**
|
|
135
|
+
* Mine concrete patterns from corpus (Level 1)
|
|
136
|
+
*/
|
|
137
|
+
async mineConcretePatterns(corpus) {
|
|
138
|
+
// If external PatternMiner is provided, use it
|
|
139
|
+
if (this.config.patternMiner) {
|
|
140
|
+
const candidates = await this.config.patternMiner.mine(corpus);
|
|
141
|
+
return this.candidatesToHierarchyPatterns(candidates, 1);
|
|
142
|
+
}
|
|
143
|
+
// Simple built-in mining for testing
|
|
144
|
+
const patterns = [];
|
|
145
|
+
let patternCounter = 0;
|
|
146
|
+
for (const file of corpus.files) {
|
|
147
|
+
// Simple AST simulation: split into statements
|
|
148
|
+
const lines = file.content.split('\n').filter((l) => l.trim());
|
|
149
|
+
const statementCounts = new Map();
|
|
150
|
+
for (const line of lines) {
|
|
151
|
+
const normalized = this.normalizeStatement(line);
|
|
152
|
+
statementCounts.set(normalized, (statementCounts.get(normalized) || 0) + 1);
|
|
153
|
+
}
|
|
154
|
+
for (const [statement, count] of statementCounts) {
|
|
155
|
+
if (count >= 2) {
|
|
156
|
+
patterns.push({
|
|
157
|
+
id: `pattern-${++patternCounter}`,
|
|
158
|
+
level: 1,
|
|
159
|
+
occurrenceCount: count,
|
|
160
|
+
confidence: Math.min(0.5 + count * 0.1, 1.0),
|
|
161
|
+
ast: { type: 'Statement', value: statement },
|
|
162
|
+
sourceLocations: [],
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return patterns;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Abstract concrete patterns to parameterized templates (Level 2)
|
|
171
|
+
*/
|
|
172
|
+
async abstractToTemplates(patterns) {
|
|
173
|
+
// Simple abstraction: group similar patterns
|
|
174
|
+
const templates = [];
|
|
175
|
+
const groups = this.groupSimilarPatterns(patterns);
|
|
176
|
+
let templateCounter = 0;
|
|
177
|
+
for (const group of groups.values()) {
|
|
178
|
+
if (group.length >= 2) {
|
|
179
|
+
const combinedOccurrences = group.reduce((sum, p) => sum + p.occurrenceCount, 0);
|
|
180
|
+
const avgConfidence = group.reduce((sum, p) => sum + p.confidence, 0) / group.length;
|
|
181
|
+
const template = {
|
|
182
|
+
id: `template-${++templateCounter}`,
|
|
183
|
+
level: 2,
|
|
184
|
+
occurrenceCount: combinedOccurrences,
|
|
185
|
+
confidence: avgConfidence,
|
|
186
|
+
ast: { type: 'Template', children: group.map((p) => p.ast) },
|
|
187
|
+
sourceLocations: group.flatMap((p) => p.sourceLocations),
|
|
188
|
+
};
|
|
189
|
+
// Record promotions
|
|
190
|
+
for (const pattern of group) {
|
|
191
|
+
if (this.shouldPromote(pattern)) {
|
|
192
|
+
this.promotions.push({
|
|
193
|
+
patternId: pattern.id,
|
|
194
|
+
fromLevel: 1,
|
|
195
|
+
toLevel: 2,
|
|
196
|
+
timestamp: new Date(),
|
|
197
|
+
confidence: pattern.confidence,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
templates.push(template);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return templates;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Extract function-level concepts (Level 3)
|
|
208
|
+
*/
|
|
209
|
+
async extractAbstractConcepts(templates) {
|
|
210
|
+
const concepts = [];
|
|
211
|
+
let conceptCounter = 0;
|
|
212
|
+
// Group templates by structural similarity
|
|
213
|
+
const conceptGroups = this.groupByStructure(templates);
|
|
214
|
+
for (const group of conceptGroups.values()) {
|
|
215
|
+
if (group.length >= 1) {
|
|
216
|
+
const combinedOccurrences = group.reduce((sum, p) => sum + p.occurrenceCount, 0);
|
|
217
|
+
const avgConfidence = group.reduce((sum, p) => sum + p.confidence, 0) / group.length;
|
|
218
|
+
const concept = {
|
|
219
|
+
id: `concept-${++conceptCounter}`,
|
|
220
|
+
level: 3,
|
|
221
|
+
occurrenceCount: combinedOccurrences,
|
|
222
|
+
confidence: Math.min(avgConfidence * 1.1, 1.0), // Slight confidence boost
|
|
223
|
+
ast: { type: 'Concept', templates: group.map((t) => t.ast) },
|
|
224
|
+
sourceLocations: group.flatMap((t) => t.sourceLocations),
|
|
225
|
+
};
|
|
226
|
+
concepts.push(concept);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return concepts;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Compose higher-level patterns (Level 4+)
|
|
233
|
+
*/
|
|
234
|
+
async composeHigherLevel(concepts) {
|
|
235
|
+
const composites = [];
|
|
236
|
+
let compositeCounter = 0;
|
|
237
|
+
// Combine concepts that often appear together
|
|
238
|
+
if (concepts.length >= 2) {
|
|
239
|
+
const combinedOccurrences = concepts.reduce((sum, c) => sum + c.occurrenceCount, 0);
|
|
240
|
+
const avgConfidence = concepts.reduce((sum, c) => sum + c.confidence, 0) / concepts.length;
|
|
241
|
+
const composite = {
|
|
242
|
+
id: `composite-${++compositeCounter}`,
|
|
243
|
+
level: 4,
|
|
244
|
+
occurrenceCount: Math.floor(combinedOccurrences / concepts.length),
|
|
245
|
+
confidence: avgConfidence,
|
|
246
|
+
ast: { type: 'Composite', concepts: concepts.map((c) => c.ast) },
|
|
247
|
+
sourceLocations: concepts.flatMap((c) => c.sourceLocations),
|
|
248
|
+
};
|
|
249
|
+
composites.push(composite);
|
|
250
|
+
}
|
|
251
|
+
return composites;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Convert pattern candidates to learned patterns
|
|
255
|
+
*/
|
|
256
|
+
candidatesToHierarchyPatterns(candidates, level) {
|
|
257
|
+
return candidates.map((c) => ({
|
|
258
|
+
id: c.id,
|
|
259
|
+
level,
|
|
260
|
+
occurrenceCount: c.occurrences.length,
|
|
261
|
+
confidence: c.score,
|
|
262
|
+
ast: c.ast,
|
|
263
|
+
sourceLocations: c.occurrences,
|
|
264
|
+
}));
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Normalize a statement for comparison
|
|
268
|
+
*/
|
|
269
|
+
normalizeStatement(statement) {
|
|
270
|
+
return statement
|
|
271
|
+
.trim()
|
|
272
|
+
.replace(/\s+/g, ' ')
|
|
273
|
+
.replace(/['"]/g, '"')
|
|
274
|
+
.replace(/\b\d+\b/g, 'N')
|
|
275
|
+
.replace(/\b[a-z][a-zA-Z0-9]*\b/g, (match) => {
|
|
276
|
+
// Keep keywords, normalize identifiers
|
|
277
|
+
const keywords = ['function', 'const', 'let', 'var', 'return', 'if', 'else', 'for', 'while'];
|
|
278
|
+
return keywords.includes(match) ? match : 'ID';
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Group similar patterns by normalized form
|
|
283
|
+
*/
|
|
284
|
+
groupSimilarPatterns(patterns) {
|
|
285
|
+
const groups = new Map();
|
|
286
|
+
for (const pattern of patterns) {
|
|
287
|
+
const key = this.getPatternSignature(pattern);
|
|
288
|
+
const group = groups.get(key) || [];
|
|
289
|
+
group.push(pattern);
|
|
290
|
+
groups.set(key, group);
|
|
291
|
+
}
|
|
292
|
+
return groups;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Group by structural pattern
|
|
296
|
+
*/
|
|
297
|
+
groupByStructure(patterns) {
|
|
298
|
+
const groups = new Map();
|
|
299
|
+
for (const pattern of patterns) {
|
|
300
|
+
const key = this.getStructuralSignature(pattern);
|
|
301
|
+
const group = groups.get(key) || [];
|
|
302
|
+
group.push(pattern);
|
|
303
|
+
groups.set(key, group);
|
|
304
|
+
}
|
|
305
|
+
return groups;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Get a signature for pattern similarity grouping
|
|
309
|
+
*/
|
|
310
|
+
getPatternSignature(pattern) {
|
|
311
|
+
const ast = pattern.ast;
|
|
312
|
+
return `${ast.type}:${pattern.level}`;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Get a structural signature for concept extraction
|
|
316
|
+
*/
|
|
317
|
+
getStructuralSignature(pattern) {
|
|
318
|
+
const ast = pattern.ast;
|
|
319
|
+
return `structure:${ast.type}`;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
// =============================================================================
|
|
323
|
+
// Factory Function
|
|
324
|
+
// =============================================================================
|
|
325
|
+
/**
|
|
326
|
+
* Create a new HierarchyManager instance
|
|
327
|
+
*
|
|
328
|
+
* @param config - Configuration options
|
|
329
|
+
* @returns A new HierarchyManager instance
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
* ```typescript
|
|
333
|
+
* const manager = createHierarchyManager({
|
|
334
|
+
* maxLevels: 4,
|
|
335
|
+
* promotionThreshold: 0.7,
|
|
336
|
+
* });
|
|
337
|
+
* ```
|
|
338
|
+
*/
|
|
339
|
+
export function createHierarchyManager(config = {}) {
|
|
340
|
+
return new DefaultHierarchyManager(config);
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=HierarchyManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HierarchyManager.js","sourceRoot":"","sources":["../../src/hierarchy/HierarchyManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchy Module - Hierarchical Pattern Abstraction
|
|
3
|
+
*
|
|
4
|
+
* @module @nahisaho/musubix-library-learner/hierarchy
|
|
5
|
+
* @see TSK-LL-101
|
|
6
|
+
*/
|
|
7
|
+
export type { HierarchyManager, AbstractionLevel, PromotionRecord, HierarchyMetrics, HierarchyResult, HierarchyManagerConfig, HierarchyPattern, } from './HierarchyManager.js';
|
|
8
|
+
export { createHierarchyManager, DefaultHierarchyManager } from './HierarchyManager.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hierarchy/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchy Module - Hierarchical Pattern Abstraction
|
|
3
|
+
*
|
|
4
|
+
* @module @nahisaho/musubix-library-learner/hierarchy
|
|
5
|
+
* @see TSK-LL-101
|
|
6
|
+
*/
|
|
7
|
+
export { createHierarchyManager, DefaultHierarchyManager } from './HierarchyManager.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hierarchy/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -43,6 +43,24 @@ export type { EGraphBuilder } from './egraph/EGraphBuilder.js';
|
|
|
43
43
|
export { createEGraphBuilder } from './egraph/EGraphBuilder.js';
|
|
44
44
|
export type { Extractor } from './egraph/Extractor.js';
|
|
45
45
|
export { createExtractor } from './egraph/Extractor.js';
|
|
46
|
+
export type { HierarchyManager, AbstractionLevel, PromotionRecord, HierarchyMetrics, HierarchyResult, HierarchyManagerConfig, HierarchyPattern, } from './hierarchy/HierarchyManager.js';
|
|
47
|
+
export { createHierarchyManager, DefaultHierarchyManager } from './hierarchy/HierarchyManager.js';
|
|
48
|
+
export type { TypeDirectedPruner, TypeSignature, PruneCandidate, PruneResult, TypeDirectedPrunerConfig, } from './search/TypeDirectedPruner.js';
|
|
49
|
+
export { createTypeDirectedPruner, DefaultTypeDirectedPruner } from './search/TypeDirectedPruner.js';
|
|
50
|
+
export type { RewriteRuleSet, RewriteRule, RewriteResult, RewriteRuleSetConfig, Pattern, } from './rewrite/RewriteRuleSet.js';
|
|
51
|
+
export { createRewriteRuleSet, DefaultRewriteRuleSet } from './rewrite/RewriteRuleSet.js';
|
|
52
|
+
export type { IncrementalUpdater, UpdaterConfig, FileChange, ChangeType, UpdateResult, UpdateStatistics, } from './updater/IncrementalUpdater.js';
|
|
53
|
+
export { createIncrementalUpdater, DefaultIncrementalUpdater } from './updater/IncrementalUpdater.js';
|
|
54
|
+
export { createIterativeCompressor, DefaultIterativeCompressor, } from './library/IterativeCompressor.js';
|
|
55
|
+
export type { IterativeCompressor, IterativeCompressorConfig, CompressionReport, MergedGroup, CompressionStatistics, } from './library/IterativeCompressor.js';
|
|
56
|
+
export { createPatternVersionManager, DefaultPatternVersionManager, } from './library/PatternVersionManager.js';
|
|
57
|
+
export type { PatternVersionManager, PatternVersionManagerConfig, VersionMetadata, VersionEntry, VersionDiff, VersionChange, VersionStatistics, } from './library/PatternVersionManager.js';
|
|
58
|
+
export { createDomainAwareAbstractor, DefaultDomainAwareAbstractor, } from './domain/DomainAwareAbstractor.js';
|
|
59
|
+
export type { DomainAwareAbstractor, DomainAwareAbstractorConfig, DomainOntology, DomainConcept, ConceptRelation, DomainConstraint, DomainAbstractionResult, ConceptHierarchy, OntologyLoadResult, AbstractionStatistics as DomainAbstractionStatistics, } from './domain/DomainAwareAbstractor.js';
|
|
60
|
+
export { createMetricsExporter, DefaultMetricsExporter, } from './metrics/MetricsExporter.js';
|
|
61
|
+
export type { MetricsExporter, LibraryMetrics, FormattedMetrics, MetricsSummary, LibraryState, PatternUsageInfo, ExportFormat, } from './metrics/MetricsExporter.js';
|
|
62
|
+
export type { EnhancedLibraryLearner, EnhancedLibraryLearnerConfig, TypedSpecification, TypedSynthesisResult, OptimizationResult, EnhancedStats, SearchStats, } from './EnhancedLibraryLearner.js';
|
|
63
|
+
export { createEnhancedLibraryLearner, DefaultEnhancedLibraryLearner } from './EnhancedLibraryLearner.js';
|
|
46
64
|
export type { LibraryLearner } from './LibraryLearner.js';
|
|
47
65
|
export { createLibraryLearner } from './LibraryLearner.js';
|
|
48
66
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,YAAY,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -36,5 +36,18 @@ export { createPruner } from './library/Pruner.js';
|
|
|
36
36
|
export { createEGraph } from './egraph/EGraph.js';
|
|
37
37
|
export { createEGraphBuilder } from './egraph/EGraphBuilder.js';
|
|
38
38
|
export { createExtractor } from './egraph/Extractor.js';
|
|
39
|
+
export { createHierarchyManager, DefaultHierarchyManager } from './hierarchy/HierarchyManager.js';
|
|
40
|
+
export { createTypeDirectedPruner, DefaultTypeDirectedPruner } from './search/TypeDirectedPruner.js';
|
|
41
|
+
export { createRewriteRuleSet, DefaultRewriteRuleSet } from './rewrite/RewriteRuleSet.js';
|
|
42
|
+
export { createIncrementalUpdater, DefaultIncrementalUpdater } from './updater/IncrementalUpdater.js';
|
|
43
|
+
// IterativeCompressor (v2.2.0 NEW!)
|
|
44
|
+
export { createIterativeCompressor, DefaultIterativeCompressor, } from './library/IterativeCompressor.js';
|
|
45
|
+
// PatternVersionManager (v2.2.0 NEW!)
|
|
46
|
+
export { createPatternVersionManager, DefaultPatternVersionManager, } from './library/PatternVersionManager.js';
|
|
47
|
+
// DomainAwareAbstractor (v2.2.0 NEW!)
|
|
48
|
+
export { createDomainAwareAbstractor, DefaultDomainAwareAbstractor, } from './domain/DomainAwareAbstractor.js';
|
|
49
|
+
// MetricsExporter (v2.2.0 NEW!)
|
|
50
|
+
export { createMetricsExporter, DefaultMetricsExporter, } from './metrics/MetricsExporter.js';
|
|
51
|
+
export { createEnhancedLibraryLearner, DefaultEnhancedLibraryLearner } from './EnhancedLibraryLearner.js';
|
|
39
52
|
export { createLibraryLearner } from './LibraryLearner.js';
|
|
40
53
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,SAAS;AACT,cAAc,aAAa,CAAC;AAI5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,SAAS;AACT,cAAc,aAAa,CAAC;AAI5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAInE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAYxD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAUlG,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAUrG,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAW1F,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEtG,oCAAoC;AACpC,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,kCAAkC,CAAC;AAS1C,sCAAsC;AACtC,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,oCAAoC,CAAC;AAW5C,sCAAsC;AACtC,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAc3C,gCAAgC;AAChC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAqBtC,OAAO,EAAE,4BAA4B,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAI1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IterativeCompressor - Iterative Pattern Compression
|
|
3
|
+
* @module @nahisaho/musubix-library-learner
|
|
4
|
+
* @see TSK-LL-103
|
|
5
|
+
* @see DES-LL-103
|
|
6
|
+
* @see REQ-LL-103 30%+ size reduction, 95% coverage retention
|
|
7
|
+
*/
|
|
8
|
+
import type { LearnedPattern } from '../types.js';
|
|
9
|
+
/**
|
|
10
|
+
* IterativeCompressor configuration
|
|
11
|
+
*/
|
|
12
|
+
export interface IterativeCompressorConfig {
|
|
13
|
+
/** Similarity threshold for merging (0-1, default: 0.75) */
|
|
14
|
+
similarityThreshold: number;
|
|
15
|
+
/** Minimum patterns to trigger compression (default: 100) */
|
|
16
|
+
minPatterns: number;
|
|
17
|
+
/** Target reduction ratio (default: 0.3 = 30%) */
|
|
18
|
+
targetReduction: number;
|
|
19
|
+
/** Maximum iterations for convergence */
|
|
20
|
+
maxIterations: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Compression result report
|
|
24
|
+
*/
|
|
25
|
+
export interface CompressionReport {
|
|
26
|
+
/** Original pattern count */
|
|
27
|
+
originalCount: number;
|
|
28
|
+
/** Compressed pattern count */
|
|
29
|
+
compressedCount: number;
|
|
30
|
+
/** Merged groups info */
|
|
31
|
+
mergedGroups: MergedGroup[];
|
|
32
|
+
/** Coverage retained (0-1) */
|
|
33
|
+
coverageRetained: number;
|
|
34
|
+
/** Compression ratio achieved */
|
|
35
|
+
compressionRatio: number;
|
|
36
|
+
/** Compressed patterns */
|
|
37
|
+
compressedPatterns: LearnedPattern[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Information about a merged group
|
|
41
|
+
*/
|
|
42
|
+
export interface MergedGroup {
|
|
43
|
+
/** Merged pattern ID */
|
|
44
|
+
mergedId: string;
|
|
45
|
+
/** Source pattern IDs */
|
|
46
|
+
sourceIds: string[];
|
|
47
|
+
/** Similarity score */
|
|
48
|
+
similarityScore: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Compression statistics
|
|
52
|
+
*/
|
|
53
|
+
export interface CompressionStatistics {
|
|
54
|
+
/** Total compression operations */
|
|
55
|
+
totalCompressions: number;
|
|
56
|
+
/** Average reduction achieved */
|
|
57
|
+
averageReduction: number;
|
|
58
|
+
/** Last compression timestamp */
|
|
59
|
+
lastCompressionTime: Date | null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* IterativeCompressor interface
|
|
63
|
+
*/
|
|
64
|
+
export interface IterativeCompressor {
|
|
65
|
+
/**
|
|
66
|
+
* Check if compression should be triggered
|
|
67
|
+
*/
|
|
68
|
+
shouldCompress(patterns: LearnedPattern[]): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Compress patterns
|
|
71
|
+
*/
|
|
72
|
+
compress(patterns: LearnedPattern[]): Promise<CompressionReport>;
|
|
73
|
+
/**
|
|
74
|
+
* Calculate similarity between two patterns
|
|
75
|
+
*/
|
|
76
|
+
calculateSimilarity(p1: LearnedPattern, p2: LearnedPattern): number;
|
|
77
|
+
/**
|
|
78
|
+
* Merge similar patterns into one
|
|
79
|
+
*/
|
|
80
|
+
mergePatterns(patterns: LearnedPattern[]): Promise<LearnedPattern>;
|
|
81
|
+
/**
|
|
82
|
+
* Get compression statistics
|
|
83
|
+
*/
|
|
84
|
+
getStatistics(): CompressionStatistics;
|
|
85
|
+
/**
|
|
86
|
+
* Reset statistics
|
|
87
|
+
*/
|
|
88
|
+
resetStatistics(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Get current configuration
|
|
91
|
+
*/
|
|
92
|
+
getConfig(): IterativeCompressorConfig;
|
|
93
|
+
/**
|
|
94
|
+
* Update configuration
|
|
95
|
+
*/
|
|
96
|
+
updateConfig(config: Partial<IterativeCompressorConfig>): void;
|
|
97
|
+
/**
|
|
98
|
+
* Serialize to JSON
|
|
99
|
+
*/
|
|
100
|
+
toJSON(): string;
|
|
101
|
+
/**
|
|
102
|
+
* Deserialize from JSON
|
|
103
|
+
*/
|
|
104
|
+
fromJSON(json: string): void;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Default IterativeCompressor implementation
|
|
108
|
+
*/
|
|
109
|
+
export declare class DefaultIterativeCompressor implements IterativeCompressor {
|
|
110
|
+
private config;
|
|
111
|
+
private statistics;
|
|
112
|
+
constructor(config?: Partial<IterativeCompressorConfig>);
|
|
113
|
+
/**
|
|
114
|
+
* Check if compression should be triggered
|
|
115
|
+
*/
|
|
116
|
+
shouldCompress(patterns: LearnedPattern[]): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Compress patterns using iterative merging
|
|
119
|
+
*/
|
|
120
|
+
compress(patterns: LearnedPattern[]): Promise<CompressionReport>;
|
|
121
|
+
/**
|
|
122
|
+
* Single compression iteration
|
|
123
|
+
*/
|
|
124
|
+
private compressIteration;
|
|
125
|
+
/**
|
|
126
|
+
* Find clusters of similar patterns
|
|
127
|
+
*/
|
|
128
|
+
private findSimilarClusters;
|
|
129
|
+
/**
|
|
130
|
+
* Calculate similarity between two patterns
|
|
131
|
+
*/
|
|
132
|
+
calculateSimilarity(p1: LearnedPattern, p2: LearnedPattern): number;
|
|
133
|
+
/**
|
|
134
|
+
* Tokenize pattern name into words
|
|
135
|
+
*/
|
|
136
|
+
private tokenizeName;
|
|
137
|
+
/**
|
|
138
|
+
* Jaccard similarity between two sets
|
|
139
|
+
*/
|
|
140
|
+
private jaccardSimilarity;
|
|
141
|
+
/**
|
|
142
|
+
* Calculate AST structure similarity
|
|
143
|
+
*/
|
|
144
|
+
private calculateASTSimilarity;
|
|
145
|
+
/**
|
|
146
|
+
* Calculate average similarity within a cluster
|
|
147
|
+
*/
|
|
148
|
+
private calculateClusterSimilarity;
|
|
149
|
+
/**
|
|
150
|
+
* Merge similar patterns into one
|
|
151
|
+
*/
|
|
152
|
+
mergePatterns(patterns: LearnedPattern[]): Promise<LearnedPattern>;
|
|
153
|
+
/**
|
|
154
|
+
* Generate a name for merged pattern
|
|
155
|
+
*/
|
|
156
|
+
private generateMergedName;
|
|
157
|
+
/**
|
|
158
|
+
* Find common prefix among strings
|
|
159
|
+
*/
|
|
160
|
+
private findCommonPrefix;
|
|
161
|
+
/**
|
|
162
|
+
* Update statistics after compression
|
|
163
|
+
*/
|
|
164
|
+
private updateStatistics;
|
|
165
|
+
/**
|
|
166
|
+
* Get compression statistics
|
|
167
|
+
*/
|
|
168
|
+
getStatistics(): CompressionStatistics;
|
|
169
|
+
/**
|
|
170
|
+
* Reset statistics
|
|
171
|
+
*/
|
|
172
|
+
resetStatistics(): void;
|
|
173
|
+
/**
|
|
174
|
+
* Get current configuration
|
|
175
|
+
*/
|
|
176
|
+
getConfig(): IterativeCompressorConfig;
|
|
177
|
+
/**
|
|
178
|
+
* Update configuration
|
|
179
|
+
*/
|
|
180
|
+
updateConfig(config: Partial<IterativeCompressorConfig>): void;
|
|
181
|
+
/**
|
|
182
|
+
* Serialize to JSON
|
|
183
|
+
*/
|
|
184
|
+
toJSON(): string;
|
|
185
|
+
/**
|
|
186
|
+
* Deserialize from JSON
|
|
187
|
+
*/
|
|
188
|
+
fromJSON(json: string): void;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Create an IterativeCompressor instance
|
|
192
|
+
* @param config - Optional configuration
|
|
193
|
+
* @returns IterativeCompressor instance
|
|
194
|
+
*/
|
|
195
|
+
export declare function createIterativeCompressor(config?: Partial<IterativeCompressorConfig>): IterativeCompressor;
|
|
196
|
+
//# sourceMappingURL=IterativeCompressor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IterativeCompressor.d.ts","sourceRoot":"","sources":["../../src/library/IterativeCompressor.ts"],"names":[],"mappings":"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"}
|