@slorenzot/memento-core 0.7.0 → 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.es.md +446 -0
- package/README.md +117 -115
- package/dist/ConfigManager.d.ts +90 -0
- package/dist/ConfigManager.d.ts.map +1 -1
- package/dist/ConfigManager.js +263 -7
- package/dist/ConfigManager.js.map +1 -1
- package/dist/EmbeddingService.d.ts +54 -0
- package/dist/EmbeddingService.d.ts.map +1 -0
- package/dist/EmbeddingService.js +135 -0
- package/dist/EmbeddingService.js.map +1 -0
- package/dist/MemoryEngine.d.ts +238 -8
- package/dist/MemoryEngine.d.ts.map +1 -1
- package/dist/MemoryEngine.js +2267 -52
- package/dist/MemoryEngine.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +290 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -4
- package/dist/db/schema.d.ts +0 -353
- package/dist/db/schema.d.ts.map +0 -1
- package/dist/db/schema.js +0 -40
- package/dist/db/schema.js.map +0 -1
- package/drizzle.config.ts +0 -10
- package/src/ConfigManager.test.ts +0 -248
- package/src/ConfigManager.ts +0 -131
- package/src/MemoryEngine.test.ts +0 -456
- package/src/MemoryEngine.ts +0 -450
- package/src/db/schema.js +0 -39
- package/src/db/schema.ts +0 -40
- package/src/index.ts +0 -3
- package/src/types.ts +0 -52
- package/tsconfig.json +0 -18
- package/tsconfig.json.bak +0 -30
package/dist/MemoryEngine.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { Observation, Session, Prompt } from './types.js';
|
|
1
|
+
import type { Observation, Session, Prompt, SearchParams, SearchResult, MergeParams, MergeResult, MergeCandidates, ExportParams, ExportResult, ExportData, ImportData, ImportOptions, ImportResult, JournalEntry, WriteJournalParams, JournalSearchParams, JournalSearchResult, PromptInjectionConfig, RenderedPromptContext, FullExportData, FullImportOptions, FullImportResult, ListPromptsParams, ListPromptsResult } from './types.js';
|
|
2
2
|
export declare class MemoryEngine {
|
|
3
3
|
private db;
|
|
4
4
|
private dbPath;
|
|
5
5
|
private initError;
|
|
6
|
+
private embeddingService;
|
|
6
7
|
constructor(dbPath?: string);
|
|
7
8
|
private createMockDatabase;
|
|
8
9
|
isHealthy(): boolean;
|
|
@@ -12,6 +13,12 @@ export declare class MemoryEngine {
|
|
|
12
13
|
private serialize;
|
|
13
14
|
private deserialize;
|
|
14
15
|
private checkHealth;
|
|
16
|
+
/**
|
|
17
|
+
* Retry wrapper with exponential backoff for SQLITE_BUSY errors.
|
|
18
|
+
* Dual defense: PRAGMA busy_timeout (5s) catches most contention,
|
|
19
|
+
* this catches the rest with retries.
|
|
20
|
+
*/
|
|
21
|
+
private withRetry;
|
|
15
22
|
createObservation(data: {
|
|
16
23
|
sessionId: number;
|
|
17
24
|
title: string;
|
|
@@ -20,6 +27,9 @@ export declare class MemoryEngine {
|
|
|
20
27
|
topicKey: string | null;
|
|
21
28
|
projectId: string;
|
|
22
29
|
metadata: Record<string, unknown>;
|
|
30
|
+
scope?: 'project' | 'personal';
|
|
31
|
+
pinned?: boolean;
|
|
32
|
+
readOnly?: boolean;
|
|
23
33
|
}): Promise<Observation>;
|
|
24
34
|
updateObservation(id: number, updates: {
|
|
25
35
|
title?: string;
|
|
@@ -27,26 +37,109 @@ export declare class MemoryEngine {
|
|
|
27
37
|
type?: Observation['type'];
|
|
28
38
|
topicKey?: string | null;
|
|
29
39
|
metadata?: Record<string, unknown>;
|
|
40
|
+
pinned?: boolean;
|
|
41
|
+
readOnly?: boolean;
|
|
30
42
|
}): Promise<Observation>;
|
|
31
|
-
deleteObservation(id: number): Promise<void>;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
43
|
+
deleteObservation(id: number, reason?: string): Promise<void>;
|
|
44
|
+
restoreObservation(id: number): Promise<Observation>;
|
|
45
|
+
purgeObservations(params: {
|
|
46
|
+
projectId?: string;
|
|
47
|
+
observationIds?: number[];
|
|
48
|
+
}): Promise<{
|
|
49
|
+
purgedCount: number;
|
|
50
|
+
purgedIds: number[];
|
|
51
|
+
}>;
|
|
52
|
+
listDeleted(params: {
|
|
36
53
|
projectId?: string;
|
|
37
|
-
topicKey?: string;
|
|
38
54
|
limit?: number;
|
|
39
|
-
offset?: number;
|
|
40
55
|
}): Promise<{
|
|
41
56
|
observations: Observation[];
|
|
42
57
|
total: number;
|
|
43
58
|
}>;
|
|
59
|
+
findMergeCandidates(params: {
|
|
60
|
+
projectId: string;
|
|
61
|
+
strategy: 'by_topic' | 'by_similarity';
|
|
62
|
+
similarityThreshold?: number;
|
|
63
|
+
}): Promise<MergeCandidates>;
|
|
64
|
+
mergeObservations(params: MergeParams): Promise<MergeResult[]>;
|
|
65
|
+
jaccardSimilarity(text1: string, text2: string): number;
|
|
66
|
+
exportObservations(params: ExportParams): Promise<ExportResult>;
|
|
67
|
+
private exportToJSON;
|
|
68
|
+
private exportToXML;
|
|
69
|
+
private exportToTXT;
|
|
70
|
+
/**
|
|
71
|
+
* Sanitize a user query for safe use in FTS5 MATCH.
|
|
72
|
+
* Strips FTS5 operators and special characters that would cause syntax errors.
|
|
73
|
+
* Returns empty string if nothing survives sanitization.
|
|
74
|
+
*/
|
|
75
|
+
private sanitizeFTS5Query;
|
|
76
|
+
getObservation(id: number, includeDeleted?: boolean): Promise<Observation | null>;
|
|
77
|
+
search(params: SearchParams): Promise<SearchResult>;
|
|
78
|
+
/**
|
|
79
|
+
* Keyword search using existing FTS5 (unchanged behavior).
|
|
80
|
+
*/
|
|
81
|
+
private searchKeyword;
|
|
82
|
+
/**
|
|
83
|
+
* Semantic search using cosine similarity on embeddings.
|
|
84
|
+
* Falls back to keyword search if embeddings are unavailable.
|
|
85
|
+
*/
|
|
86
|
+
private searchSemantic;
|
|
87
|
+
/**
|
|
88
|
+
* Hybrid search combining FTS5 BM25 + cosine similarity.
|
|
89
|
+
* Score = 0.4 * bm25_normalized + 0.6 * cosine_similarity
|
|
90
|
+
*/
|
|
91
|
+
private searchHybrid;
|
|
92
|
+
/**
|
|
93
|
+
* Generate and store embedding for an observation.
|
|
94
|
+
* Non-blocking: does not throw on failure.
|
|
95
|
+
*/
|
|
96
|
+
generateEmbedding(observationId: number): Promise<boolean>;
|
|
97
|
+
/**
|
|
98
|
+
* Delete embedding for an observation.
|
|
99
|
+
*/
|
|
100
|
+
deleteEmbedding(observationId: number): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Get embedding status (is the service available?).
|
|
103
|
+
*/
|
|
104
|
+
getEmbeddingStatus(): Promise<import("./EmbeddingService.js").EmbeddingStatus>;
|
|
105
|
+
/**
|
|
106
|
+
* Backfill embeddings for observations that don't have them.
|
|
107
|
+
* Processes in batches. Returns count of embeddings generated.
|
|
108
|
+
*/
|
|
109
|
+
backfillEmbeddings(batchSize?: number): Promise<{
|
|
110
|
+
processed: number;
|
|
111
|
+
failed: number;
|
|
112
|
+
}>;
|
|
44
113
|
createSession(data: {
|
|
45
114
|
projectId: string;
|
|
46
115
|
endedAt: Date | null;
|
|
47
116
|
metadata: Record<string, unknown>;
|
|
117
|
+
seedIfEmpty?: boolean;
|
|
48
118
|
}): Promise<Session>;
|
|
119
|
+
/**
|
|
120
|
+
* Seed default observations if project has no observations yet.
|
|
121
|
+
* Creates 3 seeds: persona (personal scope), human (personal), project (project scope).
|
|
122
|
+
* Public so that `memento init` can call it directly.
|
|
123
|
+
*/
|
|
124
|
+
seedIfEmpty(projectId: string, sessionId: number): Promise<void>;
|
|
49
125
|
endSession(id: number): Promise<Session>;
|
|
126
|
+
/**
|
|
127
|
+
* Close stale (orphaned) sessions for a specific project.
|
|
128
|
+
* Sessions are considered stale if they have no ended_at AND started_at is older than maxAgeMs.
|
|
129
|
+
* Auto-closed sessions receive metadata: { auto_closed: true, reason: 'stale', closed_at: <timestamp> }.
|
|
130
|
+
* Returns the count of closed sessions.
|
|
131
|
+
*/
|
|
132
|
+
closeStaleSessionsForProject(projectId: string, maxAgeMs?: number): {
|
|
133
|
+
closed: number;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Close ALL stale (orphaned) sessions across all projects.
|
|
137
|
+
* Sessions are considered stale if they have no ended_at AND started_at is older than maxAgeMs.
|
|
138
|
+
* Returns the count of closed sessions.
|
|
139
|
+
*/
|
|
140
|
+
closeStaleSessions(maxAgeMs?: number): {
|
|
141
|
+
closed: number;
|
|
142
|
+
};
|
|
50
143
|
getSession(id: number): Promise<Session | null>;
|
|
51
144
|
savePrompt(data: {
|
|
52
145
|
sessionId: number;
|
|
@@ -54,12 +147,149 @@ export declare class MemoryEngine {
|
|
|
54
147
|
projectId: string;
|
|
55
148
|
metadata: Record<string, unknown>;
|
|
56
149
|
}): Promise<Prompt>;
|
|
150
|
+
/**
|
|
151
|
+
* Select observations for prompt injection based on config.
|
|
152
|
+
* Returns observations sorted deterministically for prompt caching:
|
|
153
|
+
* 1. Pinned observations (by ID ascending)
|
|
154
|
+
* 2. Non-pinned observations (by ID ascending)
|
|
155
|
+
*/
|
|
156
|
+
selectForPrompt(config: PromptInjectionConfig): Observation[];
|
|
157
|
+
/**
|
|
158
|
+
* Render observations as compact XML for system prompt injection.
|
|
159
|
+
*/
|
|
160
|
+
renderPromptContext(observations: Observation[], config: PromptInjectionConfig): RenderedPromptContext;
|
|
161
|
+
private renderObservationXml;
|
|
162
|
+
private estimateObservationChars;
|
|
163
|
+
/**
|
|
164
|
+
* Pin an observation (always include in prompt injection).
|
|
165
|
+
*/
|
|
166
|
+
pinObservation(id: number): Promise<Observation>;
|
|
167
|
+
/**
|
|
168
|
+
* Unpin an observation.
|
|
169
|
+
*/
|
|
170
|
+
unpinObservation(id: number): Promise<Observation>;
|
|
171
|
+
/**
|
|
172
|
+
* Lock an observation (set read-only). Prevents all modifications.
|
|
173
|
+
*/
|
|
174
|
+
lockObservation(id: number): Promise<Observation>;
|
|
175
|
+
/**
|
|
176
|
+
* Unlock an observation (remove read-only protection).
|
|
177
|
+
*/
|
|
178
|
+
unlockObservation(id: number): Promise<Observation>;
|
|
57
179
|
private getObservationById;
|
|
58
180
|
private getSessionById;
|
|
59
181
|
private getPromptById;
|
|
60
182
|
private mapObservation;
|
|
61
183
|
private mapSession;
|
|
62
184
|
private mapPrompt;
|
|
185
|
+
getTimeline(params: {
|
|
186
|
+
projectId?: string;
|
|
187
|
+
scope?: string;
|
|
188
|
+
limit?: number;
|
|
189
|
+
offset?: number;
|
|
190
|
+
}): Promise<{
|
|
191
|
+
observations: Observation[];
|
|
192
|
+
total: number;
|
|
193
|
+
}>;
|
|
194
|
+
getRecentContext(params: {
|
|
195
|
+
projectId?: string;
|
|
196
|
+
limit?: number;
|
|
197
|
+
scope?: 'project' | 'personal';
|
|
198
|
+
}): Promise<{
|
|
199
|
+
observations: Observation[];
|
|
200
|
+
total: number;
|
|
201
|
+
}>;
|
|
202
|
+
listSessions(params: {
|
|
203
|
+
projectId?: string;
|
|
204
|
+
activeOnly?: boolean;
|
|
205
|
+
limit?: number;
|
|
206
|
+
offset?: number;
|
|
207
|
+
}): Promise<{
|
|
208
|
+
sessions: Session[];
|
|
209
|
+
total: number;
|
|
210
|
+
}>;
|
|
211
|
+
listProjects(): Promise<Array<{
|
|
212
|
+
name: string;
|
|
213
|
+
activeCount: number;
|
|
214
|
+
deletedCount: number;
|
|
215
|
+
lastActivity: Date | null;
|
|
216
|
+
byType: Record<string, number>;
|
|
217
|
+
}>>;
|
|
218
|
+
/**
|
|
219
|
+
* Register a project in the projects table.
|
|
220
|
+
* Uses INSERT OR IGNORE to be idempotent.
|
|
221
|
+
* Returns the registered project name (normalized).
|
|
222
|
+
*/
|
|
223
|
+
registerProject(name: string, workingDir?: string): string;
|
|
224
|
+
/**
|
|
225
|
+
* Get all registered project names from the projects table.
|
|
226
|
+
*/
|
|
227
|
+
listRegisteredProjects(): Array<{
|
|
228
|
+
name: string;
|
|
229
|
+
workingDir: string | null;
|
|
230
|
+
aliases: string[];
|
|
231
|
+
}>;
|
|
232
|
+
/**
|
|
233
|
+
* Merge all observations and sessions from sourceProject into targetProject.
|
|
234
|
+
* Also updates FTS index. Returns count of affected records.
|
|
235
|
+
*
|
|
236
|
+
* Tries both the raw source name and the normalized version to handle
|
|
237
|
+
* un-normalized data in the database.
|
|
238
|
+
*/
|
|
239
|
+
mergeProject(sourceProjectId: string, targetProjectId: string): {
|
|
240
|
+
observationsMoved: number;
|
|
241
|
+
sessionsMoved: number;
|
|
242
|
+
journalMoved: number;
|
|
243
|
+
promptsMoved: number;
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
246
|
+
* Normalize all project_id values in the database.
|
|
247
|
+
* After normalization, merges projects that became identical.
|
|
248
|
+
* Returns details of what was changed.
|
|
249
|
+
*/
|
|
250
|
+
normalizeAllProjectIds(): {
|
|
251
|
+
normalized: number;
|
|
252
|
+
merged: Array<{
|
|
253
|
+
from: string;
|
|
254
|
+
to: string;
|
|
255
|
+
observationsMoved: number;
|
|
256
|
+
}>;
|
|
257
|
+
};
|
|
258
|
+
getDashboardStats(): Promise<{
|
|
259
|
+
totalObservations: number;
|
|
260
|
+
activeObservations: number;
|
|
261
|
+
deletedObservations: number;
|
|
262
|
+
byType: Record<string, number>;
|
|
263
|
+
byProject: Record<string, number>;
|
|
264
|
+
activeSessions: number;
|
|
265
|
+
recentObservations: Observation[];
|
|
266
|
+
}>;
|
|
267
|
+
exportToJson(options?: {
|
|
268
|
+
projectId?: string;
|
|
269
|
+
includeSessions?: boolean;
|
|
270
|
+
}): Promise<ExportData>;
|
|
271
|
+
importFromJson(data: ImportData, options?: ImportOptions): Promise<ImportResult>;
|
|
272
|
+
private findObservationByUuid;
|
|
273
|
+
resetFull(): Promise<{
|
|
274
|
+
deleted: number;
|
|
275
|
+
}>;
|
|
276
|
+
resetProject(projectId: string): Promise<{
|
|
277
|
+
deleted: number;
|
|
278
|
+
orphanSessions: number;
|
|
279
|
+
}>;
|
|
280
|
+
countByProject(projectId: string): Promise<{
|
|
281
|
+
observations: number;
|
|
282
|
+
prompts: number;
|
|
283
|
+
sessions: number;
|
|
284
|
+
}>;
|
|
285
|
+
writeJournal(data: WriteJournalParams): Promise<JournalEntry>;
|
|
286
|
+
readJournal(id: number): Promise<JournalEntry | null>;
|
|
287
|
+
searchJournal(params: JournalSearchParams): Promise<JournalSearchResult>;
|
|
288
|
+
invalidateJournal(id: number, supersededById: number): Promise<void>;
|
|
289
|
+
private mapJournalEntry;
|
|
290
|
+
listPrompts(params?: ListPromptsParams): Promise<ListPromptsResult>;
|
|
291
|
+
exportProject(projectId: string): Promise<FullExportData>;
|
|
292
|
+
importProject(data: FullExportData, options?: FullImportOptions): Promise<FullImportResult>;
|
|
63
293
|
close(): void;
|
|
64
294
|
}
|
|
65
295
|
//# sourceMappingURL=MemoryEngine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryEngine.d.ts","sourceRoot":"","sources":["../src/MemoryEngine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MemoryEngine.d.ts","sourceRoot":"","sources":["../src/MemoryEngine.ts"],"names":[],"mappings":"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"}
|