@nahisaho/musubix-library-learner 2.0.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/README.md +117 -0
- package/dist/LibraryLearner.d.ts +36 -0
- package/dist/LibraryLearner.d.ts.map +1 -0
- package/dist/LibraryLearner.js +217 -0
- package/dist/LibraryLearner.js.map +1 -0
- package/dist/abstraction/Abstractor.d.ts +29 -0
- package/dist/abstraction/Abstractor.d.ts.map +1 -0
- package/dist/abstraction/Abstractor.js +290 -0
- package/dist/abstraction/Abstractor.js.map +1 -0
- package/dist/abstraction/PatternMiner.d.ts +23 -0
- package/dist/abstraction/PatternMiner.d.ts.map +1 -0
- package/dist/abstraction/PatternMiner.js +263 -0
- package/dist/abstraction/PatternMiner.js.map +1 -0
- package/dist/abstraction/TypeAnalyzer.d.ts +27 -0
- package/dist/abstraction/TypeAnalyzer.d.ts.map +1 -0
- package/dist/abstraction/TypeAnalyzer.js +239 -0
- package/dist/abstraction/TypeAnalyzer.js.map +1 -0
- package/dist/abstraction/index.d.ts +10 -0
- package/dist/abstraction/index.d.ts.map +1 -0
- package/dist/abstraction/index.js +7 -0
- package/dist/abstraction/index.js.map +1 -0
- package/dist/egraph/EGraph.d.ts +29 -0
- package/dist/egraph/EGraph.d.ts.map +1 -0
- package/dist/egraph/EGraph.js +86 -0
- package/dist/egraph/EGraph.js.map +1 -0
- package/dist/egraph/EGraphBuilder.d.ts +24 -0
- package/dist/egraph/EGraphBuilder.d.ts.map +1 -0
- package/dist/egraph/EGraphBuilder.js +37 -0
- package/dist/egraph/EGraphBuilder.js.map +1 -0
- package/dist/egraph/Extractor.d.ts +24 -0
- package/dist/egraph/Extractor.d.ts.map +1 -0
- package/dist/egraph/Extractor.js +61 -0
- package/dist/egraph/Extractor.js.map +1 -0
- package/dist/egraph/index.d.ts +10 -0
- package/dist/egraph/index.d.ts.map +1 -0
- package/dist/egraph/index.js +7 -0
- package/dist/egraph/index.js.map +1 -0
- package/dist/errors.d.ts +66 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +99 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/library/Consolidator.d.ts +26 -0
- package/dist/library/Consolidator.d.ts.map +1 -0
- package/dist/library/Consolidator.js +54 -0
- package/dist/library/Consolidator.js.map +1 -0
- package/dist/library/LibraryStore.d.ts +33 -0
- package/dist/library/LibraryStore.d.ts.map +1 -0
- package/dist/library/LibraryStore.js +61 -0
- package/dist/library/LibraryStore.js.map +1 -0
- package/dist/library/Pruner.d.ts +24 -0
- package/dist/library/Pruner.d.ts.map +1 -0
- package/dist/library/Pruner.js +41 -0
- package/dist/library/Pruner.js.map +1 -0
- package/dist/library/index.d.ts +10 -0
- package/dist/library/index.d.ts.map +1 -0
- package/dist/library/index.js +7 -0
- package/dist/library/index.js.map +1 -0
- package/dist/types.d.ts +365 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +66 -0
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error classes for musubix-library-learner
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Base error class for library-learner errors
|
|
6
|
+
*/
|
|
7
|
+
export declare class LibraryLearnerError extends Error {
|
|
8
|
+
readonly code: string;
|
|
9
|
+
readonly cause?: Error | undefined;
|
|
10
|
+
constructor(message: string, code: string, cause?: Error | undefined);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Error thrown when pattern mining fails
|
|
14
|
+
*/
|
|
15
|
+
export declare class PatternMiningError extends LibraryLearnerError {
|
|
16
|
+
constructor(message: string, cause?: Error);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Error thrown when abstraction fails
|
|
20
|
+
*/
|
|
21
|
+
export declare class AbstractionError extends LibraryLearnerError {
|
|
22
|
+
constructor(message: string, cause?: Error);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Error thrown when type analysis fails
|
|
26
|
+
*/
|
|
27
|
+
export declare class TypeAnalysisError extends LibraryLearnerError {
|
|
28
|
+
constructor(message: string, cause?: Error);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Error thrown when library operations fail
|
|
32
|
+
*/
|
|
33
|
+
export declare class LibraryError extends LibraryLearnerError {
|
|
34
|
+
constructor(message: string, cause?: Error);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Error thrown when E-graph operations fail
|
|
38
|
+
*/
|
|
39
|
+
export declare class EGraphError extends LibraryLearnerError {
|
|
40
|
+
constructor(message: string, cause?: Error);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Error thrown when synthesis fails
|
|
44
|
+
*/
|
|
45
|
+
export declare class SynthesisError extends LibraryLearnerError {
|
|
46
|
+
constructor(message: string, cause?: Error);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Error thrown when validation fails
|
|
50
|
+
*/
|
|
51
|
+
export declare class ValidationError extends LibraryLearnerError {
|
|
52
|
+
constructor(message: string, cause?: Error);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Error thrown when a pattern is not found
|
|
56
|
+
*/
|
|
57
|
+
export declare class PatternNotFoundError extends LibraryLearnerError {
|
|
58
|
+
constructor(patternId: string);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Error thrown when operation times out
|
|
62
|
+
*/
|
|
63
|
+
export declare class TimeoutError extends LibraryLearnerError {
|
|
64
|
+
constructor(operation: string, timeout: number);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,IAAI,EAAE,MAAM;aACZ,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,KAAK,YAAA;CAMhC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,mBAAmB;gBAC7C,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,mBAAmB;gBAC3C,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,mBAAmB;gBAC5C,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,mBAAmB;gBACvC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,mBAAmB;gBACtC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,mBAAmB;gBACzC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB;gBAC1C,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAI3C;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAC/C,SAAS,EAAE,MAAM;CAI9B;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,mBAAmB;gBACvC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI/C"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error classes for musubix-library-learner
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Base error class for library-learner errors
|
|
6
|
+
*/
|
|
7
|
+
export class LibraryLearnerError extends Error {
|
|
8
|
+
code;
|
|
9
|
+
cause;
|
|
10
|
+
constructor(message, code, cause) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.code = code;
|
|
13
|
+
this.cause = cause;
|
|
14
|
+
this.name = 'LibraryLearnerError';
|
|
15
|
+
Error.captureStackTrace?.(this, this.constructor);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Error thrown when pattern mining fails
|
|
20
|
+
*/
|
|
21
|
+
export class PatternMiningError extends LibraryLearnerError {
|
|
22
|
+
constructor(message, cause) {
|
|
23
|
+
super(message, 'PATTERN_MINING_ERROR', cause);
|
|
24
|
+
this.name = 'PatternMiningError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Error thrown when abstraction fails
|
|
29
|
+
*/
|
|
30
|
+
export class AbstractionError extends LibraryLearnerError {
|
|
31
|
+
constructor(message, cause) {
|
|
32
|
+
super(message, 'ABSTRACTION_ERROR', cause);
|
|
33
|
+
this.name = 'AbstractionError';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Error thrown when type analysis fails
|
|
38
|
+
*/
|
|
39
|
+
export class TypeAnalysisError extends LibraryLearnerError {
|
|
40
|
+
constructor(message, cause) {
|
|
41
|
+
super(message, 'TYPE_ANALYSIS_ERROR', cause);
|
|
42
|
+
this.name = 'TypeAnalysisError';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Error thrown when library operations fail
|
|
47
|
+
*/
|
|
48
|
+
export class LibraryError extends LibraryLearnerError {
|
|
49
|
+
constructor(message, cause) {
|
|
50
|
+
super(message, 'LIBRARY_ERROR', cause);
|
|
51
|
+
this.name = 'LibraryError';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Error thrown when E-graph operations fail
|
|
56
|
+
*/
|
|
57
|
+
export class EGraphError extends LibraryLearnerError {
|
|
58
|
+
constructor(message, cause) {
|
|
59
|
+
super(message, 'EGRAPH_ERROR', cause);
|
|
60
|
+
this.name = 'EGraphError';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Error thrown when synthesis fails
|
|
65
|
+
*/
|
|
66
|
+
export class SynthesisError extends LibraryLearnerError {
|
|
67
|
+
constructor(message, cause) {
|
|
68
|
+
super(message, 'SYNTHESIS_ERROR', cause);
|
|
69
|
+
this.name = 'SynthesisError';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Error thrown when validation fails
|
|
74
|
+
*/
|
|
75
|
+
export class ValidationError extends LibraryLearnerError {
|
|
76
|
+
constructor(message, cause) {
|
|
77
|
+
super(message, 'VALIDATION_ERROR', cause);
|
|
78
|
+
this.name = 'ValidationError';
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Error thrown when a pattern is not found
|
|
83
|
+
*/
|
|
84
|
+
export class PatternNotFoundError extends LibraryLearnerError {
|
|
85
|
+
constructor(patternId) {
|
|
86
|
+
super(`Pattern not found: ${patternId}`, 'PATTERN_NOT_FOUND');
|
|
87
|
+
this.name = 'PatternNotFoundError';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Error thrown when operation times out
|
|
92
|
+
*/
|
|
93
|
+
export class TimeoutError extends LibraryLearnerError {
|
|
94
|
+
constructor(operation, timeout) {
|
|
95
|
+
super(`Operation '${operation}' timed out after ${timeout}ms`, 'TIMEOUT');
|
|
96
|
+
this.name = 'TimeoutError';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAG1B;IACA;IAHlB,YACE,OAAe,EACC,IAAY,EACZ,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,mBAAmB;IACzD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,mBAAmB;IACvD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IACxD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,mBAAmB;IACnD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,mBAAmB;IAClD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,mBAAmB;IACrD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,mBAAmB;IACtD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,SAAiB;QAC3B,KAAK,CAAC,sBAAsB,SAAS,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,mBAAmB;IACnD,YAAY,SAAiB,EAAE,OAAe;QAC5C,KAAK,CAAC,cAAc,SAAS,qBAAqB,OAAO,IAAI,EAAE,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nahisaho/musubix-library-learner
|
|
3
|
+
*
|
|
4
|
+
* DreamCoder-style hierarchical abstraction and library learning for MUSUBIX.
|
|
5
|
+
* Provides pattern mining, abstraction, type-directed search, and E-graph optimization.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
* @module @nahisaho/musubix-library-learner
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { LibraryLearner, createLibraryLearner } from '@nahisaho/musubix-library-learner';
|
|
13
|
+
*
|
|
14
|
+
* const learner = createLibraryLearner({
|
|
15
|
+
* abstractionLevels: 3,
|
|
16
|
+
* minOccurrences: 2,
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Learn from code corpus
|
|
20
|
+
* await learner.learnFromCorpus(corpus);
|
|
21
|
+
*
|
|
22
|
+
* // Use library for synthesis
|
|
23
|
+
* const result = await learner.synthesize(spec);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export * from './types.js';
|
|
27
|
+
export * from './errors.js';
|
|
28
|
+
export type { PatternMiner } from './abstraction/PatternMiner.js';
|
|
29
|
+
export { createPatternMiner } from './abstraction/PatternMiner.js';
|
|
30
|
+
export type { Abstractor } from './abstraction/Abstractor.js';
|
|
31
|
+
export { createAbstractor } from './abstraction/Abstractor.js';
|
|
32
|
+
export type { TypeAnalyzer } from './abstraction/TypeAnalyzer.js';
|
|
33
|
+
export { createTypeAnalyzer } from './abstraction/TypeAnalyzer.js';
|
|
34
|
+
export type { LibraryStore } from './library/LibraryStore.js';
|
|
35
|
+
export { createLibraryStore } from './library/LibraryStore.js';
|
|
36
|
+
export type { Consolidator } from './library/Consolidator.js';
|
|
37
|
+
export { createConsolidator } from './library/Consolidator.js';
|
|
38
|
+
export type { Pruner } from './library/Pruner.js';
|
|
39
|
+
export { createPruner } from './library/Pruner.js';
|
|
40
|
+
export type { EGraph } from './egraph/EGraph.js';
|
|
41
|
+
export { createEGraph } from './egraph/EGraph.js';
|
|
42
|
+
export type { EGraphBuilder } from './egraph/EGraphBuilder.js';
|
|
43
|
+
export { createEGraphBuilder } from './egraph/EGraphBuilder.js';
|
|
44
|
+
export type { Extractor } from './egraph/Extractor.js';
|
|
45
|
+
export { createExtractor } from './egraph/Extractor.js';
|
|
46
|
+
export type { LibraryLearner } from './LibraryLearner.js';
|
|
47
|
+
export { createLibraryLearner } from './LibraryLearner.js';
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nahisaho/musubix-library-learner
|
|
3
|
+
*
|
|
4
|
+
* DreamCoder-style hierarchical abstraction and library learning for MUSUBIX.
|
|
5
|
+
* Provides pattern mining, abstraction, type-directed search, and E-graph optimization.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
* @module @nahisaho/musubix-library-learner
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { LibraryLearner, createLibraryLearner } from '@nahisaho/musubix-library-learner';
|
|
13
|
+
*
|
|
14
|
+
* const learner = createLibraryLearner({
|
|
15
|
+
* abstractionLevels: 3,
|
|
16
|
+
* minOccurrences: 2,
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Learn from code corpus
|
|
20
|
+
* await learner.learnFromCorpus(corpus);
|
|
21
|
+
*
|
|
22
|
+
* // Use library for synthesis
|
|
23
|
+
* const result = await learner.synthesize(spec);
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
// Types
|
|
27
|
+
export * from './types.js';
|
|
28
|
+
// Errors
|
|
29
|
+
export * from './errors.js';
|
|
30
|
+
export { createPatternMiner } from './abstraction/PatternMiner.js';
|
|
31
|
+
export { createAbstractor } from './abstraction/Abstractor.js';
|
|
32
|
+
export { createTypeAnalyzer } from './abstraction/TypeAnalyzer.js';
|
|
33
|
+
export { createLibraryStore } from './library/LibraryStore.js';
|
|
34
|
+
export { createConsolidator } from './library/Consolidator.js';
|
|
35
|
+
export { createPruner } from './library/Pruner.js';
|
|
36
|
+
export { createEGraph } from './egraph/EGraph.js';
|
|
37
|
+
export { createEGraphBuilder } from './egraph/EGraphBuilder.js';
|
|
38
|
+
export { createExtractor } from './egraph/Extractor.js';
|
|
39
|
+
export { createLibraryLearner } from './LibraryLearner.js';
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consolidator - Consolidate similar patterns
|
|
3
|
+
*
|
|
4
|
+
* REQ-LL-002: ライブラリ成長
|
|
5
|
+
* DES-PHASE2-001: Library Manager / Consolidator
|
|
6
|
+
*
|
|
7
|
+
* @stub This is a stub implementation. Full implementation in M3.
|
|
8
|
+
*/
|
|
9
|
+
import type { LearnedPattern, SimilarityCluster, ConsolidationReport } from '../types.js';
|
|
10
|
+
import type { LibraryStore } from './LibraryStore.js';
|
|
11
|
+
/**
|
|
12
|
+
* Consolidator interface
|
|
13
|
+
*/
|
|
14
|
+
export interface Consolidator {
|
|
15
|
+
/** Find similar patterns */
|
|
16
|
+
findSimilar(patterns: LearnedPattern[]): SimilarityCluster[];
|
|
17
|
+
/** Merge a cluster into a single pattern */
|
|
18
|
+
merge(cluster: SimilarityCluster): LearnedPattern;
|
|
19
|
+
/** Consolidate entire library */
|
|
20
|
+
consolidateLibrary(store: LibraryStore): Promise<ConsolidationReport>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Factory function to create a Consolidator
|
|
24
|
+
*/
|
|
25
|
+
export declare function createConsolidator(): Consolidator;
|
|
26
|
+
//# sourceMappingURL=Consolidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Consolidator.d.ts","sourceRoot":"","sources":["../../src/library/Consolidator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAE7D,4CAA4C;IAC5C,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAElD,iCAAiC;IACjC,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACvE;AA6CD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consolidator - Consolidate similar patterns
|
|
3
|
+
*
|
|
4
|
+
* REQ-LL-002: ライブラリ成長
|
|
5
|
+
* DES-PHASE2-001: Library Manager / Consolidator
|
|
6
|
+
*
|
|
7
|
+
* @stub This is a stub implementation. Full implementation in M3.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Default Consolidator implementation (stub)
|
|
11
|
+
*/
|
|
12
|
+
class ConsolidatorImpl {
|
|
13
|
+
findSimilar(_patterns) {
|
|
14
|
+
// Stub: return empty clusters
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
merge(cluster) {
|
|
18
|
+
// Stub: return a placeholder pattern
|
|
19
|
+
return {
|
|
20
|
+
id: `MERGED-${cluster.representative}`,
|
|
21
|
+
name: 'Merged Pattern',
|
|
22
|
+
level: 1,
|
|
23
|
+
content: {
|
|
24
|
+
id: cluster.representative,
|
|
25
|
+
ast: { type: 'Unknown' },
|
|
26
|
+
occurrenceCount: cluster.members.length,
|
|
27
|
+
locations: [],
|
|
28
|
+
},
|
|
29
|
+
usageCount: 0,
|
|
30
|
+
confidence: 0.5,
|
|
31
|
+
createdAt: new Date(),
|
|
32
|
+
lastUsedAt: new Date(),
|
|
33
|
+
tags: [],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async consolidateLibrary(store) {
|
|
37
|
+
const startTime = Date.now();
|
|
38
|
+
const patterns = await store.getAll();
|
|
39
|
+
const clusters = this.findSimilar(patterns);
|
|
40
|
+
return {
|
|
41
|
+
clustersFound: clusters.length,
|
|
42
|
+
patternsMerged: 0,
|
|
43
|
+
newPatterns: [],
|
|
44
|
+
duration: Date.now() - startTime,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Factory function to create a Consolidator
|
|
50
|
+
*/
|
|
51
|
+
export function createConsolidator() {
|
|
52
|
+
return new ConsolidatorImpl();
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=Consolidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Consolidator.js","sourceRoot":"","sources":["../../src/library/Consolidator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuBH;;GAEG;AACH,MAAM,gBAAgB;IACpB,WAAW,CAAC,SAA2B;QACrC,8BAA8B;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,OAA0B;QAC9B,qCAAqC;QACrC,OAAO;YACL,EAAE,EAAE,UAAU,OAAO,CAAC,cAAc,EAAE;YACtC,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,CAAC;YACR,OAAO,EAAE;gBACP,EAAE,EAAE,OAAO,CAAC,cAAc;gBAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACxB,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;gBACvC,SAAS,EAAE,EAAE;aACd;YACD,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAmB;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE5C,OAAO;YACL,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,cAAc,EAAE,CAAC;YACjB,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACjC,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,gBAAgB,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LibraryStore - Pattern library storage
|
|
3
|
+
*
|
|
4
|
+
* REQ-LL-002: ライブラリ成長
|
|
5
|
+
* DES-PHASE2-001: Library Manager / LibraryStore
|
|
6
|
+
*
|
|
7
|
+
* @stub This is a stub implementation. Full implementation in M3.
|
|
8
|
+
*/
|
|
9
|
+
import type { LearnedPattern, PatternId, PatternQuery } from '../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* LibraryStore interface
|
|
12
|
+
*/
|
|
13
|
+
export interface LibraryStore {
|
|
14
|
+
/** Add a pattern to the library */
|
|
15
|
+
add(pattern: LearnedPattern): Promise<void>;
|
|
16
|
+
/** Get a pattern by ID */
|
|
17
|
+
get(id: PatternId): Promise<LearnedPattern | null>;
|
|
18
|
+
/** Search patterns by query */
|
|
19
|
+
search(query: PatternQuery): Promise<LearnedPattern[]>;
|
|
20
|
+
/** Get all patterns */
|
|
21
|
+
getAll(): Promise<LearnedPattern[]>;
|
|
22
|
+
/** Update a pattern */
|
|
23
|
+
update(id: PatternId, updates: Partial<LearnedPattern>): Promise<void>;
|
|
24
|
+
/** Delete a pattern */
|
|
25
|
+
delete(id: PatternId): Promise<void>;
|
|
26
|
+
/** Get pattern count */
|
|
27
|
+
count(): Promise<number>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Factory function to create a LibraryStore
|
|
31
|
+
*/
|
|
32
|
+
export declare function createLibraryStore(): LibraryStore;
|
|
33
|
+
//# sourceMappingURL=LibraryStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LibraryStore.d.ts","sourceRoot":"","sources":["../../src/library/LibraryStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACb,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,0BAA0B;IAC1B,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAEnD,+BAA+B;IAC/B,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEvD,uBAAuB;IACvB,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEpC,uBAAuB;IACvB,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvE,uBAAuB;IACvB,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,wBAAwB;IACxB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AAgED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LibraryStore - Pattern library storage
|
|
3
|
+
*
|
|
4
|
+
* REQ-LL-002: ライブラリ成長
|
|
5
|
+
* DES-PHASE2-001: Library Manager / LibraryStore
|
|
6
|
+
*
|
|
7
|
+
* @stub This is a stub implementation. Full implementation in M3.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* In-memory LibraryStore implementation (stub)
|
|
11
|
+
*/
|
|
12
|
+
class InMemoryLibraryStore {
|
|
13
|
+
patterns = new Map();
|
|
14
|
+
async add(pattern) {
|
|
15
|
+
this.patterns.set(pattern.id, pattern);
|
|
16
|
+
}
|
|
17
|
+
async get(id) {
|
|
18
|
+
return this.patterns.get(id) ?? null;
|
|
19
|
+
}
|
|
20
|
+
async search(query) {
|
|
21
|
+
let results = Array.from(this.patterns.values());
|
|
22
|
+
if (query.level !== undefined) {
|
|
23
|
+
results = results.filter((p) => p.level === query.level);
|
|
24
|
+
}
|
|
25
|
+
if (query.tags && query.tags.length > 0) {
|
|
26
|
+
results = results.filter((p) => query.tags.some((t) => p.tags.includes(t)));
|
|
27
|
+
}
|
|
28
|
+
if (query.minConfidence !== undefined) {
|
|
29
|
+
results = results.filter((p) => p.confidence >= query.minConfidence);
|
|
30
|
+
}
|
|
31
|
+
if (query.minUsageCount !== undefined) {
|
|
32
|
+
results = results.filter((p) => p.usageCount >= query.minUsageCount);
|
|
33
|
+
}
|
|
34
|
+
if (query.limit !== undefined) {
|
|
35
|
+
results = results.slice(0, query.limit);
|
|
36
|
+
}
|
|
37
|
+
return results;
|
|
38
|
+
}
|
|
39
|
+
async getAll() {
|
|
40
|
+
return Array.from(this.patterns.values());
|
|
41
|
+
}
|
|
42
|
+
async update(id, updates) {
|
|
43
|
+
const pattern = this.patterns.get(id);
|
|
44
|
+
if (pattern) {
|
|
45
|
+
this.patterns.set(id, { ...pattern, ...updates });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async delete(id) {
|
|
49
|
+
this.patterns.delete(id);
|
|
50
|
+
}
|
|
51
|
+
async count() {
|
|
52
|
+
return this.patterns.size;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Factory function to create a LibraryStore
|
|
57
|
+
*/
|
|
58
|
+
export function createLibraryStore() {
|
|
59
|
+
return new InMemoryLibraryStore();
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=LibraryStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LibraryStore.js","sourceRoot":"","sources":["../../src/library/LibraryStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkCH;;GAEG;AACH,MAAM,oBAAoB;IAChB,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAExD,KAAK,CAAC,GAAG,CAAC,OAAuB;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAa;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAmB;QAC9B,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC5C,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,aAAc,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,aAAc,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAa,EAAE,OAAgC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAa;QACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,oBAAoB,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pruner - Prune unused patterns
|
|
3
|
+
*
|
|
4
|
+
* REQ-LL-002: ライブラリ成長
|
|
5
|
+
* DES-PHASE2-001: Library Manager / Pruner
|
|
6
|
+
*
|
|
7
|
+
* @stub This is a stub implementation. Full implementation in M3.
|
|
8
|
+
*/
|
|
9
|
+
import type { PruneReport } from '../types.js';
|
|
10
|
+
import type { LibraryStore } from './LibraryStore.js';
|
|
11
|
+
/**
|
|
12
|
+
* Pruner interface
|
|
13
|
+
*/
|
|
14
|
+
export interface Pruner {
|
|
15
|
+
/** Apply decay to all patterns */
|
|
16
|
+
applyDecay(store: LibraryStore, decayRate: number): Promise<void>;
|
|
17
|
+
/** Prune patterns below threshold */
|
|
18
|
+
prune(store: LibraryStore, threshold: number): Promise<PruneReport>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Factory function to create a Pruner
|
|
22
|
+
*/
|
|
23
|
+
export declare function createPruner(): Pruner;
|
|
24
|
+
//# sourceMappingURL=Pruner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pruner.d.ts","sourceRoot":"","sources":["../../src/library/Pruner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,kCAAkC;IAClC,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE,qCAAqC;IACrC,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrE;AAiCD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pruner - Prune unused patterns
|
|
3
|
+
*
|
|
4
|
+
* REQ-LL-002: ライブラリ成長
|
|
5
|
+
* DES-PHASE2-001: Library Manager / Pruner
|
|
6
|
+
*
|
|
7
|
+
* @stub This is a stub implementation. Full implementation in M3.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Default Pruner implementation (stub)
|
|
11
|
+
*/
|
|
12
|
+
class PrunerImpl {
|
|
13
|
+
async applyDecay(store, decayRate) {
|
|
14
|
+
const patterns = await store.getAll();
|
|
15
|
+
for (const pattern of patterns) {
|
|
16
|
+
await store.update(pattern.id, {
|
|
17
|
+
confidence: pattern.confidence * decayRate,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async prune(store, threshold) {
|
|
22
|
+
const startTime = Date.now();
|
|
23
|
+
const patterns = await store.getAll();
|
|
24
|
+
const toPrune = patterns.filter((p) => p.confidence < threshold);
|
|
25
|
+
for (const pattern of toPrune) {
|
|
26
|
+
await store.delete(pattern.id);
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
patternsPruned: toPrune.length,
|
|
30
|
+
prunedIds: toPrune.map((p) => p.id),
|
|
31
|
+
duration: Date.now() - startTime,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Factory function to create a Pruner
|
|
37
|
+
*/
|
|
38
|
+
export function createPruner() {
|
|
39
|
+
return new PrunerImpl();
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=Pruner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pruner.js","sourceRoot":"","sources":["../../src/library/Pruner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH;;GAEG;AACH,MAAM,UAAU;IACd,KAAK,CAAC,UAAU,CAAC,KAAmB,EAAE,SAAiB;QACrD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAEtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;gBAC7B,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,SAAS;aAC3C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAmB,EAAE,SAAiB;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;QAEjE,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,OAAO;YACL,cAAc,EAAE,OAAO,CAAC,MAAM;YAC9B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACjC,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library Manager exports
|
|
3
|
+
*/
|
|
4
|
+
export type { LibraryStore } from './LibraryStore.js';
|
|
5
|
+
export { createLibraryStore } from './LibraryStore.js';
|
|
6
|
+
export type { Consolidator } from './Consolidator.js';
|
|
7
|
+
export { createConsolidator } from './Consolidator.js';
|
|
8
|
+
export type { Pruner } from './Pruner.js';
|
|
9
|
+
export { createPruner } from './Pruner.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/library/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/library/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
|