@nahisaho/musubix-library-learner 2.1.0 → 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,283 @@
1
+ /**
2
+ * IncrementalUpdater - Fast Incremental Pattern Updates
3
+ * @module @nahisaho/musubix-library-learner
4
+ * @see TSK-LL-107
5
+ * @see DES-LL-107
6
+ * @see REQ-PERF-002 (5秒/500LOC目標)
7
+ *
8
+ * ファイル変更時のインクリメンタル更新により、
9
+ * 500LOCの変更を5秒以内で処理することを目標とする
10
+ */
11
+ // =============================================================================
12
+ // Default Implementation
13
+ // =============================================================================
14
+ /**
15
+ * Default implementation of IncrementalUpdater
16
+ */
17
+ class DefaultIncrementalUpdater {
18
+ config;
19
+ cache;
20
+ dependencies;
21
+ statistics;
22
+ constructor(config = {}) {
23
+ this.config = {
24
+ maxCacheSize: config.maxCacheSize ?? 1000,
25
+ enableParallelProcessing: config.enableParallelProcessing ?? true,
26
+ batchSize: config.batchSize ?? 50,
27
+ debounceMs: config.debounceMs ?? 100,
28
+ };
29
+ this.cache = new Map();
30
+ this.dependencies = new Map();
31
+ this.statistics = this.createInitialStatistics();
32
+ }
33
+ async processChange(change) {
34
+ const startTime = Date.now();
35
+ try {
36
+ // Check cache
37
+ const cached = this.cache.get(change.filePath);
38
+ const isCacheHit = this.checkCacheValid(cached, change);
39
+ if (isCacheHit && cached) {
40
+ // Cache hit - minimal processing
41
+ this.statistics.cacheHits++;
42
+ const processingTime = Date.now() - startTime;
43
+ this.updateProcessingStats(processingTime);
44
+ return {
45
+ success: true,
46
+ changeType: change.changeType,
47
+ processingTimeMs: processingTime,
48
+ affectedPatterns: cached.patterns,
49
+ dependentFiles: this.getReverseDependencies(change.filePath),
50
+ cacheHit: true,
51
+ };
52
+ }
53
+ // Cache miss - full processing
54
+ this.statistics.cacheMisses++;
55
+ // Process based on change type
56
+ const result = await this.processChangeInternal(change);
57
+ // Update cache
58
+ this.updateCache(change, result);
59
+ const processingTime = Date.now() - startTime;
60
+ this.updateProcessingStats(processingTime);
61
+ return {
62
+ success: true,
63
+ changeType: change.changeType,
64
+ processingTimeMs: processingTime,
65
+ affectedPatterns: result.patterns,
66
+ dependentFiles: this.getReverseDependencies(change.filePath),
67
+ cacheHit: false,
68
+ };
69
+ }
70
+ catch (error) {
71
+ const processingTime = Date.now() - startTime;
72
+ this.updateProcessingStats(processingTime);
73
+ return {
74
+ success: false,
75
+ changeType: change.changeType,
76
+ processingTimeMs: processingTime,
77
+ affectedPatterns: [],
78
+ dependentFiles: [],
79
+ cacheHit: false,
80
+ error: error instanceof Error ? error.message : String(error),
81
+ };
82
+ }
83
+ }
84
+ async processBatch(changes) {
85
+ if (changes.length === 0) {
86
+ return [];
87
+ }
88
+ if (this.config.enableParallelProcessing) {
89
+ // Process in parallel batches
90
+ const results = [];
91
+ for (let i = 0; i < changes.length; i += this.config.batchSize) {
92
+ const batch = changes.slice(i, i + this.config.batchSize);
93
+ const batchResults = await Promise.all(batch.map((change) => this.processChange(change)));
94
+ results.push(...batchResults);
95
+ }
96
+ return results;
97
+ }
98
+ else {
99
+ // Process sequentially
100
+ const results = [];
101
+ for (const change of changes) {
102
+ results.push(await this.processChange(change));
103
+ }
104
+ return results;
105
+ }
106
+ }
107
+ getDependencies(filePath) {
108
+ const deps = this.dependencies.get(filePath);
109
+ return deps ? Array.from(deps) : [];
110
+ }
111
+ getStatistics() {
112
+ return {
113
+ ...this.statistics,
114
+ cacheSize: this.cache.size,
115
+ };
116
+ }
117
+ reset() {
118
+ this.cache.clear();
119
+ this.dependencies.clear();
120
+ this.statistics = this.createInitialStatistics();
121
+ }
122
+ clearCache() {
123
+ this.cache.clear();
124
+ }
125
+ toJSON() {
126
+ return JSON.stringify({
127
+ config: this.config,
128
+ statistics: this.statistics,
129
+ cacheEntries: Array.from(this.cache.entries()).map(([k, v]) => ({
130
+ key: k,
131
+ value: v,
132
+ })),
133
+ dependencyEntries: Array.from(this.dependencies.entries()).map(([k, v]) => ({ key: k, value: Array.from(v) })),
134
+ });
135
+ }
136
+ fromJSON(json) {
137
+ const data = JSON.parse(json);
138
+ if (data.statistics) {
139
+ this.statistics = { ...this.statistics, ...data.statistics };
140
+ }
141
+ if (data.cacheEntries) {
142
+ this.cache.clear();
143
+ for (const entry of data.cacheEntries) {
144
+ this.cache.set(entry.key, entry.value);
145
+ }
146
+ }
147
+ if (data.dependencyEntries) {
148
+ this.dependencies.clear();
149
+ for (const entry of data.dependencyEntries) {
150
+ this.dependencies.set(entry.key, new Set(entry.value));
151
+ }
152
+ }
153
+ }
154
+ // =========================================================================
155
+ // Private Methods
156
+ // =========================================================================
157
+ createInitialStatistics() {
158
+ return {
159
+ totalChangesProcessed: 0,
160
+ cacheHits: 0,
161
+ cacheMisses: 0,
162
+ cacheSize: 0,
163
+ averageProcessingTimeMs: 0,
164
+ totalProcessingTimeMs: 0,
165
+ };
166
+ }
167
+ checkCacheValid(cached, change) {
168
+ if (!cached)
169
+ return false;
170
+ if (change.changeType === 'deleted')
171
+ return false;
172
+ // Check if hash changed
173
+ if (change.newHash && cached.hash !== change.newHash) {
174
+ return false;
175
+ }
176
+ // Check if affected lines overlap with previous processing
177
+ // If timestamp is newer, cache is invalid
178
+ if (change.timestamp > cached.lastProcessed) {
179
+ return false;
180
+ }
181
+ return true;
182
+ }
183
+ async processChangeInternal(change) {
184
+ // Simulate pattern extraction based on change type and size
185
+ const patterns = [];
186
+ const dependencies = [];
187
+ // Extract patterns from affected lines (simplified simulation)
188
+ const lineCount = change.affectedLines.length;
189
+ // Pattern detection heuristics
190
+ if (lineCount > 0) {
191
+ // Detect common patterns based on file path and change characteristics
192
+ if (change.filePath.includes('repository')) {
193
+ patterns.push('repository-pattern');
194
+ }
195
+ if (change.filePath.includes('service')) {
196
+ patterns.push('service-pattern');
197
+ }
198
+ if (change.filePath.includes('factory')) {
199
+ patterns.push('factory-pattern');
200
+ }
201
+ // Large changes might indicate structural patterns
202
+ if (lineCount > 50) {
203
+ patterns.push('large-module-pattern');
204
+ }
205
+ }
206
+ // Track file for dependencies
207
+ this.trackDependency(change.filePath);
208
+ return { patterns, dependencies };
209
+ }
210
+ updateCache(change, result) {
211
+ // Evict if at capacity
212
+ if (this.cache.size >= this.config.maxCacheSize) {
213
+ // LRU eviction - remove oldest entry
214
+ const oldestKey = this.findOldestCacheEntry();
215
+ if (oldestKey) {
216
+ this.cache.delete(oldestKey);
217
+ }
218
+ }
219
+ // Handle deletion
220
+ if (change.changeType === 'deleted') {
221
+ this.cache.delete(change.filePath);
222
+ this.dependencies.delete(change.filePath);
223
+ return;
224
+ }
225
+ // Add/update cache entry
226
+ this.cache.set(change.filePath, {
227
+ filePath: change.filePath,
228
+ hash: change.newHash ?? this.generateHash(change),
229
+ patterns: result.patterns,
230
+ dependencies: result.dependencies,
231
+ lastProcessed: Date.now(),
232
+ });
233
+ }
234
+ findOldestCacheEntry() {
235
+ let oldest;
236
+ for (const [key, value] of this.cache.entries()) {
237
+ if (!oldest || value.lastProcessed < oldest.time) {
238
+ oldest = { key, time: value.lastProcessed };
239
+ }
240
+ }
241
+ return oldest?.key;
242
+ }
243
+ generateHash(change) {
244
+ // Simple hash based on file path and timestamp
245
+ return `${change.filePath}-${change.timestamp}-${change.affectedLines.length}`;
246
+ }
247
+ trackDependency(filePath) {
248
+ if (!this.dependencies.has(filePath)) {
249
+ this.dependencies.set(filePath, new Set());
250
+ }
251
+ }
252
+ getReverseDependencies(filePath) {
253
+ const dependents = [];
254
+ for (const [file, deps] of this.dependencies.entries()) {
255
+ if (deps.has(filePath)) {
256
+ dependents.push(file);
257
+ }
258
+ }
259
+ return dependents;
260
+ }
261
+ updateProcessingStats(processingTimeMs) {
262
+ const prevTotal = this.statistics.totalChangesProcessed;
263
+ const prevAvg = this.statistics.averageProcessingTimeMs;
264
+ this.statistics.totalChangesProcessed++;
265
+ this.statistics.totalProcessingTimeMs += processingTimeMs;
266
+ this.statistics.averageProcessingTimeMs =
267
+ (prevAvg * prevTotal + processingTimeMs) /
268
+ this.statistics.totalChangesProcessed;
269
+ }
270
+ }
271
+ // =============================================================================
272
+ // Factory Function
273
+ // =============================================================================
274
+ /**
275
+ * Create an IncrementalUpdater instance
276
+ * @param config - Optional configuration
277
+ * @returns IncrementalUpdater instance
278
+ */
279
+ export function createIncrementalUpdater(config = {}) {
280
+ return new DefaultIncrementalUpdater(config);
281
+ }
282
+ export { DefaultIncrementalUpdater };
283
+ //# sourceMappingURL=IncrementalUpdater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IncrementalUpdater.js","sourceRoot":"","sources":["../../src/updater/IncrementalUpdater.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Updater module - Incremental update functionality
3
+ * @module @nahisaho/musubix-library-learner/updater
4
+ */
5
+ export { createIncrementalUpdater, DefaultIncrementalUpdater, } from './IncrementalUpdater.js';
6
+ export type { IncrementalUpdater, UpdaterConfig, FileChange, ChangeType, UpdateResult, UpdateStatistics, } from './IncrementalUpdater.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/updater/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,GACjB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Updater module - Incremental update functionality
3
+ * @module @nahisaho/musubix-library-learner/updater
4
+ */
5
+ export { createIncrementalUpdater, DefaultIncrementalUpdater, } from './IncrementalUpdater.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/updater/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nahisaho/musubix-library-learner",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "DreamCoder-style hierarchical abstraction and library learning for MUSUBIX",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",