@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.
Files changed (81) hide show
  1. package/dist/EnhancedLibraryLearner.d.ts +159 -0
  2. package/dist/EnhancedLibraryLearner.d.ts.map +1 -0
  3. package/dist/EnhancedLibraryLearner.js +296 -0
  4. package/dist/EnhancedLibraryLearner.js.map +1 -0
  5. package/dist/domain/DomainAwareAbstractor.d.ts +226 -0
  6. package/dist/domain/DomainAwareAbstractor.d.ts.map +1 -0
  7. package/dist/domain/DomainAwareAbstractor.js +237 -0
  8. package/dist/domain/DomainAwareAbstractor.js.map +1 -0
  9. package/dist/domain/__tests__/DomainAwareAbstractor.test.d.ts +9 -0
  10. package/dist/domain/__tests__/DomainAwareAbstractor.test.d.ts.map +1 -0
  11. package/dist/domain/__tests__/DomainAwareAbstractor.test.js +217 -0
  12. package/dist/domain/__tests__/DomainAwareAbstractor.test.js.map +1 -0
  13. package/dist/domain/index.d.ts +7 -0
  14. package/dist/domain/index.d.ts.map +1 -0
  15. package/dist/domain/index.js +6 -0
  16. package/dist/domain/index.js.map +1 -0
  17. package/dist/hierarchy/HierarchyManager.d.ts +227 -0
  18. package/dist/hierarchy/HierarchyManager.d.ts.map +1 -0
  19. package/dist/hierarchy/HierarchyManager.js +342 -0
  20. package/dist/hierarchy/HierarchyManager.js.map +1 -0
  21. package/dist/hierarchy/index.d.ts +9 -0
  22. package/dist/hierarchy/index.d.ts.map +1 -0
  23. package/dist/hierarchy/index.js +8 -0
  24. package/dist/hierarchy/index.js.map +1 -0
  25. package/dist/index.d.ts +18 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +13 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/library/IterativeCompressor.d.ts +196 -0
  30. package/dist/library/IterativeCompressor.d.ts.map +1 -0
  31. package/dist/library/IterativeCompressor.js +367 -0
  32. package/dist/library/IterativeCompressor.js.map +1 -0
  33. package/dist/library/PatternVersionManager.d.ts +177 -0
  34. package/dist/library/PatternVersionManager.d.ts.map +1 -0
  35. package/dist/library/PatternVersionManager.js +223 -0
  36. package/dist/library/PatternVersionManager.js.map +1 -0
  37. package/dist/library/__tests__/IterativeCompressor.test.d.ts +9 -0
  38. package/dist/library/__tests__/IterativeCompressor.test.d.ts.map +1 -0
  39. package/dist/library/__tests__/IterativeCompressor.test.js +200 -0
  40. package/dist/library/__tests__/IterativeCompressor.test.js.map +1 -0
  41. package/dist/library/__tests__/PatternVersionManager.test.d.ts +9 -0
  42. package/dist/library/__tests__/PatternVersionManager.test.d.ts.map +1 -0
  43. package/dist/library/__tests__/PatternVersionManager.test.js +218 -0
  44. package/dist/library/__tests__/PatternVersionManager.test.js.map +1 -0
  45. package/dist/library/index.d.ts +4 -0
  46. package/dist/library/index.d.ts.map +1 -1
  47. package/dist/library/index.js +4 -0
  48. package/dist/library/index.js.map +1 -1
  49. package/dist/metrics/MetricsExporter.d.ts +128 -0
  50. package/dist/metrics/MetricsExporter.d.ts.map +1 -0
  51. package/dist/metrics/MetricsExporter.js +157 -0
  52. package/dist/metrics/MetricsExporter.js.map +1 -0
  53. package/dist/metrics/index.d.ts +9 -0
  54. package/dist/metrics/index.d.ts.map +1 -0
  55. package/dist/metrics/index.js +8 -0
  56. package/dist/metrics/index.js.map +1 -0
  57. package/dist/rewrite/RewriteRuleSet.d.ts +136 -0
  58. package/dist/rewrite/RewriteRuleSet.d.ts.map +1 -0
  59. package/dist/rewrite/RewriteRuleSet.js +460 -0
  60. package/dist/rewrite/RewriteRuleSet.js.map +1 -0
  61. package/dist/rewrite/index.d.ts +9 -0
  62. package/dist/rewrite/index.d.ts.map +1 -0
  63. package/dist/rewrite/index.js +8 -0
  64. package/dist/rewrite/index.js.map +1 -0
  65. package/dist/search/TypeDirectedPruner.d.ts +138 -0
  66. package/dist/search/TypeDirectedPruner.d.ts.map +1 -0
  67. package/dist/search/TypeDirectedPruner.js +245 -0
  68. package/dist/search/TypeDirectedPruner.js.map +1 -0
  69. package/dist/search/index.d.ts +9 -0
  70. package/dist/search/index.d.ts.map +1 -0
  71. package/dist/search/index.js +8 -0
  72. package/dist/search/index.js.map +1 -0
  73. package/dist/updater/IncrementalUpdater.d.ts +152 -0
  74. package/dist/updater/IncrementalUpdater.d.ts.map +1 -0
  75. package/dist/updater/IncrementalUpdater.js +283 -0
  76. package/dist/updater/IncrementalUpdater.js.map +1 -0
  77. package/dist/updater/index.d.ts +7 -0
  78. package/dist/updater/index.d.ts.map +1 -0
  79. package/dist/updater/index.js +6 -0
  80. package/dist/updater/index.js.map +1 -0
  81. 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
@@ -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;AAIxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,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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"}