fivocell 5.4.0 → 6.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/dist/__tests__/performance.test.d.ts +2 -0
- package/dist/__tests__/performance.test.d.ts.map +1 -0
- package/dist/__tests__/performance.test.js +78 -0
- package/dist/__tests__/performance.test.js.map +1 -0
- package/dist/__tests__/polish.test.d.ts +2 -0
- package/dist/__tests__/polish.test.d.ts.map +1 -0
- package/dist/__tests__/polish.test.js +95 -0
- package/dist/__tests__/polish.test.js.map +1 -0
- package/dist/walls/06-memory/database/batch-write.d.ts +15 -0
- package/dist/walls/06-memory/database/batch-write.d.ts.map +1 -0
- package/dist/walls/06-memory/database/batch-write.js +56 -0
- package/dist/walls/06-memory/database/batch-write.js.map +1 -0
- package/dist/walls/06-memory/database/database.d.ts.map +1 -1
- package/dist/walls/06-memory/database/database.js +13 -0
- package/dist/walls/06-memory/database/database.js.map +1 -1
- package/dist/walls/06-memory/database/migrations.d.ts +19 -0
- package/dist/walls/06-memory/database/migrations.d.ts.map +1 -0
- package/dist/walls/06-memory/database/migrations.js +78 -0
- package/dist/walls/06-memory/database/migrations.js.map +1 -0
- package/dist/walls/06-memory/database/query-cache.d.ts +13 -0
- package/dist/walls/06-memory/database/query-cache.d.ts.map +1 -0
- package/dist/walls/06-memory/database/query-cache.js +80 -0
- package/dist/walls/06-memory/database/query-cache.js.map +1 -0
- package/dist/walls/06-memory/database/validation.d.ts +12 -0
- package/dist/walls/06-memory/database/validation.d.ts.map +1 -0
- package/dist/walls/06-memory/database/validation.js +73 -0
- package/dist/walls/06-memory/database/validation.js.map +1 -0
- package/dist/walls/07-runtime/cli/cli.js +60 -0
- package/dist/walls/07-runtime/cli/cli.js.map +1 -1
- package/dist/walls/07-runtime/daemon/restart.d.ts +13 -0
- package/dist/walls/07-runtime/daemon/restart.d.ts.map +1 -0
- package/dist/walls/07-runtime/daemon/restart.js +47 -0
- package/dist/walls/07-runtime/daemon/restart.js.map +1 -0
- package/dist/walls/07-runtime/daemon/server.d.ts.map +1 -1
- package/dist/walls/07-runtime/daemon/server.js +27 -6
- package/dist/walls/07-runtime/daemon/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/performance.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const database_1 = require("../walls/06-memory/database/database");
|
|
4
|
+
describe('Query Cache', () => {
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
const { cacheClear } = require('../walls/06-memory/database/query-cache');
|
|
7
|
+
cacheClear();
|
|
8
|
+
});
|
|
9
|
+
test('cacheSet and cacheGet work', () => {
|
|
10
|
+
const { cacheSet, cacheGet } = require('../walls/06-memory/database/query-cache');
|
|
11
|
+
cacheSet('test-key', { hello: 'world' });
|
|
12
|
+
const result = cacheGet('test-key');
|
|
13
|
+
expect(result).toEqual({ hello: 'world' });
|
|
14
|
+
});
|
|
15
|
+
test('cacheGet returns undefined for missing keys', () => {
|
|
16
|
+
const { cacheGet } = require('../walls/06-memory/database/query-cache');
|
|
17
|
+
expect(cacheGet('nonexistent')).toBeUndefined();
|
|
18
|
+
});
|
|
19
|
+
test('cacheClear removes all entries', () => {
|
|
20
|
+
const { cacheSet, cacheGet, cacheClear } = require('../walls/06-memory/database/query-cache');
|
|
21
|
+
cacheSet('a', 1);
|
|
22
|
+
cacheSet('b', 2);
|
|
23
|
+
cacheClear();
|
|
24
|
+
expect(cacheGet('a')).toBeUndefined();
|
|
25
|
+
expect(cacheGet('b')).toBeUndefined();
|
|
26
|
+
});
|
|
27
|
+
test('cacheClear with pattern removes matching entries', () => {
|
|
28
|
+
const { cacheSet, cacheGet, cacheClear } = require('../walls/06-memory/database/query-cache');
|
|
29
|
+
cacheSet('events:list', [1, 2]);
|
|
30
|
+
cacheSet('events:count', 42);
|
|
31
|
+
cacheSet('other', 'x');
|
|
32
|
+
cacheClear('events');
|
|
33
|
+
expect(cacheGet('events:list')).toBeUndefined();
|
|
34
|
+
expect(cacheGet('events:count')).toBeUndefined();
|
|
35
|
+
expect(cacheGet('other')).toBe('x');
|
|
36
|
+
});
|
|
37
|
+
test('cachedQuery caches results', () => {
|
|
38
|
+
const { cachedQuery, getCacheStats } = require('../walls/06-memory/database/query-cache');
|
|
39
|
+
const db = (0, database_1.getDb)();
|
|
40
|
+
db.prepare('DELETE FROM memory_events WHERE project = ?').run('test-cache');
|
|
41
|
+
db.prepare("INSERT INTO memory_events (project, type, summary) VALUES ('test-cache', 'test', 'cache test')").run();
|
|
42
|
+
const result1 = cachedQuery('test-query', 'SELECT project FROM memory_events WHERE project = ?', ['test-cache'], 10000);
|
|
43
|
+
expect(result1.length).toBeGreaterThanOrEqual(1);
|
|
44
|
+
const result2 = cachedQuery('test-query', 'SELECT project FROM memory_events WHERE project = ?', ['test-cache'], 10000);
|
|
45
|
+
expect(result2).toEqual(result1);
|
|
46
|
+
});
|
|
47
|
+
test('invalidateOnWrite clears matching cache patterns', () => {
|
|
48
|
+
const { cacheSet, cacheGet, invalidateOnWrite } = require('../walls/06-memory/database/query-cache');
|
|
49
|
+
cacheSet('project:foo:events', 'data1');
|
|
50
|
+
cacheSet('project:bar:events', 'data2');
|
|
51
|
+
invalidateOnWrite(['foo']);
|
|
52
|
+
expect(cacheGet('project:foo:events')).toBeUndefined();
|
|
53
|
+
expect(cacheGet('project:bar:events')).toBe('data2');
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe('Batch Write', () => {
|
|
57
|
+
test('batchWrite executes operations', () => {
|
|
58
|
+
const { batchWrite } = require('../walls/06-memory/database/batch-write');
|
|
59
|
+
const db = (0, database_1.getDb)();
|
|
60
|
+
db.prepare("INSERT INTO memory_events (project, type, summary) VALUES ('test-batch', 'test', 'batch pre')").run();
|
|
61
|
+
const result = batchWrite([
|
|
62
|
+
{ sql: "INSERT INTO memory_events (project, type, summary) VALUES ('test-batch', 'test', 'batch a')", params: [] },
|
|
63
|
+
{ sql: "INSERT INTO memory_events (project, type, summary) VALUES ('test-batch', 'test', 'batch b')", params: [] },
|
|
64
|
+
]);
|
|
65
|
+
expect(result.total).toBe(2);
|
|
66
|
+
expect(result.errors).toBe(0);
|
|
67
|
+
});
|
|
68
|
+
test('batchInsert inserts rows', () => {
|
|
69
|
+
const { batchInsert } = require('../walls/06-memory/database/batch-write');
|
|
70
|
+
const result = batchInsert('memory_events', [
|
|
71
|
+
{ project: 'test-insert', type: 'test', summary: 'batch insert a' },
|
|
72
|
+
{ project: 'test-insert', type: 'test', summary: 'batch insert b' },
|
|
73
|
+
{ project: 'test-insert', type: 'test', summary: 'batch insert c' },
|
|
74
|
+
]);
|
|
75
|
+
expect(result.inserted).toBe(3);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=performance.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.test.js","sourceRoot":"","sources":["../../src/__tests__/performance.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polish.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/polish.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
describe('Migrations', () => {
|
|
4
|
+
test('getMigrationStatus returns current state', () => {
|
|
5
|
+
const { getMigrationStatus } = require('../walls/06-memory/database/migrations');
|
|
6
|
+
const status = getMigrationStatus();
|
|
7
|
+
expect(status).toHaveProperty('currentVersion');
|
|
8
|
+
expect(status).toHaveProperty('applied');
|
|
9
|
+
expect(status).toHaveProperty('pending');
|
|
10
|
+
expect(Array.isArray(status.applied)).toBe(true);
|
|
11
|
+
expect(typeof status.pending).toBe('number');
|
|
12
|
+
});
|
|
13
|
+
test('runMigrations does not throw', () => {
|
|
14
|
+
const { runMigrations } = require('../walls/06-memory/database/migrations');
|
|
15
|
+
const result = runMigrations();
|
|
16
|
+
expect(result).toHaveProperty('applied');
|
|
17
|
+
expect(result).toHaveProperty('errors');
|
|
18
|
+
expect(Array.isArray(result.errors)).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
describe('Validation', () => {
|
|
22
|
+
test('validateEventType rejects empty', () => {
|
|
23
|
+
const { validateEventType } = require('../walls/06-memory/database/validation');
|
|
24
|
+
expect(validateEventType('')).toBe('Event type is required');
|
|
25
|
+
expect(validateEventType(null)).toBe('Event type is required');
|
|
26
|
+
});
|
|
27
|
+
test('validateEventType rejects invalid types', () => {
|
|
28
|
+
const { validateEventType } = require('../walls/06-memory/database/validation');
|
|
29
|
+
expect(validateEventType('invalid_type')).toContain('Invalid event type');
|
|
30
|
+
});
|
|
31
|
+
test('validateEventType accepts valid types', () => {
|
|
32
|
+
const { validateEventType } = require('../walls/06-memory/database/validation');
|
|
33
|
+
expect(validateEventType('edit')).toBeNull();
|
|
34
|
+
expect(validateEventType('decision')).toBeNull();
|
|
35
|
+
expect(validateEventType('error')).toBeNull();
|
|
36
|
+
});
|
|
37
|
+
test('validateImportance rejects out of range', () => {
|
|
38
|
+
const { validateImportance } = require('../walls/06-memory/database/validation');
|
|
39
|
+
expect(validateImportance(0)).toBe('Importance must be between 1 and 10');
|
|
40
|
+
expect(validateImportance(11)).toBe('Importance must be between 1 and 10');
|
|
41
|
+
expect(validateImportance(3.5)).toBe('Importance must be an integer');
|
|
42
|
+
});
|
|
43
|
+
test('validateImportance accepts valid range', () => {
|
|
44
|
+
const { validateImportance } = require('../walls/06-memory/database/validation');
|
|
45
|
+
expect(validateImportance(5)).toBeNull();
|
|
46
|
+
expect(validateImportance(null)).toBeNull();
|
|
47
|
+
});
|
|
48
|
+
test('validateProjectName rejects empty', () => {
|
|
49
|
+
const { validateProjectName } = require('../walls/06-memory/database/validation');
|
|
50
|
+
expect(validateProjectName('')).toBe('Project name is required');
|
|
51
|
+
expect(validateProjectName(null)).toBe('Project name is required');
|
|
52
|
+
});
|
|
53
|
+
test('validateProjectName rejects long names', () => {
|
|
54
|
+
const { validateProjectName } = require('../walls/06-memory/database/validation');
|
|
55
|
+
expect(validateProjectName('x'.repeat(201))).toContain('200 characters');
|
|
56
|
+
});
|
|
57
|
+
test('validateMemoryEvent returns errors for invalid events', () => {
|
|
58
|
+
const { validateMemoryEvent } = require('../walls/06-memory/database/validation');
|
|
59
|
+
const errors = validateMemoryEvent({ type: '', project: '', summary: '' });
|
|
60
|
+
expect(errors.length).toBeGreaterThanOrEqual(2);
|
|
61
|
+
});
|
|
62
|
+
test('validateMemoryEvent returns no errors for valid events', () => {
|
|
63
|
+
const { validateMemoryEvent } = require('../walls/06-memory/database/validation');
|
|
64
|
+
const errors = validateMemoryEvent({ type: 'edit', project: 'myproject', summary: 'fixed a bug' });
|
|
65
|
+
expect(errors.length).toBe(0);
|
|
66
|
+
});
|
|
67
|
+
test('sanitizeString removes control characters', () => {
|
|
68
|
+
const { sanitizeString } = require('../walls/06-memory/database/validation');
|
|
69
|
+
expect(sanitizeString('hello\x00world')).toBe('helloworld');
|
|
70
|
+
expect(sanitizeString(' hello ')).toBe('hello');
|
|
71
|
+
expect(sanitizeString('x'.repeat(3000)).length).toBe(2000);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
describe('Auto Restart', () => {
|
|
75
|
+
test('getRestartStatus returns expected shape', () => {
|
|
76
|
+
const { getRestartStatus } = require('../walls/07-runtime/daemon/restart');
|
|
77
|
+
const status = getRestartStatus();
|
|
78
|
+
expect(status).toHaveProperty('recentRestarts');
|
|
79
|
+
expect(status).toHaveProperty('maxRestarts');
|
|
80
|
+
expect(status).toHaveProperty('canRestart');
|
|
81
|
+
expect(typeof status.canRestart).toBe('boolean');
|
|
82
|
+
});
|
|
83
|
+
test('resetRestartState resets counters', () => {
|
|
84
|
+
const { resetRestartState, getRestartStatus, recordRestart } = require('../walls/07-runtime/daemon/restart');
|
|
85
|
+
recordRestart();
|
|
86
|
+
resetRestartState();
|
|
87
|
+
const status = getRestartStatus();
|
|
88
|
+
expect(status.recentRestarts).toBe(0);
|
|
89
|
+
});
|
|
90
|
+
test('shouldAutoRestart returns boolean', () => {
|
|
91
|
+
const { shouldAutoRestart } = require('../walls/07-runtime/daemon/restart');
|
|
92
|
+
expect(typeof shouldAutoRestart()).toBe('boolean');
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=polish.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polish.test.js","sourceRoot":"","sources":["../../src/__tests__/polish.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface BatchOperation {
|
|
2
|
+
sql: string;
|
|
3
|
+
params: unknown[];
|
|
4
|
+
}
|
|
5
|
+
export declare function batchWrite(operations: BatchOperation[], invalidatePatterns?: string[]): {
|
|
6
|
+
total: number;
|
|
7
|
+
errors: number;
|
|
8
|
+
errorMessages: string[];
|
|
9
|
+
};
|
|
10
|
+
export declare function batchInsert(table: string, rows: Record<string, unknown>[], invalidatePatterns?: string[]): {
|
|
11
|
+
inserted: number;
|
|
12
|
+
errors: number;
|
|
13
|
+
errorMessages: string[];
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=batch-write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-write.d.ts","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/batch-write.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,kBAAkB,GAAE,MAAM,EAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAoBtJ;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC/B,kBAAkB,GAAE,MAAM,EAAO,GAChC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CA2B/D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.batchWrite = batchWrite;
|
|
4
|
+
exports.batchInsert = batchInsert;
|
|
5
|
+
const database_1 = require("../database/database");
|
|
6
|
+
const query_cache_1 = require("./query-cache");
|
|
7
|
+
function batchWrite(operations, invalidatePatterns = []) {
|
|
8
|
+
const db = (0, database_1.getDb)();
|
|
9
|
+
const result = { total: operations.length, errors: 0, errorMessages: [] };
|
|
10
|
+
if (operations.length === 0)
|
|
11
|
+
return result;
|
|
12
|
+
const tx = db.transaction(() => {
|
|
13
|
+
for (const op of operations) {
|
|
14
|
+
try {
|
|
15
|
+
db.prepare(op.sql).run(...op.params);
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
result.errors++;
|
|
19
|
+
result.errorMessages.push(err.message);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
tx();
|
|
24
|
+
if (invalidatePatterns.length > 0)
|
|
25
|
+
(0, query_cache_1.invalidateOnWrite)(invalidatePatterns);
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
function batchInsert(table, rows, invalidatePatterns = []) {
|
|
29
|
+
if (rows.length === 0)
|
|
30
|
+
return { inserted: 0, errors: 0, errorMessages: [] };
|
|
31
|
+
const columns = Object.keys(rows[0]);
|
|
32
|
+
const placeholders = columns.map(() => '?').join(', ');
|
|
33
|
+
const sql = `INSERT OR IGNORE INTO ${table} (${columns.join(', ')}) VALUES (${placeholders})`;
|
|
34
|
+
const db = (0, database_1.getDb)();
|
|
35
|
+
const result = { inserted: 0, errors: 0, errorMessages: [] };
|
|
36
|
+
const tx = db.transaction(() => {
|
|
37
|
+
const stmt = db.prepare(sql);
|
|
38
|
+
for (const row of rows) {
|
|
39
|
+
try {
|
|
40
|
+
const params = columns.map(c => row[c] ?? null);
|
|
41
|
+
const info = stmt.run(...params);
|
|
42
|
+
if (info.changes > 0)
|
|
43
|
+
result.inserted++;
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
result.errors++;
|
|
47
|
+
result.errorMessages.push(err.message);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
tx();
|
|
52
|
+
if (invalidatePatterns.length > 0)
|
|
53
|
+
(0, query_cache_1.invalidateOnWrite)(invalidatePatterns);
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=batch-write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-write.js","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/batch-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/database.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAWtC,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAkCzC;AAED,wBAAgB,OAAO,IAAI,IAAI,CAM9B;AAED,wBAAgB,kBAAkB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/database.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAWtC,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAkCzC;AAED,wBAAgB,OAAO,IAAI,IAAI,CAM9B;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAgtBzC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAUvC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiB1D;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAmPpD;AAaD,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1D"}
|
|
@@ -772,6 +772,12 @@ function initializeDatabase() {
|
|
|
772
772
|
CREATE INDEX IF NOT EXISTS idx_memory_events_importance ON memory_events(importance DESC);
|
|
773
773
|
CREATE INDEX IF NOT EXISTS idx_memory_events_time ON memory_events(created_at DESC);
|
|
774
774
|
|
|
775
|
+
-- Phase 11: Composite indexes for common query patterns
|
|
776
|
+
CREATE INDEX IF NOT EXISTS idx_memory_events_project_type_time ON memory_events(project, type, created_at DESC);
|
|
777
|
+
CREATE INDEX IF NOT EXISTS idx_memory_events_project_imp_time ON memory_events(project, importance DESC, created_at DESC);
|
|
778
|
+
CREATE INDEX IF NOT EXISTS idx_memory_events_project_summary_time ON memory_events(project, summary, created_at);
|
|
779
|
+
CREATE INDEX IF NOT EXISTS idx_memory_events_synced ON memory_events(synced);
|
|
780
|
+
|
|
775
781
|
CREATE INDEX IF NOT EXISTS idx_memory_archive_project ON memory_archive_refs(project);
|
|
776
782
|
CREATE INDEX IF NOT EXISTS idx_memory_archive_category ON memory_archive_refs(category);
|
|
777
783
|
|
|
@@ -817,6 +823,13 @@ function initializeDatabase() {
|
|
|
817
823
|
|
|
818
824
|
CREATE INDEX IF NOT EXISTS idx_sync_conflicts_project ON sync_conflicts(project);
|
|
819
825
|
CREATE INDEX IF NOT EXISTS idx_sync_conflicts_resolved ON sync_conflicts(resolved);
|
|
826
|
+
|
|
827
|
+
-- Phase 12: Migration tracking
|
|
828
|
+
CREATE TABLE IF NOT EXISTS _migrations (
|
|
829
|
+
version INTEGER PRIMARY KEY,
|
|
830
|
+
name TEXT NOT NULL,
|
|
831
|
+
applied_at TEXT DEFAULT (datetime('now'))
|
|
832
|
+
);
|
|
820
833
|
`);
|
|
821
834
|
// Migrate memory_events: add synced column if missing
|
|
822
835
|
const meCols = db.prepare("PRAGMA table_info(memory_events)").all();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/database.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface Migration {
|
|
2
|
+
version: number;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
up: string[];
|
|
6
|
+
down?: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare function getAppliedMigrations(): number[];
|
|
9
|
+
export declare function getPendingMigrations(): Migration[];
|
|
10
|
+
export declare function runMigrations(): {
|
|
11
|
+
applied: number;
|
|
12
|
+
errors: string[];
|
|
13
|
+
};
|
|
14
|
+
export declare function getMigrationStatus(): {
|
|
15
|
+
currentVersion: number;
|
|
16
|
+
applied: number[];
|
|
17
|
+
pending: number;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/migrations.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAwBD,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAQ/C;AAED,wBAAgB,oBAAoB,IAAI,SAAS,EAAE,CAGlD;AAED,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAuBrE;AAED,wBAAgB,kBAAkB,IAAI;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQnG"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAppliedMigrations = getAppliedMigrations;
|
|
4
|
+
exports.getPendingMigrations = getPendingMigrations;
|
|
5
|
+
exports.runMigrations = runMigrations;
|
|
6
|
+
exports.getMigrationStatus = getMigrationStatus;
|
|
7
|
+
const database_1 = require("./database");
|
|
8
|
+
const MIGRATIONS = [
|
|
9
|
+
{
|
|
10
|
+
version: 1,
|
|
11
|
+
name: 'sync-tables',
|
|
12
|
+
description: 'Add sync_state and sync_conflicts tables + synced column',
|
|
13
|
+
up: [
|
|
14
|
+
`ALTER TABLE memory_events ADD COLUMN synced INTEGER DEFAULT 0`,
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
version: 2,
|
|
19
|
+
name: 'performance-indexes',
|
|
20
|
+
description: 'Add composite indexes for query performance',
|
|
21
|
+
up: [
|
|
22
|
+
`CREATE INDEX IF NOT EXISTS idx_memory_events_project_type_time ON memory_events(project, type, created_at DESC)`,
|
|
23
|
+
`CREATE INDEX IF NOT EXISTS idx_memory_events_project_imp_time ON memory_events(project, importance DESC, created_at DESC)`,
|
|
24
|
+
`CREATE INDEX IF NOT EXISTS idx_memory_events_project_summary_time ON memory_events(project, summary, created_at)`,
|
|
25
|
+
`CREATE INDEX IF NOT EXISTS idx_memory_events_synced ON memory_events(synced)`,
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
function getAppliedMigrations() {
|
|
30
|
+
const db = (0, database_1.getDb)();
|
|
31
|
+
try {
|
|
32
|
+
const rows = db.prepare('SELECT version FROM _migrations ORDER BY version').all();
|
|
33
|
+
return rows.map(r => r.version);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function getPendingMigrations() {
|
|
40
|
+
const applied = new Set(getAppliedMigrations());
|
|
41
|
+
return MIGRATIONS.filter(m => !applied.has(m.version));
|
|
42
|
+
}
|
|
43
|
+
function runMigrations() {
|
|
44
|
+
const db = (0, database_1.getDb)();
|
|
45
|
+
const result = { applied: 0, errors: [] };
|
|
46
|
+
const pending = getPendingMigrations();
|
|
47
|
+
if (pending.length === 0)
|
|
48
|
+
return result;
|
|
49
|
+
for (const migration of pending) {
|
|
50
|
+
try {
|
|
51
|
+
const tx = db.transaction(() => {
|
|
52
|
+
for (const sql of migration.up) {
|
|
53
|
+
try {
|
|
54
|
+
db.exec(sql);
|
|
55
|
+
}
|
|
56
|
+
catch { /* column/index may already exist */ }
|
|
57
|
+
}
|
|
58
|
+
db.prepare('INSERT OR IGNORE INTO _migrations (version, name) VALUES (?, ?)').run(migration.version, migration.name);
|
|
59
|
+
});
|
|
60
|
+
tx();
|
|
61
|
+
result.applied++;
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
result.errors.push(`v${migration.version} ${migration.name}: ${err.message}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
function getMigrationStatus() {
|
|
70
|
+
const applied = getAppliedMigrations();
|
|
71
|
+
const pending = MIGRATIONS.filter(m => !applied.includes(m.version));
|
|
72
|
+
return {
|
|
73
|
+
currentVersion: applied.length > 0 ? Math.max(...applied) : 0,
|
|
74
|
+
applied,
|
|
75
|
+
pending: pending.length,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function cacheGet(key: string): unknown | undefined;
|
|
2
|
+
export declare function cacheSet(key: string, data: unknown, ttlMs?: number): void;
|
|
3
|
+
export declare function cacheClear(pattern?: string): void;
|
|
4
|
+
export declare function getCacheStats(): {
|
|
5
|
+
size: number;
|
|
6
|
+
hits: number;
|
|
7
|
+
misses: number;
|
|
8
|
+
hitRate: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function cachedQuery<T>(cacheKey: string, sql: string, params?: unknown[], ttlMs?: number): T;
|
|
11
|
+
export declare function cachedGet<T>(cacheKey: string, sql: string, params?: unknown[], ttlMs?: number): T | undefined;
|
|
12
|
+
export declare function invalidateOnWrite(patterns: string[]): void;
|
|
13
|
+
//# sourceMappingURL=query-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-cache.d.ts","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/query-cache.ts"],"names":[],"mappings":"AAcA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAazD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,GAAE,MAAuB,GAAG,IAAI,CAMzF;AAED,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAQjD;AAED,wBAAgB,aAAa,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAQ/F;AAED,wBAAgB,WAAW,CAAC,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,EACtB,KAAK,GAAE,MAAuB,GAC7B,CAAC,CAQH;AAED,wBAAgB,SAAS,CAAC,CAAC,EACzB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,OAAO,EAAO,EACtB,KAAK,GAAE,MAAuB,GAC7B,CAAC,GAAG,SAAS,CAQf;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAE1D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cacheGet = cacheGet;
|
|
4
|
+
exports.cacheSet = cacheSet;
|
|
5
|
+
exports.cacheClear = cacheClear;
|
|
6
|
+
exports.getCacheStats = getCacheStats;
|
|
7
|
+
exports.cachedQuery = cachedQuery;
|
|
8
|
+
exports.cachedGet = cachedGet;
|
|
9
|
+
exports.invalidateOnWrite = invalidateOnWrite;
|
|
10
|
+
const database_1 = require("../database/database");
|
|
11
|
+
const cache = new Map();
|
|
12
|
+
const MAX_CACHE_SIZE = 500;
|
|
13
|
+
const DEFAULT_TTL_MS = 5000;
|
|
14
|
+
let hits = 0;
|
|
15
|
+
let misses = 0;
|
|
16
|
+
function cacheGet(key) {
|
|
17
|
+
const entry = cache.get(key);
|
|
18
|
+
if (!entry) {
|
|
19
|
+
misses++;
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if (Date.now() > entry.expiresAt) {
|
|
23
|
+
cache.delete(key);
|
|
24
|
+
misses++;
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
hits++;
|
|
28
|
+
return entry.data;
|
|
29
|
+
}
|
|
30
|
+
function cacheSet(key, data, ttlMs = DEFAULT_TTL_MS) {
|
|
31
|
+
if (cache.size >= MAX_CACHE_SIZE) {
|
|
32
|
+
const oldest = cache.entries().next();
|
|
33
|
+
if (oldest.value)
|
|
34
|
+
cache.delete(oldest.value[0]);
|
|
35
|
+
}
|
|
36
|
+
cache.set(key, { data, expiresAt: Date.now() + ttlMs });
|
|
37
|
+
}
|
|
38
|
+
function cacheClear(pattern) {
|
|
39
|
+
if (!pattern) {
|
|
40
|
+
cache.clear();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
for (const key of cache.keys()) {
|
|
44
|
+
if (key.includes(pattern))
|
|
45
|
+
cache.delete(key);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function getCacheStats() {
|
|
49
|
+
const total = hits + misses;
|
|
50
|
+
return {
|
|
51
|
+
size: cache.size,
|
|
52
|
+
hits,
|
|
53
|
+
misses,
|
|
54
|
+
hitRate: total > 0 ? `${((hits / total) * 100).toFixed(1)}%` : '0%',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
function cachedQuery(cacheKey, sql, params = [], ttlMs = DEFAULT_TTL_MS) {
|
|
58
|
+
const cached = cacheGet(cacheKey);
|
|
59
|
+
if (cached !== undefined)
|
|
60
|
+
return cached;
|
|
61
|
+
const db = (0, database_1.getDb)();
|
|
62
|
+
const result = db.prepare(sql).all(...params);
|
|
63
|
+
cacheSet(cacheKey, result, ttlMs);
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
function cachedGet(cacheKey, sql, params = [], ttlMs = DEFAULT_TTL_MS) {
|
|
67
|
+
const cached = cacheGet(cacheKey);
|
|
68
|
+
if (cached !== undefined)
|
|
69
|
+
return cached;
|
|
70
|
+
const db = (0, database_1.getDb)();
|
|
71
|
+
const result = db.prepare(sql).get(...params);
|
|
72
|
+
if (result !== undefined)
|
|
73
|
+
cacheSet(cacheKey, result, ttlMs);
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
function invalidateOnWrite(patterns) {
|
|
77
|
+
for (const p of patterns)
|
|
78
|
+
cacheClear(p);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=query-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-cache.js","sourceRoot":"","sources":["../../../../src/walls/06-memory/database/query-cache.ts"],"names":[],"mappings":"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"}
|