@j0hanz/memdb 1.2.8 → 1.2.9
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/core/db.d.ts +4 -3
- package/dist/core/db.d.ts.map +1 -1
- package/dist/core/db.js +32 -17
- package/dist/core/db.js.map +1 -1
- package/dist/core/memory-read.d.ts.map +1 -1
- package/dist/core/memory-read.js +7 -7
- package/dist/core/memory-read.js.map +1 -1
- package/dist/core/memory-write.d.ts.map +1 -1
- package/dist/core/memory-write.js +13 -14
- package/dist/core/memory-write.js.map +1 -1
- package/dist/core/relationships.d.ts.map +1 -1
- package/dist/core/relationships.js +14 -19
- package/dist/core/relationships.js.map +1 -1
- package/dist/core/search.d.ts +2 -2
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +35 -12
- package/dist/core/search.js.map +1 -1
- package/dist/index.js +6 -11
- package/dist/index.js.map +1 -1
- package/dist/instructions.md +27 -18
- package/dist/schemas.js +5 -5
- package/dist/schemas.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +24 -20
- package/dist/tools.js.map +1 -1
- package/package.json +10 -9
package/dist/core/db.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { DatabaseSync, type StatementSync } from 'node:sqlite';
|
|
2
2
|
import { type Memory, type Relationship, type SearchResult } from '../types.js';
|
|
3
3
|
export type DbRow = Record<string, unknown>;
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const initDb: () => Promise<void>;
|
|
5
|
+
export declare const getDb: () => DatabaseSync;
|
|
5
6
|
export declare const closeDb: () => void;
|
|
6
7
|
export type SqlParam = string | number | bigint | null | Uint8Array;
|
|
7
8
|
export declare const prepareCached: (sql: string) => StatementSync;
|
|
8
|
-
export declare const executeAll: (stmt: StatementSync, ...params: SqlParam[]) =>
|
|
9
|
-
export declare const executeGet: (stmt: StatementSync, ...params: SqlParam[]) =>
|
|
9
|
+
export declare const executeAll: <T = DbRow>(stmt: StatementSync, ...params: SqlParam[]) => T[];
|
|
10
|
+
export declare const executeGet: <T = DbRow>(stmt: StatementSync, ...params: SqlParam[]) => T | undefined;
|
|
10
11
|
export declare const executeRun: (stmt: StatementSync, ...params: SqlParam[]) => {
|
|
11
12
|
changes: number | bigint;
|
|
12
13
|
};
|
package/dist/core/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EACL,KAAK,MAAM,EAGX,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EACL,KAAK,MAAM,EAGX,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA8H5C,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,IAAI,CAW3C,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,YAKxB,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,IAM1B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,CAAC;AAKpE,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,aAiB3C,CAAC;AAqCF,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,KAAK,EAClC,MAAM,aAAa,EACnB,GAAG,QAAQ,QAAQ,EAAE,KACpB,CAAC,EAA8C,CAAC;AAGnD,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,KAAK,EAClC,MAAM,aAAa,EACnB,GAAG,QAAQ,QAAQ,EAAE,KACpB,CAAC,GAAG,SAAqE,CAAC;AAE7E,eAAO,MAAM,UAAU,GACrB,MAAM,aAAa,EACnB,GAAG,QAAQ,QAAQ,EAAE,KACpB;IAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;CAAsC,CAAC;AAEpE,eAAO,MAAM,wBAAwB,GAAI,CAAC,EAAE,WAAW,MAAM,CAAC,KAAG,CAchE,CAAC;AAsBF,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,EAAE,OAAO,MAAM,KAAG,MAM7D,CAAC;AAkCF,eAAO,MAAM,cAAc,GAAI,KAAK,KAAK,EAAE,OAAM,MAAM,EAAO,KAAG,MAU/D,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAC/B,KAAK,KAAK,EACV,OAAM,MAAM,EAAO,KAClB,YAGD,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAAI,KAAK,KAAK,KAAG,YAMhD,CAAC;AAsBH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,SAAS,MAAM,EAAE,KAC3B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAgBtB,CAAC"}
|
package/dist/core/db.js
CHANGED
|
@@ -88,9 +88,9 @@ const ensureDbDirectory = async (dbPath) => {
|
|
|
88
88
|
};
|
|
89
89
|
const enableDefensiveMode = (database) => {
|
|
90
90
|
const extended = database;
|
|
91
|
-
if (typeof extended.enableDefensive
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
if (typeof extended.enableDefensive === 'function') {
|
|
92
|
+
extended.enableDefensive(true);
|
|
93
|
+
}
|
|
94
94
|
};
|
|
95
95
|
const isInTransaction = (database) => {
|
|
96
96
|
return database.isTransaction;
|
|
@@ -109,19 +109,32 @@ const createDatabase = (dbPath) => {
|
|
|
109
109
|
initializeSchema(database);
|
|
110
110
|
return database;
|
|
111
111
|
};
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
catch (err) {
|
|
116
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
117
|
-
console.error(`[ERROR] Failed to create database directory: ${message}`);
|
|
118
|
-
throw err;
|
|
119
|
-
}
|
|
120
|
-
export const db = createDatabase(config.dbPath);
|
|
121
|
-
export const closeDb = () => {
|
|
122
|
-
if (!db.isOpen)
|
|
112
|
+
let dbInstance;
|
|
113
|
+
export const initDb = async () => {
|
|
114
|
+
if (dbInstance)
|
|
123
115
|
return;
|
|
124
|
-
|
|
116
|
+
try {
|
|
117
|
+
await ensureDbDirectory(config.dbPath);
|
|
118
|
+
dbInstance = createDatabase(config.dbPath);
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
122
|
+
console.error(`[ERROR] Failed to initialize database: ${message}`);
|
|
123
|
+
throw err;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
export const getDb = () => {
|
|
127
|
+
if (!dbInstance) {
|
|
128
|
+
throw new Error('Database not initialized. Call initDb() first.');
|
|
129
|
+
}
|
|
130
|
+
return dbInstance;
|
|
131
|
+
};
|
|
132
|
+
export const closeDb = () => {
|
|
133
|
+
if (dbInstance?.isOpen) {
|
|
134
|
+
dbInstance.close();
|
|
135
|
+
dbInstance = undefined;
|
|
136
|
+
statementCache.clear();
|
|
137
|
+
}
|
|
125
138
|
};
|
|
126
139
|
const MAX_CACHED_STATEMENTS = 200;
|
|
127
140
|
const statementCache = new Map();
|
|
@@ -132,7 +145,7 @@ export const prepareCached = (sql) => {
|
|
|
132
145
|
statementCache.set(sql, cached);
|
|
133
146
|
return cached;
|
|
134
147
|
}
|
|
135
|
-
const stmt =
|
|
148
|
+
const stmt = getDb().prepare(sql);
|
|
136
149
|
statementCache.set(sql, stmt);
|
|
137
150
|
if (statementCache.size > MAX_CACHED_STATEMENTS) {
|
|
138
151
|
const oldestKey = statementCache.keys().next().value;
|
|
@@ -173,9 +186,11 @@ const toRunResult = (value) => {
|
|
|
173
186
|
return { changes };
|
|
174
187
|
};
|
|
175
188
|
export const executeAll = (stmt, ...params) => toDbRowArray(stmt.all(...params));
|
|
189
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters
|
|
176
190
|
export const executeGet = (stmt, ...params) => toDbRowOrUndefined(stmt.get(...params));
|
|
177
191
|
export const executeRun = (stmt, ...params) => toRunResult(stmt.run(...params));
|
|
178
192
|
export const withImmediateTransaction = (operation) => {
|
|
193
|
+
const db = getDb();
|
|
179
194
|
if (isInTransaction(db)) {
|
|
180
195
|
throw new Error('Cannot start nested transaction');
|
|
181
196
|
}
|
|
@@ -258,7 +273,6 @@ export const mapRowToRelationship = (row) => ({
|
|
|
258
273
|
relation_type: toString(row.relation_type, 'relation_type'),
|
|
259
274
|
created_at: toString(row.created_at, 'created_at'),
|
|
260
275
|
});
|
|
261
|
-
const stmtSelectTags = db.prepare('SELECT memory_id, tag FROM tags WHERE memory_id IN (SELECT value FROM json_each(?)) ORDER BY memory_id, tag');
|
|
262
276
|
const dedupeIds = (ids) => {
|
|
263
277
|
const seen = new Set();
|
|
264
278
|
const unique = [];
|
|
@@ -282,6 +296,7 @@ export const loadTagsForMemoryIds = (memoryIds) => {
|
|
|
282
296
|
const uniqueIds = dedupeIds(memoryIds);
|
|
283
297
|
if (uniqueIds.length === 0)
|
|
284
298
|
return new Map();
|
|
299
|
+
const stmtSelectTags = prepareCached('SELECT memory_id, tag FROM tags WHERE memory_id IN (SELECT value FROM json_each(?)) ORDER BY memory_id, tag');
|
|
285
300
|
const rows = executeAll(stmtSelectTags, JSON.stringify(uniqueIds));
|
|
286
301
|
const tagsById = new Map();
|
|
287
302
|
for (const row of rows) {
|
package/dist/core/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAEL,YAAY,GAIb,MAAM,aAAa,CAAC;AAIrB,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDlB,CAAC;AAEF,MAAM,YAAY,GAAG;;;;CAIpB,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EACvB,OAAmB,EACnB,EAAU,EACV,OAAe,EACH,EAAE;IACd,IAAI,OAAmC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACtD,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACvD,CAAC;YAAS,CAAC;QACT,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;IAChE,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO;IAClC,MAAM,WAAW,CACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAChD,IAAI,EACJ,uCAAuC,CACxC,CAAC;AACJ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/core/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-read.d.ts","sourceRoot":"","sources":["../../src/core/memory-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,eAAe,EAChB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-read.d.ts","sourceRoot":"","sources":["../../src/core/memory-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,eAAe,EAChB,MAAM,aAAa,CAAC;AAYrB,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SAiBjD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,eAM3C,CAAC;AAoBF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,KAAG,iBAejD,CAAC;AA4BF,eAAO,MAAM,QAAQ,QAAO,WAc3B,CAAC"}
|
package/dist/core/memory-read.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const stmtGetMemoryByHash = db.prepare('SELECT * FROM memories WHERE hash = ?');
|
|
3
|
-
const stmtTouchMemoryByHash = db.prepare('UPDATE memories SET accessed_at = CURRENT_TIMESTAMP WHERE hash = ?');
|
|
4
|
-
const stmtDeleteMemoryByHash = db.prepare('DELETE FROM memories WHERE hash = ?');
|
|
1
|
+
import { executeGet, executeRun, loadTagsForMemoryIds, mapRowToMemory, prepareCached, toSafeInteger, withImmediateTransaction, } from './db.js';
|
|
5
2
|
export const getMemory = (hash) => {
|
|
6
3
|
return withImmediateTransaction(() => {
|
|
4
|
+
const stmtTouchMemoryByHash = prepareCached('UPDATE memories SET accessed_at = CURRENT_TIMESTAMP WHERE hash = ?');
|
|
7
5
|
executeRun(stmtTouchMemoryByHash, hash);
|
|
6
|
+
const stmtGetMemoryByHash = prepareCached('SELECT * FROM memories WHERE hash = ?');
|
|
8
7
|
const row = executeGet(stmtGetMemoryByHash, hash);
|
|
9
8
|
if (!row)
|
|
10
9
|
return undefined;
|
|
@@ -14,6 +13,7 @@ export const getMemory = (hash) => {
|
|
|
14
13
|
});
|
|
15
14
|
};
|
|
16
15
|
export const deleteMemory = (hash) => {
|
|
16
|
+
const stmtDeleteMemoryByHash = prepareCached('DELETE FROM memories WHERE hash = ?');
|
|
17
17
|
const result = executeRun(stmtDeleteMemoryByHash, hash);
|
|
18
18
|
return { changes: toSafeInteger(result.changes, 'changes') };
|
|
19
19
|
};
|
|
@@ -47,9 +47,6 @@ export const deleteMemories = (hashes) => {
|
|
|
47
47
|
return { results, succeeded, failed };
|
|
48
48
|
});
|
|
49
49
|
};
|
|
50
|
-
const stmtMemoryCount = db.prepare('SELECT COUNT(*) as count FROM memories');
|
|
51
|
-
const stmtTagCount = db.prepare('SELECT COUNT(DISTINCT tag) as count FROM tags');
|
|
52
|
-
const stmtDateRange = db.prepare('SELECT MIN(created_at) as oldest, MAX(created_at) as newest FROM memories');
|
|
53
50
|
const toDateString = (value) => {
|
|
54
51
|
if (value == null)
|
|
55
52
|
return null;
|
|
@@ -60,7 +57,9 @@ const toDateString = (value) => {
|
|
|
60
57
|
return null;
|
|
61
58
|
};
|
|
62
59
|
const queryCounts = () => {
|
|
60
|
+
const stmtMemoryCount = prepareCached('SELECT COUNT(*) as count FROM memories');
|
|
63
61
|
const memoryRow = executeGet(stmtMemoryCount);
|
|
62
|
+
const stmtTagCount = prepareCached('SELECT COUNT(DISTINCT tag) as count FROM tags');
|
|
64
63
|
const tagRow = executeGet(stmtTagCount);
|
|
65
64
|
if (!memoryRow)
|
|
66
65
|
throw new Error('Failed to load memory stats');
|
|
@@ -70,6 +69,7 @@ const queryCounts = () => {
|
|
|
70
69
|
};
|
|
71
70
|
export const getStats = () => {
|
|
72
71
|
const { memoryRow, tagRow } = queryCounts();
|
|
72
|
+
const stmtDateRange = prepareCached('SELECT MIN(created_at) as oldest, MAX(created_at) as newest FROM memories');
|
|
73
73
|
const dateRow = executeGet(stmtDateRange);
|
|
74
74
|
return {
|
|
75
75
|
memoryCount: toSafeInteger(memoryRow.count, 'memoryCount'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-read.js","sourceRoot":"","sources":["../../src/core/memory-read.ts"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"memory-read.js","sourceRoot":"","sources":["../../src/core/memory-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-write.d.ts","sourceRoot":"","sources":["../../src/core/memory-write.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EACnB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-write.d.ts","sourceRoot":"","sources":["../../src/core/memory-write.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAiGrB,eAAO,MAAM,YAAY,GAAI,OAAO;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B,KAAG,kBAC8D,CAAC;AAqBnE,eAAO,MAAM,cAAc,GACzB,OAAO;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B,EAAE,KACF,gBAEF,CAAC;AAqEF,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CACtC;AAkBD,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,SAAS,mBAAmB,KAC3B,kBAuBF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import crypto from 'node:crypto';
|
|
2
|
-
import {
|
|
2
|
+
import { executeGet, executeRun, prepareCached, toSafeInteger, withImmediateTransaction, } from './db.js';
|
|
3
3
|
const MAX_TAGS = 100;
|
|
4
4
|
const TAG_PATTERN = /^\S+$/;
|
|
5
5
|
const validateTag = (tag) => {
|
|
@@ -32,9 +32,8 @@ const normalizeTags = (tags, maxTags) => {
|
|
|
32
32
|
validateTagCount(tags, maxTags);
|
|
33
33
|
return dedupeTags(tags);
|
|
34
34
|
};
|
|
35
|
-
const stmtFindMemoryIdByHash = db.prepare('SELECT id FROM memories WHERE hash = ?');
|
|
36
|
-
const stmtInsertTags = db.prepare('INSERT OR IGNORE INTO tags (memory_id, tag) SELECT ?, value FROM json_each(?)');
|
|
37
35
|
const findMemoryIdByHash = (hash) => {
|
|
36
|
+
const stmtFindMemoryIdByHash = prepareCached('SELECT id FROM memories WHERE hash = ?');
|
|
38
37
|
const row = executeGet(stmtFindMemoryIdByHash, hash);
|
|
39
38
|
if (!row)
|
|
40
39
|
return undefined;
|
|
@@ -43,13 +42,12 @@ const findMemoryIdByHash = (hash) => {
|
|
|
43
42
|
const insertTags = (memoryId, tags) => {
|
|
44
43
|
if (tags.length === 0)
|
|
45
44
|
return;
|
|
45
|
+
const stmtInsertTags = prepareCached('INSERT OR IGNORE INTO tags (memory_id, tag) SELECT ?, value FROM json_each(?)');
|
|
46
46
|
executeRun(stmtInsertTags, memoryId, JSON.stringify(tags));
|
|
47
47
|
};
|
|
48
48
|
const buildHash = (content) => {
|
|
49
|
-
|
|
50
|
-
return crypto.createHash('md5').update(content).digest('hex');
|
|
49
|
+
return crypto.createHash('sha256').update(content).digest('hex');
|
|
51
50
|
};
|
|
52
|
-
const stmtInsertMemory = db.prepare('INSERT OR IGNORE INTO memories (content, hash, importance, memory_type) VALUES (?, ?, ?, ?) RETURNING id');
|
|
53
51
|
const requireMemoryId = (id) => {
|
|
54
52
|
if (id === undefined) {
|
|
55
53
|
throw new Error('Failed to resolve memory id');
|
|
@@ -57,6 +55,7 @@ const requireMemoryId = (id) => {
|
|
|
57
55
|
return id;
|
|
58
56
|
};
|
|
59
57
|
const resolveMemoryId = (content, hash, importance, memoryType) => {
|
|
58
|
+
const stmtInsertMemory = prepareCached('INSERT OR IGNORE INTO memories (content, hash, importance, memory_type) VALUES (?, ?, ?, ?) RETURNING id');
|
|
60
59
|
const inserted = executeGet(stmtInsertMemory, content, hash, importance, memoryType);
|
|
61
60
|
if (inserted) {
|
|
62
61
|
return { id: toSafeInteger(inserted.id, 'id'), isNew: true };
|
|
@@ -77,15 +76,15 @@ export const createMemories = (items) => {
|
|
|
77
76
|
return withImmediateTransaction(() => createMemoriesInTransaction(items));
|
|
78
77
|
};
|
|
79
78
|
const withSavepoint = (name, fn) => {
|
|
80
|
-
|
|
79
|
+
executeRun(prepareCached(`SAVEPOINT ${name}`));
|
|
81
80
|
try {
|
|
82
81
|
const result = fn();
|
|
83
|
-
|
|
82
|
+
executeRun(prepareCached(`RELEASE ${name}`));
|
|
84
83
|
return result;
|
|
85
84
|
}
|
|
86
85
|
catch (err) {
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
executeRun(prepareCached(`ROLLBACK TO ${name}`));
|
|
87
|
+
executeRun(prepareCached(`RELEASE ${name}`));
|
|
89
88
|
throw err;
|
|
90
89
|
}
|
|
91
90
|
};
|
|
@@ -97,7 +96,7 @@ const createMemoriesInTransaction = (items) => {
|
|
|
97
96
|
const item = items[i];
|
|
98
97
|
if (!item)
|
|
99
98
|
continue;
|
|
100
|
-
const result =
|
|
99
|
+
const result = createMemoryWithSavepoint(i, item);
|
|
101
100
|
results.push(result);
|
|
102
101
|
if (result.ok) {
|
|
103
102
|
succeeded++;
|
|
@@ -108,7 +107,7 @@ const createMemoriesInTransaction = (items) => {
|
|
|
108
107
|
}
|
|
109
108
|
return { results, succeeded, failed };
|
|
110
109
|
};
|
|
111
|
-
const
|
|
110
|
+
const createMemoryWithSavepoint = (index, item) => {
|
|
112
111
|
const savepointName = `mem_item_${index}`;
|
|
113
112
|
try {
|
|
114
113
|
const created = withSavepoint(savepointName, () => createMemoryInTransaction(item));
|
|
@@ -124,9 +123,8 @@ const processCreateMemoriesItem = (index, item) => {
|
|
|
124
123
|
return { ok: false, index, error: message };
|
|
125
124
|
}
|
|
126
125
|
};
|
|
127
|
-
const stmtDeleteTagsForMemory = db.prepare('DELETE FROM tags WHERE memory_id = ?');
|
|
128
|
-
const stmtUpdateContent = db.prepare('UPDATE memories SET content = ?, hash = ? WHERE id = ?');
|
|
129
126
|
const replaceTags = (memoryId, tags) => {
|
|
127
|
+
const stmtDeleteTagsForMemory = prepareCached('DELETE FROM tags WHERE memory_id = ?');
|
|
130
128
|
executeRun(stmtDeleteTagsForMemory, memoryId);
|
|
131
129
|
insertTags(memoryId, normalizeTags(tags, MAX_TAGS));
|
|
132
130
|
};
|
|
@@ -147,6 +145,7 @@ export const updateMemory = (hash, options) => {
|
|
|
147
145
|
// Check if new content would create a duplicate
|
|
148
146
|
assertNoDuplicateOnUpdate(hash, newHash);
|
|
149
147
|
// Update content and hash
|
|
148
|
+
const stmtUpdateContent = prepareCached('UPDATE memories SET content = ?, hash = ? WHERE id = ?');
|
|
150
149
|
executeRun(stmtUpdateContent, options.content, newHash, memoryId);
|
|
151
150
|
// Update tags if provided, otherwise preserve existing tags
|
|
152
151
|
if (options.tags !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-write.js","sourceRoot":"","sources":["../../src/core/memory-write.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AASjC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"memory-write.js","sourceRoot":"","sources":["../../src/core/memory-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/core/relationships.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,YAAY,EACZ,eAAe,EAChB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/core/relationships.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,YAAY,EACZ,eAAe,EAChB,MAAM,aAAa,CAAC;AA4BrB,eAAO,MAAM,kBAAkB,GAAI,OAAO;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,wBAyCA,CAAC;AA2BL,eAAO,MAAM,gBAAgB,GAAI,OAAO;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;CAC9C,KAAG,YAAY,EAQf,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,eAcH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const stmtFindMemoryIdByHash = db.prepare('SELECT id FROM memories WHERE hash = ?');
|
|
1
|
+
import { executeAll, executeGet, executeRun, mapRowToRelationship, prepareCached, toSafeInteger, withImmediateTransaction, } from './db.js';
|
|
3
2
|
const findMemoryIdByHash = (hash) => {
|
|
3
|
+
const stmtFindMemoryIdByHash = prepareCached('SELECT id FROM memories WHERE hash = ?');
|
|
4
4
|
const row = executeGet(stmtFindMemoryIdByHash, hash);
|
|
5
5
|
if (!row)
|
|
6
6
|
return undefined;
|
|
@@ -13,26 +13,26 @@ const requireMemoryId = (hash) => {
|
|
|
13
13
|
}
|
|
14
14
|
return id;
|
|
15
15
|
};
|
|
16
|
-
const stmtInsertRelationship = db.prepare(`
|
|
17
|
-
INSERT OR IGNORE INTO relationships (from_memory_id, to_memory_id, relation_type)
|
|
18
|
-
VALUES (?, ?, ?)
|
|
19
|
-
RETURNING id
|
|
20
|
-
`);
|
|
21
|
-
const stmtFindRelationshipId = db.prepare(`
|
|
22
|
-
SELECT id FROM relationships
|
|
23
|
-
WHERE from_memory_id = ? AND to_memory_id = ? AND relation_type = ?
|
|
24
|
-
`);
|
|
25
16
|
export const createRelationship = (input) => withImmediateTransaction(() => {
|
|
26
17
|
const fromId = requireMemoryId(input.from_hash);
|
|
27
18
|
const toId = requireMemoryId(input.to_hash);
|
|
28
19
|
if (fromId === toId) {
|
|
29
20
|
throw new Error('Cannot create self-referential relationship');
|
|
30
21
|
}
|
|
22
|
+
const stmtInsertRelationship = prepareCached(`
|
|
23
|
+
INSERT OR IGNORE INTO relationships (from_memory_id, to_memory_id, relation_type)
|
|
24
|
+
VALUES (?, ?, ?)
|
|
25
|
+
RETURNING id
|
|
26
|
+
`);
|
|
31
27
|
const inserted = executeGet(stmtInsertRelationship, fromId, toId, input.relation_type);
|
|
32
28
|
if (inserted) {
|
|
33
29
|
return { id: toSafeInteger(inserted.id, 'id'), isNew: true };
|
|
34
30
|
}
|
|
35
31
|
// Relationship already exists, find its ID
|
|
32
|
+
const stmtFindRelationshipId = prepareCached(`
|
|
33
|
+
SELECT id FROM relationships
|
|
34
|
+
WHERE from_memory_id = ? AND to_memory_id = ? AND relation_type = ?
|
|
35
|
+
`);
|
|
36
36
|
const existing = executeGet(stmtFindRelationshipId, fromId, toId, input.relation_type);
|
|
37
37
|
if (!existing) {
|
|
38
38
|
throw new Error('Failed to resolve relationship id');
|
|
@@ -58,25 +58,20 @@ const buildGetRelationshipsQuery = (direction) => {
|
|
|
58
58
|
return `${baseSelect} WHERE mf.hash = ? OR mt.hash = ?${orderBy}`;
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
|
-
const stmtGetRelationships = {
|
|
62
|
-
outgoing: db.prepare(buildGetRelationshipsQuery('outgoing')),
|
|
63
|
-
incoming: db.prepare(buildGetRelationshipsQuery('incoming')),
|
|
64
|
-
both: db.prepare(buildGetRelationshipsQuery('both')),
|
|
65
|
-
};
|
|
66
61
|
export const getRelationships = (input) => {
|
|
67
62
|
const direction = input.direction ?? 'both';
|
|
68
|
-
const stmt =
|
|
63
|
+
const stmt = prepareCached(buildGetRelationshipsQuery(direction));
|
|
69
64
|
const params = direction === 'both' ? [input.hash, input.hash] : [input.hash];
|
|
70
65
|
const rows = executeAll(stmt, ...params);
|
|
71
66
|
return rows.map(mapRowToRelationship);
|
|
72
67
|
};
|
|
73
|
-
const
|
|
68
|
+
export const deleteRelationship = (input) => {
|
|
69
|
+
const stmtDeleteRelationship = prepareCached(`
|
|
74
70
|
DELETE FROM relationships
|
|
75
71
|
WHERE from_memory_id = (SELECT id FROM memories WHERE hash = ?)
|
|
76
72
|
AND to_memory_id = (SELECT id FROM memories WHERE hash = ?)
|
|
77
73
|
AND relation_type = ?
|
|
78
74
|
`);
|
|
79
|
-
export const deleteRelationship = (input) => {
|
|
80
75
|
const result = executeRun(stmtDeleteRelationship, input.from_hash, input.to_hash, input.relation_type);
|
|
81
76
|
return { changes: toSafeInteger(result.changes, 'changes') };
|
|
82
77
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/core/relationships.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/core/relationships.ts"],"names":[],"mappings":"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"}
|
package/dist/core/search.d.ts
CHANGED
|
@@ -2,10 +2,10 @@ import type { RecallResult, SearchResult } from '../types.js';
|
|
|
2
2
|
interface SearchInput {
|
|
3
3
|
query: string;
|
|
4
4
|
}
|
|
5
|
-
export declare const searchMemories: (input: SearchInput) => SearchResult[];
|
|
5
|
+
export declare const searchMemories: (input: SearchInput, signal?: AbortSignal) => SearchResult[];
|
|
6
6
|
export declare const recallMemories: (input: {
|
|
7
7
|
query: string;
|
|
8
8
|
depth?: number;
|
|
9
|
-
}) => RecallResult;
|
|
9
|
+
}, signal?: AbortSignal) => RecallResult;
|
|
10
10
|
export {};
|
|
11
11
|
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA0H9D,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAiBD,eAAO,MAAM,cAAc,GACzB,OAAO,WAAW,EAClB,SAAS,WAAW,KACnB,YAAY,EAcd,CAAC;AAiIF,eAAO,MAAM,cAAc,GACzB,OAAO;IACL,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,SAAS,WAAW,KACnB,YAiBF,CAAC"}
|
package/dist/core/search.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { executeAll, loadTagsForMemoryIds, mapRowToRelationship, mapRowToSearchResult, prepareCached, toSafeInteger, } from './db.js';
|
|
2
2
|
const MAX_QUERY_TOKENS = 50;
|
|
3
3
|
const DEFAULT_LIMIT = 100;
|
|
4
4
|
const RECENCY_DECAY_DAYS = 7;
|
|
@@ -15,11 +15,13 @@ const tokenizeQuery = (query) => {
|
|
|
15
15
|
}
|
|
16
16
|
return parts;
|
|
17
17
|
};
|
|
18
|
+
const escapeFtsToken = (token) => {
|
|
19
|
+
return `"${token.replace(/"/g, '""')}"`;
|
|
20
|
+
};
|
|
18
21
|
const buildFtsQuery = (tokens) => {
|
|
19
22
|
if (tokens.length === 0)
|
|
20
23
|
return '""';
|
|
21
|
-
|
|
22
|
-
return escaped.join(' OR ');
|
|
24
|
+
return tokens.map(escapeFtsToken).join(' OR ');
|
|
23
25
|
};
|
|
24
26
|
const buildTagPlaceholders = (count) => {
|
|
25
27
|
return Array.from({ length: count }, () => '?').join(', ');
|
|
@@ -87,7 +89,10 @@ const executeSearch = (sql, params) => {
|
|
|
87
89
|
throw toSearchError(err) ?? err;
|
|
88
90
|
}
|
|
89
91
|
};
|
|
90
|
-
const
|
|
92
|
+
const enrichSearchResultsWithTags = (rows, signal) => {
|
|
93
|
+
if (signal && typeof signal.throwIfAborted === 'function') {
|
|
94
|
+
signal.throwIfAborted();
|
|
95
|
+
}
|
|
91
96
|
const ids = rows.map((row) => toSafeInteger(row.id, 'id'));
|
|
92
97
|
const tagsById = loadTagsForMemoryIds(ids);
|
|
93
98
|
return rows.map((row) => {
|
|
@@ -95,14 +100,20 @@ const mapRowsToSearchResultsWithTags = (rows) => {
|
|
|
95
100
|
return mapRowToSearchResult(row, tagsById.get(id) ?? []);
|
|
96
101
|
});
|
|
97
102
|
};
|
|
98
|
-
export const searchMemories = (input) => {
|
|
103
|
+
export const searchMemories = (input, signal) => {
|
|
104
|
+
if (signal && typeof signal.throwIfAborted === 'function') {
|
|
105
|
+
signal.throwIfAborted();
|
|
106
|
+
}
|
|
99
107
|
const tokens = tokenizeQuery(input.query);
|
|
100
108
|
if (tokens.length === 0) {
|
|
101
109
|
throw new Error('Query cannot be empty');
|
|
102
110
|
}
|
|
103
111
|
const { sql, params } = buildSearchQuery(tokens);
|
|
104
112
|
const rows = executeSearch(sql, params);
|
|
105
|
-
|
|
113
|
+
if (signal && typeof signal.throwIfAborted === 'function') {
|
|
114
|
+
signal.throwIfAborted();
|
|
115
|
+
}
|
|
116
|
+
return enrichSearchResultsWithTags(rows, signal);
|
|
106
117
|
};
|
|
107
118
|
const MAX_RECALL_DEPTH = 3;
|
|
108
119
|
const MAX_RECALL_MEMORIES = 50;
|
|
@@ -154,7 +165,7 @@ const buildRelationshipsQuery = (memoryCount) => {
|
|
|
154
165
|
return { sql };
|
|
155
166
|
};
|
|
156
167
|
const executeWithSql = (sql, params) => {
|
|
157
|
-
const stmt =
|
|
168
|
+
const stmt = prepareCached(sql);
|
|
158
169
|
return executeAll(stmt, ...params);
|
|
159
170
|
};
|
|
160
171
|
const executeRecall = (seedIds, depth) => {
|
|
@@ -177,18 +188,30 @@ const recallAtDepthZero = (searchResults, depth) => {
|
|
|
177
188
|
return undefined;
|
|
178
189
|
return { memories: searchResults, relationships: [], depth };
|
|
179
190
|
};
|
|
180
|
-
const recallAtPositiveDepth = (searchResults, depth) => {
|
|
191
|
+
const recallAtPositiveDepth = (searchResults, depth, signal) => {
|
|
192
|
+
if (signal && typeof signal.throwIfAborted === 'function') {
|
|
193
|
+
signal.throwIfAborted();
|
|
194
|
+
}
|
|
181
195
|
const seedIds = searchResults.map((m) => m.id);
|
|
182
196
|
const recallRows = executeRecall(seedIds, depth);
|
|
183
|
-
|
|
197
|
+
if (signal && typeof signal.throwIfAborted === 'function') {
|
|
198
|
+
signal.throwIfAborted();
|
|
199
|
+
}
|
|
200
|
+
const memories = enrichSearchResultsWithTags(recallRows, signal);
|
|
184
201
|
if (memories.length === 0) {
|
|
185
202
|
return emptyRecallResult(depth);
|
|
186
203
|
}
|
|
204
|
+
if (signal && typeof signal.throwIfAborted === 'function') {
|
|
205
|
+
signal.throwIfAborted();
|
|
206
|
+
}
|
|
187
207
|
const relationships = loadRelationshipsForMemoryIds(memories.map((m) => m.id));
|
|
188
208
|
return { memories, relationships, depth };
|
|
189
209
|
};
|
|
190
|
-
export const recallMemories = (input) => {
|
|
191
|
-
|
|
210
|
+
export const recallMemories = (input, signal) => {
|
|
211
|
+
if (signal && typeof signal.throwIfAborted === 'function') {
|
|
212
|
+
signal.throwIfAborted();
|
|
213
|
+
}
|
|
214
|
+
const searchResults = searchMemories({ query: input.query }, signal);
|
|
192
215
|
if (searchResults.length === 0) {
|
|
193
216
|
return emptyRecallResult(getRecallDepth(input.depth));
|
|
194
217
|
}
|
|
@@ -197,6 +220,6 @@ export const recallMemories = (input) => {
|
|
|
197
220
|
if (depthZeroResult) {
|
|
198
221
|
return depthZeroResult;
|
|
199
222
|
}
|
|
200
|
-
return recallAtPositiveDepth(searchResults, depth);
|
|
223
|
+
return recallAtPositiveDepth(searchResults, depth, signal);
|
|
201
224
|
};
|
|
202
225
|
//# sourceMappingURL=search.js.map
|
package/dist/core/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/core/search.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,21 +3,15 @@ import { readFile } from 'node:fs/promises';
|
|
|
3
3
|
import process from 'node:process';
|
|
4
4
|
import { McpServer, ResourceTemplate, } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
5
|
import { SUPPORTED_PROTOCOL_VERSIONS } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
-
import
|
|
6
|
+
import pkg from '../package.json' with { type: 'json' };
|
|
7
|
+
import { closeDb, initDb } from './core/db.js';
|
|
7
8
|
import { attachProtocolLogger, logger } from './logger.js';
|
|
8
9
|
import { ProtocolVersionGuardTransport } from './protocol-version-guard.js';
|
|
9
10
|
import { BatchRejectingStdioServerTransport } from './stdio-transport.js';
|
|
10
11
|
import { registerAllTools } from './tools.js';
|
|
11
|
-
const readPackageVersion =
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
signal: AbortSignal.timeout(5000),
|
|
15
|
-
});
|
|
16
|
-
const parsed = JSON.parse(packageJsonText);
|
|
17
|
-
if (typeof parsed !== 'object' || parsed === null)
|
|
18
|
-
return undefined;
|
|
19
|
-
const { version } = parsed;
|
|
20
|
-
return typeof version === 'string' ? version : undefined;
|
|
12
|
+
const readPackageVersion = () => {
|
|
13
|
+
const { version } = pkg;
|
|
14
|
+
return Promise.resolve(typeof version === 'string' ? version : undefined);
|
|
21
15
|
};
|
|
22
16
|
const toNonEmptyTrimmedOrUndefined = (text) => {
|
|
23
17
|
const trimmed = text.trim();
|
|
@@ -137,6 +131,7 @@ const connectServer = async (transportToUse) => {
|
|
|
137
131
|
};
|
|
138
132
|
const main = async () => {
|
|
139
133
|
try {
|
|
134
|
+
await initDb();
|
|
140
135
|
const guardedTransport = createTransport();
|
|
141
136
|
await connectServer(guardedTransport);
|
|
142
137
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EACL,SAAS,EACT,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/instructions.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# memdb Instructions
|
|
2
2
|
|
|
3
|
-
> **Guidance for the Agent:** These instructions are available as a resource (`internal://instructions`). Load them when you are
|
|
3
|
+
> **Guidance for the Agent:** These instructions are available as a resource (`internal://instructions`) or prompt (`get-help`). Load them when you are unsure about tool usage.
|
|
4
4
|
|
|
5
5
|
## 1. Core Capability
|
|
6
6
|
|
|
@@ -9,34 +9,43 @@
|
|
|
9
9
|
|
|
10
10
|
## 2. The "Golden Path" Workflows (Critical)
|
|
11
11
|
|
|
12
|
-
_Describe the standard order of operations
|
|
12
|
+
_Describe the standard order of operations using ONLY tools that exist._
|
|
13
13
|
|
|
14
14
|
### Workflow A: Find relevant context
|
|
15
15
|
|
|
16
16
|
1. Call `search_memories` with a focused query.
|
|
17
|
-
2. Call `recall`
|
|
18
|
-
3. Call `get_memory` using the `hash` from results.
|
|
17
|
+
2. Call `recall` for connected graph exploration (depth 1–2).
|
|
18
|
+
3. Call `get_memory` using the `hash` (MD5/SHA-256) from results.
|
|
19
19
|
> **Constraint:** Never guess hashes. Always search or recall first.
|
|
20
20
|
|
|
21
21
|
### Workflow B: Store or revise knowledge
|
|
22
22
|
|
|
23
23
|
1. Call `store_memory` (single) or `store_memories` (batch).
|
|
24
|
-
2.
|
|
25
|
-
3. Call `create_relationship` to link memories
|
|
26
|
-
4. Call `delete_memory` / `delete_memories` / `delete_relationship` only with explicit user
|
|
24
|
+
2. Call `update_memory` to revise; returns `{ newHash }` (content changes change hash).
|
|
25
|
+
3. Call `create_relationship` to link memories.
|
|
26
|
+
4. Call `delete_memory` / `delete_memories` / `delete_relationship` only with explicit user permission.
|
|
27
27
|
|
|
28
|
-
## 3. Tool Nuances &
|
|
28
|
+
## 3. Tool Nuances & Gotchas
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
- **`
|
|
33
|
-
-
|
|
34
|
-
- **
|
|
35
|
-
|
|
30
|
+
_Focus on behavior and pitfalls._
|
|
31
|
+
|
|
32
|
+
- **`search_memories`** / **`recall`**
|
|
33
|
+
- **Inputs:** Query 1–1000 chars; `recall` depth 0–3 (default 1).
|
|
34
|
+
- **Returns:** List of memories (scored).
|
|
35
|
+
|
|
36
|
+
- **`store_memory`** / **`update_memory`**
|
|
37
|
+
- **Inputs:** `content` (max 100k chars), `tags` (1–100, no whitespace, max 50 chars).
|
|
38
|
+
- **Side effects:** Writes to SQLiteFTS; `update` creates new hash if content changes.
|
|
39
|
+
|
|
40
|
+
- **`create_relationship`**
|
|
41
|
+
- **Inputs:** `from_hash`, `to_hash`, `relation_type` (no whitespace).
|
|
42
|
+
- **Constraint:** Relationships are directed edges.
|
|
43
|
+
|
|
44
|
+
- **`delete_*`**
|
|
45
|
+
- **Side effects:** Destructive; returns `changes: 0` if not found.
|
|
36
46
|
|
|
37
47
|
## 4. Error Handling Strategy
|
|
38
48
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
- If `E_TIMEOUT`, reduce batch size or split the request.
|
|
49
|
+
- **`E_NOT_FOUND`**: Re-run search/recall to get valid hash.
|
|
50
|
+
- **`E_INVALID_ARG`**: Check tags (no spaces), limits (batch max 50), or hash format.
|
|
51
|
+
- **`E_TIMEOUT`**: Reduce batch size or complexity.
|
package/dist/schemas.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { MEMORY_TYPES } from './types.js';
|
|
3
|
-
const hashSchema = z.string().regex(/^[a-f0-9]{32}$/i);
|
|
3
|
+
const hashSchema = z.string().regex(/^([a-f0-9]{32}|[a-f0-9]{64})$/i);
|
|
4
4
|
const tagSchema = z
|
|
5
5
|
.string()
|
|
6
6
|
.min(1)
|
|
@@ -51,18 +51,18 @@ export const SearchMemoriesInputSchema = z.strictObject({
|
|
|
51
51
|
}),
|
|
52
52
|
});
|
|
53
53
|
export const GetMemoryInputSchema = z.strictObject({
|
|
54
|
-
hash: hashSchema.meta({ description: '
|
|
54
|
+
hash: hashSchema.meta({ description: 'Hash of the memory (MD5/SHA-256)' }),
|
|
55
55
|
});
|
|
56
56
|
export const DeleteMemoryInputSchema = z.strictObject({
|
|
57
|
-
hash: hashSchema.meta({ description: '
|
|
57
|
+
hash: hashSchema.meta({ description: 'Hash of the memory (MD5/SHA-256)' }),
|
|
58
58
|
});
|
|
59
59
|
export const DeleteMemoriesInputSchema = z.strictObject({
|
|
60
60
|
hashes: z.array(hashSchema).min(1).max(50).meta({
|
|
61
|
-
description: '
|
|
61
|
+
description: 'Hashes of memories to delete (1-50 hashes)',
|
|
62
62
|
}),
|
|
63
63
|
});
|
|
64
64
|
export const UpdateMemoryInputSchema = z.strictObject({
|
|
65
|
-
hash: hashSchema.meta({ description: '
|
|
65
|
+
hash: hashSchema.meta({ description: 'Hash of the memory to update' }),
|
|
66
66
|
content: contentSchema.meta({ description: 'New content for the memory' }),
|
|
67
67
|
tags: tagsSchema
|
|
68
68
|
.max(100)
|
package/dist/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,CAAC,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiBlE,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAItC,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACxD,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAC/B,KAAK,CAAC;AAIV,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAC9C,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAClD,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;IACxC,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAC9C,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAClD,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAClD,QAAQ,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;IACtC,kBAAkB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAC1D,gBAAgB,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IACtD,kBAAkB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAC1D,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;CACnD;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWzE,OAAO,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiBlE,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAItC,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACxD,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAC/B,KAAK,CAAC;AAIV,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAC9C,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAClD,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAC9C,SAAS,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;IACxC,YAAY,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IAC9C,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAClD,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAClD,QAAQ,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;IACtC,kBAAkB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAC1D,gBAAgB,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IACtD,kBAAkB,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAC1D,cAAc,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;CACnD;AAoaD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,IAAI,GAAE,gBAA8B,GACnC,IAAI,CAKN"}
|
package/dist/tools.js
CHANGED
|
@@ -39,12 +39,15 @@ const createErrorResponse = (code, message, result) => {
|
|
|
39
39
|
isError: true,
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
|
-
const withTimeout = async (promise, ms, onTimeout) => {
|
|
42
|
+
const withTimeout = async (promise, ms, onTimeout, signal) => {
|
|
43
43
|
if (ms <= 0)
|
|
44
44
|
return await promise;
|
|
45
45
|
let timeout;
|
|
46
46
|
const timeoutPromise = new Promise((resolve) => {
|
|
47
47
|
timeout = setTimeout(() => {
|
|
48
|
+
if (signal && typeof signal.dispatchEvent === 'function') {
|
|
49
|
+
signal.dispatchEvent(new Event('abort'));
|
|
50
|
+
}
|
|
48
51
|
resolve(onTimeout());
|
|
49
52
|
}, ms);
|
|
50
53
|
});
|
|
@@ -57,7 +60,7 @@ const withTimeout = async (promise, ms, onTimeout) => {
|
|
|
57
60
|
}
|
|
58
61
|
};
|
|
59
62
|
const createTimeoutResponse = () => createErrorResponse('E_TIMEOUT', `Tool execution timed out after ${TOOL_TIMEOUT_MS}ms`, { timeoutMs: TOOL_TIMEOUT_MS });
|
|
60
|
-
const
|
|
63
|
+
const createSuccessResponse = (result) => {
|
|
61
64
|
const structured = { ok: true, result };
|
|
62
65
|
return {
|
|
63
66
|
content: [{ type: 'text', text: JSON.stringify(structured) }],
|
|
@@ -66,8 +69,9 @@ const ok = (result) => {
|
|
|
66
69
|
};
|
|
67
70
|
const runHandlerSafely = async (code, handler, params) => {
|
|
68
71
|
try {
|
|
69
|
-
const
|
|
70
|
-
|
|
72
|
+
const controller = new AbortController();
|
|
73
|
+
const resultPromise = Promise.resolve().then(() => handler(params, controller.signal));
|
|
74
|
+
return await withTimeout(resultPromise, TOOL_TIMEOUT_MS, createTimeoutResponse, controller.signal);
|
|
71
75
|
}
|
|
72
76
|
catch (err) {
|
|
73
77
|
return createErrorResponse(code, getErrorMessage(err));
|
|
@@ -102,7 +106,7 @@ const buildStoreMemoryTool = (deps) => ({
|
|
|
102
106
|
importance: input.importance,
|
|
103
107
|
memory_type: input.memory_type,
|
|
104
108
|
}));
|
|
105
|
-
return
|
|
109
|
+
return createSuccessResponse(result);
|
|
106
110
|
}),
|
|
107
111
|
});
|
|
108
112
|
const buildStoreMemoriesTool = (deps) => ({
|
|
@@ -123,7 +127,7 @@ const buildStoreMemoriesTool = (deps) => ({
|
|
|
123
127
|
memory_type: item.memory_type,
|
|
124
128
|
}));
|
|
125
129
|
const result = await deps.createMemories(items);
|
|
126
|
-
return
|
|
130
|
+
return createSuccessResponse(result);
|
|
127
131
|
}),
|
|
128
132
|
});
|
|
129
133
|
const buildGetMemoryTool = (deps) => ({
|
|
@@ -140,7 +144,7 @@ const buildGetMemoryTool = (deps) => ({
|
|
|
140
144
|
if (!result) {
|
|
141
145
|
return createErrorResponse('E_NOT_FOUND', 'Memory not found');
|
|
142
146
|
}
|
|
143
|
-
return
|
|
147
|
+
return createSuccessResponse(result);
|
|
144
148
|
}),
|
|
145
149
|
});
|
|
146
150
|
const buildDeleteMemoryTool = (deps) => ({
|
|
@@ -158,7 +162,7 @@ const buildDeleteMemoryTool = (deps) => ({
|
|
|
158
162
|
if (result.changes === 0) {
|
|
159
163
|
return createErrorResponse('E_NOT_FOUND', 'Memory not found');
|
|
160
164
|
}
|
|
161
|
-
return
|
|
165
|
+
return createSuccessResponse({ deleted: true });
|
|
162
166
|
}),
|
|
163
167
|
});
|
|
164
168
|
const buildDeleteMemoriesTool = (deps) => ({
|
|
@@ -173,7 +177,7 @@ const buildDeleteMemoriesTool = (deps) => ({
|
|
|
173
177
|
handler: wrapHandler('E_DELETE_MEMORIES', async (params) => {
|
|
174
178
|
const input = DeleteMemoriesInputSchema.parse(params);
|
|
175
179
|
const result = await deps.deleteMemories(input.hashes.map(normalizeHash));
|
|
176
|
-
return
|
|
180
|
+
return createSuccessResponse(result);
|
|
177
181
|
}),
|
|
178
182
|
});
|
|
179
183
|
const buildUpdateMemoryTool = (deps) => ({
|
|
@@ -191,7 +195,7 @@ const buildUpdateMemoryTool = (deps) => ({
|
|
|
191
195
|
content: input.content,
|
|
192
196
|
tags: input.tags,
|
|
193
197
|
});
|
|
194
|
-
return
|
|
198
|
+
return createSuccessResponse(result);
|
|
195
199
|
}),
|
|
196
200
|
});
|
|
197
201
|
const buildCoreTools = (deps) => [
|
|
@@ -212,10 +216,10 @@ const buildSearchTools = (deps) => [
|
|
|
212
216
|
outputSchema: DefaultOutputSchema,
|
|
213
217
|
annotations: { readOnlyHint: true },
|
|
214
218
|
},
|
|
215
|
-
handler: wrapHandler('E_SEARCH_MEMORIES', async (params) => {
|
|
219
|
+
handler: wrapHandler('E_SEARCH_MEMORIES', async (params, signal) => {
|
|
216
220
|
const input = SearchMemoriesInputSchema.parse(params);
|
|
217
|
-
const result = await deps.searchMemories({ query: input.query });
|
|
218
|
-
return
|
|
221
|
+
const result = await deps.searchMemories({ query: input.query }, signal);
|
|
222
|
+
return createSuccessResponse(result);
|
|
219
223
|
}),
|
|
220
224
|
},
|
|
221
225
|
{
|
|
@@ -228,13 +232,13 @@ const buildSearchTools = (deps) => [
|
|
|
228
232
|
outputSchema: DefaultOutputSchema,
|
|
229
233
|
annotations: { readOnlyHint: true },
|
|
230
234
|
},
|
|
231
|
-
handler: wrapHandler('E_RECALL', async (params) => {
|
|
235
|
+
handler: wrapHandler('E_RECALL', async (params, signal) => {
|
|
232
236
|
const input = RecallInputSchema.parse(params);
|
|
233
237
|
const result = await deps.recallMemories({
|
|
234
238
|
query: input.query,
|
|
235
239
|
...(input.depth !== undefined && { depth: input.depth }),
|
|
236
|
-
});
|
|
237
|
-
return
|
|
240
|
+
}, signal);
|
|
241
|
+
return createSuccessResponse(result);
|
|
238
242
|
}),
|
|
239
243
|
},
|
|
240
244
|
];
|
|
@@ -255,7 +259,7 @@ const buildRelationshipTools = (deps) => [
|
|
|
255
259
|
to_hash: normalizeHash(input.to_hash),
|
|
256
260
|
relation_type: input.relation_type,
|
|
257
261
|
});
|
|
258
|
-
return
|
|
262
|
+
return createSuccessResponse(result);
|
|
259
263
|
}),
|
|
260
264
|
},
|
|
261
265
|
{
|
|
@@ -273,7 +277,7 @@ const buildRelationshipTools = (deps) => [
|
|
|
273
277
|
hash: normalizeHash(input.hash),
|
|
274
278
|
...(input.direction !== undefined && { direction: input.direction }),
|
|
275
279
|
});
|
|
276
|
-
return
|
|
280
|
+
return createSuccessResponse(result);
|
|
277
281
|
}),
|
|
278
282
|
},
|
|
279
283
|
{
|
|
@@ -295,7 +299,7 @@ const buildRelationshipTools = (deps) => [
|
|
|
295
299
|
if (result.changes === 0) {
|
|
296
300
|
return createErrorResponse('E_NOT_FOUND', 'Relationship not found');
|
|
297
301
|
}
|
|
298
|
-
return
|
|
302
|
+
return createSuccessResponse({ deleted: true });
|
|
299
303
|
}),
|
|
300
304
|
},
|
|
301
305
|
];
|
|
@@ -312,7 +316,7 @@ const buildStatsTools = (deps) => [
|
|
|
312
316
|
handler: wrapHandler('E_MEMORY_STATS', async (params) => {
|
|
313
317
|
MemoryStatsInputSchema.parse(params);
|
|
314
318
|
const result = await deps.getStats();
|
|
315
|
-
return
|
|
319
|
+
return createSuccessResponse(result);
|
|
316
320
|
}),
|
|
317
321
|
},
|
|
318
322
|
];
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@j0hanz/memdb",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.9",
|
|
4
4
|
"mcpName": "io.github.j0hanz/memdb",
|
|
5
5
|
"description": "A SQLite-backed MCP memory server with local workspace storage.",
|
|
6
6
|
"type": "module",
|
|
@@ -25,8 +25,9 @@
|
|
|
25
25
|
"prepare": "npm run build",
|
|
26
26
|
"dev": "tsx watch src/index.ts",
|
|
27
27
|
"start": "node dist/index.js",
|
|
28
|
-
"test": "node --import tsx/esm --test tests/*.test.ts",
|
|
28
|
+
"test": "node --import tsx/esm --test --test-concurrency=1 tests/*.test.ts",
|
|
29
29
|
"test:coverage": "node --import tsx/esm --test --experimental-test-coverage tests/*.test.ts",
|
|
30
|
+
"test:native": "node --experimental-strip-types tests/native-compat.test.ts",
|
|
30
31
|
"duplication": "npx --yes jscpd -k 50 -f typescript -r json -o .jscpd src",
|
|
31
32
|
"lint": "eslint .",
|
|
32
33
|
"format": "prettier --write .",
|
|
@@ -51,24 +52,24 @@
|
|
|
51
52
|
"homepage": "https://github.com/j0hanz/memdb-mcp-server#readme",
|
|
52
53
|
"license": "MIT",
|
|
53
54
|
"dependencies": {
|
|
54
|
-
"@modelcontextprotocol/sdk": "^1.25.
|
|
55
|
-
"zod": "^4.3.
|
|
55
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
56
|
+
"zod": "^4.3.6"
|
|
56
57
|
},
|
|
57
58
|
"devDependencies": {
|
|
58
59
|
"@eslint/js": "^9.39.2",
|
|
59
60
|
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
|
60
|
-
"@types/node": "^25.0
|
|
61
|
+
"@types/node": "^25.1.0",
|
|
61
62
|
"eslint": "^9.39.2",
|
|
62
63
|
"eslint-config-prettier": "^10.1.8",
|
|
63
64
|
"eslint-plugin-de-morgan": "^2.0.0",
|
|
64
65
|
"eslint-plugin-depend": "^1.4.0",
|
|
65
|
-
"eslint-plugin-sonarjs": "^3.0.
|
|
66
|
+
"eslint-plugin-sonarjs": "^3.0.6",
|
|
66
67
|
"eslint-plugin-unused-imports": "^4.3.0",
|
|
67
|
-
"knip": "^5.
|
|
68
|
-
"prettier": "^3.8.
|
|
68
|
+
"knip": "^5.82.1",
|
|
69
|
+
"prettier": "^3.8.1",
|
|
69
70
|
"tsx": "^4.21.0",
|
|
70
71
|
"typescript": "^5.9.3",
|
|
71
|
-
"typescript-eslint": "^8.
|
|
72
|
+
"typescript-eslint": "^8.54.0"
|
|
72
73
|
},
|
|
73
74
|
"engines": {
|
|
74
75
|
"node": ">=22.0.0"
|