@danielsimonjr/memoryjs 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +266 -0
- package/dist/core/EntityManager.d.ts +268 -0
- package/dist/core/EntityManager.d.ts.map +1 -0
- package/dist/core/EntityManager.js +512 -0
- package/dist/core/EntityManager.js.map +1 -0
- package/dist/core/GraphEventEmitter.d.ts +202 -0
- package/dist/core/GraphEventEmitter.d.ts.map +1 -0
- package/dist/core/GraphEventEmitter.js +347 -0
- package/dist/core/GraphEventEmitter.js.map +1 -0
- package/dist/core/GraphStorage.d.ts +395 -0
- package/dist/core/GraphStorage.d.ts.map +1 -0
- package/dist/core/GraphStorage.js +786 -0
- package/dist/core/GraphStorage.js.map +1 -0
- package/dist/core/GraphTraversal.d.ts +141 -0
- package/dist/core/GraphTraversal.d.ts.map +1 -0
- package/dist/core/GraphTraversal.js +574 -0
- package/dist/core/GraphTraversal.js.map +1 -0
- package/dist/core/HierarchyManager.d.ts +111 -0
- package/dist/core/HierarchyManager.d.ts.map +1 -0
- package/dist/core/HierarchyManager.js +225 -0
- package/dist/core/HierarchyManager.js.map +1 -0
- package/dist/core/ManagerContext.d.ts +76 -0
- package/dist/core/ManagerContext.d.ts.map +1 -0
- package/dist/core/ManagerContext.js +129 -0
- package/dist/core/ManagerContext.js.map +1 -0
- package/dist/core/ObservationManager.d.ts +85 -0
- package/dist/core/ObservationManager.d.ts.map +1 -0
- package/dist/core/ObservationManager.js +124 -0
- package/dist/core/ObservationManager.js.map +1 -0
- package/dist/core/RelationManager.d.ts +131 -0
- package/dist/core/RelationManager.d.ts.map +1 -0
- package/dist/core/RelationManager.js +212 -0
- package/dist/core/RelationManager.js.map +1 -0
- package/dist/core/SQLiteStorage.d.ts +354 -0
- package/dist/core/SQLiteStorage.d.ts.map +1 -0
- package/dist/core/SQLiteStorage.js +919 -0
- package/dist/core/SQLiteStorage.js.map +1 -0
- package/dist/core/StorageFactory.d.ts +45 -0
- package/dist/core/StorageFactory.d.ts.map +1 -0
- package/dist/core/StorageFactory.js +65 -0
- package/dist/core/StorageFactory.js.map +1 -0
- package/dist/core/TransactionManager.d.ts +464 -0
- package/dist/core/TransactionManager.d.ts.map +1 -0
- package/dist/core/TransactionManager.js +869 -0
- package/dist/core/TransactionManager.js.map +1 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +20 -0
- package/dist/core/index.js.map +1 -0
- package/dist/features/AnalyticsManager.d.ts +44 -0
- package/dist/features/AnalyticsManager.d.ts.map +1 -0
- package/dist/features/AnalyticsManager.js +224 -0
- package/dist/features/AnalyticsManager.js.map +1 -0
- package/dist/features/ArchiveManager.d.ts +133 -0
- package/dist/features/ArchiveManager.d.ts.map +1 -0
- package/dist/features/ArchiveManager.js +282 -0
- package/dist/features/ArchiveManager.js.map +1 -0
- package/dist/features/CompressionManager.d.ts +119 -0
- package/dist/features/CompressionManager.d.ts.map +1 -0
- package/dist/features/CompressionManager.js +470 -0
- package/dist/features/CompressionManager.js.map +1 -0
- package/dist/features/IOManager.d.ts +225 -0
- package/dist/features/IOManager.d.ts.map +1 -0
- package/dist/features/IOManager.js +1093 -0
- package/dist/features/IOManager.js.map +1 -0
- package/dist/features/KeywordExtractor.d.ts +61 -0
- package/dist/features/KeywordExtractor.d.ts.map +1 -0
- package/dist/features/KeywordExtractor.js +127 -0
- package/dist/features/KeywordExtractor.js.map +1 -0
- package/dist/features/ObservationNormalizer.d.ts +90 -0
- package/dist/features/ObservationNormalizer.d.ts.map +1 -0
- package/dist/features/ObservationNormalizer.js +194 -0
- package/dist/features/ObservationNormalizer.js.map +1 -0
- package/dist/features/StreamingExporter.d.ts +128 -0
- package/dist/features/StreamingExporter.d.ts.map +1 -0
- package/dist/features/StreamingExporter.js +212 -0
- package/dist/features/StreamingExporter.js.map +1 -0
- package/dist/features/TagManager.d.ts +147 -0
- package/dist/features/TagManager.d.ts.map +1 -0
- package/dist/features/TagManager.js +211 -0
- package/dist/features/TagManager.js.map +1 -0
- package/dist/features/index.d.ts +14 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +15 -0
- package/dist/features/index.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/search/BM25Search.d.ts +148 -0
- package/dist/search/BM25Search.d.ts.map +1 -0
- package/dist/search/BM25Search.js +340 -0
- package/dist/search/BM25Search.js.map +1 -0
- package/dist/search/BasicSearch.d.ts +51 -0
- package/dist/search/BasicSearch.d.ts.map +1 -0
- package/dist/search/BasicSearch.js +138 -0
- package/dist/search/BasicSearch.js.map +1 -0
- package/dist/search/BooleanSearch.d.ts +98 -0
- package/dist/search/BooleanSearch.d.ts.map +1 -0
- package/dist/search/BooleanSearch.js +431 -0
- package/dist/search/BooleanSearch.js.map +1 -0
- package/dist/search/EarlyTerminationManager.d.ts +140 -0
- package/dist/search/EarlyTerminationManager.d.ts.map +1 -0
- package/dist/search/EarlyTerminationManager.js +280 -0
- package/dist/search/EarlyTerminationManager.js.map +1 -0
- package/dist/search/EmbeddingCache.d.ts +175 -0
- package/dist/search/EmbeddingCache.d.ts.map +1 -0
- package/dist/search/EmbeddingCache.js +247 -0
- package/dist/search/EmbeddingCache.js.map +1 -0
- package/dist/search/EmbeddingService.d.ts +277 -0
- package/dist/search/EmbeddingService.d.ts.map +1 -0
- package/dist/search/EmbeddingService.js +531 -0
- package/dist/search/EmbeddingService.js.map +1 -0
- package/dist/search/FuzzySearch.d.ts +118 -0
- package/dist/search/FuzzySearch.d.ts.map +1 -0
- package/dist/search/FuzzySearch.js +313 -0
- package/dist/search/FuzzySearch.js.map +1 -0
- package/dist/search/HybridScorer.d.ts +181 -0
- package/dist/search/HybridScorer.d.ts.map +1 -0
- package/dist/search/HybridScorer.js +258 -0
- package/dist/search/HybridScorer.js.map +1 -0
- package/dist/search/HybridSearchManager.d.ts +80 -0
- package/dist/search/HybridSearchManager.d.ts.map +1 -0
- package/dist/search/HybridSearchManager.js +188 -0
- package/dist/search/HybridSearchManager.js.map +1 -0
- package/dist/search/IncrementalIndexer.d.ts +201 -0
- package/dist/search/IncrementalIndexer.d.ts.map +1 -0
- package/dist/search/IncrementalIndexer.js +343 -0
- package/dist/search/IncrementalIndexer.js.map +1 -0
- package/dist/search/OptimizedInvertedIndex.d.ts +163 -0
- package/dist/search/OptimizedInvertedIndex.d.ts.map +1 -0
- package/dist/search/OptimizedInvertedIndex.js +359 -0
- package/dist/search/OptimizedInvertedIndex.js.map +1 -0
- package/dist/search/ParallelSearchExecutor.d.ts +172 -0
- package/dist/search/ParallelSearchExecutor.d.ts.map +1 -0
- package/dist/search/ParallelSearchExecutor.js +310 -0
- package/dist/search/ParallelSearchExecutor.js.map +1 -0
- package/dist/search/QuantizedVectorStore.d.ts +171 -0
- package/dist/search/QuantizedVectorStore.d.ts.map +1 -0
- package/dist/search/QuantizedVectorStore.js +308 -0
- package/dist/search/QuantizedVectorStore.js.map +1 -0
- package/dist/search/QueryAnalyzer.d.ts +76 -0
- package/dist/search/QueryAnalyzer.d.ts.map +1 -0
- package/dist/search/QueryAnalyzer.js +228 -0
- package/dist/search/QueryAnalyzer.js.map +1 -0
- package/dist/search/QueryCostEstimator.d.ts +244 -0
- package/dist/search/QueryCostEstimator.d.ts.map +1 -0
- package/dist/search/QueryCostEstimator.js +653 -0
- package/dist/search/QueryCostEstimator.js.map +1 -0
- package/dist/search/QueryPlanCache.d.ts +220 -0
- package/dist/search/QueryPlanCache.d.ts.map +1 -0
- package/dist/search/QueryPlanCache.js +380 -0
- package/dist/search/QueryPlanCache.js.map +1 -0
- package/dist/search/QueryPlanner.d.ts +58 -0
- package/dist/search/QueryPlanner.d.ts.map +1 -0
- package/dist/search/QueryPlanner.js +138 -0
- package/dist/search/QueryPlanner.js.map +1 -0
- package/dist/search/RankedSearch.d.ts +71 -0
- package/dist/search/RankedSearch.d.ts.map +1 -0
- package/dist/search/RankedSearch.js +239 -0
- package/dist/search/RankedSearch.js.map +1 -0
- package/dist/search/ReflectionManager.d.ts +120 -0
- package/dist/search/ReflectionManager.d.ts.map +1 -0
- package/dist/search/ReflectionManager.js +232 -0
- package/dist/search/ReflectionManager.js.map +1 -0
- package/dist/search/SavedSearchManager.d.ts +79 -0
- package/dist/search/SavedSearchManager.d.ts.map +1 -0
- package/dist/search/SavedSearchManager.js +147 -0
- package/dist/search/SavedSearchManager.js.map +1 -0
- package/dist/search/SearchFilterChain.d.ts +120 -0
- package/dist/search/SearchFilterChain.d.ts.map +1 -0
- package/dist/search/SearchFilterChain.js +186 -0
- package/dist/search/SearchFilterChain.js.map +1 -0
- package/dist/search/SearchManager.d.ts +326 -0
- package/dist/search/SearchManager.d.ts.map +1 -0
- package/dist/search/SearchManager.js +454 -0
- package/dist/search/SearchManager.js.map +1 -0
- package/dist/search/SearchSuggestions.d.ts +27 -0
- package/dist/search/SearchSuggestions.d.ts.map +1 -0
- package/dist/search/SearchSuggestions.js +58 -0
- package/dist/search/SearchSuggestions.js.map +1 -0
- package/dist/search/SemanticSearch.d.ts +149 -0
- package/dist/search/SemanticSearch.d.ts.map +1 -0
- package/dist/search/SemanticSearch.js +324 -0
- package/dist/search/SemanticSearch.js.map +1 -0
- package/dist/search/SymbolicSearch.d.ts +61 -0
- package/dist/search/SymbolicSearch.d.ts.map +1 -0
- package/dist/search/SymbolicSearch.js +164 -0
- package/dist/search/SymbolicSearch.js.map +1 -0
- package/dist/search/TFIDFEventSync.d.ts +85 -0
- package/dist/search/TFIDFEventSync.d.ts.map +1 -0
- package/dist/search/TFIDFEventSync.js +134 -0
- package/dist/search/TFIDFEventSync.js.map +1 -0
- package/dist/search/TFIDFIndexManager.d.ts +151 -0
- package/dist/search/TFIDFIndexManager.d.ts.map +1 -0
- package/dist/search/TFIDFIndexManager.js +433 -0
- package/dist/search/TFIDFIndexManager.js.map +1 -0
- package/dist/search/VectorStore.d.ts +235 -0
- package/dist/search/VectorStore.d.ts.map +1 -0
- package/dist/search/VectorStore.js +312 -0
- package/dist/search/VectorStore.js.map +1 -0
- package/dist/search/index.d.ts +35 -0
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +53 -0
- package/dist/search/index.js.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +13 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/types.d.ts +1811 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +10 -0
- package/dist/types/types.js.map +1 -0
- package/dist/utils/BatchProcessor.d.ts +271 -0
- package/dist/utils/BatchProcessor.d.ts.map +1 -0
- package/dist/utils/BatchProcessor.js +377 -0
- package/dist/utils/BatchProcessor.js.map +1 -0
- package/dist/utils/MemoryMonitor.d.ts +176 -0
- package/dist/utils/MemoryMonitor.d.ts.map +1 -0
- package/dist/utils/MemoryMonitor.js +306 -0
- package/dist/utils/MemoryMonitor.js.map +1 -0
- package/dist/utils/WorkerPoolManager.d.ts +233 -0
- package/dist/utils/WorkerPoolManager.d.ts.map +1 -0
- package/dist/utils/WorkerPoolManager.js +421 -0
- package/dist/utils/WorkerPoolManager.js.map +1 -0
- package/dist/utils/compressedCache.d.ts +221 -0
- package/dist/utils/compressedCache.d.ts.map +1 -0
- package/dist/utils/compressedCache.js +349 -0
- package/dist/utils/compressedCache.js.map +1 -0
- package/dist/utils/compressionUtil.d.ts +214 -0
- package/dist/utils/compressionUtil.d.ts.map +1 -0
- package/dist/utils/compressionUtil.js +248 -0
- package/dist/utils/compressionUtil.js.map +1 -0
- package/dist/utils/constants.d.ts +245 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +253 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/entityUtils.d.ts +379 -0
- package/dist/utils/entityUtils.d.ts.map +1 -0
- package/dist/utils/entityUtils.js +649 -0
- package/dist/utils/entityUtils.js.map +1 -0
- package/dist/utils/errors.d.ts +95 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +146 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/formatters.d.ts +145 -0
- package/dist/utils/formatters.d.ts.map +1 -0
- package/dist/utils/formatters.js +133 -0
- package/dist/utils/formatters.js.map +1 -0
- package/dist/utils/index.d.ts +26 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +88 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/indexes.d.ts +270 -0
- package/dist/utils/indexes.d.ts.map +1 -0
- package/dist/utils/indexes.js +527 -0
- package/dist/utils/indexes.js.map +1 -0
- package/dist/utils/logger.d.ts +31 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +41 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/operationUtils.d.ts +124 -0
- package/dist/utils/operationUtils.d.ts.map +1 -0
- package/dist/utils/operationUtils.js +176 -0
- package/dist/utils/operationUtils.js.map +1 -0
- package/dist/utils/parallelUtils.d.ts +76 -0
- package/dist/utils/parallelUtils.d.ts.map +1 -0
- package/dist/utils/parallelUtils.js +192 -0
- package/dist/utils/parallelUtils.js.map +1 -0
- package/dist/utils/schemas.d.ts +556 -0
- package/dist/utils/schemas.d.ts.map +1 -0
- package/dist/utils/schemas.js +485 -0
- package/dist/utils/schemas.js.map +1 -0
- package/dist/utils/searchAlgorithms.d.ts +99 -0
- package/dist/utils/searchAlgorithms.d.ts.map +1 -0
- package/dist/utils/searchAlgorithms.js +168 -0
- package/dist/utils/searchAlgorithms.js.map +1 -0
- package/dist/utils/searchCache.d.ts +108 -0
- package/dist/utils/searchCache.d.ts.map +1 -0
- package/dist/utils/searchCache.js +210 -0
- package/dist/utils/searchCache.js.map +1 -0
- package/dist/utils/taskScheduler.d.ts +294 -0
- package/dist/utils/taskScheduler.d.ts.map +1 -0
- package/dist/utils/taskScheduler.js +487 -0
- package/dist/utils/taskScheduler.js.map +1 -0
- package/dist/workers/index.d.ts +12 -0
- package/dist/workers/index.d.ts.map +1 -0
- package/dist/workers/index.js +10 -0
- package/dist/workers/index.js.map +1 -0
- package/dist/workers/levenshteinWorker.d.ts +60 -0
- package/dist/workers/levenshteinWorker.d.ts.map +1 -0
- package/dist/workers/levenshteinWorker.js +99 -0
- package/dist/workers/levenshteinWorker.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite Storage
|
|
3
|
+
*
|
|
4
|
+
* Handles storage operations for the knowledge graph using better-sqlite3 (native SQLite).
|
|
5
|
+
* Implements IGraphStorage interface for storage abstraction.
|
|
6
|
+
*
|
|
7
|
+
* Benefits over sql.js (WASM):
|
|
8
|
+
* - 3-10x faster than WASM-based SQLite
|
|
9
|
+
* - Native FTS5 full-text search support
|
|
10
|
+
* - ACID transactions with proper durability
|
|
11
|
+
* - Concurrent read access support
|
|
12
|
+
* - No memory overhead from WASM runtime
|
|
13
|
+
* - Direct disk I/O (no manual export/import)
|
|
14
|
+
*
|
|
15
|
+
* Features:
|
|
16
|
+
* - Built-in indexes for O(1) lookups
|
|
17
|
+
* - Referential integrity with ON DELETE CASCADE
|
|
18
|
+
* - FTS5 full-text search on entity names and observations
|
|
19
|
+
*
|
|
20
|
+
* @module core/SQLiteStorage
|
|
21
|
+
*/
|
|
22
|
+
import type { KnowledgeGraph, Entity, Relation, ReadonlyKnowledgeGraph, IGraphStorage, LowercaseData } from '../types/index.js';
|
|
23
|
+
/**
|
|
24
|
+
* SQLiteStorage manages persistence of the knowledge graph using native SQLite.
|
|
25
|
+
*
|
|
26
|
+
* Uses better-sqlite3 for native SQLite bindings with full FTS5 support,
|
|
27
|
+
* referential integrity, and proper ACID transactions.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const storage = new SQLiteStorage('/path/to/memory.db');
|
|
32
|
+
* await storage.ensureLoaded();
|
|
33
|
+
* const graph = await storage.loadGraph();
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare class SQLiteStorage implements IGraphStorage {
|
|
37
|
+
private dbFilePath;
|
|
38
|
+
/**
|
|
39
|
+
* Mutex for thread-safe access to storage operations.
|
|
40
|
+
* Prevents concurrent writes from corrupting the cache.
|
|
41
|
+
* Note: SQLite itself handles file-level locking, but we need
|
|
42
|
+
* to protect our in-memory cache and index operations.
|
|
43
|
+
*/
|
|
44
|
+
private mutex;
|
|
45
|
+
/**
|
|
46
|
+
* SQLite database instance.
|
|
47
|
+
*/
|
|
48
|
+
private db;
|
|
49
|
+
/**
|
|
50
|
+
* Whether the database has been initialized.
|
|
51
|
+
*/
|
|
52
|
+
private initialized;
|
|
53
|
+
/**
|
|
54
|
+
* In-memory cache for fast read operations.
|
|
55
|
+
* Synchronized with SQLite on writes.
|
|
56
|
+
*/
|
|
57
|
+
private cache;
|
|
58
|
+
/**
|
|
59
|
+
* O(1) entity lookup by name.
|
|
60
|
+
*/
|
|
61
|
+
private nameIndex;
|
|
62
|
+
/**
|
|
63
|
+
* O(1) entity lookup by type.
|
|
64
|
+
*/
|
|
65
|
+
private typeIndex;
|
|
66
|
+
/**
|
|
67
|
+
* Pre-computed lowercase data for search optimization.
|
|
68
|
+
*/
|
|
69
|
+
private lowercaseCache;
|
|
70
|
+
/**
|
|
71
|
+
* Pending changes counter for batching disk writes.
|
|
72
|
+
* Note: better-sqlite3 writes to disk immediately, but we track for API compatibility.
|
|
73
|
+
*/
|
|
74
|
+
private pendingChanges;
|
|
75
|
+
/**
|
|
76
|
+
* Phase 4 Sprint 1: Bidirectional relation cache for O(1) repeated lookups.
|
|
77
|
+
* Maps entity name -> all relations involving that entity (both incoming and outgoing).
|
|
78
|
+
*/
|
|
79
|
+
private bidirectionalRelationCache;
|
|
80
|
+
/**
|
|
81
|
+
* Create a new SQLiteStorage instance.
|
|
82
|
+
*
|
|
83
|
+
* @param dbFilePath - Absolute path to the SQLite database file
|
|
84
|
+
*/
|
|
85
|
+
constructor(dbFilePath: string);
|
|
86
|
+
/**
|
|
87
|
+
* Initialize the database connection and schema.
|
|
88
|
+
*/
|
|
89
|
+
private initialize;
|
|
90
|
+
/**
|
|
91
|
+
* Create database tables, indexes, and FTS5 virtual table.
|
|
92
|
+
*/
|
|
93
|
+
private createTables;
|
|
94
|
+
/**
|
|
95
|
+
* Load all data from SQLite into memory cache.
|
|
96
|
+
*/
|
|
97
|
+
private loadCache;
|
|
98
|
+
/**
|
|
99
|
+
* Convert a database row to an Entity object.
|
|
100
|
+
*/
|
|
101
|
+
private rowToEntity;
|
|
102
|
+
/**
|
|
103
|
+
* Convert a database row to a Relation object.
|
|
104
|
+
*/
|
|
105
|
+
private rowToRelation;
|
|
106
|
+
/**
|
|
107
|
+
* Update lowercase cache for an entity.
|
|
108
|
+
*/
|
|
109
|
+
private updateLowercaseCache;
|
|
110
|
+
/**
|
|
111
|
+
* Load the knowledge graph (read-only access).
|
|
112
|
+
*
|
|
113
|
+
* @returns Promise resolving to read-only knowledge graph reference
|
|
114
|
+
*/
|
|
115
|
+
loadGraph(): Promise<ReadonlyKnowledgeGraph>;
|
|
116
|
+
/**
|
|
117
|
+
* Get a mutable copy of the graph for write operations.
|
|
118
|
+
*
|
|
119
|
+
* @returns Promise resolving to mutable knowledge graph copy
|
|
120
|
+
*/
|
|
121
|
+
getGraphForMutation(): Promise<KnowledgeGraph>;
|
|
122
|
+
/**
|
|
123
|
+
* Ensure the storage is loaded/initialized.
|
|
124
|
+
*
|
|
125
|
+
* @returns Promise resolving when ready
|
|
126
|
+
*/
|
|
127
|
+
ensureLoaded(): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Phase 4 Sprint 1: Invalidate bidirectional relation cache for an entity.
|
|
130
|
+
*
|
|
131
|
+
* @param entityName - Entity name to invalidate cache for
|
|
132
|
+
*/
|
|
133
|
+
private invalidateBidirectionalCache;
|
|
134
|
+
/**
|
|
135
|
+
* Phase 4 Sprint 1: Clear the entire bidirectional relation cache.
|
|
136
|
+
*/
|
|
137
|
+
private clearBidirectionalCache;
|
|
138
|
+
/**
|
|
139
|
+
* Save the entire knowledge graph to storage.
|
|
140
|
+
*
|
|
141
|
+
* THREAD-SAFE: Uses mutex to prevent concurrent write operations.
|
|
142
|
+
*
|
|
143
|
+
* @param graph - The knowledge graph to save
|
|
144
|
+
* @returns Promise resolving when save is complete
|
|
145
|
+
*/
|
|
146
|
+
saveGraph(graph: KnowledgeGraph): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Append a single entity to storage.
|
|
149
|
+
*
|
|
150
|
+
* THREAD-SAFE: Uses mutex to prevent concurrent write operations.
|
|
151
|
+
*
|
|
152
|
+
* @param entity - The entity to append
|
|
153
|
+
* @returns Promise resolving when append is complete
|
|
154
|
+
*/
|
|
155
|
+
appendEntity(entity: Entity): Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* Append a single relation to storage.
|
|
158
|
+
*
|
|
159
|
+
* THREAD-SAFE: Uses mutex to prevent concurrent write operations.
|
|
160
|
+
*
|
|
161
|
+
* @param relation - The relation to append
|
|
162
|
+
* @returns Promise resolving when append is complete
|
|
163
|
+
*/
|
|
164
|
+
appendRelation(relation: Relation): Promise<void>;
|
|
165
|
+
/**
|
|
166
|
+
* Update an entity in storage.
|
|
167
|
+
*
|
|
168
|
+
* THREAD-SAFE: Uses mutex to prevent concurrent write operations.
|
|
169
|
+
*
|
|
170
|
+
* @param entityName - Name of the entity to update
|
|
171
|
+
* @param updates - Partial entity updates to apply
|
|
172
|
+
* @returns Promise resolving to true if found and updated
|
|
173
|
+
*/
|
|
174
|
+
updateEntity(entityName: string, updates: Partial<Entity>): Promise<boolean>;
|
|
175
|
+
/**
|
|
176
|
+
* Compact the storage (runs VACUUM to reclaim space).
|
|
177
|
+
*
|
|
178
|
+
* THREAD-SAFE: Uses mutex to prevent concurrent operations.
|
|
179
|
+
*
|
|
180
|
+
* @returns Promise resolving when compaction is complete
|
|
181
|
+
*/
|
|
182
|
+
compact(): Promise<void>;
|
|
183
|
+
/**
|
|
184
|
+
* Clear any in-memory cache.
|
|
185
|
+
*/
|
|
186
|
+
clearCache(): void;
|
|
187
|
+
/**
|
|
188
|
+
* Get an entity by name in O(1) time.
|
|
189
|
+
*
|
|
190
|
+
* OPTIMIZED: Uses NameIndex for constant-time lookup.
|
|
191
|
+
*
|
|
192
|
+
* @param name - Entity name to look up
|
|
193
|
+
* @returns Entity if found, undefined otherwise
|
|
194
|
+
*/
|
|
195
|
+
getEntityByName(name: string): Entity | undefined;
|
|
196
|
+
/**
|
|
197
|
+
* Check if an entity exists by name in O(1) time.
|
|
198
|
+
*
|
|
199
|
+
* @param name - Entity name to check
|
|
200
|
+
* @returns True if entity exists
|
|
201
|
+
*/
|
|
202
|
+
hasEntity(name: string): boolean;
|
|
203
|
+
/**
|
|
204
|
+
* Get all entities of a given type in O(1) time.
|
|
205
|
+
*
|
|
206
|
+
* OPTIMIZED: Uses TypeIndex for constant-time lookup of entity names,
|
|
207
|
+
* then uses NameIndex for O(1) entity retrieval.
|
|
208
|
+
*
|
|
209
|
+
* @param entityType - Entity type to filter by (case-insensitive)
|
|
210
|
+
* @returns Array of entities with the given type
|
|
211
|
+
*/
|
|
212
|
+
getEntitiesByType(entityType: string): Entity[];
|
|
213
|
+
/**
|
|
214
|
+
* Get all unique entity types in the graph.
|
|
215
|
+
*
|
|
216
|
+
* @returns Array of unique entity types (lowercase)
|
|
217
|
+
*/
|
|
218
|
+
getEntityTypes(): string[];
|
|
219
|
+
/**
|
|
220
|
+
* Get pre-computed lowercase data for an entity.
|
|
221
|
+
*
|
|
222
|
+
* @param entityName - Entity name to get lowercase data for
|
|
223
|
+
* @returns LowercaseData if entity exists, undefined otherwise
|
|
224
|
+
*/
|
|
225
|
+
getLowercased(entityName: string): LowercaseData | undefined;
|
|
226
|
+
/**
|
|
227
|
+
* Perform full-text search using FTS5.
|
|
228
|
+
*
|
|
229
|
+
* @param query - Search query (supports FTS5 query syntax)
|
|
230
|
+
* @returns Array of matching entity names with relevance scores
|
|
231
|
+
*/
|
|
232
|
+
fullTextSearch(query: string): Array<{
|
|
233
|
+
name: string;
|
|
234
|
+
score: number;
|
|
235
|
+
}>;
|
|
236
|
+
/**
|
|
237
|
+
* Perform a simple text search (LIKE-based, case-insensitive).
|
|
238
|
+
*
|
|
239
|
+
* @param searchTerm - Term to search for
|
|
240
|
+
* @returns Array of matching entity names
|
|
241
|
+
*/
|
|
242
|
+
simpleSearch(searchTerm: string): string[];
|
|
243
|
+
/**
|
|
244
|
+
* Get the storage path/location.
|
|
245
|
+
*
|
|
246
|
+
* @returns The storage path
|
|
247
|
+
*/
|
|
248
|
+
getFilePath(): string;
|
|
249
|
+
/**
|
|
250
|
+
* Get the current pending changes count.
|
|
251
|
+
*
|
|
252
|
+
* @returns Number of pending changes since last reset
|
|
253
|
+
*/
|
|
254
|
+
getPendingAppends(): number;
|
|
255
|
+
/**
|
|
256
|
+
* Force persistence to disk (no-op for better-sqlite3 as it writes immediately).
|
|
257
|
+
*
|
|
258
|
+
* @returns Promise resolving when persistence is complete
|
|
259
|
+
*/
|
|
260
|
+
flush(): Promise<void>;
|
|
261
|
+
/**
|
|
262
|
+
* Close the database connection.
|
|
263
|
+
*/
|
|
264
|
+
close(): void;
|
|
265
|
+
/**
|
|
266
|
+
* Get all relations where the entity is the source (outgoing relations).
|
|
267
|
+
*
|
|
268
|
+
* OPTIMIZED: Uses SQLite index on fromEntity for O(log n) lookup.
|
|
269
|
+
*
|
|
270
|
+
* @param entityName - Entity name to look up outgoing relations for
|
|
271
|
+
* @returns Array of relations where entity is the source
|
|
272
|
+
*/
|
|
273
|
+
getRelationsFrom(entityName: string): Relation[];
|
|
274
|
+
/**
|
|
275
|
+
* Get all relations where the entity is the target (incoming relations).
|
|
276
|
+
*
|
|
277
|
+
* OPTIMIZED: Uses SQLite index on toEntity for O(log n) lookup.
|
|
278
|
+
*
|
|
279
|
+
* @param entityName - Entity name to look up incoming relations for
|
|
280
|
+
* @returns Array of relations where entity is the target
|
|
281
|
+
*/
|
|
282
|
+
getRelationsTo(entityName: string): Relation[];
|
|
283
|
+
/**
|
|
284
|
+
* Get all relations involving the entity (both incoming and outgoing).
|
|
285
|
+
*
|
|
286
|
+
* OPTIMIZED: Phase 4 Sprint 1 - Uses bidirectional cache for O(1) repeated lookups.
|
|
287
|
+
*
|
|
288
|
+
* @param entityName - Entity name to look up all relations for
|
|
289
|
+
* @returns Array of all relations involving the entity
|
|
290
|
+
*/
|
|
291
|
+
getRelationsFor(entityName: string): Relation[];
|
|
292
|
+
/**
|
|
293
|
+
* Check if an entity has any relations.
|
|
294
|
+
*
|
|
295
|
+
* @param entityName - Entity name to check
|
|
296
|
+
* @returns True if entity has any relations
|
|
297
|
+
*/
|
|
298
|
+
hasRelations(entityName: string): boolean;
|
|
299
|
+
/**
|
|
300
|
+
* Phase 4 Sprint 11: Ensure embeddings table exists.
|
|
301
|
+
*
|
|
302
|
+
* Creates the embeddings table if it doesn't exist.
|
|
303
|
+
* Separate table from entities to avoid schema migration complexity.
|
|
304
|
+
*/
|
|
305
|
+
private ensureEmbeddingsTable;
|
|
306
|
+
/**
|
|
307
|
+
* Phase 4 Sprint 11: Store an embedding for an entity.
|
|
308
|
+
*
|
|
309
|
+
* @param entityName - Name of the entity
|
|
310
|
+
* @param vector - Embedding vector
|
|
311
|
+
* @param model - Model name used for the embedding
|
|
312
|
+
*/
|
|
313
|
+
storeEmbedding(entityName: string, vector: number[], model: string): void;
|
|
314
|
+
/**
|
|
315
|
+
* Phase 4 Sprint 11: Get an embedding for an entity.
|
|
316
|
+
*
|
|
317
|
+
* @param entityName - Name of the entity
|
|
318
|
+
* @returns Embedding vector if found, null otherwise
|
|
319
|
+
*/
|
|
320
|
+
getEmbedding(entityName: string): number[] | null;
|
|
321
|
+
/**
|
|
322
|
+
* Phase 4 Sprint 11: Load all embeddings from storage.
|
|
323
|
+
*
|
|
324
|
+
* @returns Array of [entityName, vector] pairs
|
|
325
|
+
*/
|
|
326
|
+
loadAllEmbeddings(): Promise<[string, number[]][]>;
|
|
327
|
+
/**
|
|
328
|
+
* Phase 4 Sprint 11: Remove an embedding for an entity.
|
|
329
|
+
*
|
|
330
|
+
* @param entityName - Name of the entity
|
|
331
|
+
*/
|
|
332
|
+
removeEmbedding(entityName: string): void;
|
|
333
|
+
/**
|
|
334
|
+
* Phase 4 Sprint 11: Clear all embeddings from storage.
|
|
335
|
+
*/
|
|
336
|
+
clearAllEmbeddings(): void;
|
|
337
|
+
/**
|
|
338
|
+
* Phase 4 Sprint 11: Check if an entity has an embedding.
|
|
339
|
+
*
|
|
340
|
+
* @param entityName - Name of the entity
|
|
341
|
+
* @returns True if embedding exists
|
|
342
|
+
*/
|
|
343
|
+
hasEmbedding(entityName: string): boolean;
|
|
344
|
+
/**
|
|
345
|
+
* Phase 4 Sprint 11: Get embedding statistics.
|
|
346
|
+
*
|
|
347
|
+
* @returns Stats about stored embeddings
|
|
348
|
+
*/
|
|
349
|
+
getEmbeddingStats(): {
|
|
350
|
+
count: number;
|
|
351
|
+
models: string[];
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=SQLiteStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SQLiteStorage.d.ts","sourceRoot":"","sources":["../../src/core/SQLiteStorage.ts"],"names":[],"mappings":"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"}
|