simple-memory-mcp 1.1.3
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/LICENSE +21 -0
- package/README.md +742 -0
- package/dist/cli/arg-parser.d.ts +9 -0
- package/dist/cli/arg-parser.d.ts.map +1 -0
- package/dist/cli/arg-parser.js +68 -0
- package/dist/cli/arg-parser.js.map +1 -0
- package/dist/cli/help-generator.d.ts +8 -0
- package/dist/cli/help-generator.d.ts.map +1 -0
- package/dist/cli/help-generator.js +89 -0
- package/dist/cli/help-generator.js.map +1 -0
- package/dist/cli/index.d.ts +27 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +56 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/query-builder.d.ts +8 -0
- package/dist/cli/query-builder.d.ts.map +1 -0
- package/dist/cli/query-builder.js +63 -0
- package/dist/cli/query-builder.js.map +1 -0
- package/dist/cli/shortcuts-config.d.ts +26 -0
- package/dist/cli/shortcuts-config.d.ts.map +1 -0
- package/dist/cli/shortcuts-config.js +94 -0
- package/dist/cli/shortcuts-config.js.map +1 -0
- package/dist/graphql/resolvers.d.ts +101 -0
- package/dist/graphql/resolvers.d.ts.map +1 -0
- package/dist/graphql/resolvers.js +98 -0
- package/dist/graphql/resolvers.js.map +1 -0
- package/dist/graphql/schema.d.ts +13 -0
- package/dist/graphql/schema.d.ts.map +1 -0
- package/dist/graphql/schema.js +314 -0
- package/dist/graphql/schema.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +573 -0
- package/dist/index.js.map +1 -0
- package/dist/services/backup-service.d.ts +57 -0
- package/dist/services/backup-service.d.ts.map +1 -0
- package/dist/services/backup-service.js +191 -0
- package/dist/services/backup-service.js.map +1 -0
- package/dist/services/database-optimizer.d.ts +15 -0
- package/dist/services/database-optimizer.d.ts.map +1 -0
- package/dist/services/database-optimizer.js +45 -0
- package/dist/services/database-optimizer.js.map +1 -0
- package/dist/services/memory-service.d.ts +126 -0
- package/dist/services/memory-service.d.ts.map +1 -0
- package/dist/services/memory-service.js +862 -0
- package/dist/services/memory-service.js.map +1 -0
- package/dist/services/migrations.d.ts +17 -0
- package/dist/services/migrations.d.ts.map +1 -0
- package/dist/services/migrations.js +273 -0
- package/dist/services/migrations.js.map +1 -0
- package/dist/tests/backup-export-test.d.ts +2 -0
- package/dist/tests/backup-export-test.d.ts.map +1 -0
- package/dist/tests/backup-export-test.js +162 -0
- package/dist/tests/backup-export-test.js.map +1 -0
- package/dist/tests/backup-test.d.ts +14 -0
- package/dist/tests/backup-test.d.ts.map +1 -0
- package/dist/tests/backup-test.js +209 -0
- package/dist/tests/backup-test.js.map +1 -0
- package/dist/tests/export-import-test.d.ts +15 -0
- package/dist/tests/export-import-test.d.ts.map +1 -0
- package/dist/tests/export-import-test.js +227 -0
- package/dist/tests/export-import-test.js.map +1 -0
- package/dist/tests/graphql-comprehensive-test.d.ts +6 -0
- package/dist/tests/graphql-comprehensive-test.d.ts.map +1 -0
- package/dist/tests/graphql-comprehensive-test.js +342 -0
- package/dist/tests/graphql-comprehensive-test.js.map +1 -0
- package/dist/tests/graphql-performance-test.d.ts +6 -0
- package/dist/tests/graphql-performance-test.d.ts.map +1 -0
- package/dist/tests/graphql-performance-test.js +141 -0
- package/dist/tests/graphql-performance-test.js.map +1 -0
- package/dist/tests/graphql-test.d.ts +5 -0
- package/dist/tests/graphql-test.d.ts.map +1 -0
- package/dist/tests/graphql-test.js +47 -0
- package/dist/tests/graphql-test.js.map +1 -0
- package/dist/tests/memory-server-tests.d.ts +7 -0
- package/dist/tests/memory-server-tests.d.ts.map +1 -0
- package/dist/tests/memory-server-tests.js +466 -0
- package/dist/tests/memory-server-tests.js.map +1 -0
- package/dist/tests/migration-test.d.ts +2 -0
- package/dist/tests/migration-test.d.ts.map +1 -0
- package/dist/tests/migration-test.js +270 -0
- package/dist/tests/migration-test.js.map +1 -0
- package/dist/tests/performance-benchmark.d.ts +7 -0
- package/dist/tests/performance-benchmark.d.ts.map +1 -0
- package/dist/tests/performance-benchmark.js +234 -0
- package/dist/tests/performance-benchmark.js.map +1 -0
- package/dist/tests/performance-test.d.ts +3 -0
- package/dist/tests/performance-test.d.ts.map +1 -0
- package/dist/tests/performance-test.js +61 -0
- package/dist/tests/performance-test.js.map +1 -0
- package/dist/tests/time-range-test.d.ts +7 -0
- package/dist/tests/time-range-test.d.ts.map +1 -0
- package/dist/tests/time-range-test.js +169 -0
- package/dist/tests/time-range-test.js.map +1 -0
- package/dist/tools/delete-memory/cli-parser.d.ts +2 -0
- package/dist/tools/delete-memory/cli-parser.d.ts.map +1 -0
- package/dist/tools/delete-memory/cli-parser.js +13 -0
- package/dist/tools/delete-memory/cli-parser.js.map +1 -0
- package/dist/tools/delete-memory/executor.d.ts +13 -0
- package/dist/tools/delete-memory/executor.d.ts.map +1 -0
- package/dist/tools/delete-memory/executor.js +40 -0
- package/dist/tools/delete-memory/executor.js.map +1 -0
- package/dist/tools/delete-memory/index.d.ts +3 -0
- package/dist/tools/delete-memory/index.d.ts.map +1 -0
- package/dist/tools/delete-memory/index.js +24 -0
- package/dist/tools/delete-memory/index.js.map +1 -0
- package/dist/tools/export-memory/cli-parser.d.ts +2 -0
- package/dist/tools/export-memory/cli-parser.d.ts.map +1 -0
- package/dist/tools/export-memory/cli-parser.js +34 -0
- package/dist/tools/export-memory/cli-parser.js.map +1 -0
- package/dist/tools/export-memory/executor.d.ts +10 -0
- package/dist/tools/export-memory/executor.d.ts.map +1 -0
- package/dist/tools/export-memory/executor.js +41 -0
- package/dist/tools/export-memory/executor.js.map +1 -0
- package/dist/tools/export-memory/index.d.ts +4 -0
- package/dist/tools/export-memory/index.d.ts.map +1 -0
- package/dist/tools/export-memory/index.js +99 -0
- package/dist/tools/export-memory/index.js.map +1 -0
- package/dist/tools/import-memory/cli-parser.d.ts +2 -0
- package/dist/tools/import-memory/cli-parser.d.ts.map +1 -0
- package/dist/tools/import-memory/cli-parser.js +25 -0
- package/dist/tools/import-memory/cli-parser.js.map +1 -0
- package/dist/tools/import-memory/executor.d.ts +8 -0
- package/dist/tools/import-memory/executor.d.ts.map +1 -0
- package/dist/tools/import-memory/executor.js +31 -0
- package/dist/tools/import-memory/executor.js.map +1 -0
- package/dist/tools/import-memory/index.d.ts +4 -0
- package/dist/tools/import-memory/index.d.ts.map +1 -0
- package/dist/tools/import-memory/index.js +70 -0
- package/dist/tools/import-memory/index.js.map +1 -0
- package/dist/tools/index.d.ts +14 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +48 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/memory-graphql/cli-parser.d.ts +6 -0
- package/dist/tools/memory-graphql/cli-parser.d.ts.map +1 -0
- package/dist/tools/memory-graphql/cli-parser.js +24 -0
- package/dist/tools/memory-graphql/cli-parser.js.map +1 -0
- package/dist/tools/memory-graphql/executor.d.ts +18 -0
- package/dist/tools/memory-graphql/executor.d.ts.map +1 -0
- package/dist/tools/memory-graphql/executor.js +53 -0
- package/dist/tools/memory-graphql/executor.js.map +1 -0
- package/dist/tools/memory-graphql/index.d.ts +3 -0
- package/dist/tools/memory-graphql/index.d.ts.map +1 -0
- package/dist/tools/memory-graphql/index.js +73 -0
- package/dist/tools/memory-graphql/index.js.map +1 -0
- package/dist/tools/memory-stats/cli-parser.d.ts +2 -0
- package/dist/tools/memory-stats/cli-parser.d.ts.map +1 -0
- package/dist/tools/memory-stats/cli-parser.js +8 -0
- package/dist/tools/memory-stats/cli-parser.js.map +1 -0
- package/dist/tools/memory-stats/executor.d.ts +4 -0
- package/dist/tools/memory-stats/executor.d.ts.map +1 -0
- package/dist/tools/memory-stats/executor.js +4 -0
- package/dist/tools/memory-stats/executor.js.map +1 -0
- package/dist/tools/memory-stats/index.d.ts +3 -0
- package/dist/tools/memory-stats/index.d.ts.map +1 -0
- package/dist/tools/memory-stats/index.js +15 -0
- package/dist/tools/memory-stats/index.js.map +1 -0
- package/dist/tools/search-memory/cli-parser.d.ts +2 -0
- package/dist/tools/search-memory/cli-parser.d.ts.map +1 -0
- package/dist/tools/search-memory/cli-parser.js +56 -0
- package/dist/tools/search-memory/cli-parser.js.map +1 -0
- package/dist/tools/search-memory/executor.d.ts +36 -0
- package/dist/tools/search-memory/executor.d.ts.map +1 -0
- package/dist/tools/search-memory/executor.js +83 -0
- package/dist/tools/search-memory/executor.js.map +1 -0
- package/dist/tools/search-memory/index.d.ts +3 -0
- package/dist/tools/search-memory/index.d.ts.map +1 -0
- package/dist/tools/search-memory/index.js +89 -0
- package/dist/tools/search-memory/index.js.map +1 -0
- package/dist/tools/store-memory/cli-parser.d.ts +2 -0
- package/dist/tools/store-memory/cli-parser.d.ts.map +1 -0
- package/dist/tools/store-memory/cli-parser.js +21 -0
- package/dist/tools/store-memory/cli-parser.js.map +1 -0
- package/dist/tools/store-memory/executor.d.ts +16 -0
- package/dist/tools/store-memory/executor.d.ts.map +1 -0
- package/dist/tools/store-memory/executor.js +100 -0
- package/dist/tools/store-memory/executor.js.map +1 -0
- package/dist/tools/store-memory/index.d.ts +3 -0
- package/dist/tools/store-memory/index.d.ts.map +1 -0
- package/dist/tools/store-memory/index.js +68 -0
- package/dist/tools/store-memory/index.js.map +1 -0
- package/dist/tools/sync-memory/cli-parser.d.ts +1 -0
- package/dist/tools/sync-memory/cli-parser.d.ts.map +1 -0
- package/dist/tools/sync-memory/cli-parser.js +2 -0
- package/dist/tools/sync-memory/cli-parser.js.map +1 -0
- package/dist/tools/sync-memory/executor.d.ts +1 -0
- package/dist/tools/sync-memory/executor.d.ts.map +1 -0
- package/dist/tools/sync-memory/executor.js +2 -0
- package/dist/tools/sync-memory/executor.js.map +1 -0
- package/dist/tools/sync-memory/index.d.ts +1 -0
- package/dist/tools/sync-memory/index.d.ts.map +1 -0
- package/dist/tools/sync-memory/index.js +2 -0
- package/dist/tools/sync-memory/index.js.map +1 -0
- package/dist/tools/update-memory/cli-parser.d.ts +2 -0
- package/dist/tools/update-memory/cli-parser.d.ts.map +1 -0
- package/dist/tools/update-memory/cli-parser.js +17 -0
- package/dist/tools/update-memory/cli-parser.js.map +1 -0
- package/dist/tools/update-memory/executor.d.ts +16 -0
- package/dist/tools/update-memory/executor.d.ts.map +1 -0
- package/dist/tools/update-memory/executor.js +59 -0
- package/dist/tools/update-memory/executor.js.map +1 -0
- package/dist/tools/update-memory/index.d.ts +3 -0
- package/dist/tools/update-memory/index.d.ts.map +1 -0
- package/dist/tools/update-memory/index.js +30 -0
- package/dist/tools/update-memory/index.js.map +1 -0
- package/dist/transports/streamable-http.d.ts +38 -0
- package/dist/transports/streamable-http.d.ts.map +1 -0
- package/dist/transports/streamable-http.js +209 -0
- package/dist/transports/streamable-http.js.map +1 -0
- package/dist/types/tools.d.ts +79 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +3 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/cli-parser.d.ts +12 -0
- package/dist/utils/cli-parser.d.ts.map +1 -0
- package/dist/utils/cli-parser.js +43 -0
- package/dist/utils/cli-parser.js.map +1 -0
- package/dist/utils/config.d.ts +95 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +176 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/db-integrity-check.d.ts +22 -0
- package/dist/utils/db-integrity-check.d.ts.map +1 -0
- package/dist/utils/db-integrity-check.js +69 -0
- package/dist/utils/db-integrity-check.js.map +1 -0
- package/dist/utils/debug.d.ts +25 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +67 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/help-generator.d.ts +18 -0
- package/dist/utils/help-generator.d.ts.map +1 -0
- package/dist/utils/help-generator.js +81 -0
- package/dist/utils/help-generator.js.map +1 -0
- package/dist/utils/json-parser.d.ts +12 -0
- package/dist/utils/json-parser.d.ts.map +1 -0
- package/dist/utils/json-parser.js +52 -0
- package/dist/utils/json-parser.js.map +1 -0
- package/dist/utils/mcp-config.d.ts +12 -0
- package/dist/utils/mcp-config.d.ts.map +1 -0
- package/dist/utils/mcp-config.js +64 -0
- package/dist/utils/mcp-config.js.map +1 -0
- package/dist/web-server.d.ts +3 -0
- package/dist/web-server.d.ts.map +1 -0
- package/dist/web-server.js +265 -0
- package/dist/web-server.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-service.js","sourceRoot":"","sources":["../../src/services/memory-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
export interface Migration {
|
|
3
|
+
version: number;
|
|
4
|
+
description: string;
|
|
5
|
+
up: (db: Database.Database) => void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* All migrations in order
|
|
9
|
+
* Add new migrations to the end, never modify existing ones
|
|
10
|
+
*/
|
|
11
|
+
export declare const migrations: Migration[];
|
|
12
|
+
/**
|
|
13
|
+
* Run all pending migrations
|
|
14
|
+
* This is the only function you need to call - it handles everything
|
|
15
|
+
*/
|
|
16
|
+
export declare function runMigrations(db: Database.Database, dbPath: string): void;
|
|
17
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/services/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,EA0NjC,CAAC;AAmBF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgFzE"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { debugLog } from '../utils/debug.js';
|
|
2
|
+
import { existsSync, copyFileSync } from 'fs';
|
|
3
|
+
/**
|
|
4
|
+
* All migrations in order
|
|
5
|
+
* Add new migrations to the end, never modify existing ones
|
|
6
|
+
*/
|
|
7
|
+
export const migrations = [
|
|
8
|
+
{
|
|
9
|
+
version: 1,
|
|
10
|
+
description: 'Initial schema with migration tracking',
|
|
11
|
+
up: (db) => {
|
|
12
|
+
// Schema already exists, just mark as version 1
|
|
13
|
+
debugLog('Migration 1: Baseline schema marked');
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
version: 2,
|
|
18
|
+
description: 'Normalize tags + add performance indexes',
|
|
19
|
+
up: (db) => {
|
|
20
|
+
debugLog('Migration 2: Starting tag normalization and index creation');
|
|
21
|
+
// Create tags table
|
|
22
|
+
db.exec(`
|
|
23
|
+
CREATE TABLE IF NOT EXISTS tags (
|
|
24
|
+
memory_id INTEGER NOT NULL,
|
|
25
|
+
tag TEXT NOT NULL,
|
|
26
|
+
FOREIGN KEY (memory_id) REFERENCES memories (id) ON DELETE CASCADE,
|
|
27
|
+
PRIMARY KEY (memory_id, tag)
|
|
28
|
+
);
|
|
29
|
+
`);
|
|
30
|
+
// Create indexes for tags table
|
|
31
|
+
db.exec(`
|
|
32
|
+
CREATE INDEX IF NOT EXISTS idx_tags_tag ON tags(tag);
|
|
33
|
+
CREATE INDEX IF NOT EXISTS idx_tags_memory_id ON tags(memory_id);
|
|
34
|
+
`);
|
|
35
|
+
// Add performance indexes to existing tables
|
|
36
|
+
db.exec(`
|
|
37
|
+
CREATE INDEX IF NOT EXISTS idx_memories_created_at ON memories(created_at DESC);
|
|
38
|
+
CREATE INDEX IF NOT EXISTS idx_memories_hash ON memories(hash);
|
|
39
|
+
CREATE INDEX IF NOT EXISTS idx_relationships_from ON relationships(from_memory_id);
|
|
40
|
+
CREATE INDEX IF NOT EXISTS idx_relationships_to ON relationships(to_memory_id);
|
|
41
|
+
CREATE INDEX IF NOT EXISTS idx_relationships_composite ON relationships(from_memory_id, to_memory_id);
|
|
42
|
+
`);
|
|
43
|
+
// Migrate existing tags from memories.tags column to tags table
|
|
44
|
+
const memories = db.prepare(`SELECT id, tags FROM memories WHERE tags IS NOT NULL AND tags != ''`).all();
|
|
45
|
+
if (memories.length > 0) {
|
|
46
|
+
debugLog(`Migrating tags for ${memories.length} memories`);
|
|
47
|
+
const insertTag = db.prepare('INSERT OR IGNORE INTO tags (memory_id, tag) VALUES (?, ?)');
|
|
48
|
+
const migrateData = db.transaction(() => {
|
|
49
|
+
for (const memory of memories) {
|
|
50
|
+
const tagList = memory.tags.split(',').map(t => t.trim().toLowerCase()).filter(t => t);
|
|
51
|
+
for (const tag of tagList) {
|
|
52
|
+
insertTag.run(memory.id, tag);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
migrateData();
|
|
57
|
+
debugLog(`Successfully migrated ${memories.length} memories to new tag format`);
|
|
58
|
+
}
|
|
59
|
+
// Run ANALYZE to update query planner statistics
|
|
60
|
+
db.exec('ANALYZE');
|
|
61
|
+
debugLog('Migration 2: Completed successfully');
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
version: 3,
|
|
66
|
+
description: 'Update FTS table to remove tags column',
|
|
67
|
+
up: (db) => {
|
|
68
|
+
debugLog('Migration 3: Updating FTS table schema');
|
|
69
|
+
// Always recreate FTS table to ensure consistency
|
|
70
|
+
debugLog('Recreating FTS table with updated schema');
|
|
71
|
+
// Drop old FTS table and triggers
|
|
72
|
+
db.exec(`DROP TRIGGER IF EXISTS memories_ai`);
|
|
73
|
+
db.exec(`DROP TRIGGER IF EXISTS memories_au`);
|
|
74
|
+
db.exec(`DROP TRIGGER IF EXISTS memories_ad`);
|
|
75
|
+
db.exec(`DROP TABLE IF EXISTS memories_fts`);
|
|
76
|
+
// Create new FTS table without tags column
|
|
77
|
+
db.exec(`
|
|
78
|
+
CREATE VIRTUAL TABLE memories_fts
|
|
79
|
+
USING fts5(content, content='memories', content_rowid='id')
|
|
80
|
+
`);
|
|
81
|
+
// Recreate triggers
|
|
82
|
+
db.exec(`
|
|
83
|
+
CREATE TRIGGER memories_ai AFTER INSERT ON memories BEGIN
|
|
84
|
+
INSERT INTO memories_fts (rowid, content)
|
|
85
|
+
VALUES (new.id, new.content);
|
|
86
|
+
END;
|
|
87
|
+
`);
|
|
88
|
+
db.exec(`
|
|
89
|
+
CREATE TRIGGER memories_au AFTER UPDATE ON memories BEGIN
|
|
90
|
+
UPDATE memories_fts SET content = new.content
|
|
91
|
+
WHERE rowid = new.id;
|
|
92
|
+
END;
|
|
93
|
+
`);
|
|
94
|
+
db.exec(`
|
|
95
|
+
CREATE TRIGGER memories_ad AFTER DELETE ON memories BEGIN
|
|
96
|
+
DELETE FROM memories_fts WHERE rowid = old.id;
|
|
97
|
+
END;
|
|
98
|
+
`);
|
|
99
|
+
// Repopulate FTS table with existing memories
|
|
100
|
+
const memories = db.prepare(`SELECT id, content FROM memories`).all();
|
|
101
|
+
if (memories.length > 0) {
|
|
102
|
+
debugLog(`Repopulating FTS table with ${memories.length} memories`);
|
|
103
|
+
const insertFts = db.prepare(`INSERT INTO memories_fts (rowid, content) VALUES (?, ?)`);
|
|
104
|
+
const populateFts = db.transaction(() => {
|
|
105
|
+
for (const memory of memories) {
|
|
106
|
+
insertFts.run(memory.id, memory.content);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
populateFts();
|
|
110
|
+
}
|
|
111
|
+
debugLog('Migration 3: FTS table updated successfully');
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
version: 4,
|
|
116
|
+
description: 'Fix FTS update trigger for external content tables',
|
|
117
|
+
up: (db) => {
|
|
118
|
+
debugLog('Migration 4: Fixing FTS update trigger');
|
|
119
|
+
// Drop old update trigger
|
|
120
|
+
db.exec(`DROP TRIGGER IF EXISTS memories_au`);
|
|
121
|
+
// Recreate with correct DELETE+INSERT pattern for external content FTS5
|
|
122
|
+
// External content FTS5 tables don't support UPDATE, must DELETE+INSERT
|
|
123
|
+
db.exec(`
|
|
124
|
+
CREATE TRIGGER memories_au AFTER UPDATE ON memories BEGIN
|
|
125
|
+
DELETE FROM memories_fts WHERE rowid = old.id;
|
|
126
|
+
INSERT INTO memories_fts (rowid, content) VALUES (new.id, new.content);
|
|
127
|
+
END;
|
|
128
|
+
`);
|
|
129
|
+
debugLog('Migration 4: FTS update trigger fixed');
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
version: 5,
|
|
134
|
+
description: 'Drop deprecated tags column from memories table',
|
|
135
|
+
up: (db) => {
|
|
136
|
+
debugLog('Migration 5: Dropping deprecated tags column');
|
|
137
|
+
// SQLite doesn't support DROP COLUMN directly, so we need to:
|
|
138
|
+
// 1. Create a new table without the tags column
|
|
139
|
+
// 2. Copy data from old table to new table
|
|
140
|
+
// 3. Drop old table
|
|
141
|
+
// 4. Rename new table to old name
|
|
142
|
+
// Create new memories table without tags column
|
|
143
|
+
db.exec(`
|
|
144
|
+
CREATE TABLE memories_new (
|
|
145
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
146
|
+
content TEXT NOT NULL,
|
|
147
|
+
created_at TEXT,
|
|
148
|
+
hash TEXT UNIQUE
|
|
149
|
+
)
|
|
150
|
+
`);
|
|
151
|
+
// Copy all data from old table to new table
|
|
152
|
+
db.exec(`
|
|
153
|
+
INSERT INTO memories_new (id, content, created_at, hash)
|
|
154
|
+
SELECT id, content, created_at, hash FROM memories
|
|
155
|
+
`);
|
|
156
|
+
// Drop triggers that reference the old table
|
|
157
|
+
db.exec(`DROP TRIGGER IF EXISTS memories_ai`);
|
|
158
|
+
db.exec(`DROP TRIGGER IF EXISTS memories_au`);
|
|
159
|
+
db.exec(`DROP TRIGGER IF EXISTS memories_ad`);
|
|
160
|
+
// Drop old table
|
|
161
|
+
db.exec(`DROP TABLE memories`);
|
|
162
|
+
// Rename new table to original name
|
|
163
|
+
db.exec(`ALTER TABLE memories_new RENAME TO memories`);
|
|
164
|
+
// Recreate triggers for the new table
|
|
165
|
+
db.exec(`
|
|
166
|
+
CREATE TRIGGER memories_ai AFTER INSERT ON memories BEGIN
|
|
167
|
+
INSERT INTO memories_fts (rowid, content)
|
|
168
|
+
VALUES (new.id, new.content);
|
|
169
|
+
END;
|
|
170
|
+
`);
|
|
171
|
+
db.exec(`
|
|
172
|
+
CREATE TRIGGER memories_au AFTER UPDATE ON memories BEGIN
|
|
173
|
+
DELETE FROM memories_fts WHERE rowid = old.id;
|
|
174
|
+
INSERT INTO memories_fts (rowid, content) VALUES (new.id, new.content);
|
|
175
|
+
END;
|
|
176
|
+
`);
|
|
177
|
+
db.exec(`
|
|
178
|
+
CREATE TRIGGER memories_ad AFTER DELETE ON memories BEGIN
|
|
179
|
+
DELETE FROM memories_fts WHERE rowid = old.id;
|
|
180
|
+
END;
|
|
181
|
+
`);
|
|
182
|
+
// Recreate indexes
|
|
183
|
+
db.exec(`
|
|
184
|
+
CREATE INDEX IF NOT EXISTS idx_memories_created_at ON memories(created_at DESC);
|
|
185
|
+
CREATE INDEX IF NOT EXISTS idx_memories_hash ON memories(hash);
|
|
186
|
+
`);
|
|
187
|
+
// Run ANALYZE to update query planner statistics
|
|
188
|
+
db.exec('ANALYZE');
|
|
189
|
+
debugLog('Migration 5: Deprecated tags column dropped successfully');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Future migrations go here - just add to the array!
|
|
193
|
+
];
|
|
194
|
+
/**
|
|
195
|
+
* Create backup before running migrations
|
|
196
|
+
*/
|
|
197
|
+
function createBackup(dbPath) {
|
|
198
|
+
if (!existsSync(dbPath))
|
|
199
|
+
return;
|
|
200
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
201
|
+
const backupPath = `${dbPath}.backup-${timestamp}`;
|
|
202
|
+
try {
|
|
203
|
+
copyFileSync(dbPath, backupPath);
|
|
204
|
+
debugLog(`Backup created: ${backupPath}`);
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
debugLog(`Warning: Could not create backup: ${error.message}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Run all pending migrations
|
|
212
|
+
* This is the only function you need to call - it handles everything
|
|
213
|
+
*/
|
|
214
|
+
export function runMigrations(db, dbPath) {
|
|
215
|
+
// Ensure migration tracking table exists
|
|
216
|
+
db.exec(`
|
|
217
|
+
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
218
|
+
version INTEGER PRIMARY KEY,
|
|
219
|
+
description TEXT NOT NULL,
|
|
220
|
+
applied_at TEXT NOT NULL
|
|
221
|
+
)
|
|
222
|
+
`);
|
|
223
|
+
// Get current version
|
|
224
|
+
const result = db.prepare('SELECT MAX(version) as version FROM schema_migrations').get();
|
|
225
|
+
const currentVersion = result?.version || 0;
|
|
226
|
+
// Check if this is a fresh database (no migrations recorded)
|
|
227
|
+
const isFreshDatabase = currentVersion === 0;
|
|
228
|
+
// Find pending migrations
|
|
229
|
+
const pendingMigrations = migrations.filter(m => m.version > currentVersion);
|
|
230
|
+
if (pendingMigrations.length === 0) {
|
|
231
|
+
debugLog('Database schema is up to date');
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
// For fresh databases, mark as current version without running migrations
|
|
235
|
+
// since initDb() already creates the latest schema
|
|
236
|
+
if (isFreshDatabase) {
|
|
237
|
+
const latestVersion = Math.max(...migrations.map(m => m.version));
|
|
238
|
+
debugLog(`Fresh database detected - marking as schema version ${latestVersion}`);
|
|
239
|
+
const recordMigration = db.prepare('INSERT INTO schema_migrations (version, description, applied_at) VALUES (?, ?, ?)');
|
|
240
|
+
const markAsCurrent = db.transaction(() => {
|
|
241
|
+
for (const migration of migrations) {
|
|
242
|
+
recordMigration.run(migration.version, migration.description + ' (baseline)', new Date().toISOString());
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
markAsCurrent();
|
|
246
|
+
debugLog('Database schema initialized at latest version');
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
// For existing databases, run actual migrations
|
|
250
|
+
debugLog(`Found ${pendingMigrations.length} pending migration(s) for existing database`);
|
|
251
|
+
// Create backup before any changes (only for existing databases)
|
|
252
|
+
createBackup(dbPath);
|
|
253
|
+
// Record migration in tracking table
|
|
254
|
+
const recordMigration = db.prepare('INSERT INTO schema_migrations (version, description, applied_at) VALUES (?, ?, ?)');
|
|
255
|
+
// Run each pending migration in a transaction
|
|
256
|
+
for (const migration of pendingMigrations) {
|
|
257
|
+
debugLog(`Applying migration ${migration.version}: ${migration.description}`);
|
|
258
|
+
try {
|
|
259
|
+
const runMigration = db.transaction(() => {
|
|
260
|
+
migration.up(db);
|
|
261
|
+
recordMigration.run(migration.version, migration.description, new Date().toISOString());
|
|
262
|
+
});
|
|
263
|
+
runMigration();
|
|
264
|
+
debugLog(`ā
Migration ${migration.version} completed successfully`);
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
debugLog(`ā Migration ${migration.version} failed: ${error.message}`);
|
|
268
|
+
throw error; // Let it fail - backup exists for recovery
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
debugLog('All migrations completed successfully');
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/services/migrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAQ9C;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,wCAAwC;QACrD,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;YAC5B,gDAAgD;YAChD,QAAQ,CAAC,qCAAqC,CAAC,CAAC;QAClD,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,0CAA0C;QACvD,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;YAC5B,QAAQ,CAAC,4DAA4D,CAAC,CAAC;YAEvE,oBAAoB;YACpB,EAAE,CAAC,IAAI,CAAC;;;;;;;OAOP,CAAC,CAAC;YAEH,gCAAgC;YAChC,EAAE,CAAC,IAAI,CAAC;;;OAGP,CAAC,CAAC;YAEH,6CAA6C;YAC7C,EAAE,CAAC,IAAI,CAAC;;;;;;OAMP,CAAC,CAAC;YAEH,gEAAgE;YAChE,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,EAAyC,CAAC;YAEhJ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,sBAAsB,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;gBAC3D,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;gBAE1F,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;oBACtC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;wBAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACvF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;4BAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;wBAChC,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,WAAW,EAAE,CAAC;gBACd,QAAQ,CAAC,yBAAyB,QAAQ,CAAC,MAAM,6BAA6B,CAAC,CAAC;YAClF,CAAC;YAED,iDAAiD;YACjD,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEnB,QAAQ,CAAC,qCAAqC,CAAC,CAAC;QAClD,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,wCAAwC;QACrD,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;YAC5B,QAAQ,CAAC,wCAAwC,CAAC,CAAC;YAEnD,kDAAkD;YAClD,QAAQ,CAAC,0CAA0C,CAAC,CAAC;YAErD,kCAAkC;YAClC,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC9C,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC9C,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC9C,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAE7C,2CAA2C;YAC3C,EAAE,CAAC,IAAI,CAAC;;;OAGP,CAAC,CAAC;YAEH,oBAAoB;YACpB,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YAEH,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAA4C,CAAC;YAChH,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,+BAA+B,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;gBACpE,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,yDAAyD,CAAC,CAAC;gBACxF,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;oBACtC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;wBAC9B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,WAAW,EAAE,CAAC;YAChB,CAAC;YAED,QAAQ,CAAC,6CAA6C,CAAC,CAAC;QAC1D,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,oDAAoD;QACjE,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;YAC5B,QAAQ,CAAC,wCAAwC,CAAC,CAAC;YAEnD,0BAA0B;YAC1B,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAE9C,wEAAwE;YACxE,wEAAwE;YACxE,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,QAAQ,CAAC,uCAAuC,CAAC,CAAC;QACpD,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,iDAAiD;QAC9D,EAAE,EAAE,CAAC,EAAqB,EAAE,EAAE;YAC5B,QAAQ,CAAC,8CAA8C,CAAC,CAAC;YAEzD,8DAA8D;YAC9D,gDAAgD;YAChD,2CAA2C;YAC3C,oBAAoB;YACpB,kCAAkC;YAElC,gDAAgD;YAChD,EAAE,CAAC,IAAI,CAAC;;;;;;;OAOP,CAAC,CAAC;YAEH,4CAA4C;YAC5C,EAAE,CAAC,IAAI,CAAC;;;OAGP,CAAC,CAAC;YAEH,6CAA6C;YAC7C,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC9C,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC9C,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAE9C,iBAAiB;YACjB,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAE/B,oCAAoC;YACpC,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAEvD,sCAAsC;YACtC,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;YAEH,mBAAmB;YACnB,EAAE,CAAC,IAAI,CAAC;;;OAGP,CAAC,CAAC;YAEH,iDAAiD;YACjD,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEnB,QAAQ,CAAC,0DAA0D,CAAC,CAAC;QACvE,CAAC;KACF;IACD,qDAAqD;CACtD,CAAC;AAEF;;GAEG;AACH,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO;IAEhC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,GAAG,MAAM,WAAW,SAAS,EAAE,CAAC;IAEnD,IAAI,CAAC;QACH,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACjC,QAAQ,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,QAAQ,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAAqB,EAAE,MAAc;IACjE,yCAAyC;IACzC,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,uDAAuD,CAAC,CAAC,GAAG,EAAS,CAAC;IAChG,MAAM,cAAc,GAAG,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC;IAE5C,6DAA6D;IAC7D,MAAM,eAAe,GAAG,cAAc,KAAK,CAAC,CAAC;IAE7C,0BAA0B;IAC1B,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC;IAE7E,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,0EAA0E;IAC1E,mDAAmD;IACnD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,QAAQ,CAAC,uDAAuD,aAAa,EAAE,CAAC,CAAC;QAEjF,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAChC,mFAAmF,CACpF,CAAC;QAEF,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACxC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,eAAe,CAAC,GAAG,CACjB,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,WAAW,GAAG,aAAa,EACrC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACzB,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,aAAa,EAAE,CAAC;QAChB,QAAQ,CAAC,+CAA+C,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,gDAAgD;IAChD,QAAQ,CAAC,SAAS,iBAAiB,CAAC,MAAM,6CAA6C,CAAC,CAAC;IAEzF,iEAAiE;IACjE,YAAY,CAAC,MAAM,CAAC,CAAC;IAErB,qCAAqC;IACrC,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAChC,mFAAmF,CACpF,CAAC;IAEF,8CAA8C;IAC9C,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,QAAQ,CAAC,sBAAsB,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBACvC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjB,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;YAEH,YAAY,EAAE,CAAC;YACf,QAAQ,CAAC,eAAe,SAAS,CAAC,OAAO,yBAAyB,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,QAAQ,CAAC,eAAe,SAAS,CAAC,OAAO,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACtE,MAAM,KAAK,CAAC,CAAC,2CAA2C;QAC1D,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup-export-test.d.ts","sourceRoot":"","sources":["../../src/tests/backup-export-test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test backup service with JSON export functionality
|
|
3
|
+
*/
|
|
4
|
+
import { MemoryService } from '../services/memory-service.js';
|
|
5
|
+
import { unlinkSync, existsSync, readFileSync, readdirSync, rmdirSync } from 'fs';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
const TEST_DB = './test-backup-export.db';
|
|
8
|
+
const BACKUP_DIR = './test-backup-exports';
|
|
9
|
+
// Clean up test files
|
|
10
|
+
function cleanup() {
|
|
11
|
+
try {
|
|
12
|
+
if (existsSync(TEST_DB))
|
|
13
|
+
unlinkSync(TEST_DB);
|
|
14
|
+
if (existsSync(TEST_DB + '-wal'))
|
|
15
|
+
unlinkSync(TEST_DB + '-wal');
|
|
16
|
+
if (existsSync(TEST_DB + '-shm'))
|
|
17
|
+
unlinkSync(TEST_DB + '-shm');
|
|
18
|
+
// Clean backup directory
|
|
19
|
+
if (existsSync(BACKUP_DIR)) {
|
|
20
|
+
const files = readdirSync(BACKUP_DIR);
|
|
21
|
+
for (const file of files) {
|
|
22
|
+
unlinkSync(join(BACKUP_DIR, file));
|
|
23
|
+
}
|
|
24
|
+
rmdirSync(BACKUP_DIR);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
// Ignore cleanup errors
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async function testBackupExport() {
|
|
32
|
+
console.log('\nš§Ŗ Testing Backup Service with JSON Export...\n');
|
|
33
|
+
cleanup();
|
|
34
|
+
// Set environment variables for backup
|
|
35
|
+
process.env.MEMORY_DB = TEST_DB;
|
|
36
|
+
process.env.MEMORY_BACKUP_PATH = BACKUP_DIR;
|
|
37
|
+
process.env.MEMORY_BACKUP_INTERVAL = '0'; // Backup on every write
|
|
38
|
+
try {
|
|
39
|
+
const memoryService = new MemoryService(TEST_DB);
|
|
40
|
+
memoryService.initialize();
|
|
41
|
+
console.log('ā
Memory service initialized with backup enabled');
|
|
42
|
+
// Store some test memories
|
|
43
|
+
console.log('\nš Storing test memories...');
|
|
44
|
+
const hash1 = memoryService.store('Test memory 1', ['test', 'backup']);
|
|
45
|
+
console.log(` Stored memory 1: ${hash1}`);
|
|
46
|
+
const hash2 = memoryService.store('Test memory 2 with more content', ['test', 'export']);
|
|
47
|
+
console.log(` Stored memory 2: ${hash2}`);
|
|
48
|
+
const hash3 = memoryService.store('Test memory 3 for relationships', ['test']);
|
|
49
|
+
console.log(` Stored memory 3: ${hash3}`);
|
|
50
|
+
// Add a relationship
|
|
51
|
+
memoryService.linkMemories(hash1, hash2, 'related');
|
|
52
|
+
console.log(' Added relationship between memory 1 and 2');
|
|
53
|
+
// Check if backup files were created
|
|
54
|
+
console.log('\nš Checking backup directory...');
|
|
55
|
+
if (!existsSync(BACKUP_DIR)) {
|
|
56
|
+
console.error('ā Backup directory does not exist!');
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
const backupFiles = readdirSync(BACKUP_DIR).filter(f => f.endsWith('.json') && f.startsWith('smem_'));
|
|
60
|
+
console.log(` Found ${backupFiles.length} backup files`);
|
|
61
|
+
if (backupFiles.length === 0) {
|
|
62
|
+
console.error('ā No backup files created!');
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
// Read the most recent backup
|
|
66
|
+
const latestBackup = backupFiles.sort().reverse()[0];
|
|
67
|
+
console.log(` Latest backup: ${latestBackup}`);
|
|
68
|
+
const backupPath = join(BACKUP_DIR, latestBackup);
|
|
69
|
+
const backupContent = readFileSync(backupPath, 'utf-8');
|
|
70
|
+
const backupData = JSON.parse(backupContent);
|
|
71
|
+
console.log('\nš Validating backup content...');
|
|
72
|
+
console.log(` Export version: ${backupData.exportVersion}`);
|
|
73
|
+
console.log(` Total memories: ${backupData.totalMemories}`);
|
|
74
|
+
console.log(` Memories array length: ${backupData.memories?.length}`);
|
|
75
|
+
// Validate backup structure
|
|
76
|
+
if (!backupData.exportedAt) {
|
|
77
|
+
console.error('ā Missing exportedAt field');
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
if (!backupData.exportVersion) {
|
|
81
|
+
console.error('ā Missing exportVersion field');
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
if (backupData.totalMemories !== 3) {
|
|
85
|
+
console.error(`ā Expected 3 memories, got ${backupData.totalMemories}`);
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
if (!Array.isArray(backupData.memories)) {
|
|
89
|
+
console.error('ā Memories is not an array');
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
if (backupData.memories.length !== 3) {
|
|
93
|
+
console.error(`ā Expected 3 memories in array, got ${backupData.memories.length}`);
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
// Validate each memory has required fields
|
|
97
|
+
for (const memory of backupData.memories) {
|
|
98
|
+
if (!memory.id) {
|
|
99
|
+
console.error('ā Memory missing id field');
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
if (!memory.content) {
|
|
103
|
+
console.error('ā Memory missing content field');
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
if (!memory.hash) {
|
|
107
|
+
console.error('ā Memory missing hash field');
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
if (!Array.isArray(memory.tags)) {
|
|
111
|
+
console.error('ā Memory tags is not an array');
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
if (!memory.createdAt) {
|
|
115
|
+
console.error('ā Memory missing createdAt field');
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Check for relationships in backup
|
|
120
|
+
const memoryWithRelationship = backupData.memories.find((m) => m.hash === hash1 || m.hash === hash2);
|
|
121
|
+
if (memoryWithRelationship && memoryWithRelationship.relationships) {
|
|
122
|
+
console.log(` ā
Relationships preserved in backup`);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
console.log(` ā ļø No relationships found in backup (this might be expected)`);
|
|
126
|
+
}
|
|
127
|
+
console.log('\nš Backup content sample:');
|
|
128
|
+
console.log(JSON.stringify(backupData.memories[0], null, 2));
|
|
129
|
+
// Test manual backup
|
|
130
|
+
console.log('\nš¾ Testing manual backup...');
|
|
131
|
+
const manualBackupPath = memoryService.createBackup('manual-test');
|
|
132
|
+
if (manualBackupPath) {
|
|
133
|
+
console.log(` ā
Manual backup created: ${manualBackupPath}`);
|
|
134
|
+
const manualContent = readFileSync(manualBackupPath, 'utf-8');
|
|
135
|
+
const manualData = JSON.parse(manualContent);
|
|
136
|
+
if (manualData.totalMemories !== 3) {
|
|
137
|
+
console.error(`ā Manual backup has wrong count: ${manualData.totalMemories}`);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
console.error('ā Manual backup failed');
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
memoryService.close();
|
|
146
|
+
console.log('\nā
All backup export tests passed!');
|
|
147
|
+
console.log('š Backup service is correctly exporting to JSON format\n');
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.error('\nā Test failed:', error.message);
|
|
151
|
+
console.error(error.stack);
|
|
152
|
+
process.exit(1);
|
|
153
|
+
}
|
|
154
|
+
finally {
|
|
155
|
+
cleanup();
|
|
156
|
+
delete process.env.MEMORY_DB;
|
|
157
|
+
delete process.env.MEMORY_BACKUP_PATH;
|
|
158
|
+
delete process.env.MEMORY_BACKUP_INTERVAL;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
testBackupExport();
|
|
162
|
+
//# sourceMappingURL=backup-export-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup-export-test.js","sourceRoot":"","sources":["../../src/tests/backup-export-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backup Service Test Suite
|
|
3
|
+
*
|
|
4
|
+
* Tests the backup service which now exports memories as JSON files:
|
|
5
|
+
* - Automatic backup on write operations
|
|
6
|
+
* - Backup throttling (interval-based)
|
|
7
|
+
* - Backup file cleanup (max backups)
|
|
8
|
+
* - JSON export format validation
|
|
9
|
+
* - Source identifier support
|
|
10
|
+
* - Manual backup creation
|
|
11
|
+
*/
|
|
12
|
+
declare function runTests(): Promise<void>;
|
|
13
|
+
export { runTests };
|
|
14
|
+
//# sourceMappingURL=backup-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup-test.d.ts","sourceRoot":"","sources":["../../src/tests/backup-test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA+FH,iBAAe,QAAQ,kBA+ItB;AAeD,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|