@devflow-tools/memory-engine 0.13.3 → 0.14.1
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/consolidator.d.ts +13 -0
- package/dist/consolidator.d.ts.map +1 -0
- package/dist/consolidator.js +184 -0
- package/dist/consolidator.js.map +1 -0
- package/dist/event-grouper.d.ts +13 -0
- package/dist/event-grouper.d.ts.map +1 -0
- package/dist/event-grouper.js +178 -0
- package/dist/event-grouper.js.map +1 -0
- package/dist/graph-store.d.ts.map +1 -1
- package/dist/graph-store.js +2 -4
- package/dist/graph-store.js.map +1 -1
- package/dist/hybrid-search.d.ts +7 -4
- package/dist/hybrid-search.d.ts.map +1 -1
- package/dist/hybrid-search.js +69 -8
- package/dist/hybrid-search.js.map +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/l2-evaluator.d.ts +31 -0
- package/dist/l2-evaluator.d.ts.map +1 -0
- package/dist/l2-evaluator.js +103 -0
- package/dist/l2-evaluator.js.map +1 -0
- package/dist/llm-provider.d.ts +9 -0
- package/dist/llm-provider.d.ts.map +1 -0
- package/dist/llm-provider.js +37 -0
- package/dist/llm-provider.js.map +1 -0
- package/dist/memory-engine.d.ts +27 -4
- package/dist/memory-engine.d.ts.map +1 -1
- package/dist/memory-engine.js +275 -182
- package/dist/memory-engine.js.map +1 -1
- package/dist/memory-gate.d.ts +116 -0
- package/dist/memory-gate.d.ts.map +1 -0
- package/dist/memory-gate.js +385 -0
- package/dist/memory-gate.js.map +1 -0
- package/dist/memory-store.d.ts +234 -32
- package/dist/memory-store.d.ts.map +1 -1
- package/dist/memory-store.js +729 -142
- package/dist/memory-store.js.map +1 -1
- package/dist/project-validator.d.ts +10 -0
- package/dist/project-validator.d.ts.map +1 -0
- package/dist/project-validator.js +36 -0
- package/dist/project-validator.js.map +1 -0
- package/dist/session-summarizer.d.ts +10 -0
- package/dist/session-summarizer.d.ts.map +1 -0
- package/dist/session-summarizer.js +197 -0
- package/dist/session-summarizer.js.map +1 -0
- package/dist/signal-buffer.d.ts +42 -0
- package/dist/signal-buffer.d.ts.map +1 -0
- package/dist/signal-buffer.js +104 -0
- package/dist/signal-buffer.js.map +1 -0
- package/dist/signal-detector.d.ts +39 -0
- package/dist/signal-detector.d.ts.map +1 -0
- package/dist/signal-detector.js +239 -0
- package/dist/signal-detector.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
// ── Types ──────────────────────────────────────────────
|
|
3
|
+
export const SIGNAL_TYPES = [
|
|
4
|
+
'user_explicit_save', 'user_correction', 'user_frustration',
|
|
5
|
+
'fix_confirmed', 'error_loop', 'error_first_encounter',
|
|
6
|
+
'config_surface', 'novel_tool', 'file_touch_cluster',
|
|
7
|
+
'long_running', 'context_switch', 'merge_conflict',
|
|
8
|
+
'test_failure', 'rollback',
|
|
9
|
+
];
|
|
10
|
+
// ── Signal Detector ────────────────────────────────────
|
|
11
|
+
export class SignalDetector {
|
|
12
|
+
knownTools = new Set();
|
|
13
|
+
seenErrors = new Map(); // errorKey → first seen timestamp
|
|
14
|
+
fileTouchWindow = [];
|
|
15
|
+
reset() {
|
|
16
|
+
this.knownTools.clear();
|
|
17
|
+
this.seenErrors.clear();
|
|
18
|
+
this.fileTouchWindow = [];
|
|
19
|
+
}
|
|
20
|
+
// ── All-in-one detection ──────────────────────────
|
|
21
|
+
detect(event, recentEvents, userMessage) {
|
|
22
|
+
const signals = [];
|
|
23
|
+
// Cheap — per event
|
|
24
|
+
signals.push(...this.detectCheap(event, userMessage));
|
|
25
|
+
// Medium — needs recent window
|
|
26
|
+
signals.push(...this.detectMedium(event, recentEvents));
|
|
27
|
+
// Expensive — sequence analysis over full window
|
|
28
|
+
signals.push(...this.detectExpensive(event, recentEvents));
|
|
29
|
+
return signals;
|
|
30
|
+
}
|
|
31
|
+
// ── Cheap Layer (regex, per-event, no DB) ──────────
|
|
32
|
+
detectCheap(event, userMessage) {
|
|
33
|
+
const signals = [];
|
|
34
|
+
const now = Date.now();
|
|
35
|
+
// 1. user_explicit_save — "记住"/"save this"/"/memory add"
|
|
36
|
+
if (userMessage?.text) {
|
|
37
|
+
const savePattern = /\b(remember|记住|save this|保存|记一下|keep this)\b/i;
|
|
38
|
+
if (savePattern.test(userMessage.text)) {
|
|
39
|
+
signals.push(this.makeSignal('user_explicit_save', 0.95, event, {
|
|
40
|
+
message: userMessage.text.slice(0, 200),
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
// 2. user_correction — "不对"/"don't"/"错了"/"should not"
|
|
44
|
+
const correctionPattern = /\b(no\b|不对|don't|wrong|不是这样|错了|不对的|should not|no longer)\b/i;
|
|
45
|
+
if (correctionPattern.test(userMessage.text)) {
|
|
46
|
+
signals.push(this.makeSignal('user_correction', 0.85, event, {
|
|
47
|
+
message: userMessage.text.slice(0, 200),
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
// 3. user_frustration — "为什么"/"why"/"怎么回事"
|
|
51
|
+
const frustrationPattern = /\b(为什么|why|what the|怎么回事|wtf|搞什么|看不懂)\b/i;
|
|
52
|
+
if (frustrationPattern.test(userMessage.text)) {
|
|
53
|
+
signals.push(this.makeSignal('user_frustration', 0.60, event, {
|
|
54
|
+
message: userMessage.text.slice(0, 200),
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const stderrText = event.stderr ?? '';
|
|
59
|
+
const cmdText = event.command ?? '';
|
|
60
|
+
const hasError = event.exitCode !== undefined && event.exitCode !== null && event.exitCode !== 0;
|
|
61
|
+
// 4. error_first_encounter
|
|
62
|
+
if (hasError && stderrText) {
|
|
63
|
+
const errorKey = this.extractErrorKey(stderrText);
|
|
64
|
+
if (errorKey && !this.seenErrors.has(errorKey)) {
|
|
65
|
+
this.seenErrors.set(errorKey, now);
|
|
66
|
+
signals.push(this.makeSignal('error_first_encounter', 0.7, event, {
|
|
67
|
+
errorKey,
|
|
68
|
+
stderr: stderrText.slice(0, 200),
|
|
69
|
+
exitCode: event.exitCode,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// 5. config_surface — port/URL/key patterns
|
|
74
|
+
const CONFIG_PATTERNS = /(?::\d{4,5}\b|DATABASE_URL|REDIS_URL|API_KEY|SECRET|TOKEN|connection string|\bDB_\w+|\bPORT=\d+|:\/\/[\w.-]+:\d+|\.env\b|config\b|localhost:\d{4})/i;
|
|
75
|
+
if (CONFIG_PATTERNS.test(stderrText) || CONFIG_PATTERNS.test(cmdText)) {
|
|
76
|
+
const match = (stderrText + ' ' + cmdText).match(CONFIG_PATTERNS);
|
|
77
|
+
signals.push(this.makeSignal('config_surface', 0.6, event, {
|
|
78
|
+
match: match?.[0] ?? null,
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
// 6. novel_tool — first-time project-specific command
|
|
82
|
+
if (!this.knownTools.has(event.tool)) {
|
|
83
|
+
this.knownTools.add(event.tool);
|
|
84
|
+
signals.push(this.makeSignal('novel_tool', 0.5, event, {
|
|
85
|
+
tool: event.tool,
|
|
86
|
+
}));
|
|
87
|
+
}
|
|
88
|
+
// Also detect novel npm/npx tools
|
|
89
|
+
if (cmdText) {
|
|
90
|
+
const novelCmdMatch = cmdText.match(/\b(npx\s+|pnpm\s+dlx\s+|npm\s+run\s+\S+|yarn\s+run\s+\S+)/i);
|
|
91
|
+
if (novelCmdMatch) {
|
|
92
|
+
const novelKey = `cmd:${novelCmdMatch[0].trim()}`;
|
|
93
|
+
if (!this.knownTools.has(novelKey)) {
|
|
94
|
+
this.knownTools.add(novelKey);
|
|
95
|
+
signals.push(this.makeSignal('novel_tool', 0.65, event, {
|
|
96
|
+
command: novelCmdMatch[0].trim(),
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// 7. test_failure
|
|
102
|
+
const TEST_FAILURE_PATTERNS = /\b(FAIL|FAILED|assert|×\s+\d+|Tests:\s+\d+\s+failed|expect\(|toEqual\(|toThrow\()/i;
|
|
103
|
+
if (TEST_FAILURE_PATTERNS.test(stderrText) || (hasError && /\b(vitest|jest|mocha|ava|tap)\b/i.test(cmdText))) {
|
|
104
|
+
signals.push(this.makeSignal('test_failure', 0.55, event, {
|
|
105
|
+
exitCode: event.exitCode,
|
|
106
|
+
command: cmdText.slice(0, 100),
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
return signals;
|
|
110
|
+
}
|
|
111
|
+
// ── Medium Layer (cross-event window) ──────────────
|
|
112
|
+
detectMedium(event, recentEvents) {
|
|
113
|
+
const signals = [];
|
|
114
|
+
const cmdText = event.command ?? '';
|
|
115
|
+
// 8. error_loop — same command failed ≥3 times in recent window
|
|
116
|
+
if (event.exitCode !== undefined && event.exitCode !== null && event.exitCode !== 0 && cmdText) {
|
|
117
|
+
const sameCmdFailures = recentEvents.filter(e => e.command === cmdText && e.exitCode !== undefined && e.exitCode !== null && e.exitCode !== 0);
|
|
118
|
+
if (sameCmdFailures.length >= 3) {
|
|
119
|
+
// Only emit once per loop (first time we hit 3)
|
|
120
|
+
const prevLoops = recentEvents.filter(e => e.command === cmdText && e.exitCode !== 0 && e.tool === event.tool);
|
|
121
|
+
if (prevLoops.length === 3) {
|
|
122
|
+
signals.push(this.makeSignal('error_loop', 0.8, event, {
|
|
123
|
+
failureCount: sameCmdFailures.length,
|
|
124
|
+
command: cmdText.slice(0, 100),
|
|
125
|
+
errorIds: sameCmdFailures.map(e => e.id),
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// 9. file_touch_cluster — same file accessed multiple times within 2 min
|
|
131
|
+
const FILE_PATHS = /\b((?:\/[^\s,;]+|\S+\.(?:tsx?|jsx?|py|go|rs|java|rb|css|html|vue|svelte|json|ya?ml|toml|md|sql|prisma|graphql)))/gi;
|
|
132
|
+
const fileMatches = [...cmdText.matchAll(FILE_PATHS)].map(m => m[1]);
|
|
133
|
+
for (const file of fileMatches) {
|
|
134
|
+
this.fileTouchWindow.push({ file, timestamp: event.createdAt });
|
|
135
|
+
// Keep window at 2 minutes
|
|
136
|
+
const cutoff = event.createdAt - 2 * 60 * 1000;
|
|
137
|
+
this.fileTouchWindow = this.fileTouchWindow.filter(f => f.timestamp > cutoff);
|
|
138
|
+
const count = this.fileTouchWindow.filter(f => f.file === file).length;
|
|
139
|
+
if (count >= 3) {
|
|
140
|
+
signals.push(this.makeSignal('file_touch_cluster', 0.5 + (count - 3) * 0.1, event, {
|
|
141
|
+
file,
|
|
142
|
+
touchCount: count,
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// 10. context_switch — tool category change
|
|
147
|
+
const toolCategories = {
|
|
148
|
+
'Bash': 'shell', 'Read': 'file', 'Edit': 'file', 'Write': 'file',
|
|
149
|
+
'Glob': 'file', 'Grep': 'search', 'Agent': 'agent',
|
|
150
|
+
};
|
|
151
|
+
const currentCategory = toolCategories[event.tool] ?? 'other';
|
|
152
|
+
if (recentEvents.length >= 3) {
|
|
153
|
+
const last3 = recentEvents.slice(-3);
|
|
154
|
+
const lastCategories = last3.map(e => toolCategories[e.tool] ?? 'other');
|
|
155
|
+
const allSame = lastCategories.every(c => c === lastCategories[0]);
|
|
156
|
+
if (allSame && lastCategories[0] !== currentCategory && currentCategory !== 'other') {
|
|
157
|
+
signals.push(this.makeSignal('context_switch', 0.35, event, {
|
|
158
|
+
from: lastCategories[0],
|
|
159
|
+
to: currentCategory,
|
|
160
|
+
}));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return signals;
|
|
164
|
+
}
|
|
165
|
+
// ── Expensive Layer (sequence analysis) ────────────
|
|
166
|
+
detectExpensive(event, recentEvents) {
|
|
167
|
+
const signals = [];
|
|
168
|
+
// 11. fix_confirmed — error → modified command → success within 6 events
|
|
169
|
+
if (event.exitCode === 0 && event.command && recentEvents.length >= 2) {
|
|
170
|
+
const prev = recentEvents[recentEvents.length - 1];
|
|
171
|
+
const prevPrev = recentEvents[recentEvents.length - 2];
|
|
172
|
+
if (prev && prev.command && event.command !== prev.command) {
|
|
173
|
+
const curBase = event.command.split(' ')[0];
|
|
174
|
+
const prevBase = prev.command.split(' ')[0];
|
|
175
|
+
if (curBase === prevBase && prev.exitCode !== undefined && prev.exitCode !== null && prev.exitCode !== 0) {
|
|
176
|
+
signals.push(this.makeSignal('fix_confirmed', 0.9, event, {
|
|
177
|
+
failedCommand: prev.command.slice(0, 100),
|
|
178
|
+
fixCommand: event.command.slice(0, 100),
|
|
179
|
+
failedEventId: prev.id,
|
|
180
|
+
}));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// 12. merge_conflict
|
|
185
|
+
if (event.command && /\b(merge|rebase|cherry-pick|conflict|CONFLICT)\b/i.test(event.command + (event.stderr ?? ''))) {
|
|
186
|
+
if (event.exitCode !== 0 || /\bCONFLICT\b/.test(event.stderr ?? '')) {
|
|
187
|
+
signals.push(this.makeSignal('merge_conflict', 0.75, event, {
|
|
188
|
+
command: event.command.slice(0, 100),
|
|
189
|
+
}));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// 13. rollback — git reset / revert / checkout to undo
|
|
193
|
+
if (event.command && /\b(git\s+(reset|revert|checkout\s+--)\b)/i.test(event.command)) {
|
|
194
|
+
const hasPriorWrite = recentEvents.some(e => e.tool === 'Write' || e.tool === 'Edit');
|
|
195
|
+
signals.push(this.makeSignal('rollback', 0.7, event, {
|
|
196
|
+
command: event.command.slice(0, 100),
|
|
197
|
+
hasPriorWrite,
|
|
198
|
+
}));
|
|
199
|
+
}
|
|
200
|
+
// 14. long_running — tool call took >30s
|
|
201
|
+
if (event.durationMs && event.durationMs > 30_000) {
|
|
202
|
+
signals.push(this.makeSignal('long_running', 0.55, event, {
|
|
203
|
+
durationMs: event.durationMs,
|
|
204
|
+
tool: event.tool,
|
|
205
|
+
}));
|
|
206
|
+
}
|
|
207
|
+
return signals;
|
|
208
|
+
}
|
|
209
|
+
// ── Helpers ────────────────────────────────────────
|
|
210
|
+
makeSignal(type, strength, event, payload = {}) {
|
|
211
|
+
return {
|
|
212
|
+
id: `sig:${Date.now()}:${randomUUID().slice(0, 8)}`,
|
|
213
|
+
type,
|
|
214
|
+
strength: Math.min(1, Math.max(0, strength)),
|
|
215
|
+
sourceEventIds: [event.id],
|
|
216
|
+
payload,
|
|
217
|
+
timestamp: Date.now(),
|
|
218
|
+
sessionId: event.sessionId,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
extractErrorKey(stderr) {
|
|
222
|
+
const patterns = [
|
|
223
|
+
/\b(ENOENT)\b/i, /\b(ECONNREFUSED)\b/i, /\b(ETIMEDOUT)\b/i,
|
|
224
|
+
/\b(EACCES|permission denied)\b/i, /\b(ENOTFOUND|MODULE_NOT_FOUND)\b/i,
|
|
225
|
+
/\b(TypeError)\b/i, /\b(ReferenceError)\b/i, /\b(SyntaxError)\b/i,
|
|
226
|
+
/\b(FOREIGN KEY)\b/i, /\b(UNIQUE constraint)\b/i,
|
|
227
|
+
/\b(401|403|404|500|502|503)\b/,
|
|
228
|
+
];
|
|
229
|
+
for (const pattern of patterns) {
|
|
230
|
+
const match = stderr.match(pattern);
|
|
231
|
+
if (match)
|
|
232
|
+
return match[0].toLowerCase();
|
|
233
|
+
}
|
|
234
|
+
// Fallback: first line of stderr
|
|
235
|
+
const firstLine = stderr.split('\n')[0]?.trim().slice(0, 60);
|
|
236
|
+
return firstLine || null;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=signal-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-detector.js","sourceRoot":"","sources":["../src/signal-detector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devflow-tools/memory-engine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -17,19 +17,19 @@
|
|
|
17
17
|
"clean": "rm -rf dist"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@devflow-tools/context-engine": "^0.
|
|
21
|
-
"@devflow-tools/sdk": "^0.
|
|
20
|
+
"@devflow-tools/context-engine": "^0.14.1",
|
|
21
|
+
"@devflow-tools/sdk": "^0.14.0",
|
|
22
22
|
"@xenova/transformers": "^2.17.0",
|
|
23
23
|
"better-sqlite3": "^12.0.0",
|
|
24
24
|
"sqlite-vec": "^0.1.9"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@devflow-tools/knowledge-engine": "^0.
|
|
27
|
+
"@devflow-tools/knowledge-engine": "^0.14.1",
|
|
28
28
|
"typescript": "^5.5.0",
|
|
29
29
|
"vitest": "^2.0.0"
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
32
32
|
"dist"
|
|
33
33
|
],
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "07fb824cb8de1f1b41fb45949bda10e2b95d389c"
|
|
35
35
|
}
|