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.
Files changed (247) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +742 -0
  3. package/dist/cli/arg-parser.d.ts +9 -0
  4. package/dist/cli/arg-parser.d.ts.map +1 -0
  5. package/dist/cli/arg-parser.js +68 -0
  6. package/dist/cli/arg-parser.js.map +1 -0
  7. package/dist/cli/help-generator.d.ts +8 -0
  8. package/dist/cli/help-generator.d.ts.map +1 -0
  9. package/dist/cli/help-generator.js +89 -0
  10. package/dist/cli/help-generator.js.map +1 -0
  11. package/dist/cli/index.d.ts +27 -0
  12. package/dist/cli/index.d.ts.map +1 -0
  13. package/dist/cli/index.js +56 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/cli/query-builder.d.ts +8 -0
  16. package/dist/cli/query-builder.d.ts.map +1 -0
  17. package/dist/cli/query-builder.js +63 -0
  18. package/dist/cli/query-builder.js.map +1 -0
  19. package/dist/cli/shortcuts-config.d.ts +26 -0
  20. package/dist/cli/shortcuts-config.d.ts.map +1 -0
  21. package/dist/cli/shortcuts-config.js +94 -0
  22. package/dist/cli/shortcuts-config.js.map +1 -0
  23. package/dist/graphql/resolvers.d.ts +101 -0
  24. package/dist/graphql/resolvers.d.ts.map +1 -0
  25. package/dist/graphql/resolvers.js +98 -0
  26. package/dist/graphql/resolvers.js.map +1 -0
  27. package/dist/graphql/schema.d.ts +13 -0
  28. package/dist/graphql/schema.d.ts.map +1 -0
  29. package/dist/graphql/schema.js +314 -0
  30. package/dist/graphql/schema.js.map +1 -0
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +573 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/services/backup-service.d.ts +57 -0
  36. package/dist/services/backup-service.d.ts.map +1 -0
  37. package/dist/services/backup-service.js +191 -0
  38. package/dist/services/backup-service.js.map +1 -0
  39. package/dist/services/database-optimizer.d.ts +15 -0
  40. package/dist/services/database-optimizer.d.ts.map +1 -0
  41. package/dist/services/database-optimizer.js +45 -0
  42. package/dist/services/database-optimizer.js.map +1 -0
  43. package/dist/services/memory-service.d.ts +126 -0
  44. package/dist/services/memory-service.d.ts.map +1 -0
  45. package/dist/services/memory-service.js +862 -0
  46. package/dist/services/memory-service.js.map +1 -0
  47. package/dist/services/migrations.d.ts +17 -0
  48. package/dist/services/migrations.d.ts.map +1 -0
  49. package/dist/services/migrations.js +273 -0
  50. package/dist/services/migrations.js.map +1 -0
  51. package/dist/tests/backup-export-test.d.ts +2 -0
  52. package/dist/tests/backup-export-test.d.ts.map +1 -0
  53. package/dist/tests/backup-export-test.js +162 -0
  54. package/dist/tests/backup-export-test.js.map +1 -0
  55. package/dist/tests/backup-test.d.ts +14 -0
  56. package/dist/tests/backup-test.d.ts.map +1 -0
  57. package/dist/tests/backup-test.js +209 -0
  58. package/dist/tests/backup-test.js.map +1 -0
  59. package/dist/tests/export-import-test.d.ts +15 -0
  60. package/dist/tests/export-import-test.d.ts.map +1 -0
  61. package/dist/tests/export-import-test.js +227 -0
  62. package/dist/tests/export-import-test.js.map +1 -0
  63. package/dist/tests/graphql-comprehensive-test.d.ts +6 -0
  64. package/dist/tests/graphql-comprehensive-test.d.ts.map +1 -0
  65. package/dist/tests/graphql-comprehensive-test.js +342 -0
  66. package/dist/tests/graphql-comprehensive-test.js.map +1 -0
  67. package/dist/tests/graphql-performance-test.d.ts +6 -0
  68. package/dist/tests/graphql-performance-test.d.ts.map +1 -0
  69. package/dist/tests/graphql-performance-test.js +141 -0
  70. package/dist/tests/graphql-performance-test.js.map +1 -0
  71. package/dist/tests/graphql-test.d.ts +5 -0
  72. package/dist/tests/graphql-test.d.ts.map +1 -0
  73. package/dist/tests/graphql-test.js +47 -0
  74. package/dist/tests/graphql-test.js.map +1 -0
  75. package/dist/tests/memory-server-tests.d.ts +7 -0
  76. package/dist/tests/memory-server-tests.d.ts.map +1 -0
  77. package/dist/tests/memory-server-tests.js +466 -0
  78. package/dist/tests/memory-server-tests.js.map +1 -0
  79. package/dist/tests/migration-test.d.ts +2 -0
  80. package/dist/tests/migration-test.d.ts.map +1 -0
  81. package/dist/tests/migration-test.js +270 -0
  82. package/dist/tests/migration-test.js.map +1 -0
  83. package/dist/tests/performance-benchmark.d.ts +7 -0
  84. package/dist/tests/performance-benchmark.d.ts.map +1 -0
  85. package/dist/tests/performance-benchmark.js +234 -0
  86. package/dist/tests/performance-benchmark.js.map +1 -0
  87. package/dist/tests/performance-test.d.ts +3 -0
  88. package/dist/tests/performance-test.d.ts.map +1 -0
  89. package/dist/tests/performance-test.js +61 -0
  90. package/dist/tests/performance-test.js.map +1 -0
  91. package/dist/tests/time-range-test.d.ts +7 -0
  92. package/dist/tests/time-range-test.d.ts.map +1 -0
  93. package/dist/tests/time-range-test.js +169 -0
  94. package/dist/tests/time-range-test.js.map +1 -0
  95. package/dist/tools/delete-memory/cli-parser.d.ts +2 -0
  96. package/dist/tools/delete-memory/cli-parser.d.ts.map +1 -0
  97. package/dist/tools/delete-memory/cli-parser.js +13 -0
  98. package/dist/tools/delete-memory/cli-parser.js.map +1 -0
  99. package/dist/tools/delete-memory/executor.d.ts +13 -0
  100. package/dist/tools/delete-memory/executor.d.ts.map +1 -0
  101. package/dist/tools/delete-memory/executor.js +40 -0
  102. package/dist/tools/delete-memory/executor.js.map +1 -0
  103. package/dist/tools/delete-memory/index.d.ts +3 -0
  104. package/dist/tools/delete-memory/index.d.ts.map +1 -0
  105. package/dist/tools/delete-memory/index.js +24 -0
  106. package/dist/tools/delete-memory/index.js.map +1 -0
  107. package/dist/tools/export-memory/cli-parser.d.ts +2 -0
  108. package/dist/tools/export-memory/cli-parser.d.ts.map +1 -0
  109. package/dist/tools/export-memory/cli-parser.js +34 -0
  110. package/dist/tools/export-memory/cli-parser.js.map +1 -0
  111. package/dist/tools/export-memory/executor.d.ts +10 -0
  112. package/dist/tools/export-memory/executor.d.ts.map +1 -0
  113. package/dist/tools/export-memory/executor.js +41 -0
  114. package/dist/tools/export-memory/executor.js.map +1 -0
  115. package/dist/tools/export-memory/index.d.ts +4 -0
  116. package/dist/tools/export-memory/index.d.ts.map +1 -0
  117. package/dist/tools/export-memory/index.js +99 -0
  118. package/dist/tools/export-memory/index.js.map +1 -0
  119. package/dist/tools/import-memory/cli-parser.d.ts +2 -0
  120. package/dist/tools/import-memory/cli-parser.d.ts.map +1 -0
  121. package/dist/tools/import-memory/cli-parser.js +25 -0
  122. package/dist/tools/import-memory/cli-parser.js.map +1 -0
  123. package/dist/tools/import-memory/executor.d.ts +8 -0
  124. package/dist/tools/import-memory/executor.d.ts.map +1 -0
  125. package/dist/tools/import-memory/executor.js +31 -0
  126. package/dist/tools/import-memory/executor.js.map +1 -0
  127. package/dist/tools/import-memory/index.d.ts +4 -0
  128. package/dist/tools/import-memory/index.d.ts.map +1 -0
  129. package/dist/tools/import-memory/index.js +70 -0
  130. package/dist/tools/import-memory/index.js.map +1 -0
  131. package/dist/tools/index.d.ts +14 -0
  132. package/dist/tools/index.d.ts.map +1 -0
  133. package/dist/tools/index.js +48 -0
  134. package/dist/tools/index.js.map +1 -0
  135. package/dist/tools/memory-graphql/cli-parser.d.ts +6 -0
  136. package/dist/tools/memory-graphql/cli-parser.d.ts.map +1 -0
  137. package/dist/tools/memory-graphql/cli-parser.js +24 -0
  138. package/dist/tools/memory-graphql/cli-parser.js.map +1 -0
  139. package/dist/tools/memory-graphql/executor.d.ts +18 -0
  140. package/dist/tools/memory-graphql/executor.d.ts.map +1 -0
  141. package/dist/tools/memory-graphql/executor.js +53 -0
  142. package/dist/tools/memory-graphql/executor.js.map +1 -0
  143. package/dist/tools/memory-graphql/index.d.ts +3 -0
  144. package/dist/tools/memory-graphql/index.d.ts.map +1 -0
  145. package/dist/tools/memory-graphql/index.js +73 -0
  146. package/dist/tools/memory-graphql/index.js.map +1 -0
  147. package/dist/tools/memory-stats/cli-parser.d.ts +2 -0
  148. package/dist/tools/memory-stats/cli-parser.d.ts.map +1 -0
  149. package/dist/tools/memory-stats/cli-parser.js +8 -0
  150. package/dist/tools/memory-stats/cli-parser.js.map +1 -0
  151. package/dist/tools/memory-stats/executor.d.ts +4 -0
  152. package/dist/tools/memory-stats/executor.d.ts.map +1 -0
  153. package/dist/tools/memory-stats/executor.js +4 -0
  154. package/dist/tools/memory-stats/executor.js.map +1 -0
  155. package/dist/tools/memory-stats/index.d.ts +3 -0
  156. package/dist/tools/memory-stats/index.d.ts.map +1 -0
  157. package/dist/tools/memory-stats/index.js +15 -0
  158. package/dist/tools/memory-stats/index.js.map +1 -0
  159. package/dist/tools/search-memory/cli-parser.d.ts +2 -0
  160. package/dist/tools/search-memory/cli-parser.d.ts.map +1 -0
  161. package/dist/tools/search-memory/cli-parser.js +56 -0
  162. package/dist/tools/search-memory/cli-parser.js.map +1 -0
  163. package/dist/tools/search-memory/executor.d.ts +36 -0
  164. package/dist/tools/search-memory/executor.d.ts.map +1 -0
  165. package/dist/tools/search-memory/executor.js +83 -0
  166. package/dist/tools/search-memory/executor.js.map +1 -0
  167. package/dist/tools/search-memory/index.d.ts +3 -0
  168. package/dist/tools/search-memory/index.d.ts.map +1 -0
  169. package/dist/tools/search-memory/index.js +89 -0
  170. package/dist/tools/search-memory/index.js.map +1 -0
  171. package/dist/tools/store-memory/cli-parser.d.ts +2 -0
  172. package/dist/tools/store-memory/cli-parser.d.ts.map +1 -0
  173. package/dist/tools/store-memory/cli-parser.js +21 -0
  174. package/dist/tools/store-memory/cli-parser.js.map +1 -0
  175. package/dist/tools/store-memory/executor.d.ts +16 -0
  176. package/dist/tools/store-memory/executor.d.ts.map +1 -0
  177. package/dist/tools/store-memory/executor.js +100 -0
  178. package/dist/tools/store-memory/executor.js.map +1 -0
  179. package/dist/tools/store-memory/index.d.ts +3 -0
  180. package/dist/tools/store-memory/index.d.ts.map +1 -0
  181. package/dist/tools/store-memory/index.js +68 -0
  182. package/dist/tools/store-memory/index.js.map +1 -0
  183. package/dist/tools/sync-memory/cli-parser.d.ts +1 -0
  184. package/dist/tools/sync-memory/cli-parser.d.ts.map +1 -0
  185. package/dist/tools/sync-memory/cli-parser.js +2 -0
  186. package/dist/tools/sync-memory/cli-parser.js.map +1 -0
  187. package/dist/tools/sync-memory/executor.d.ts +1 -0
  188. package/dist/tools/sync-memory/executor.d.ts.map +1 -0
  189. package/dist/tools/sync-memory/executor.js +2 -0
  190. package/dist/tools/sync-memory/executor.js.map +1 -0
  191. package/dist/tools/sync-memory/index.d.ts +1 -0
  192. package/dist/tools/sync-memory/index.d.ts.map +1 -0
  193. package/dist/tools/sync-memory/index.js +2 -0
  194. package/dist/tools/sync-memory/index.js.map +1 -0
  195. package/dist/tools/update-memory/cli-parser.d.ts +2 -0
  196. package/dist/tools/update-memory/cli-parser.d.ts.map +1 -0
  197. package/dist/tools/update-memory/cli-parser.js +17 -0
  198. package/dist/tools/update-memory/cli-parser.js.map +1 -0
  199. package/dist/tools/update-memory/executor.d.ts +16 -0
  200. package/dist/tools/update-memory/executor.d.ts.map +1 -0
  201. package/dist/tools/update-memory/executor.js +59 -0
  202. package/dist/tools/update-memory/executor.js.map +1 -0
  203. package/dist/tools/update-memory/index.d.ts +3 -0
  204. package/dist/tools/update-memory/index.d.ts.map +1 -0
  205. package/dist/tools/update-memory/index.js +30 -0
  206. package/dist/tools/update-memory/index.js.map +1 -0
  207. package/dist/transports/streamable-http.d.ts +38 -0
  208. package/dist/transports/streamable-http.d.ts.map +1 -0
  209. package/dist/transports/streamable-http.js +209 -0
  210. package/dist/transports/streamable-http.js.map +1 -0
  211. package/dist/types/tools.d.ts +79 -0
  212. package/dist/types/tools.d.ts.map +1 -0
  213. package/dist/types/tools.js +3 -0
  214. package/dist/types/tools.js.map +1 -0
  215. package/dist/utils/cli-parser.d.ts +12 -0
  216. package/dist/utils/cli-parser.d.ts.map +1 -0
  217. package/dist/utils/cli-parser.js +43 -0
  218. package/dist/utils/cli-parser.js.map +1 -0
  219. package/dist/utils/config.d.ts +95 -0
  220. package/dist/utils/config.d.ts.map +1 -0
  221. package/dist/utils/config.js +176 -0
  222. package/dist/utils/config.js.map +1 -0
  223. package/dist/utils/db-integrity-check.d.ts +22 -0
  224. package/dist/utils/db-integrity-check.d.ts.map +1 -0
  225. package/dist/utils/db-integrity-check.js +69 -0
  226. package/dist/utils/db-integrity-check.js.map +1 -0
  227. package/dist/utils/debug.d.ts +25 -0
  228. package/dist/utils/debug.d.ts.map +1 -0
  229. package/dist/utils/debug.js +67 -0
  230. package/dist/utils/debug.js.map +1 -0
  231. package/dist/utils/help-generator.d.ts +18 -0
  232. package/dist/utils/help-generator.d.ts.map +1 -0
  233. package/dist/utils/help-generator.js +81 -0
  234. package/dist/utils/help-generator.js.map +1 -0
  235. package/dist/utils/json-parser.d.ts +12 -0
  236. package/dist/utils/json-parser.d.ts.map +1 -0
  237. package/dist/utils/json-parser.js +52 -0
  238. package/dist/utils/json-parser.js.map +1 -0
  239. package/dist/utils/mcp-config.d.ts +12 -0
  240. package/dist/utils/mcp-config.d.ts.map +1 -0
  241. package/dist/utils/mcp-config.js +64 -0
  242. package/dist/utils/mcp-config.js.map +1 -0
  243. package/dist/web-server.d.ts +3 -0
  244. package/dist/web-server.d.ts.map +1 -0
  245. package/dist/web-server.js +265 -0
  246. package/dist/web-server.js.map +1 -0
  247. 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,2 @@
1
+ export declare function parseCliArgs(args: string[]): any;
2
+ //# sourceMappingURL=cli-parser.d.ts.map
@@ -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,3 @@
1
+ import type { Tool } from '../../types/tools.js';
2
+ export declare const deleteMemoryTool: Tool;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export declare function parseCliArgs(args: string[]): any;
2
+ //# sourceMappingURL=cli-parser.d.ts.map
@@ -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,4 @@
1
+ import type { Tool } from '../../types/tools.js';
2
+ export declare const exportMemoryTool: Tool;
3
+ export default exportMemoryTool;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export declare function parseCliArgs(args: string[]): any;
2
+ //# sourceMappingURL=cli-parser.d.ts.map
@@ -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,4 @@
1
+ import type { Tool } from '../../types/tools.js';
2
+ export declare const importMemoryTool: Tool;
3
+ export default importMemoryTool;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}