@nahisaho/musubix-core 1.0.9 → 1.0.13
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/cli/commands/codegen.d.ts.map +1 -1
- package/dist/cli/commands/codegen.js +218 -1
- package/dist/cli/commands/codegen.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +5 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/learn.d.ts +17 -0
- package/dist/cli/commands/learn.d.ts.map +1 -0
- package/dist/cli/commands/learn.js +285 -0
- package/dist/cli/commands/learn.js.map +1 -0
- package/dist/cli/commands/requirements.d.ts +1 -0
- package/dist/cli/commands/requirements.d.ts.map +1 -1
- package/dist/cli/commands/requirements.js +67 -16
- package/dist/cli/commands/requirements.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/learning/feedback-collector.d.ts +108 -0
- package/dist/learning/feedback-collector.d.ts.map +1 -0
- package/dist/learning/feedback-collector.js +231 -0
- package/dist/learning/feedback-collector.js.map +1 -0
- package/dist/learning/index.d.ts +19 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +19 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/learning-engine.d.ts +140 -0
- package/dist/learning/learning-engine.d.ts.map +1 -0
- package/dist/learning/learning-engine.js +338 -0
- package/dist/learning/learning-engine.js.map +1 -0
- package/dist/learning/pattern-extractor.d.ts +138 -0
- package/dist/learning/pattern-extractor.d.ts.map +1 -0
- package/dist/learning/pattern-extractor.js +400 -0
- package/dist/learning/pattern-extractor.js.map +1 -0
- package/dist/learning/types.d.ts +159 -0
- package/dist/learning/types.d.ts.map +1 -0
- package/dist/learning/types.js +20 -0
- package/dist/learning/types.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feedback Collector
|
|
3
|
+
*
|
|
4
|
+
* Collects and stores user feedback on generated artifacts
|
|
5
|
+
*
|
|
6
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
7
|
+
* @module @musubix/core/learning
|
|
8
|
+
*/
|
|
9
|
+
import type { Feedback, FeedbackType, ArtifactType, FeedbackContext, LearningConfig } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Feedback input for creating new feedback
|
|
12
|
+
*/
|
|
13
|
+
export interface FeedbackInput {
|
|
14
|
+
type: FeedbackType;
|
|
15
|
+
artifactType: ArtifactType;
|
|
16
|
+
artifactId: string;
|
|
17
|
+
context?: Partial<FeedbackContext>;
|
|
18
|
+
reason?: string;
|
|
19
|
+
original?: string;
|
|
20
|
+
modified?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Feedback query options
|
|
24
|
+
*/
|
|
25
|
+
export interface FeedbackQuery {
|
|
26
|
+
artifactType?: ArtifactType;
|
|
27
|
+
type?: FeedbackType;
|
|
28
|
+
project?: string;
|
|
29
|
+
language?: string;
|
|
30
|
+
framework?: string;
|
|
31
|
+
since?: Date;
|
|
32
|
+
limit?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Feedback Collector class
|
|
36
|
+
*
|
|
37
|
+
* Responsible for collecting, storing, and querying user feedback
|
|
38
|
+
*
|
|
39
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
40
|
+
* @see REQ-LEARN-006 - Privacy Protection (local storage only)
|
|
41
|
+
*/
|
|
42
|
+
export declare class FeedbackCollector {
|
|
43
|
+
private feedbackCache;
|
|
44
|
+
private storagePath;
|
|
45
|
+
private loaded;
|
|
46
|
+
constructor(config?: Partial<LearningConfig>);
|
|
47
|
+
/**
|
|
48
|
+
* Record new feedback
|
|
49
|
+
*
|
|
50
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
51
|
+
* @param input - Feedback input data
|
|
52
|
+
* @returns Created feedback with generated ID
|
|
53
|
+
*/
|
|
54
|
+
recordFeedback(input: FeedbackInput): Promise<Feedback>;
|
|
55
|
+
/**
|
|
56
|
+
* Get feedback by ID
|
|
57
|
+
*/
|
|
58
|
+
getFeedback(id: string): Promise<Feedback | undefined>;
|
|
59
|
+
/**
|
|
60
|
+
* Query feedback with filters
|
|
61
|
+
*/
|
|
62
|
+
queryFeedback(query?: FeedbackQuery): Promise<Feedback[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Get feedback statistics
|
|
65
|
+
*/
|
|
66
|
+
getStats(): Promise<{
|
|
67
|
+
total: number;
|
|
68
|
+
byType: Record<FeedbackType, number>;
|
|
69
|
+
byArtifactType: Record<ArtifactType, number>;
|
|
70
|
+
}>;
|
|
71
|
+
/**
|
|
72
|
+
* Delete feedback by ID
|
|
73
|
+
*/
|
|
74
|
+
deleteFeedback(id: string): Promise<boolean>;
|
|
75
|
+
/**
|
|
76
|
+
* Export all feedback
|
|
77
|
+
*/
|
|
78
|
+
export(): Promise<Feedback[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Import feedback from array
|
|
81
|
+
*/
|
|
82
|
+
import(feedbackList: Feedback[]): Promise<number>;
|
|
83
|
+
/**
|
|
84
|
+
* Clear all feedback
|
|
85
|
+
*/
|
|
86
|
+
clear(): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Sanitize feedback to remove sensitive data
|
|
89
|
+
*
|
|
90
|
+
* @see REQ-LEARN-006 - Privacy Protection
|
|
91
|
+
*/
|
|
92
|
+
private sanitizeFeedback;
|
|
93
|
+
/**
|
|
94
|
+
* Detect current project name
|
|
95
|
+
*/
|
|
96
|
+
private detectProject;
|
|
97
|
+
/**
|
|
98
|
+
* Ensure data is loaded from storage
|
|
99
|
+
*/
|
|
100
|
+
private ensureLoaded;
|
|
101
|
+
/**
|
|
102
|
+
* Persist data to storage
|
|
103
|
+
*
|
|
104
|
+
* @see REQ-LEARN-006 - Local storage only
|
|
105
|
+
*/
|
|
106
|
+
private persist;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=feedback-collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-collector.d.ts","sourceRoot":"","sources":["../../src/learning/feedback-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAIhD;;;;;;OAMG;IACG,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IA6B7D;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAK5D;;OAEG;IACG,aAAa,CAAC,KAAK,GAAE,aAAkB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkCnE;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACrC,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;KAC9C,CAAC;IAoBF;;OAEG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKnC;;OAEG;IACG,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAavD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;YACW,YAAY;IAkB1B;;;;OAIG;YACW,OAAO;CAatB"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feedback Collector
|
|
3
|
+
*
|
|
4
|
+
* Collects and stores user feedback on generated artifacts
|
|
5
|
+
*
|
|
6
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
7
|
+
* @module @musubix/core/learning
|
|
8
|
+
*/
|
|
9
|
+
import { randomUUID } from 'crypto';
|
|
10
|
+
import { promises as fs } from 'fs';
|
|
11
|
+
import { join, dirname } from 'path';
|
|
12
|
+
/**
|
|
13
|
+
* Feedback Collector class
|
|
14
|
+
*
|
|
15
|
+
* Responsible for collecting, storing, and querying user feedback
|
|
16
|
+
*
|
|
17
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
18
|
+
* @see REQ-LEARN-006 - Privacy Protection (local storage only)
|
|
19
|
+
*/
|
|
20
|
+
export class FeedbackCollector {
|
|
21
|
+
feedbackCache = new Map();
|
|
22
|
+
storagePath;
|
|
23
|
+
loaded = false;
|
|
24
|
+
constructor(config = {}) {
|
|
25
|
+
this.storagePath = config.storagePath || 'storage/learning';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Record new feedback
|
|
29
|
+
*
|
|
30
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
31
|
+
* @param input - Feedback input data
|
|
32
|
+
* @returns Created feedback with generated ID
|
|
33
|
+
*/
|
|
34
|
+
async recordFeedback(input) {
|
|
35
|
+
await this.ensureLoaded();
|
|
36
|
+
const feedback = {
|
|
37
|
+
id: `FB-${randomUUID().slice(0, 8).toUpperCase()}`,
|
|
38
|
+
timestamp: new Date(),
|
|
39
|
+
type: input.type,
|
|
40
|
+
artifactType: input.artifactType,
|
|
41
|
+
artifactId: input.artifactId,
|
|
42
|
+
context: {
|
|
43
|
+
project: input.context?.project || this.detectProject(),
|
|
44
|
+
language: input.context?.language,
|
|
45
|
+
framework: input.context?.framework,
|
|
46
|
+
tags: input.context?.tags || [],
|
|
47
|
+
},
|
|
48
|
+
reason: input.reason,
|
|
49
|
+
original: input.original,
|
|
50
|
+
modified: input.modified,
|
|
51
|
+
};
|
|
52
|
+
// Sanitize feedback to remove sensitive data
|
|
53
|
+
this.sanitizeFeedback(feedback);
|
|
54
|
+
this.feedbackCache.set(feedback.id, feedback);
|
|
55
|
+
await this.persist();
|
|
56
|
+
return feedback;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get feedback by ID
|
|
60
|
+
*/
|
|
61
|
+
async getFeedback(id) {
|
|
62
|
+
await this.ensureLoaded();
|
|
63
|
+
return this.feedbackCache.get(id);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Query feedback with filters
|
|
67
|
+
*/
|
|
68
|
+
async queryFeedback(query = {}) {
|
|
69
|
+
await this.ensureLoaded();
|
|
70
|
+
let results = Array.from(this.feedbackCache.values());
|
|
71
|
+
if (query.artifactType) {
|
|
72
|
+
results = results.filter((f) => f.artifactType === query.artifactType);
|
|
73
|
+
}
|
|
74
|
+
if (query.type) {
|
|
75
|
+
results = results.filter((f) => f.type === query.type);
|
|
76
|
+
}
|
|
77
|
+
if (query.project) {
|
|
78
|
+
results = results.filter((f) => f.context.project === query.project);
|
|
79
|
+
}
|
|
80
|
+
if (query.language) {
|
|
81
|
+
results = results.filter((f) => f.context.language === query.language);
|
|
82
|
+
}
|
|
83
|
+
if (query.framework) {
|
|
84
|
+
results = results.filter((f) => f.context.framework === query.framework);
|
|
85
|
+
}
|
|
86
|
+
if (query.since) {
|
|
87
|
+
results = results.filter((f) => f.timestamp >= query.since);
|
|
88
|
+
}
|
|
89
|
+
// Sort by timestamp descending
|
|
90
|
+
results.sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime());
|
|
91
|
+
if (query.limit) {
|
|
92
|
+
results = results.slice(0, query.limit);
|
|
93
|
+
}
|
|
94
|
+
return results;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get feedback statistics
|
|
98
|
+
*/
|
|
99
|
+
async getStats() {
|
|
100
|
+
await this.ensureLoaded();
|
|
101
|
+
const stats = {
|
|
102
|
+
total: this.feedbackCache.size,
|
|
103
|
+
byType: { accept: 0, reject: 0, modify: 0 },
|
|
104
|
+
byArtifactType: { requirement: 0, design: 0, code: 0, test: 0 },
|
|
105
|
+
};
|
|
106
|
+
for (const feedback of this.feedbackCache.values()) {
|
|
107
|
+
stats.byType[feedback.type]++;
|
|
108
|
+
stats.byArtifactType[feedback.artifactType]++;
|
|
109
|
+
}
|
|
110
|
+
return stats;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Delete feedback by ID
|
|
114
|
+
*/
|
|
115
|
+
async deleteFeedback(id) {
|
|
116
|
+
await this.ensureLoaded();
|
|
117
|
+
const deleted = this.feedbackCache.delete(id);
|
|
118
|
+
if (deleted) {
|
|
119
|
+
await this.persist();
|
|
120
|
+
}
|
|
121
|
+
return deleted;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Export all feedback
|
|
125
|
+
*/
|
|
126
|
+
async export() {
|
|
127
|
+
await this.ensureLoaded();
|
|
128
|
+
return Array.from(this.feedbackCache.values());
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Import feedback from array
|
|
132
|
+
*/
|
|
133
|
+
async import(feedbackList) {
|
|
134
|
+
await this.ensureLoaded();
|
|
135
|
+
let imported = 0;
|
|
136
|
+
for (const feedback of feedbackList) {
|
|
137
|
+
if (!this.feedbackCache.has(feedback.id)) {
|
|
138
|
+
this.feedbackCache.set(feedback.id, feedback);
|
|
139
|
+
imported++;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
await this.persist();
|
|
143
|
+
return imported;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Clear all feedback
|
|
147
|
+
*/
|
|
148
|
+
async clear() {
|
|
149
|
+
this.feedbackCache.clear();
|
|
150
|
+
await this.persist();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Sanitize feedback to remove sensitive data
|
|
154
|
+
*
|
|
155
|
+
* @see REQ-LEARN-006 - Privacy Protection
|
|
156
|
+
*/
|
|
157
|
+
sanitizeFeedback(feedback) {
|
|
158
|
+
// Remove potential sensitive patterns
|
|
159
|
+
const sensitivePatterns = [
|
|
160
|
+
/password\s*[:=]\s*["']?[^"'\s]+["']?/gi,
|
|
161
|
+
/api[_-]?key\s*[:=]\s*["']?[^"'\s]+["']?/gi,
|
|
162
|
+
/secret\s*[:=]\s*["']?[^"'\s]+["']?/gi,
|
|
163
|
+
/token\s*[:=]\s*["']?[^"'\s]+["']?/gi,
|
|
164
|
+
/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g, // emails
|
|
165
|
+
];
|
|
166
|
+
const sanitize = (text) => {
|
|
167
|
+
if (!text)
|
|
168
|
+
return text;
|
|
169
|
+
let result = text;
|
|
170
|
+
for (const pattern of sensitivePatterns) {
|
|
171
|
+
result = result.replace(pattern, '[REDACTED]');
|
|
172
|
+
}
|
|
173
|
+
return result;
|
|
174
|
+
};
|
|
175
|
+
feedback.reason = sanitize(feedback.reason);
|
|
176
|
+
feedback.original = sanitize(feedback.original);
|
|
177
|
+
feedback.modified = sanitize(feedback.modified);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Detect current project name
|
|
181
|
+
*/
|
|
182
|
+
detectProject() {
|
|
183
|
+
// Try to detect from package.json or current directory
|
|
184
|
+
try {
|
|
185
|
+
const cwd = process.cwd();
|
|
186
|
+
return cwd.split('/').pop() || 'unknown';
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return 'unknown';
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Ensure data is loaded from storage
|
|
194
|
+
*/
|
|
195
|
+
async ensureLoaded() {
|
|
196
|
+
if (this.loaded)
|
|
197
|
+
return;
|
|
198
|
+
const filePath = join(this.storagePath, 'feedback.json');
|
|
199
|
+
try {
|
|
200
|
+
const data = await fs.readFile(filePath, 'utf-8');
|
|
201
|
+
const feedbackList = JSON.parse(data);
|
|
202
|
+
for (const feedback of feedbackList) {
|
|
203
|
+
// Convert date strings back to Date objects
|
|
204
|
+
feedback.timestamp = new Date(feedback.timestamp);
|
|
205
|
+
this.feedbackCache.set(feedback.id, feedback);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
// File doesn't exist yet, start fresh
|
|
210
|
+
}
|
|
211
|
+
this.loaded = true;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Persist data to storage
|
|
215
|
+
*
|
|
216
|
+
* @see REQ-LEARN-006 - Local storage only
|
|
217
|
+
*/
|
|
218
|
+
async persist() {
|
|
219
|
+
const filePath = join(this.storagePath, 'feedback.json');
|
|
220
|
+
const dir = dirname(filePath);
|
|
221
|
+
try {
|
|
222
|
+
await fs.mkdir(dir, { recursive: true });
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// Directory exists
|
|
226
|
+
}
|
|
227
|
+
const feedbackList = Array.from(this.feedbackCache.values());
|
|
228
|
+
await fs.writeFile(filePath, JSON.stringify(feedbackList, null, 2), 'utf-8');
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=feedback-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-collector.js","sourceRoot":"","sources":["../../src/learning/feedback-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learning Module - Self-Learning System
|
|
3
|
+
*
|
|
4
|
+
* Provides self-learning capabilities through feedback collection,
|
|
5
|
+
* pattern extraction, and adaptive reasoning.
|
|
6
|
+
*
|
|
7
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
8
|
+
* @see REQ-LEARN-002 - Pattern Extraction
|
|
9
|
+
* @see REQ-LEARN-003 - Adaptive Reasoning
|
|
10
|
+
* @module @musubix/core/learning
|
|
11
|
+
*/
|
|
12
|
+
export type { FeedbackType, PatternSource, PatternActionType, FeedbackContext, Feedback, PatternTrigger, PatternAction, LearnedPattern, LearningStats, PatternMatch, LearningConfig, } from './types.js';
|
|
13
|
+
export { DEFAULT_LEARNING_CONFIG } from './types.js';
|
|
14
|
+
export type { ArtifactType as LearningArtifactType } from './types.js';
|
|
15
|
+
export type { PatternCategory as LearningPatternCategory } from './types.js';
|
|
16
|
+
export { FeedbackCollector, type FeedbackInput, type FeedbackQuery } from './feedback-collector.js';
|
|
17
|
+
export { PatternExtractor } from './pattern-extractor.js';
|
|
18
|
+
export { LearningEngine, type InferenceContext } from './learning-engine.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,YAAY,EACV,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,QAAQ,EACR,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAGrD,YAAY,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvE,YAAY,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAG7E,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learning Module - Self-Learning System
|
|
3
|
+
*
|
|
4
|
+
* Provides self-learning capabilities through feedback collection,
|
|
5
|
+
* pattern extraction, and adaptive reasoning.
|
|
6
|
+
*
|
|
7
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
8
|
+
* @see REQ-LEARN-002 - Pattern Extraction
|
|
9
|
+
* @see REQ-LEARN-003 - Adaptive Reasoning
|
|
10
|
+
* @module @musubix/core/learning
|
|
11
|
+
*/
|
|
12
|
+
export { DEFAULT_LEARNING_CONFIG } from './types.js';
|
|
13
|
+
// Export feedback collector
|
|
14
|
+
export { FeedbackCollector } from './feedback-collector.js';
|
|
15
|
+
// Export pattern extractor
|
|
16
|
+
export { PatternExtractor } from './pattern-extractor.js';
|
|
17
|
+
// Export learning engine
|
|
18
|
+
export { LearningEngine } from './learning-engine.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAMrD,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,EAA0C,MAAM,yBAAyB,CAAC;AAEpG,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,yBAAyB;AACzB,OAAO,EAAE,cAAc,EAAyB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learning Engine
|
|
3
|
+
*
|
|
4
|
+
* Main orchestrator for the self-learning system
|
|
5
|
+
*
|
|
6
|
+
* @see REQ-LEARN-003 - Adaptive Reasoning
|
|
7
|
+
* @module @musubix/core/learning
|
|
8
|
+
*/
|
|
9
|
+
import { type FeedbackInput, type FeedbackQuery } from './feedback-collector.js';
|
|
10
|
+
import type { Feedback, LearnedPattern, PatternMatch, LearningStats, LearningConfig, PatternCategory } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Inference context for pattern matching
|
|
13
|
+
*/
|
|
14
|
+
export interface InferenceContext {
|
|
15
|
+
artifactType: 'requirement' | 'design' | 'code' | 'test';
|
|
16
|
+
language?: string;
|
|
17
|
+
framework?: string;
|
|
18
|
+
tags?: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Learning Engine class
|
|
22
|
+
*
|
|
23
|
+
* Orchestrates feedback collection, pattern extraction, and adaptive reasoning
|
|
24
|
+
*
|
|
25
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
26
|
+
* @see REQ-LEARN-002 - Pattern Extraction
|
|
27
|
+
* @see REQ-LEARN-003 - Adaptive Reasoning
|
|
28
|
+
*/
|
|
29
|
+
export declare class LearningEngine {
|
|
30
|
+
private feedbackCollector;
|
|
31
|
+
private patternExtractor;
|
|
32
|
+
private config;
|
|
33
|
+
constructor(config?: Partial<LearningConfig>);
|
|
34
|
+
/**
|
|
35
|
+
* Record feedback for an artifact
|
|
36
|
+
*
|
|
37
|
+
* @see REQ-LEARN-001 - Feedback Collection
|
|
38
|
+
*/
|
|
39
|
+
recordFeedback(input: FeedbackInput): Promise<Feedback>;
|
|
40
|
+
/**
|
|
41
|
+
* Record acceptance of an artifact
|
|
42
|
+
*/
|
|
43
|
+
acceptArtifact(artifactId: string, artifactType: FeedbackInput['artifactType'], context?: Partial<FeedbackInput['context']>, reason?: string): Promise<Feedback>;
|
|
44
|
+
/**
|
|
45
|
+
* Record rejection of an artifact
|
|
46
|
+
*/
|
|
47
|
+
rejectArtifact(artifactId: string, artifactType: FeedbackInput['artifactType'], context?: Partial<FeedbackInput['context']>, reason?: string): Promise<Feedback>;
|
|
48
|
+
/**
|
|
49
|
+
* Record modification of an artifact
|
|
50
|
+
*/
|
|
51
|
+
modifyArtifact(artifactId: string, artifactType: FeedbackInput['artifactType'], original: string, modified: string, context?: Partial<FeedbackInput['context']>, reason?: string): Promise<Feedback>;
|
|
52
|
+
/**
|
|
53
|
+
* Query feedback
|
|
54
|
+
*/
|
|
55
|
+
queryFeedback(query?: FeedbackQuery): Promise<Feedback[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Get all learned patterns
|
|
58
|
+
*/
|
|
59
|
+
getPatterns(): Promise<LearnedPattern[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Get patterns by category
|
|
62
|
+
*/
|
|
63
|
+
getPatternsByCategory(category: PatternCategory): Promise<LearnedPattern[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Add a manual pattern
|
|
66
|
+
*/
|
|
67
|
+
addPattern(name: string, category: PatternCategory, trigger: LearnedPattern['trigger'], action: LearnedPattern['action'], confidence?: number): Promise<LearnedPattern>;
|
|
68
|
+
/**
|
|
69
|
+
* Remove a pattern
|
|
70
|
+
*/
|
|
71
|
+
removePattern(id: string): Promise<boolean>;
|
|
72
|
+
/**
|
|
73
|
+
* Apply decay to unused patterns
|
|
74
|
+
*
|
|
75
|
+
* @see REQ-LEARN-004 - Pattern Decay
|
|
76
|
+
*/
|
|
77
|
+
applyDecay(): Promise<{
|
|
78
|
+
decayed: number;
|
|
79
|
+
archived: number;
|
|
80
|
+
}>;
|
|
81
|
+
/**
|
|
82
|
+
* Find matching patterns for inference context
|
|
83
|
+
*
|
|
84
|
+
* @see REQ-LEARN-003 - Adaptive Reasoning
|
|
85
|
+
* @param context - Current inference context
|
|
86
|
+
* @returns Matching patterns sorted by relevance
|
|
87
|
+
*/
|
|
88
|
+
findMatchingPatterns(context: InferenceContext): Promise<PatternMatch[]>;
|
|
89
|
+
/**
|
|
90
|
+
* Get recommendations for current context
|
|
91
|
+
*
|
|
92
|
+
* @see REQ-LEARN-003 - Adaptive Reasoning
|
|
93
|
+
*/
|
|
94
|
+
getRecommendations(context: InferenceContext, limit?: number): Promise<{
|
|
95
|
+
prefer: LearnedPattern[];
|
|
96
|
+
avoid: LearnedPattern[];
|
|
97
|
+
suggest: LearnedPattern[];
|
|
98
|
+
}>;
|
|
99
|
+
/**
|
|
100
|
+
* Apply pattern to adjust inference
|
|
101
|
+
*/
|
|
102
|
+
applyPattern(patternId: string, success: boolean): Promise<LearnedPattern | undefined>;
|
|
103
|
+
/**
|
|
104
|
+
* Get learning statistics
|
|
105
|
+
*
|
|
106
|
+
* @see REQ-LEARN-005 - Learning Visualization
|
|
107
|
+
*/
|
|
108
|
+
getStats(): Promise<LearningStats>;
|
|
109
|
+
/**
|
|
110
|
+
* Export all learning data
|
|
111
|
+
*/
|
|
112
|
+
export(): Promise<{
|
|
113
|
+
feedback: Feedback[];
|
|
114
|
+
patterns: LearnedPattern[];
|
|
115
|
+
stats: LearningStats;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Import learning data
|
|
119
|
+
*/
|
|
120
|
+
import(data: {
|
|
121
|
+
feedback?: Feedback[];
|
|
122
|
+
patterns?: LearnedPattern[];
|
|
123
|
+
}): Promise<{
|
|
124
|
+
feedbackImported: number;
|
|
125
|
+
patternsImported: number;
|
|
126
|
+
}>;
|
|
127
|
+
/**
|
|
128
|
+
* Generate status report
|
|
129
|
+
*/
|
|
130
|
+
generateStatusReport(): Promise<string>;
|
|
131
|
+
/**
|
|
132
|
+
* Calculate match score between pattern and context
|
|
133
|
+
*/
|
|
134
|
+
private calculateMatchScore;
|
|
135
|
+
/**
|
|
136
|
+
* Try to extract patterns from recent feedback
|
|
137
|
+
*/
|
|
138
|
+
private tryExtractPatterns;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=learning-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learning-engine.d.ts","sourceRoot":"","sources":["../../src/learning/learning-engine.ts"],"names":[],"mappings":"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"}
|