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,169 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Time Range Search Test
|
|
4
|
+
* Tests the time range filtering functionality
|
|
5
|
+
*/
|
|
6
|
+
import { MemoryService } from '../services/memory-service.js';
|
|
7
|
+
import { unlink } from 'fs/promises';
|
|
8
|
+
const TEST_DB = './test-timerange.db';
|
|
9
|
+
async function runTests() {
|
|
10
|
+
console.log('🧪 Time Range Search Tests');
|
|
11
|
+
console.log('================================\n');
|
|
12
|
+
try {
|
|
13
|
+
// Clean up any existing test database
|
|
14
|
+
try {
|
|
15
|
+
await unlink(TEST_DB);
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
// Ignore if doesn't exist
|
|
19
|
+
}
|
|
20
|
+
// Initialize service
|
|
21
|
+
const service = new MemoryService(TEST_DB);
|
|
22
|
+
service.initialize();
|
|
23
|
+
// Create test memories with different dates
|
|
24
|
+
console.log('Setting up test data...');
|
|
25
|
+
// Store memories and manually update their created_at timestamps
|
|
26
|
+
const today = new Date();
|
|
27
|
+
const yesterday = new Date(today);
|
|
28
|
+
yesterday.setDate(yesterday.getDate() - 1);
|
|
29
|
+
const lastWeek = new Date(today);
|
|
30
|
+
lastWeek.setDate(lastWeek.getDate() - 7);
|
|
31
|
+
const lastMonth = new Date(today);
|
|
32
|
+
lastMonth.setDate(lastMonth.getDate() - 30);
|
|
33
|
+
const twoMonthsAgo = new Date(today);
|
|
34
|
+
twoMonthsAgo.setDate(twoMonthsAgo.getDate() - 60);
|
|
35
|
+
// Store memories
|
|
36
|
+
service.store('Memory from today', ['recent']);
|
|
37
|
+
service.store('Memory from yesterday', ['recent']);
|
|
38
|
+
service.store('Memory from last week', ['old']);
|
|
39
|
+
service.store('Memory from last month', ['old']);
|
|
40
|
+
service.store('Memory from two months ago', ['very-old']);
|
|
41
|
+
// Manually update the created_at dates in the database
|
|
42
|
+
// This is a test-only operation to simulate memories from different times
|
|
43
|
+
const db = service.db;
|
|
44
|
+
const updateStmt = db.prepare('UPDATE memories SET created_at = ? WHERE content = ?');
|
|
45
|
+
updateStmt.run(yesterday.toISOString(), 'Memory from yesterday');
|
|
46
|
+
updateStmt.run(lastWeek.toISOString(), 'Memory from last week');
|
|
47
|
+
updateStmt.run(lastMonth.toISOString(), 'Memory from last month');
|
|
48
|
+
updateStmt.run(twoMonthsAgo.toISOString(), 'Memory from two months ago');
|
|
49
|
+
console.log('✓ Test data created\n');
|
|
50
|
+
let passed = 0;
|
|
51
|
+
let failed = 0;
|
|
52
|
+
// Test 1: Search memories from TODAY ONLY (daysAgo=0) - Critical UTC edge case
|
|
53
|
+
console.log('Running: Search today only (daysAgo=0)...');
|
|
54
|
+
const todayOnly = service.search(undefined, undefined, 10, 0);
|
|
55
|
+
if (todayOnly.length === 1 && todayOnly[0].content === 'Memory from today') {
|
|
56
|
+
console.log(`✓ Found ${todayOnly.length} memory from today (UTC boundary test passed)`);
|
|
57
|
+
console.log(` - ${todayOnly[0].content}`);
|
|
58
|
+
console.log(` - Created at: ${todayOnly[0].createdAt}`);
|
|
59
|
+
passed++;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log(`✗ Expected 1 memory from today, got ${todayOnly.length}`);
|
|
63
|
+
console.log(' This indicates UTC timezone bug!');
|
|
64
|
+
failed++;
|
|
65
|
+
}
|
|
66
|
+
console.log();
|
|
67
|
+
// Test 2: Search memories from last 2 days
|
|
68
|
+
console.log('Running: Search last 2 days...');
|
|
69
|
+
const last2Days = service.search(undefined, undefined, 10, 2);
|
|
70
|
+
if (last2Days.length === 2) {
|
|
71
|
+
console.log(`✓ Found ${last2Days.length} memories from last 2 days`);
|
|
72
|
+
console.log(` - ${last2Days.map(m => m.content).join('\n - ')}`);
|
|
73
|
+
passed++;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
console.log(`✗ Expected 2 memories, got ${last2Days.length}`);
|
|
77
|
+
failed++;
|
|
78
|
+
}
|
|
79
|
+
console.log();
|
|
80
|
+
// Test 3: Search memories from last 10 days
|
|
81
|
+
console.log('Running: Search last 10 days...');
|
|
82
|
+
const last10Days = service.search(undefined, undefined, 10, 10);
|
|
83
|
+
if (last10Days.length === 3) {
|
|
84
|
+
console.log(`✓ Found ${last10Days.length} memories from last 10 days`);
|
|
85
|
+
console.log(` - ${last10Days.map(m => m.content).join('\n - ')}`);
|
|
86
|
+
passed++;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(`✗ Expected 3 memories, got ${last10Days.length}`);
|
|
90
|
+
failed++;
|
|
91
|
+
}
|
|
92
|
+
console.log();
|
|
93
|
+
// Test 4: Search memories from last 40 days
|
|
94
|
+
console.log('Running: Search last 40 days...');
|
|
95
|
+
const last40Days = service.search(undefined, undefined, 10, 40);
|
|
96
|
+
if (last40Days.length === 4) {
|
|
97
|
+
console.log(`✓ Found ${last40Days.length} memories from last 40 days`);
|
|
98
|
+
passed++;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.log(`✗ Expected 4 memories, got ${last40Days.length}`);
|
|
102
|
+
failed++;
|
|
103
|
+
}
|
|
104
|
+
console.log();
|
|
105
|
+
// Test 5: Search with specific date range (last month only)
|
|
106
|
+
console.log('Running: Search specific date range...');
|
|
107
|
+
const startDate = new Date(today);
|
|
108
|
+
startDate.setDate(startDate.getDate() - 35);
|
|
109
|
+
const endDate = new Date(today);
|
|
110
|
+
endDate.setDate(endDate.getDate() - 25);
|
|
111
|
+
const dateRange = service.search(undefined, undefined, 10, undefined, startDate.toISOString().split('T')[0], // Use YYYY-MM-DD format
|
|
112
|
+
endDate.toISOString().split('T')[0]);
|
|
113
|
+
if (dateRange.length === 1 && dateRange[0].content.includes('last month')) {
|
|
114
|
+
console.log(`✓ Found ${dateRange.length} memory in date range`);
|
|
115
|
+
console.log(` - ${dateRange[0].content}`);
|
|
116
|
+
passed++;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.log(`✗ Expected 1 memory with "last month", got ${dateRange.length}`);
|
|
120
|
+
failed++;
|
|
121
|
+
}
|
|
122
|
+
console.log();
|
|
123
|
+
// Test 6: Search with content query + time range
|
|
124
|
+
console.log('Running: Search with query and time range...');
|
|
125
|
+
const queryAndTime = service.search('Memory', undefined, 10, 10);
|
|
126
|
+
if (queryAndTime.length === 3) {
|
|
127
|
+
console.log(`✓ Found ${queryAndTime.length} memories matching query within time range`);
|
|
128
|
+
passed++;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
console.log(`✗ Expected 3 memories, got ${queryAndTime.length}`);
|
|
132
|
+
failed++;
|
|
133
|
+
}
|
|
134
|
+
console.log();
|
|
135
|
+
// Test 7: Search with tags + time range
|
|
136
|
+
console.log('Running: Search with tags and time range...');
|
|
137
|
+
const tagsAndTime = service.search(undefined, ['old'], 10, 40);
|
|
138
|
+
if (tagsAndTime.length === 2) {
|
|
139
|
+
console.log(`✓ Found ${tagsAndTime.length} memories with tag within time range`);
|
|
140
|
+
passed++;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
console.log(`✗ Expected 2 memories, got ${tagsAndTime.length}`);
|
|
144
|
+
failed++;
|
|
145
|
+
}
|
|
146
|
+
console.log();
|
|
147
|
+
// Summary
|
|
148
|
+
console.log('📊 Test Summary');
|
|
149
|
+
console.log('===============');
|
|
150
|
+
console.log(`Passed: ${passed}/${passed + failed}`);
|
|
151
|
+
if (failed === 0) {
|
|
152
|
+
console.log('\n🎉 All time range tests passed!');
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
console.log(`\n❌ ${failed} test(s) failed`);
|
|
156
|
+
process.exit(1);
|
|
157
|
+
}
|
|
158
|
+
// Clean up
|
|
159
|
+
service.close();
|
|
160
|
+
await unlink(TEST_DB);
|
|
161
|
+
console.log('\n🧹 Test database cleaned up');
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
console.error('\n❌ Test error:', error);
|
|
165
|
+
process.exit(1);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
runTests();
|
|
169
|
+
//# sourceMappingURL=time-range-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-range-test.js","sourceRoot":"","sources":["../../src/tests/time-range-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parser.d.ts","sourceRoot":"","sources":["../../../src/tools/delete-memory/cli-parser.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAW1C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { parseCommandLineArgs } from '../../utils/cli-parser.js';
|
|
2
|
+
export function parseCliArgs(args) {
|
|
3
|
+
// PHASE 1: Convert string array to object (shared utility)
|
|
4
|
+
const rawArgs = parseCommandLineArgs(args);
|
|
5
|
+
// PHASE 2: Validate and transform (command-specific logic)
|
|
6
|
+
const result = {};
|
|
7
|
+
if (rawArgs.hash)
|
|
8
|
+
result.hash = rawArgs.hash;
|
|
9
|
+
if (rawArgs.tag)
|
|
10
|
+
result.tag = rawArgs.tag;
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=cli-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parser.js","sourceRoot":"","sources":["../../../src/tools/delete-memory/cli-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,2DAA2D;IAC3D,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE3C,2DAA2D;IAC3D,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,IAAI,OAAO,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7C,IAAI,OAAO,CAAC,GAAG;QAAE,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAE1C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ToolContext } from '../../types/tools.js';
|
|
2
|
+
interface DeleteMemoryArgs {
|
|
3
|
+
hash?: string;
|
|
4
|
+
tag?: string;
|
|
5
|
+
}
|
|
6
|
+
interface DeleteMemoryResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
deleted: number;
|
|
9
|
+
message: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function execute(args: DeleteMemoryArgs, context: ToolContext): Promise<DeleteMemoryResult>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/tools/delete-memory/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqCvG"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { formatHash } from '../../utils/debug.js';
|
|
2
|
+
export async function execute(args, context) {
|
|
3
|
+
try {
|
|
4
|
+
let deleted = 0;
|
|
5
|
+
if (args.hash) {
|
|
6
|
+
const success = context.memoryService.delete(args.hash);
|
|
7
|
+
deleted = success ? 1 : 0;
|
|
8
|
+
return {
|
|
9
|
+
success,
|
|
10
|
+
deleted,
|
|
11
|
+
message: success
|
|
12
|
+
? `Memory with hash ${formatHash(args.hash)} deleted successfully`
|
|
13
|
+
: `Memory with hash ${formatHash(args.hash)} not found`
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
else if (args.tag) {
|
|
17
|
+
deleted = context.memoryService.deleteByTag(args.tag);
|
|
18
|
+
return {
|
|
19
|
+
success: deleted > 0,
|
|
20
|
+
deleted,
|
|
21
|
+
message: `Deleted ${deleted} memories with tag "${args.tag}"`
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return {
|
|
26
|
+
success: false,
|
|
27
|
+
deleted: 0,
|
|
28
|
+
message: 'Either hash or tag must be provided'
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return {
|
|
34
|
+
success: false,
|
|
35
|
+
deleted: 0,
|
|
36
|
+
message: `Failed to delete memory: ${error instanceof Error ? error.message : 'Unknown error'}`
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/tools/delete-memory/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAalD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAsB,EAAE,OAAoB;IACxE,IAAI,CAAC;QACH,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1B,OAAO;gBACL,OAAO;gBACP,OAAO;gBACP,OAAO,EAAE,OAAO;oBACd,CAAC,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB;oBAClE,CAAC,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;aAC1D,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEtD,OAAO;gBACL,OAAO,EAAE,OAAO,GAAG,CAAC;gBACpB,OAAO;gBACP,OAAO,EAAE,WAAW,OAAO,uBAAuB,IAAI,CAAC,GAAG,GAAG;aAC9D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,qCAAqC;aAC/C,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;SAChG,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/delete-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,gBAAgB,EAAE,IAoB9B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { execute } from './executor.js';
|
|
2
|
+
import { parseCliArgs } from './cli-parser.js';
|
|
3
|
+
export const deleteMemoryTool = {
|
|
4
|
+
definition: {
|
|
5
|
+
name: 'delete-memory',
|
|
6
|
+
description: 'Delete a specific memory by hash or delete all memories with specific tags',
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: 'object',
|
|
9
|
+
properties: {
|
|
10
|
+
hash: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
description: 'Hash of the memory to delete'
|
|
13
|
+
},
|
|
14
|
+
tag: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
description: 'Delete all memories with this tag'
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
handler: execute,
|
|
22
|
+
cliParser: parseCliArgs
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/delete-memory/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,UAAU,EAAE;QACV,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,4EAA4E;QACzF,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC;iBACjD;aACF;SACF;KACF;IACD,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,YAAY;CACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parser.d.ts","sourceRoot":"","sources":["../../../src/tools/export-memory/cli-parser.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAyC1C"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { parseCommandLineArgs } from '../../utils/cli-parser.js';
|
|
2
|
+
export function parseCliArgs(args) {
|
|
3
|
+
// PHASE 1: Convert string array to object (shared utility)
|
|
4
|
+
const rawArgs = parseCommandLineArgs(args);
|
|
5
|
+
// PHASE 2: Validate and transform (command-specific logic)
|
|
6
|
+
const result = {};
|
|
7
|
+
if (rawArgs.output) {
|
|
8
|
+
result.output = rawArgs.output;
|
|
9
|
+
}
|
|
10
|
+
if (rawArgs.tags) {
|
|
11
|
+
result.tags = rawArgs.tags.split(',').map((tag) => tag.trim());
|
|
12
|
+
}
|
|
13
|
+
if (rawArgs.daysAgo !== undefined) {
|
|
14
|
+
result.daysAgo = parseInt(rawArgs.daysAgo, 10);
|
|
15
|
+
}
|
|
16
|
+
if (rawArgs.startDate) {
|
|
17
|
+
result.startDate = rawArgs.startDate;
|
|
18
|
+
}
|
|
19
|
+
if (rawArgs.endDate) {
|
|
20
|
+
result.endDate = rawArgs.endDate;
|
|
21
|
+
}
|
|
22
|
+
if (rawArgs.limit !== undefined) {
|
|
23
|
+
result.limit = parseInt(rawArgs.limit, 10);
|
|
24
|
+
}
|
|
25
|
+
if (rawArgs.source) {
|
|
26
|
+
result.source = rawArgs.source;
|
|
27
|
+
}
|
|
28
|
+
// Validation
|
|
29
|
+
if (!result.output) {
|
|
30
|
+
throw new Error('--output is required');
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=cli-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parser.js","sourceRoot":"","sources":["../../../src/tools/export-memory/cli-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,2DAA2D;IAC3D,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE3C,2DAA2D;IAC3D,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,GAAI,OAAO,CAAC,IAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAiB,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACjC,CAAC;IAED,aAAa;IACb,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ToolContext } from '../../types/tools.js';
|
|
2
|
+
export interface ExportMemoryResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
outputPath: string;
|
|
5
|
+
totalMemories: number;
|
|
6
|
+
exportedAt: string;
|
|
7
|
+
source?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function execute(args: any, context: ToolContext): Promise<ExportMemoryResult>;
|
|
10
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/tools/export-memory/executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,sBAAsB,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgD1F"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { writeFileSync } from 'fs';
|
|
2
|
+
export async function execute(args, context) {
|
|
3
|
+
const { memoryService } = context;
|
|
4
|
+
// Build filters
|
|
5
|
+
const filters = {};
|
|
6
|
+
if (args.tags && args.tags.length > 0) {
|
|
7
|
+
filters.tags = args.tags;
|
|
8
|
+
}
|
|
9
|
+
if (args.daysAgo !== undefined) {
|
|
10
|
+
const date = new Date();
|
|
11
|
+
date.setDate(date.getDate() - args.daysAgo);
|
|
12
|
+
date.setHours(0, 0, 0, 0);
|
|
13
|
+
filters.startDate = date;
|
|
14
|
+
}
|
|
15
|
+
if (args.startDate) {
|
|
16
|
+
filters.startDate = new Date(args.startDate);
|
|
17
|
+
}
|
|
18
|
+
if (args.endDate) {
|
|
19
|
+
filters.endDate = new Date(args.endDate);
|
|
20
|
+
}
|
|
21
|
+
if (args.limit) {
|
|
22
|
+
filters.limit = args.limit;
|
|
23
|
+
}
|
|
24
|
+
// Export memories
|
|
25
|
+
const exportData = memoryService.exportMemories(filters);
|
|
26
|
+
// Override source if provided
|
|
27
|
+
if (args.source) {
|
|
28
|
+
exportData.source = args.source;
|
|
29
|
+
}
|
|
30
|
+
// Write to file
|
|
31
|
+
const jsonString = JSON.stringify(exportData, null, 2);
|
|
32
|
+
writeFileSync(args.output, jsonString, 'utf-8');
|
|
33
|
+
return {
|
|
34
|
+
success: true,
|
|
35
|
+
outputPath: args.output,
|
|
36
|
+
totalMemories: exportData.totalMemories,
|
|
37
|
+
exportedAt: exportData.exportedAt,
|
|
38
|
+
source: exportData.source
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/tools/export-memory/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAWnC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAS,EAAE,OAAoB;IAC3D,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAElC,gBAAgB;IAChB,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAEzD,8BAA8B;IAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,gBAAgB;IAChB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAEhD,OAAO;QACL,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI,CAAC,MAAM;QACvB,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/export-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,gBAAgB,EAAE,IA8F9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { parseCliArgs } from './cli-parser.js';
|
|
2
|
+
import { execute } from './executor.js';
|
|
3
|
+
export const exportMemoryTool = {
|
|
4
|
+
definition: {
|
|
5
|
+
name: 'export-memory',
|
|
6
|
+
description: 'Export memories to JSON file with optional filtering by tags, dates, or limit. Useful for backup, cross-machine sync, or sharing.',
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: 'object',
|
|
9
|
+
properties: {
|
|
10
|
+
output: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
description: 'Output JSON file path (required)'
|
|
13
|
+
},
|
|
14
|
+
tags: {
|
|
15
|
+
type: 'array',
|
|
16
|
+
items: { type: 'string' },
|
|
17
|
+
description: 'Filter by tags (optional)'
|
|
18
|
+
},
|
|
19
|
+
daysAgo: {
|
|
20
|
+
type: 'number',
|
|
21
|
+
description: 'Export memories from the last N days'
|
|
22
|
+
},
|
|
23
|
+
startDate: {
|
|
24
|
+
type: 'string',
|
|
25
|
+
description: 'Export memories created on or after this date (ISO format or YYYY-MM-DD)'
|
|
26
|
+
},
|
|
27
|
+
endDate: {
|
|
28
|
+
type: 'string',
|
|
29
|
+
description: 'Export memories created on or before this date (ISO format or YYYY-MM-DD)'
|
|
30
|
+
},
|
|
31
|
+
limit: {
|
|
32
|
+
type: 'number',
|
|
33
|
+
description: 'Maximum number of memories to export'
|
|
34
|
+
},
|
|
35
|
+
source: {
|
|
36
|
+
type: 'string',
|
|
37
|
+
description: 'Source machine/context identifier (optional)'
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
required: ['output']
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
handler: execute,
|
|
44
|
+
cliParser: parseCliArgs,
|
|
45
|
+
cliMetadata: {
|
|
46
|
+
options: [
|
|
47
|
+
{
|
|
48
|
+
name: '--output, -o',
|
|
49
|
+
description: 'Output JSON file path',
|
|
50
|
+
hasValue: true,
|
|
51
|
+
example: '--output memories.json'
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: '--tags, -t',
|
|
55
|
+
description: 'Filter by comma-separated tags',
|
|
56
|
+
hasValue: true,
|
|
57
|
+
example: '--tags "work,project"'
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: '--days-ago',
|
|
61
|
+
description: 'Export memories from last N days',
|
|
62
|
+
hasValue: true,
|
|
63
|
+
example: '--days-ago 7'
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: '--start-date',
|
|
67
|
+
description: 'Export memories on or after this date',
|
|
68
|
+
hasValue: true,
|
|
69
|
+
example: '--start-date 2025-10-01'
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: '--end-date',
|
|
73
|
+
description: 'Export memories on or before this date',
|
|
74
|
+
hasValue: true,
|
|
75
|
+
example: '--end-date 2025-10-08'
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: '--limit, -l',
|
|
79
|
+
description: 'Maximum memories to export',
|
|
80
|
+
hasValue: true,
|
|
81
|
+
example: '--limit 50'
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: '--source',
|
|
85
|
+
description: 'Source machine identifier',
|
|
86
|
+
hasValue: true,
|
|
87
|
+
example: '--source work-laptop'
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
examples: [
|
|
91
|
+
'export-memory --output all.json',
|
|
92
|
+
'export-memory --output work.json --tags "work,project"',
|
|
93
|
+
'export-memory --output recent.json --start-date 2025-10-01 --limit 20',
|
|
94
|
+
'export-memory --output lastweek.json --days-ago 7'
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
export default exportMemoryTool;
|
|
99
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/export-memory/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,MAAM,gBAAgB,GAAS;IACpC,UAAU,EAAE;QACV,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,mIAAmI;QAChJ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;iBAChD;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,2BAA2B;iBACzC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sCAAsC;iBACpD;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0EAA0E;iBACxF;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2EAA2E;iBACzF;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sCAAsC;iBACpD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8CAA8C;iBAC5D;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,YAAY;IACvB,WAAW,EAAE;QACX,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,uBAAuB;gBACpC,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,wBAAwB;aAClC;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,gCAAgC;gBAC7C,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,uBAAuB;aACjC;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,kCAAkC;gBAC/C,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,cAAc;aACxB;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,uCAAuC;gBACpD,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,yBAAyB;aACnC;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,wCAAwC;gBACrD,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,uBAAuB;aACjC;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,4BAA4B;gBACzC,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,YAAY;aACtB;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,2BAA2B;gBACxC,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,sBAAsB;aAChC;SACF;QACD,QAAQ,EAAE;YACR,iCAAiC;YACjC,wDAAwD;YACxD,uEAAuE;YACvE,mDAAmD;SACpD;KACF;CACF,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parser.d.ts","sourceRoot":"","sources":["../../../src/tools/import-memory/cli-parser.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OA6B1C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { parseCommandLineArgs } from '../../utils/cli-parser.js';
|
|
2
|
+
export function parseCliArgs(args) {
|
|
3
|
+
// PHASE 1: Convert string array to object (shared utility)
|
|
4
|
+
const rawArgs = parseCommandLineArgs(args);
|
|
5
|
+
// PHASE 2: Validate and transform (command-specific logic)
|
|
6
|
+
const result = {};
|
|
7
|
+
if (rawArgs.input) {
|
|
8
|
+
result.input = rawArgs.input;
|
|
9
|
+
}
|
|
10
|
+
if (rawArgs.skipDuplicates !== undefined) {
|
|
11
|
+
result.skipDuplicates = rawArgs.skipDuplicates; // Already a boolean
|
|
12
|
+
}
|
|
13
|
+
if (rawArgs.preserveTimestamps !== undefined) {
|
|
14
|
+
result.preserveTimestamps = rawArgs.preserveTimestamps; // Already a boolean
|
|
15
|
+
}
|
|
16
|
+
if (rawArgs.dryRun !== undefined) {
|
|
17
|
+
result.dryRun = rawArgs.dryRun; // Already a boolean
|
|
18
|
+
}
|
|
19
|
+
// Validation
|
|
20
|
+
if (!result.input) {
|
|
21
|
+
throw new Error('--input is required');
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=cli-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parser.js","sourceRoot":"","sources":["../../../src/tools/import-memory/cli-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,2DAA2D;IAC3D,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAE3C,2DAA2D;IAC3D,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,oBAAoB;IACtE,CAAC;IAED,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,oBAAoB;IAC9E,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,oBAAoB;IACtD,CAAC;IAED,aAAa;IACb,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ToolContext, ImportResult } from '../../types/tools.js';
|
|
2
|
+
export interface ImportMemoryResult extends ImportResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
inputPath: string;
|
|
5
|
+
dryRun?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function execute(args: any, context: ToolContext): Promise<ImportMemoryResult>;
|
|
8
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/tools/import-memory/executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAErF,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiC1F"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
export async function execute(args, context) {
|
|
3
|
+
const { memoryService } = context;
|
|
4
|
+
// Read JSON file
|
|
5
|
+
const jsonData = readFileSync(args.input, 'utf-8');
|
|
6
|
+
if (args.dryRun) {
|
|
7
|
+
// Parse and validate without importing
|
|
8
|
+
const exportData = JSON.parse(jsonData);
|
|
9
|
+
return {
|
|
10
|
+
success: true,
|
|
11
|
+
inputPath: args.input,
|
|
12
|
+
imported: 0,
|
|
13
|
+
skipped: 0,
|
|
14
|
+
errors: [],
|
|
15
|
+
dryRun: true
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
// Build import options
|
|
19
|
+
const options = {
|
|
20
|
+
skipDuplicates: args.skipDuplicates,
|
|
21
|
+
preserveTimestamps: args.preserveTimestamps
|
|
22
|
+
};
|
|
23
|
+
// Import memories
|
|
24
|
+
const result = memoryService.importMemories(jsonData, options);
|
|
25
|
+
return {
|
|
26
|
+
success: result.errors.length === 0,
|
|
27
|
+
inputPath: args.input,
|
|
28
|
+
...result
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/tools/import-memory/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AASlC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAS,EAAE,OAAoB;IAC3D,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAElC,iBAAiB;IACjB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,uCAAuC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,MAAM,OAAO,GAAkB;QAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;KAC5C,CAAC;IAEF,kBAAkB;IAClB,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/D,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC,KAAK;QACrB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/import-memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,gBAAgB,EAAE,IAiE9B,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|