@danielsimonjr/memory-mcp 12.5.2 → 12.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/README.md +158 -14
  2. package/dist/core/EntityManager.d.ts +263 -0
  3. package/dist/core/EntityManager.d.ts.map +1 -0
  4. package/dist/core/EntityManager.js +478 -0
  5. package/dist/core/GraphStorage.d.ts +344 -0
  6. package/dist/core/GraphStorage.d.ts.map +1 -0
  7. package/dist/core/GraphStorage.js +708 -0
  8. package/dist/core/GraphTraversal.d.ts +136 -0
  9. package/dist/core/GraphTraversal.d.ts.map +1 -0
  10. package/dist/core/GraphTraversal.js +556 -0
  11. package/dist/core/HierarchyManager.d.ts +111 -0
  12. package/dist/core/HierarchyManager.d.ts.map +1 -0
  13. package/dist/core/HierarchyManager.js +224 -0
  14. package/dist/core/ManagerContext.d.ts +72 -0
  15. package/dist/core/ManagerContext.d.ts.map +1 -0
  16. package/dist/core/ManagerContext.js +118 -0
  17. package/dist/core/ObservationManager.d.ts +85 -0
  18. package/dist/core/ObservationManager.d.ts.map +1 -0
  19. package/dist/core/ObservationManager.js +123 -0
  20. package/dist/core/RelationManager.d.ts +131 -0
  21. package/dist/core/RelationManager.d.ts.map +1 -0
  22. package/dist/core/RelationManager.js +210 -0
  23. package/dist/core/SQLiteStorage.d.ts +354 -0
  24. package/dist/core/SQLiteStorage.d.ts.map +1 -0
  25. package/dist/core/SQLiteStorage.js +917 -0
  26. package/dist/core/StorageFactory.d.ts +45 -0
  27. package/dist/core/StorageFactory.d.ts.map +1 -0
  28. package/dist/core/StorageFactory.js +64 -0
  29. package/dist/core/TransactionManager.d.ts +259 -0
  30. package/dist/core/TransactionManager.d.ts.map +1 -0
  31. package/dist/core/TransactionManager.js +392 -0
  32. package/dist/core/index.d.ts +16 -0
  33. package/dist/core/index.d.ts.map +1 -0
  34. package/dist/core/index.js +17 -0
  35. package/dist/features/AnalyticsManager.d.ts +44 -0
  36. package/dist/features/AnalyticsManager.d.ts.map +1 -0
  37. package/dist/features/AnalyticsManager.js +223 -0
  38. package/dist/features/ArchiveManager.d.ts +121 -0
  39. package/dist/features/ArchiveManager.d.ts.map +1 -0
  40. package/dist/features/ArchiveManager.js +240 -0
  41. package/dist/features/CompressionManager.d.ts +109 -0
  42. package/dist/features/CompressionManager.d.ts.map +1 -0
  43. package/dist/features/CompressionManager.js +404 -0
  44. package/dist/features/IOManager.d.ts +221 -0
  45. package/dist/features/IOManager.d.ts.map +1 -0
  46. package/dist/features/IOManager.js +997 -0
  47. package/dist/features/StreamingExporter.d.ts +105 -0
  48. package/dist/features/StreamingExporter.d.ts.map +1 -0
  49. package/dist/features/StreamingExporter.js +150 -0
  50. package/dist/features/TagManager.d.ts +147 -0
  51. package/dist/features/TagManager.d.ts.map +1 -0
  52. package/dist/features/TagManager.js +210 -0
  53. package/dist/features/index.d.ts +12 -0
  54. package/dist/features/index.d.ts.map +1 -0
  55. package/dist/features/index.js +11 -0
  56. package/dist/index.js +8 -2
  57. package/dist/search/BasicSearch.d.ts +51 -0
  58. package/dist/search/BasicSearch.d.ts.map +1 -0
  59. package/dist/search/BasicSearch.js +137 -0
  60. package/dist/search/BooleanSearch.d.ts +98 -0
  61. package/dist/search/BooleanSearch.d.ts.map +1 -0
  62. package/dist/search/BooleanSearch.js +430 -0
  63. package/dist/search/EmbeddingService.d.ts +178 -0
  64. package/dist/search/EmbeddingService.d.ts.map +1 -0
  65. package/dist/search/EmbeddingService.js +358 -0
  66. package/dist/search/FuzzySearch.d.ts +118 -0
  67. package/dist/search/FuzzySearch.d.ts.map +1 -0
  68. package/dist/search/FuzzySearch.js +312 -0
  69. package/dist/search/RankedSearch.d.ts +71 -0
  70. package/dist/search/RankedSearch.d.ts.map +1 -0
  71. package/dist/search/RankedSearch.js +238 -0
  72. package/dist/search/SavedSearchManager.d.ts +79 -0
  73. package/dist/search/SavedSearchManager.d.ts.map +1 -0
  74. package/dist/search/SavedSearchManager.js +145 -0
  75. package/dist/search/SearchFilterChain.d.ts +120 -0
  76. package/dist/search/SearchFilterChain.d.ts.map +1 -0
  77. package/dist/search/SearchFilterChain.js +185 -0
  78. package/dist/search/SearchManager.d.ts +285 -0
  79. package/dist/search/SearchManager.d.ts.map +1 -0
  80. package/dist/search/SearchManager.js +338 -0
  81. package/dist/search/SearchSuggestions.d.ts +27 -0
  82. package/dist/search/SearchSuggestions.d.ts.map +1 -0
  83. package/dist/search/SearchSuggestions.js +57 -0
  84. package/dist/search/SemanticSearch.d.ts +146 -0
  85. package/dist/search/SemanticSearch.d.ts.map +1 -0
  86. package/dist/search/SemanticSearch.js +313 -0
  87. package/dist/search/TFIDFIndexManager.d.ts +63 -0
  88. package/dist/search/TFIDFIndexManager.d.ts.map +1 -0
  89. package/dist/search/TFIDFIndexManager.js +215 -0
  90. package/dist/search/VectorStore.d.ts +235 -0
  91. package/dist/search/VectorStore.d.ts.map +1 -0
  92. package/dist/search/VectorStore.js +311 -0
  93. package/dist/search/index.d.ts +18 -0
  94. package/dist/search/index.d.ts.map +1 -0
  95. package/dist/search/index.js +21 -0
  96. package/dist/server/MCPServer.d.ts.map +1 -1
  97. package/dist/server/toolDefinitions.d.ts +1 -1
  98. package/dist/server/toolDefinitions.d.ts.map +1 -1
  99. package/dist/server/toolDefinitions.js +254 -2
  100. package/dist/server/toolHandlers.d.ts.map +1 -1
  101. package/dist/server/toolHandlers.js +241 -25
  102. package/dist/types/index.d.ts +13 -0
  103. package/dist/types/index.d.ts.map +1 -0
  104. package/dist/types/index.js +12 -0
  105. package/dist/types/types.d.ts +1234 -0
  106. package/dist/types/types.d.ts.map +1 -0
  107. package/dist/types/types.js +9 -0
  108. package/dist/utils/compressedCache.d.ts +192 -0
  109. package/dist/utils/compressedCache.d.ts.map +1 -0
  110. package/dist/utils/compressedCache.js +309 -0
  111. package/dist/utils/compressionUtil.d.ts +214 -0
  112. package/dist/utils/compressionUtil.d.ts.map +1 -0
  113. package/dist/utils/compressionUtil.js +247 -0
  114. package/dist/utils/constants.d.ts +245 -0
  115. package/dist/utils/constants.d.ts.map +1 -0
  116. package/dist/utils/constants.js +252 -0
  117. package/dist/utils/entityUtils.d.ts +321 -0
  118. package/dist/utils/entityUtils.d.ts.map +1 -0
  119. package/dist/utils/entityUtils.js +538 -0
  120. package/dist/utils/errors.d.ts +77 -0
  121. package/dist/utils/errors.d.ts.map +1 -0
  122. package/dist/utils/errors.js +121 -0
  123. package/dist/utils/formatters.d.ts +145 -0
  124. package/dist/utils/formatters.d.ts.map +1 -0
  125. package/dist/utils/formatters.js +132 -0
  126. package/dist/utils/index.d.ts +22 -0
  127. package/dist/utils/index.d.ts.map +1 -0
  128. package/dist/utils/index.js +75 -0
  129. package/dist/utils/indexes.d.ts +270 -0
  130. package/dist/utils/indexes.d.ts.map +1 -0
  131. package/dist/utils/indexes.js +526 -0
  132. package/dist/utils/logger.d.ts +24 -0
  133. package/dist/utils/logger.d.ts.map +1 -0
  134. package/dist/utils/logger.js +33 -0
  135. package/dist/utils/parallelUtils.d.ts +72 -0
  136. package/dist/utils/parallelUtils.d.ts.map +1 -0
  137. package/dist/utils/parallelUtils.js +169 -0
  138. package/dist/utils/schemas.d.ts +374 -0
  139. package/dist/utils/schemas.d.ts.map +1 -0
  140. package/dist/utils/schemas.js +484 -0
  141. package/dist/utils/searchAlgorithms.d.ts +99 -0
  142. package/dist/utils/searchAlgorithms.d.ts.map +1 -0
  143. package/dist/utils/searchAlgorithms.js +167 -0
  144. package/dist/utils/searchCache.d.ts +108 -0
  145. package/dist/utils/searchCache.d.ts.map +1 -0
  146. package/dist/utils/searchCache.js +209 -0
  147. package/dist/utils/taskScheduler.d.ts +290 -0
  148. package/dist/utils/taskScheduler.d.ts.map +1 -0
  149. package/dist/utils/taskScheduler.js +466 -0
  150. package/dist/workers/WorkerPool.d.ts +81 -0
  151. package/dist/workers/WorkerPool.d.ts.map +1 -0
  152. package/dist/workers/WorkerPool.js +121 -0
  153. package/dist/workers/index.d.ts +12 -0
  154. package/dist/workers/index.d.ts.map +1 -0
  155. package/dist/workers/index.js +9 -0
  156. package/dist/workers/levenshteinWorker.d.ts +60 -0
  157. package/dist/workers/levenshteinWorker.d.ts.map +1 -0
  158. package/dist/workers/levenshteinWorker.js +98 -0
  159. package/package.json +7 -7
@@ -0,0 +1,221 @@
1
+ /**
2
+ * IO Manager
3
+ *
4
+ * Unified manager for import, export, and backup operations.
5
+ * Consolidates BackupManager, ExportManager, and ImportManager (Sprint 11.4).
6
+ *
7
+ * @module features/IOManager
8
+ */
9
+ import type { ReadonlyKnowledgeGraph, ImportResult, BackupOptions, BackupResult, RestoreResult, ExportOptions, ExportResult } from '../types/index.js';
10
+ import type { GraphStorage } from '../core/GraphStorage.js';
11
+ /**
12
+ * Supported export formats.
13
+ */
14
+ export type ExportFormat = 'json' | 'csv' | 'graphml' | 'gexf' | 'dot' | 'markdown' | 'mermaid';
15
+ /**
16
+ * Supported import formats.
17
+ */
18
+ export type ImportFormat = 'json' | 'csv' | 'graphml';
19
+ /**
20
+ * Merge strategies for handling existing entities during import.
21
+ */
22
+ export type MergeStrategy = 'replace' | 'skip' | 'merge' | 'fail';
23
+ /**
24
+ * Metadata stored with each backup.
25
+ * Extended with compression information for Phase 3 Sprint 2.
26
+ */
27
+ export interface BackupMetadata {
28
+ /** Timestamp when backup was created (ISO 8601) */
29
+ timestamp: string;
30
+ /** Number of entities in the backup */
31
+ entityCount: number;
32
+ /** Number of relations in the backup */
33
+ relationCount: number;
34
+ /** File size in bytes (compressed size if compressed) */
35
+ fileSize: number;
36
+ /** Optional description/reason for backup */
37
+ description?: string;
38
+ /** Whether the backup is compressed (default: true for new backups) */
39
+ compressed?: boolean;
40
+ /** Original size before compression in bytes */
41
+ originalSize?: number;
42
+ /** Compression ratio achieved (compressedSize / originalSize) */
43
+ compressionRatio?: number;
44
+ /** Compression format used */
45
+ compressionFormat?: 'brotli' | 'none';
46
+ }
47
+ /**
48
+ * Information about a backup file.
49
+ * Extended with compression details for Phase 3 Sprint 2.
50
+ */
51
+ export interface BackupInfo {
52
+ /** Backup file name */
53
+ fileName: string;
54
+ /** Full path to backup file */
55
+ filePath: string;
56
+ /** Backup metadata */
57
+ metadata: BackupMetadata;
58
+ /** Whether the backup is compressed */
59
+ compressed: boolean;
60
+ /** File size in bytes */
61
+ size: number;
62
+ }
63
+ /**
64
+ * Unified manager for import, export, and backup operations.
65
+ *
66
+ * Combines functionality from:
67
+ * - ExportManager: Graph export to various formats
68
+ * - ImportManager: Graph import from various formats
69
+ * - BackupManager: Point-in-time backup and restore
70
+ */
71
+ export declare class IOManager {
72
+ private storage;
73
+ private readonly backupDir;
74
+ constructor(storage: GraphStorage);
75
+ /**
76
+ * Export graph to specified format.
77
+ *
78
+ * @param graph - Knowledge graph to export
79
+ * @param format - Export format
80
+ * @returns Formatted export string
81
+ */
82
+ exportGraph(graph: ReadonlyKnowledgeGraph, format: ExportFormat): string;
83
+ /**
84
+ * Export graph with optional brotli compression.
85
+ *
86
+ * Compression is applied when:
87
+ * - `options.compress` is explicitly set to `true`
88
+ * - The exported content exceeds 100KB (auto-compress threshold)
89
+ *
90
+ * Compressed content is returned as base64-encoded string.
91
+ * Uncompressed content is returned as UTF-8 string.
92
+ *
93
+ * @param graph - Knowledge graph to export
94
+ * @param format - Export format
95
+ * @param options - Export options including compression settings
96
+ * @returns Export result with content and compression metadata
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * // Export with explicit compression
101
+ * const result = await manager.exportGraphWithCompression(graph, 'json', {
102
+ * compress: true,
103
+ * compressionQuality: 11
104
+ * });
105
+ *
106
+ * // Export with auto-compression for large graphs
107
+ * const result = await manager.exportGraphWithCompression(graph, 'json');
108
+ * // Compresses automatically if content > 100KB
109
+ * ```
110
+ */
111
+ exportGraphWithCompression(graph: ReadonlyKnowledgeGraph, format: ExportFormat, options?: ExportOptions): Promise<ExportResult>;
112
+ /**
113
+ * Stream export to a file for large graphs.
114
+ *
115
+ * Uses StreamingExporter to write entities and relations incrementally
116
+ * to avoid loading the entire export content into memory.
117
+ *
118
+ * @param format - Export format
119
+ * @param graph - Knowledge graph to export
120
+ * @param options - Export options with required outputPath
121
+ * @returns Export result with streaming metadata
122
+ * @private
123
+ */
124
+ private streamExport;
125
+ private exportAsJson;
126
+ private exportAsCsv;
127
+ private exportAsGraphML;
128
+ private exportAsGEXF;
129
+ private exportAsDOT;
130
+ private exportAsMarkdown;
131
+ private exportAsMermaid;
132
+ /**
133
+ * Import graph from formatted data.
134
+ *
135
+ * @param format - Import format
136
+ * @param data - Import data string
137
+ * @param mergeStrategy - How to handle conflicts
138
+ * @param dryRun - If true, preview changes without applying
139
+ * @returns Import result with statistics
140
+ */
141
+ importGraph(format: ImportFormat, data: string, mergeStrategy?: MergeStrategy, dryRun?: boolean): Promise<ImportResult>;
142
+ private parseJsonImport;
143
+ private parseCsvImport;
144
+ private parseGraphMLImport;
145
+ private mergeImportedGraph;
146
+ /**
147
+ * Ensure backup directory exists.
148
+ */
149
+ private ensureBackupDir;
150
+ /**
151
+ * Generate backup file name with timestamp.
152
+ * @param compressed - Whether the backup will be compressed (affects extension)
153
+ */
154
+ private generateBackupFileName;
155
+ /**
156
+ * Create a backup of the current knowledge graph.
157
+ *
158
+ * By default, backups are compressed with brotli for 50-70% space reduction.
159
+ * Use `options.compress = false` to create uncompressed backups.
160
+ *
161
+ * @param options - Backup options (compress, description) or legacy description string
162
+ * @returns Promise resolving to BackupResult with compression statistics
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * // Compressed backup (default)
167
+ * const result = await manager.createBackup({ description: 'Pre-migration backup' });
168
+ * console.log(`Compressed from ${result.originalSize} to ${result.compressedSize} bytes`);
169
+ *
170
+ * // Uncompressed backup
171
+ * const result = await manager.createBackup({ compress: false });
172
+ * ```
173
+ */
174
+ createBackup(options?: BackupOptions | string): Promise<BackupResult>;
175
+ /**
176
+ * List all available backups, sorted by timestamp (newest first).
177
+ *
178
+ * Detects both compressed (.jsonl.br) and uncompressed (.jsonl) backups.
179
+ *
180
+ * @returns Promise resolving to array of backup information with compression details
181
+ */
182
+ listBackups(): Promise<BackupInfo[]>;
183
+ /**
184
+ * Restore the knowledge graph from a backup file.
185
+ *
186
+ * Automatically detects and decompresses brotli-compressed backups (.br extension).
187
+ * Maintains backward compatibility with uncompressed backups.
188
+ *
189
+ * @param backupPath - Path to the backup file to restore from
190
+ * @returns Promise resolving to RestoreResult with restoration details
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * // Restore from compressed backup
195
+ * const result = await manager.restoreFromBackup('/path/to/backup.jsonl.br');
196
+ * console.log(`Restored ${result.entityCount} entities from compressed backup`);
197
+ *
198
+ * // Restore from uncompressed backup (legacy)
199
+ * const result = await manager.restoreFromBackup('/path/to/backup.jsonl');
200
+ * ```
201
+ */
202
+ restoreFromBackup(backupPath: string): Promise<RestoreResult>;
203
+ /**
204
+ * Delete a specific backup file.
205
+ *
206
+ * @param backupPath - Path to the backup file to delete
207
+ */
208
+ deleteBackup(backupPath: string): Promise<void>;
209
+ /**
210
+ * Clean old backups, keeping only the most recent N backups.
211
+ *
212
+ * @param keepCount - Number of recent backups to keep (default: 10)
213
+ * @returns Promise resolving to number of backups deleted
214
+ */
215
+ cleanOldBackups(keepCount?: number): Promise<number>;
216
+ /**
217
+ * Get the path to the backup directory.
218
+ */
219
+ getBackupDir(): string;
220
+ }
221
+ //# sourceMappingURL=IOManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IOManager.d.ts","sourceRoot":"","sources":["../../src/features/IOManager.ts"],"names":[],"mappings":"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"}