@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.
Files changed (56) hide show
  1. package/dist/consolidator.d.ts +13 -0
  2. package/dist/consolidator.d.ts.map +1 -0
  3. package/dist/consolidator.js +184 -0
  4. package/dist/consolidator.js.map +1 -0
  5. package/dist/event-grouper.d.ts +13 -0
  6. package/dist/event-grouper.d.ts.map +1 -0
  7. package/dist/event-grouper.js +178 -0
  8. package/dist/event-grouper.js.map +1 -0
  9. package/dist/graph-store.d.ts.map +1 -1
  10. package/dist/graph-store.js +2 -4
  11. package/dist/graph-store.js.map +1 -1
  12. package/dist/hybrid-search.d.ts +7 -4
  13. package/dist/hybrid-search.d.ts.map +1 -1
  14. package/dist/hybrid-search.js +69 -8
  15. package/dist/hybrid-search.js.map +1 -1
  16. package/dist/index.d.ts +14 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +7 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/l2-evaluator.d.ts +31 -0
  21. package/dist/l2-evaluator.d.ts.map +1 -0
  22. package/dist/l2-evaluator.js +103 -0
  23. package/dist/l2-evaluator.js.map +1 -0
  24. package/dist/llm-provider.d.ts +9 -0
  25. package/dist/llm-provider.d.ts.map +1 -0
  26. package/dist/llm-provider.js +37 -0
  27. package/dist/llm-provider.js.map +1 -0
  28. package/dist/memory-engine.d.ts +27 -4
  29. package/dist/memory-engine.d.ts.map +1 -1
  30. package/dist/memory-engine.js +275 -182
  31. package/dist/memory-engine.js.map +1 -1
  32. package/dist/memory-gate.d.ts +116 -0
  33. package/dist/memory-gate.d.ts.map +1 -0
  34. package/dist/memory-gate.js +385 -0
  35. package/dist/memory-gate.js.map +1 -0
  36. package/dist/memory-store.d.ts +234 -32
  37. package/dist/memory-store.d.ts.map +1 -1
  38. package/dist/memory-store.js +729 -142
  39. package/dist/memory-store.js.map +1 -1
  40. package/dist/project-validator.d.ts +10 -0
  41. package/dist/project-validator.d.ts.map +1 -0
  42. package/dist/project-validator.js +36 -0
  43. package/dist/project-validator.js.map +1 -0
  44. package/dist/session-summarizer.d.ts +10 -0
  45. package/dist/session-summarizer.d.ts.map +1 -0
  46. package/dist/session-summarizer.js +197 -0
  47. package/dist/session-summarizer.js.map +1 -0
  48. package/dist/signal-buffer.d.ts +42 -0
  49. package/dist/signal-buffer.d.ts.map +1 -0
  50. package/dist/signal-buffer.js +104 -0
  51. package/dist/signal-buffer.js.map +1 -0
  52. package/dist/signal-detector.d.ts +39 -0
  53. package/dist/signal-detector.d.ts.map +1 -0
  54. package/dist/signal-detector.js +239 -0
  55. package/dist/signal-detector.js.map +1 -0
  56. package/package.json +5 -5
@@ -1,45 +1,133 @@
1
1
  export interface MemoryRow {
2
2
  id: string;
3
- category: string;
3
+ type: string;
4
+ title: string;
4
5
  content: string;
5
- original_text: string | null;
6
- source: string;
6
+ context: string;
7
7
  status: string;
8
+ version: number;
9
+ supersedes: string | null;
10
+ superseded_by: string | null;
11
+ strength: number;
8
12
  confidence: number;
13
+ tags: string;
9
14
  scope: string;
10
15
  session_id: string | null;
16
+ original_text: string | null;
17
+ source: string;
18
+ created_at: number;
19
+ updated_at: number;
20
+ last_reinforced_at: number | null;
21
+ expires_at: number | null;
22
+ access_count: number;
23
+ reinforce_count: number;
24
+ }
25
+ export interface ObservationRow {
26
+ id: string;
27
+ session_id: string;
28
+ project: string;
29
+ type: string;
30
+ title: string;
31
+ narrative: string;
32
+ facts: string;
33
+ files: string;
34
+ tools: string;
35
+ concepts: string;
36
+ importance: number;
37
+ confidence: number;
38
+ source_event_ids: string;
39
+ memory_id: string | null;
40
+ timestamp: number;
41
+ }
42
+ export interface EventRow {
43
+ id: string;
44
+ session_id: string;
45
+ project: string;
46
+ tool: string;
47
+ command: string | null;
48
+ exit_code: number | null;
49
+ stderr: string | null;
50
+ duration_ms: number | null;
11
51
  created_at: number;
12
- approved_at: number | null;
52
+ processed: number;
53
+ l1_score: number;
54
+ dialog_score: number;
55
+ user_message: string | null;
56
+ }
57
+ export interface SessionRow {
58
+ id: string;
59
+ project_root: string;
60
+ task: string;
61
+ status: 'active' | 'closed';
62
+ phase_summary: string;
63
+ signal_summary: string;
64
+ tool_count: number;
65
+ error_count: number;
66
+ created_at: number;
67
+ closed_at: number | null;
68
+ }
69
+ export interface SignalRow {
70
+ id: string;
71
+ session_id: string;
72
+ type: string;
73
+ strength: number;
74
+ source_event_ids: string;
75
+ payload: string;
76
+ timestamp: number;
13
77
  }
14
78
  export declare class MemoryStore {
15
79
  private db;
80
+ private dbPath;
16
81
  constructor(rootPath: string);
82
+ private countTables;
83
+ private migrateV1ToV2;
84
+ private getTableColumns;
17
85
  add(entry: {
18
86
  id?: string;
19
- category: string;
87
+ type?: string;
88
+ category?: string;
20
89
  content: string;
90
+ title?: string;
21
91
  originalText?: string;
22
92
  source?: string;
23
93
  status?: string;
24
94
  confidence?: number;
95
+ strength?: number;
25
96
  scope?: string;
26
97
  sessionId?: string;
27
98
  }): MemoryRow;
28
99
  get(id: string): MemoryRow | null;
29
100
  update(id: string, updates: {
101
+ title?: string;
30
102
  content?: string;
103
+ context?: string;
31
104
  status?: string;
105
+ strength?: number;
106
+ confidence?: number;
107
+ tags?: string;
32
108
  scope?: string;
109
+ version?: number;
110
+ supersedes?: string;
111
+ superseded_by?: string;
112
+ reinforce_count?: number;
113
+ last_reinforced_at?: number;
33
114
  }): void;
34
115
  delete(id: string): void;
35
116
  list(filter?: {
117
+ type?: string;
36
118
  category?: string;
37
119
  status?: string;
38
120
  scope?: string;
39
121
  }): MemoryRow[];
40
122
  getPending(): MemoryRow[];
123
+ listByType(type: string, limit?: number): MemoryRow[];
124
+ listByTypes(types: string[], limit?: number): MemoryRow[];
41
125
  listByCategory(category: string, limit?: number): MemoryRow[];
126
+ countByStatus(status: string): number;
42
127
  insertEmbedding(id: string, embedding: Float32Array): void;
128
+ insertObservationEmbedding(obsId: string, embedding: Float32Array): void;
129
+ getEmbedding(id: string): Buffer | null;
130
+ getEmbeddingBySource(sourceType: string, sourceId: string): Buffer | null;
43
131
  searchBM25(query: string, limit?: number): Array<{
44
132
  id: string;
45
133
  rank: number;
@@ -48,35 +136,163 @@ export declare class MemoryStore {
48
136
  id: string;
49
137
  distance: number;
50
138
  }>;
51
- addEdge(sourceId: string, targetId: string, relation: string, weight?: number): void;
139
+ addEdge(sourceId: string, targetId: string, type: string, weight?: number): void;
52
140
  getNeighbors(id: string): Array<{
53
141
  targetId: string;
54
- relation: string;
142
+ type: string;
55
143
  weight: number;
56
144
  }>;
57
- getEmbedding(id: string): Buffer | null;
58
- close(): void;
59
145
  recordEvent(event: {
60
146
  id: string;
61
147
  sessionId: string;
148
+ project?: string;
62
149
  tool: string;
63
150
  command?: string;
64
151
  exitCode?: number;
65
152
  stderr?: string;
66
153
  durationMs?: number;
67
154
  createdAt: number;
155
+ l1Score?: number;
156
+ dialogScore?: number;
157
+ userMessage?: string;
68
158
  }): void;
69
- getUnprocessedEvents(): Array<{
159
+ getSessionEvents(sessionId: string): EventRow[];
160
+ getUnprocessedEvents(): EventRow[];
161
+ markEventsProcessed(ids: string[]): void;
162
+ eventWindowExists(tool: string, command: string | undefined, windowMs?: number): boolean;
163
+ createSession(id: string, projectRoot: string, task?: string): void;
164
+ closeSession(id: string): void;
165
+ getSession(id: string): SessionRow | null;
166
+ getActiveSessions(): SessionRow[];
167
+ updateSessionStats(id: string, stats: {
168
+ tool_count?: number;
169
+ error_count?: number;
170
+ }): void;
171
+ getZombieSessions(maxAgeHours?: number): SessionRow[];
172
+ addObservation(obs: {
173
+ id?: string;
174
+ sessionId: string;
175
+ project?: string;
176
+ type: string;
177
+ title: string;
178
+ narrative?: string;
179
+ facts?: string[];
180
+ files?: string[];
181
+ tools?: string[];
182
+ concepts?: string[];
183
+ importance?: number;
184
+ confidence?: number;
185
+ sourceEventIds?: string[];
186
+ timestamp?: number;
187
+ }): ObservationRow;
188
+ getObservation(id: string): ObservationRow | null;
189
+ listObservations(filter?: {
190
+ sessionId?: string;
191
+ project?: string;
192
+ type?: string;
193
+ memoryId?: string | null;
194
+ concept?: string;
195
+ limit?: number;
196
+ }): ObservationRow[];
197
+ getObservationsByConcept(concept: string, limit?: number): ObservationRow[];
198
+ countObservationsByConcept(concept: string): number;
199
+ getConceptsForObservation(obsId: string): string[];
200
+ linkObservationToMemory(obsId: string, memoryId: string): void;
201
+ getUnconsolidatedObservations(project: string, minImportance?: number): ObservationRow[];
202
+ /** Get concept clusters from unconsolidated observations, grouped by concept with session counts */
203
+ getClusterCandidates(project: string, minObservations?: number, minSessions?: number): Array<{
204
+ concept: string;
205
+ observationCount: number;
206
+ sessionCount: number;
207
+ observationIds: string[];
208
+ }>;
209
+ recordSignals(signals: Array<{
70
210
  id: string;
71
211
  sessionId: string;
72
- tool: string;
73
- command: string | null;
74
- exitCode: number | null;
75
- stderr: string | null;
76
- durationMs: number | null;
77
- createdAt: number;
212
+ type: string;
213
+ strength: number;
214
+ sourceEventIds: string[];
215
+ payload: Record<string, unknown>;
216
+ timestamp: number;
217
+ }>): void;
218
+ getSessionSignals(sessionId: string): SignalRow[];
219
+ addEvidence(ev: {
220
+ id?: string;
221
+ memoryId: string;
222
+ type: string;
223
+ weight: number;
224
+ sourceObservationIds: string[];
225
+ summary: string;
226
+ timestamp?: number;
227
+ }): string;
228
+ getEvidenceForMemory(memoryId: string): Array<{
229
+ id: string;
230
+ memory_id: string;
231
+ type: string;
232
+ weight: number;
233
+ source_observation_ids: string;
234
+ summary: string;
235
+ timestamp: number;
78
236
  }>;
79
- markEventsProcessed(ids: string[]): void;
237
+ recordAccess(memoryId: string, accessType: string, sessionId?: string): void;
238
+ incrementAccess(id: string): void;
239
+ recordHistory(entry: {
240
+ memoryId: string;
241
+ event: string;
242
+ oldContent?: string;
243
+ newContent?: string;
244
+ oldStrength?: number;
245
+ newStrength?: number;
246
+ reason?: string;
247
+ }): void;
248
+ getVersionChain(id: string): MemoryRow[];
249
+ getMemoryHistory(memoryId: string): Array<{
250
+ id: string;
251
+ memory_id: string;
252
+ event: string;
253
+ old_content: string | null;
254
+ new_content: string | null;
255
+ old_strength: number | null;
256
+ new_strength: number | null;
257
+ reason: string;
258
+ created_at: number;
259
+ }>;
260
+ upsertRetentionScore(memoryId: string, data: {
261
+ score: number;
262
+ salience: number;
263
+ temporal_decay: number;
264
+ reinforcement_boost: number;
265
+ last_accessed?: number;
266
+ access_count?: number;
267
+ }): void;
268
+ getColdRetentionScores(threshold: number): Array<{
269
+ memory_id: string;
270
+ score: number;
271
+ }>;
272
+ getRetentionScore(memoryId: string): {
273
+ memory_id: string;
274
+ score: number;
275
+ salience: number;
276
+ temporal_decay: number;
277
+ reinforcement_boost: number;
278
+ last_accessed: number | null;
279
+ access_count: number;
280
+ computed_at: number;
281
+ } | null;
282
+ computeRetentionScore(memory: MemoryRow): {
283
+ score: number;
284
+ salience: number;
285
+ temporalDecay: number;
286
+ reinforcementBoost: number;
287
+ };
288
+ runRetentionSweep(project?: string): {
289
+ swept: number;
290
+ kept: number;
291
+ downgraded: number;
292
+ expired: number;
293
+ cleanedEvents: number;
294
+ };
295
+ setExpires(id: string, expiresAt: number): void;
80
296
  cleanupExpired(): {
81
297
  expired: number;
82
298
  lowQuality: number;
@@ -84,20 +300,6 @@ export declare class MemoryStore {
84
300
  cleanupLowQuality(): {
85
301
  removed: number;
86
302
  };
87
- private migrateSchema;
88
- countByStatus(status: string): number;
89
- eventWindowExists(tool: string, command: string | undefined, windowMs?: number): boolean;
90
- incrementAccess(id: string): void;
91
- setExpires(id: string, expiresAt: number): void;
92
- getSessionEvents(sessionId: string): Array<{
93
- id: string;
94
- sessionId: string;
95
- tool: string;
96
- command: string | null;
97
- exitCode: number | null;
98
- stderr: string | null;
99
- durationMs: number | null;
100
- createdAt: number;
101
- }>;
303
+ close(): void;
102
304
  }
103
305
  //# sourceMappingURL=memory-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}