@danielsimonjr/memoryjs 1.0.0 → 1.2.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/README.md +385 -113
- package/README.md.backup-1768084780988 +266 -0
- package/dist/index.cjs +24156 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +16967 -0
- package/dist/index.d.ts +16963 -11
- package/dist/index.js +23887 -19
- package/dist/index.js.map +1 -1
- package/dist/workers/levenshteinWorker.cjs +102 -0
- package/dist/workers/levenshteinWorker.cjs.map +1 -0
- package/dist/workers/levenshteinWorker.js +57 -91
- package/dist/workers/levenshteinWorker.js.map +1 -1
- package/package.json +75 -69
- package/dist/core/EntityManager.d.ts +0 -268
- package/dist/core/EntityManager.d.ts.map +0 -1
- package/dist/core/EntityManager.js +0 -512
- package/dist/core/EntityManager.js.map +0 -1
- package/dist/core/GraphEventEmitter.d.ts +0 -202
- package/dist/core/GraphEventEmitter.d.ts.map +0 -1
- package/dist/core/GraphEventEmitter.js +0 -347
- package/dist/core/GraphEventEmitter.js.map +0 -1
- package/dist/core/GraphStorage.d.ts +0 -395
- package/dist/core/GraphStorage.d.ts.map +0 -1
- package/dist/core/GraphStorage.js +0 -786
- package/dist/core/GraphStorage.js.map +0 -1
- package/dist/core/GraphTraversal.d.ts +0 -141
- package/dist/core/GraphTraversal.d.ts.map +0 -1
- package/dist/core/GraphTraversal.js +0 -574
- package/dist/core/GraphTraversal.js.map +0 -1
- package/dist/core/HierarchyManager.d.ts +0 -111
- package/dist/core/HierarchyManager.d.ts.map +0 -1
- package/dist/core/HierarchyManager.js +0 -225
- package/dist/core/HierarchyManager.js.map +0 -1
- package/dist/core/ManagerContext.d.ts +0 -76
- package/dist/core/ManagerContext.d.ts.map +0 -1
- package/dist/core/ManagerContext.js +0 -129
- package/dist/core/ManagerContext.js.map +0 -1
- package/dist/core/ObservationManager.d.ts +0 -85
- package/dist/core/ObservationManager.d.ts.map +0 -1
- package/dist/core/ObservationManager.js +0 -124
- package/dist/core/ObservationManager.js.map +0 -1
- package/dist/core/RelationManager.d.ts +0 -131
- package/dist/core/RelationManager.d.ts.map +0 -1
- package/dist/core/RelationManager.js +0 -212
- package/dist/core/RelationManager.js.map +0 -1
- package/dist/core/SQLiteStorage.d.ts +0 -354
- package/dist/core/SQLiteStorage.d.ts.map +0 -1
- package/dist/core/SQLiteStorage.js +0 -919
- package/dist/core/SQLiteStorage.js.map +0 -1
- package/dist/core/StorageFactory.d.ts +0 -45
- package/dist/core/StorageFactory.d.ts.map +0 -1
- package/dist/core/StorageFactory.js +0 -65
- package/dist/core/StorageFactory.js.map +0 -1
- package/dist/core/TransactionManager.d.ts +0 -464
- package/dist/core/TransactionManager.d.ts.map +0 -1
- package/dist/core/TransactionManager.js +0 -869
- package/dist/core/TransactionManager.js.map +0 -1
- package/dist/core/index.d.ts +0 -17
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -20
- package/dist/core/index.js.map +0 -1
- package/dist/features/AnalyticsManager.d.ts +0 -44
- package/dist/features/AnalyticsManager.d.ts.map +0 -1
- package/dist/features/AnalyticsManager.js +0 -224
- package/dist/features/AnalyticsManager.js.map +0 -1
- package/dist/features/ArchiveManager.d.ts +0 -133
- package/dist/features/ArchiveManager.d.ts.map +0 -1
- package/dist/features/ArchiveManager.js +0 -282
- package/dist/features/ArchiveManager.js.map +0 -1
- package/dist/features/CompressionManager.d.ts +0 -119
- package/dist/features/CompressionManager.d.ts.map +0 -1
- package/dist/features/CompressionManager.js +0 -470
- package/dist/features/CompressionManager.js.map +0 -1
- package/dist/features/IOManager.d.ts +0 -225
- package/dist/features/IOManager.d.ts.map +0 -1
- package/dist/features/IOManager.js +0 -1093
- package/dist/features/IOManager.js.map +0 -1
- package/dist/features/KeywordExtractor.d.ts +0 -61
- package/dist/features/KeywordExtractor.d.ts.map +0 -1
- package/dist/features/KeywordExtractor.js +0 -127
- package/dist/features/KeywordExtractor.js.map +0 -1
- package/dist/features/ObservationNormalizer.d.ts +0 -90
- package/dist/features/ObservationNormalizer.d.ts.map +0 -1
- package/dist/features/ObservationNormalizer.js +0 -194
- package/dist/features/ObservationNormalizer.js.map +0 -1
- package/dist/features/StreamingExporter.d.ts +0 -128
- package/dist/features/StreamingExporter.d.ts.map +0 -1
- package/dist/features/StreamingExporter.js +0 -212
- package/dist/features/StreamingExporter.js.map +0 -1
- package/dist/features/TagManager.d.ts +0 -147
- package/dist/features/TagManager.d.ts.map +0 -1
- package/dist/features/TagManager.js +0 -211
- package/dist/features/TagManager.js.map +0 -1
- package/dist/features/index.d.ts +0 -14
- package/dist/features/index.d.ts.map +0 -1
- package/dist/features/index.js +0 -15
- package/dist/features/index.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/search/BM25Search.d.ts +0 -148
- package/dist/search/BM25Search.d.ts.map +0 -1
- package/dist/search/BM25Search.js +0 -340
- package/dist/search/BM25Search.js.map +0 -1
- package/dist/search/BasicSearch.d.ts +0 -51
- package/dist/search/BasicSearch.d.ts.map +0 -1
- package/dist/search/BasicSearch.js +0 -138
- package/dist/search/BasicSearch.js.map +0 -1
- package/dist/search/BooleanSearch.d.ts +0 -98
- package/dist/search/BooleanSearch.d.ts.map +0 -1
- package/dist/search/BooleanSearch.js +0 -431
- package/dist/search/BooleanSearch.js.map +0 -1
- package/dist/search/EarlyTerminationManager.d.ts +0 -140
- package/dist/search/EarlyTerminationManager.d.ts.map +0 -1
- package/dist/search/EarlyTerminationManager.js +0 -280
- package/dist/search/EarlyTerminationManager.js.map +0 -1
- package/dist/search/EmbeddingCache.d.ts +0 -175
- package/dist/search/EmbeddingCache.d.ts.map +0 -1
- package/dist/search/EmbeddingCache.js +0 -247
- package/dist/search/EmbeddingCache.js.map +0 -1
- package/dist/search/EmbeddingService.d.ts +0 -277
- package/dist/search/EmbeddingService.d.ts.map +0 -1
- package/dist/search/EmbeddingService.js +0 -531
- package/dist/search/EmbeddingService.js.map +0 -1
- package/dist/search/FuzzySearch.d.ts +0 -118
- package/dist/search/FuzzySearch.d.ts.map +0 -1
- package/dist/search/FuzzySearch.js +0 -313
- package/dist/search/FuzzySearch.js.map +0 -1
- package/dist/search/HybridScorer.d.ts +0 -181
- package/dist/search/HybridScorer.d.ts.map +0 -1
- package/dist/search/HybridScorer.js +0 -258
- package/dist/search/HybridScorer.js.map +0 -1
- package/dist/search/HybridSearchManager.d.ts +0 -80
- package/dist/search/HybridSearchManager.d.ts.map +0 -1
- package/dist/search/HybridSearchManager.js +0 -188
- package/dist/search/HybridSearchManager.js.map +0 -1
- package/dist/search/IncrementalIndexer.d.ts +0 -201
- package/dist/search/IncrementalIndexer.d.ts.map +0 -1
- package/dist/search/IncrementalIndexer.js +0 -343
- package/dist/search/IncrementalIndexer.js.map +0 -1
- package/dist/search/OptimizedInvertedIndex.d.ts +0 -163
- package/dist/search/OptimizedInvertedIndex.d.ts.map +0 -1
- package/dist/search/OptimizedInvertedIndex.js +0 -359
- package/dist/search/OptimizedInvertedIndex.js.map +0 -1
- package/dist/search/ParallelSearchExecutor.d.ts +0 -172
- package/dist/search/ParallelSearchExecutor.d.ts.map +0 -1
- package/dist/search/ParallelSearchExecutor.js +0 -310
- package/dist/search/ParallelSearchExecutor.js.map +0 -1
- package/dist/search/QuantizedVectorStore.d.ts +0 -171
- package/dist/search/QuantizedVectorStore.d.ts.map +0 -1
- package/dist/search/QuantizedVectorStore.js +0 -308
- package/dist/search/QuantizedVectorStore.js.map +0 -1
- package/dist/search/QueryAnalyzer.d.ts +0 -76
- package/dist/search/QueryAnalyzer.d.ts.map +0 -1
- package/dist/search/QueryAnalyzer.js +0 -228
- package/dist/search/QueryAnalyzer.js.map +0 -1
- package/dist/search/QueryCostEstimator.d.ts +0 -244
- package/dist/search/QueryCostEstimator.d.ts.map +0 -1
- package/dist/search/QueryCostEstimator.js +0 -653
- package/dist/search/QueryCostEstimator.js.map +0 -1
- package/dist/search/QueryPlanCache.d.ts +0 -220
- package/dist/search/QueryPlanCache.d.ts.map +0 -1
- package/dist/search/QueryPlanCache.js +0 -380
- package/dist/search/QueryPlanCache.js.map +0 -1
- package/dist/search/QueryPlanner.d.ts +0 -58
- package/dist/search/QueryPlanner.d.ts.map +0 -1
- package/dist/search/QueryPlanner.js +0 -138
- package/dist/search/QueryPlanner.js.map +0 -1
- package/dist/search/RankedSearch.d.ts +0 -71
- package/dist/search/RankedSearch.d.ts.map +0 -1
- package/dist/search/RankedSearch.js +0 -239
- package/dist/search/RankedSearch.js.map +0 -1
- package/dist/search/ReflectionManager.d.ts +0 -120
- package/dist/search/ReflectionManager.d.ts.map +0 -1
- package/dist/search/ReflectionManager.js +0 -232
- package/dist/search/ReflectionManager.js.map +0 -1
- package/dist/search/SavedSearchManager.d.ts +0 -79
- package/dist/search/SavedSearchManager.d.ts.map +0 -1
- package/dist/search/SavedSearchManager.js +0 -147
- package/dist/search/SavedSearchManager.js.map +0 -1
- package/dist/search/SearchFilterChain.d.ts +0 -120
- package/dist/search/SearchFilterChain.d.ts.map +0 -1
- package/dist/search/SearchFilterChain.js +0 -186
- package/dist/search/SearchFilterChain.js.map +0 -1
- package/dist/search/SearchManager.d.ts +0 -326
- package/dist/search/SearchManager.d.ts.map +0 -1
- package/dist/search/SearchManager.js +0 -454
- package/dist/search/SearchManager.js.map +0 -1
- package/dist/search/SearchSuggestions.d.ts +0 -27
- package/dist/search/SearchSuggestions.d.ts.map +0 -1
- package/dist/search/SearchSuggestions.js +0 -58
- package/dist/search/SearchSuggestions.js.map +0 -1
- package/dist/search/SemanticSearch.d.ts +0 -149
- package/dist/search/SemanticSearch.d.ts.map +0 -1
- package/dist/search/SemanticSearch.js +0 -324
- package/dist/search/SemanticSearch.js.map +0 -1
- package/dist/search/SymbolicSearch.d.ts +0 -61
- package/dist/search/SymbolicSearch.d.ts.map +0 -1
- package/dist/search/SymbolicSearch.js +0 -164
- package/dist/search/SymbolicSearch.js.map +0 -1
- package/dist/search/TFIDFEventSync.d.ts +0 -85
- package/dist/search/TFIDFEventSync.d.ts.map +0 -1
- package/dist/search/TFIDFEventSync.js +0 -134
- package/dist/search/TFIDFEventSync.js.map +0 -1
- package/dist/search/TFIDFIndexManager.d.ts +0 -151
- package/dist/search/TFIDFIndexManager.d.ts.map +0 -1
- package/dist/search/TFIDFIndexManager.js +0 -433
- package/dist/search/TFIDFIndexManager.js.map +0 -1
- package/dist/search/VectorStore.d.ts +0 -235
- package/dist/search/VectorStore.d.ts.map +0 -1
- package/dist/search/VectorStore.js +0 -312
- package/dist/search/VectorStore.js.map +0 -1
- package/dist/search/index.d.ts +0 -35
- package/dist/search/index.d.ts.map +0 -1
- package/dist/search/index.js +0 -53
- package/dist/search/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -13
- package/dist/types/index.js.map +0 -1
- package/dist/types/types.d.ts +0 -1811
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/types.js +0 -10
- package/dist/types/types.js.map +0 -1
- package/dist/utils/BatchProcessor.d.ts +0 -271
- package/dist/utils/BatchProcessor.d.ts.map +0 -1
- package/dist/utils/BatchProcessor.js +0 -377
- package/dist/utils/BatchProcessor.js.map +0 -1
- package/dist/utils/MemoryMonitor.d.ts +0 -176
- package/dist/utils/MemoryMonitor.d.ts.map +0 -1
- package/dist/utils/MemoryMonitor.js +0 -306
- package/dist/utils/MemoryMonitor.js.map +0 -1
- package/dist/utils/WorkerPoolManager.d.ts +0 -233
- package/dist/utils/WorkerPoolManager.d.ts.map +0 -1
- package/dist/utils/WorkerPoolManager.js +0 -421
- package/dist/utils/WorkerPoolManager.js.map +0 -1
- package/dist/utils/compressedCache.d.ts +0 -221
- package/dist/utils/compressedCache.d.ts.map +0 -1
- package/dist/utils/compressedCache.js +0 -349
- package/dist/utils/compressedCache.js.map +0 -1
- package/dist/utils/compressionUtil.d.ts +0 -214
- package/dist/utils/compressionUtil.d.ts.map +0 -1
- package/dist/utils/compressionUtil.js +0 -248
- package/dist/utils/compressionUtil.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -245
- package/dist/utils/constants.d.ts.map +0 -1
- package/dist/utils/constants.js +0 -253
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/entityUtils.d.ts +0 -379
- package/dist/utils/entityUtils.d.ts.map +0 -1
- package/dist/utils/entityUtils.js +0 -649
- package/dist/utils/entityUtils.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -95
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -146
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/formatters.d.ts +0 -145
- package/dist/utils/formatters.d.ts.map +0 -1
- package/dist/utils/formatters.js +0 -133
- package/dist/utils/formatters.js.map +0 -1
- package/dist/utils/index.d.ts +0 -26
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -88
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/indexes.d.ts +0 -270
- package/dist/utils/indexes.d.ts.map +0 -1
- package/dist/utils/indexes.js +0 -527
- package/dist/utils/indexes.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -31
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -41
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/operationUtils.d.ts +0 -124
- package/dist/utils/operationUtils.d.ts.map +0 -1
- package/dist/utils/operationUtils.js +0 -176
- package/dist/utils/operationUtils.js.map +0 -1
- package/dist/utils/parallelUtils.d.ts +0 -76
- package/dist/utils/parallelUtils.d.ts.map +0 -1
- package/dist/utils/parallelUtils.js +0 -192
- package/dist/utils/parallelUtils.js.map +0 -1
- package/dist/utils/schemas.d.ts +0 -556
- package/dist/utils/schemas.d.ts.map +0 -1
- package/dist/utils/schemas.js +0 -485
- package/dist/utils/schemas.js.map +0 -1
- package/dist/utils/searchAlgorithms.d.ts +0 -99
- package/dist/utils/searchAlgorithms.d.ts.map +0 -1
- package/dist/utils/searchAlgorithms.js +0 -168
- package/dist/utils/searchAlgorithms.js.map +0 -1
- package/dist/utils/searchCache.d.ts +0 -108
- package/dist/utils/searchCache.d.ts.map +0 -1
- package/dist/utils/searchCache.js +0 -210
- package/dist/utils/searchCache.js.map +0 -1
- package/dist/utils/taskScheduler.d.ts +0 -294
- package/dist/utils/taskScheduler.d.ts.map +0 -1
- package/dist/utils/taskScheduler.js +0 -487
- package/dist/utils/taskScheduler.js.map +0 -1
- package/dist/workers/index.d.ts +0 -12
- package/dist/workers/index.d.ts.map +0 -1
- package/dist/workers/index.js +0 -10
- package/dist/workers/index.js.map +0 -1
- package/dist/workers/levenshteinWorker.d.ts +0 -60
- package/dist/workers/levenshteinWorker.d.ts.map +0 -1
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Incremental Indexer
|
|
3
|
-
*
|
|
4
|
-
* Phase 12 Sprint 5: Queues embedding index updates and batch-processes them
|
|
5
|
-
* efficiently using flush thresholds and timer-based flushing.
|
|
6
|
-
*
|
|
7
|
-
* @module search/IncrementalIndexer
|
|
8
|
-
*/
|
|
9
|
-
import type { EmbeddingService, EmbeddingMode } from '../types/index.js';
|
|
10
|
-
import type { IVectorStore } from '../types/index.js';
|
|
11
|
-
import type { EmbeddingProgressCallback } from './EmbeddingService.js';
|
|
12
|
-
/**
|
|
13
|
-
* Types of index operations.
|
|
14
|
-
*/
|
|
15
|
-
export type IndexOperationType = 'create' | 'update' | 'delete';
|
|
16
|
-
/**
|
|
17
|
-
* Queued index operation.
|
|
18
|
-
*/
|
|
19
|
-
export interface IndexOperation {
|
|
20
|
-
/** Type of operation */
|
|
21
|
-
type: IndexOperationType;
|
|
22
|
-
/** Entity name */
|
|
23
|
-
entityName: string;
|
|
24
|
-
/** Text to embed (for create/update) */
|
|
25
|
-
text?: string;
|
|
26
|
-
/** Timestamp when operation was queued */
|
|
27
|
-
queuedAt: number;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Options for IncrementalIndexer.
|
|
31
|
-
*/
|
|
32
|
-
export interface IncrementalIndexerOptions {
|
|
33
|
-
/** Flush threshold - number of operations to queue before auto-flush (default: 50) */
|
|
34
|
-
flushThreshold?: number;
|
|
35
|
-
/** Timer-based flush interval in milliseconds (default: 5000ms) */
|
|
36
|
-
flushIntervalMs?: number;
|
|
37
|
-
/** Embedding mode for new embeddings (default: 'document') */
|
|
38
|
-
embeddingMode?: EmbeddingMode;
|
|
39
|
-
/** Progress callback for batch operations */
|
|
40
|
-
onProgress?: EmbeddingProgressCallback;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Default indexer options.
|
|
44
|
-
*/
|
|
45
|
-
export declare const DEFAULT_INDEXER_OPTIONS: Required<Omit<IncrementalIndexerOptions, 'onProgress'>>;
|
|
46
|
-
/**
|
|
47
|
-
* Result of a flush operation.
|
|
48
|
-
*/
|
|
49
|
-
export interface FlushResult {
|
|
50
|
-
/** Number of operations processed */
|
|
51
|
-
processed: number;
|
|
52
|
-
/** Number of successful operations */
|
|
53
|
-
succeeded: number;
|
|
54
|
-
/** Number of failed operations */
|
|
55
|
-
failed: number;
|
|
56
|
-
/** Errors encountered during flush */
|
|
57
|
-
errors: Array<{
|
|
58
|
-
entityName: string;
|
|
59
|
-
error: string;
|
|
60
|
-
}>;
|
|
61
|
-
/** Duration of flush in milliseconds */
|
|
62
|
-
durationMs: number;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Incremental indexer for embedding vectors.
|
|
66
|
-
*
|
|
67
|
-
* Queues index updates and batch-processes them efficiently:
|
|
68
|
-
* - Auto-flush when queue reaches threshold
|
|
69
|
-
* - Timer-based flush for time-sensitive updates
|
|
70
|
-
* - Supports create, update, and delete operations
|
|
71
|
-
* - Graceful shutdown with final flush
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* const indexer = new IncrementalIndexer(embeddingService, vectorStore, {
|
|
76
|
-
* flushThreshold: 100,
|
|
77
|
-
* flushIntervalMs: 10000,
|
|
78
|
-
* });
|
|
79
|
-
*
|
|
80
|
-
* // Queue operations
|
|
81
|
-
* indexer.queueCreate('entity1', 'Entity text content');
|
|
82
|
-
* indexer.queueUpdate('entity2', 'Updated text content');
|
|
83
|
-
* indexer.queueDelete('entity3');
|
|
84
|
-
*
|
|
85
|
-
* // Manual flush
|
|
86
|
-
* const result = await indexer.flush();
|
|
87
|
-
* console.log(`Processed ${result.processed} operations`);
|
|
88
|
-
*
|
|
89
|
-
* // Graceful shutdown
|
|
90
|
-
* await indexer.shutdown();
|
|
91
|
-
* ```
|
|
92
|
-
*/
|
|
93
|
-
export declare class IncrementalIndexer {
|
|
94
|
-
private embeddingService;
|
|
95
|
-
private vectorStore;
|
|
96
|
-
private options;
|
|
97
|
-
private onProgress?;
|
|
98
|
-
private queue;
|
|
99
|
-
private flushTimer;
|
|
100
|
-
private isFlushing;
|
|
101
|
-
private isShutdown;
|
|
102
|
-
/**
|
|
103
|
-
* Create a new incremental indexer.
|
|
104
|
-
*
|
|
105
|
-
* @param embeddingService - Service for generating embeddings
|
|
106
|
-
* @param vectorStore - Store for embedding vectors
|
|
107
|
-
* @param options - Indexer configuration options
|
|
108
|
-
*/
|
|
109
|
-
constructor(embeddingService: EmbeddingService, vectorStore: IVectorStore, options?: IncrementalIndexerOptions);
|
|
110
|
-
/**
|
|
111
|
-
* Start the timer-based flush interval.
|
|
112
|
-
*/
|
|
113
|
-
private startFlushTimer;
|
|
114
|
-
/**
|
|
115
|
-
* Stop the flush timer.
|
|
116
|
-
*/
|
|
117
|
-
private stopFlushTimer;
|
|
118
|
-
/**
|
|
119
|
-
* Queue a create operation.
|
|
120
|
-
*
|
|
121
|
-
* @param entityName - Name of the entity to create
|
|
122
|
-
* @param text - Text content to embed
|
|
123
|
-
*/
|
|
124
|
-
queueCreate(entityName: string, text: string): void;
|
|
125
|
-
/**
|
|
126
|
-
* Queue an update operation.
|
|
127
|
-
*
|
|
128
|
-
* @param entityName - Name of the entity to update
|
|
129
|
-
* @param text - Updated text content to embed
|
|
130
|
-
*/
|
|
131
|
-
queueUpdate(entityName: string, text: string): void;
|
|
132
|
-
/**
|
|
133
|
-
* Queue a delete operation.
|
|
134
|
-
*
|
|
135
|
-
* @param entityName - Name of the entity to delete
|
|
136
|
-
*/
|
|
137
|
-
queueDelete(entityName: string): void;
|
|
138
|
-
/**
|
|
139
|
-
* Remove all queued operations for an entity.
|
|
140
|
-
*
|
|
141
|
-
* @param entityName - Entity name to remove from queue
|
|
142
|
-
*/
|
|
143
|
-
private removeFromQueue;
|
|
144
|
-
/**
|
|
145
|
-
* Check if auto-flush threshold is reached.
|
|
146
|
-
*/
|
|
147
|
-
private checkAutoFlush;
|
|
148
|
-
/**
|
|
149
|
-
* Flush the queue and process all pending operations.
|
|
150
|
-
*
|
|
151
|
-
* @returns Result of the flush operation
|
|
152
|
-
*/
|
|
153
|
-
flush(): Promise<FlushResult>;
|
|
154
|
-
/**
|
|
155
|
-
* Get the current queue size.
|
|
156
|
-
*
|
|
157
|
-
* @returns Number of operations in the queue
|
|
158
|
-
*/
|
|
159
|
-
getQueueSize(): number;
|
|
160
|
-
/**
|
|
161
|
-
* Get the current queue contents (for debugging/monitoring).
|
|
162
|
-
*
|
|
163
|
-
* @returns Copy of the current queue
|
|
164
|
-
*/
|
|
165
|
-
getQueue(): IndexOperation[];
|
|
166
|
-
/**
|
|
167
|
-
* Check if the indexer is currently flushing.
|
|
168
|
-
*
|
|
169
|
-
* @returns True if flushing
|
|
170
|
-
*/
|
|
171
|
-
isBusy(): boolean;
|
|
172
|
-
/**
|
|
173
|
-
* Check if the indexer is shutdown.
|
|
174
|
-
*
|
|
175
|
-
* @returns True if shutdown
|
|
176
|
-
*/
|
|
177
|
-
isShutdownComplete(): boolean;
|
|
178
|
-
/**
|
|
179
|
-
* Graceful shutdown with final flush.
|
|
180
|
-
*
|
|
181
|
-
* Stops the timer and flushes any remaining operations.
|
|
182
|
-
*
|
|
183
|
-
* @returns Result of the final flush
|
|
184
|
-
*/
|
|
185
|
-
shutdown(): Promise<FlushResult>;
|
|
186
|
-
/**
|
|
187
|
-
* Update indexer options.
|
|
188
|
-
*
|
|
189
|
-
* Note: Changes to flushIntervalMs will take effect on the next interval.
|
|
190
|
-
*
|
|
191
|
-
* @param options - New options to apply
|
|
192
|
-
*/
|
|
193
|
-
updateOptions(options: Partial<IncrementalIndexerOptions>): void;
|
|
194
|
-
/**
|
|
195
|
-
* Clear the queue without processing.
|
|
196
|
-
*
|
|
197
|
-
* @returns Number of operations cleared
|
|
198
|
-
*/
|
|
199
|
-
clearQueue(): number;
|
|
200
|
-
}
|
|
201
|
-
//# sourceMappingURL=IncrementalIndexer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalIndexer.d.ts","sourceRoot":"","sources":["../../src/search/IncrementalIndexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,343 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Incremental Indexer
|
|
3
|
-
*
|
|
4
|
-
* Phase 12 Sprint 5: Queues embedding index updates and batch-processes them
|
|
5
|
-
* efficiently using flush thresholds and timer-based flushing.
|
|
6
|
-
*
|
|
7
|
-
* @module search/IncrementalIndexer
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Default indexer options.
|
|
11
|
-
*/
|
|
12
|
-
export const DEFAULT_INDEXER_OPTIONS = {
|
|
13
|
-
flushThreshold: 50,
|
|
14
|
-
flushIntervalMs: 5000,
|
|
15
|
-
embeddingMode: 'document',
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Incremental indexer for embedding vectors.
|
|
19
|
-
*
|
|
20
|
-
* Queues index updates and batch-processes them efficiently:
|
|
21
|
-
* - Auto-flush when queue reaches threshold
|
|
22
|
-
* - Timer-based flush for time-sensitive updates
|
|
23
|
-
* - Supports create, update, and delete operations
|
|
24
|
-
* - Graceful shutdown with final flush
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* const indexer = new IncrementalIndexer(embeddingService, vectorStore, {
|
|
29
|
-
* flushThreshold: 100,
|
|
30
|
-
* flushIntervalMs: 10000,
|
|
31
|
-
* });
|
|
32
|
-
*
|
|
33
|
-
* // Queue operations
|
|
34
|
-
* indexer.queueCreate('entity1', 'Entity text content');
|
|
35
|
-
* indexer.queueUpdate('entity2', 'Updated text content');
|
|
36
|
-
* indexer.queueDelete('entity3');
|
|
37
|
-
*
|
|
38
|
-
* // Manual flush
|
|
39
|
-
* const result = await indexer.flush();
|
|
40
|
-
* console.log(`Processed ${result.processed} operations`);
|
|
41
|
-
*
|
|
42
|
-
* // Graceful shutdown
|
|
43
|
-
* await indexer.shutdown();
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export class IncrementalIndexer {
|
|
47
|
-
embeddingService;
|
|
48
|
-
vectorStore;
|
|
49
|
-
options;
|
|
50
|
-
onProgress;
|
|
51
|
-
queue = [];
|
|
52
|
-
flushTimer = null;
|
|
53
|
-
isFlushing = false;
|
|
54
|
-
isShutdown = false;
|
|
55
|
-
/**
|
|
56
|
-
* Create a new incremental indexer.
|
|
57
|
-
*
|
|
58
|
-
* @param embeddingService - Service for generating embeddings
|
|
59
|
-
* @param vectorStore - Store for embedding vectors
|
|
60
|
-
* @param options - Indexer configuration options
|
|
61
|
-
*/
|
|
62
|
-
constructor(embeddingService, vectorStore, options) {
|
|
63
|
-
this.embeddingService = embeddingService;
|
|
64
|
-
this.vectorStore = vectorStore;
|
|
65
|
-
this.options = { ...DEFAULT_INDEXER_OPTIONS, ...options };
|
|
66
|
-
this.onProgress = options?.onProgress;
|
|
67
|
-
// Start the flush timer
|
|
68
|
-
this.startFlushTimer();
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Start the timer-based flush interval.
|
|
72
|
-
*/
|
|
73
|
-
startFlushTimer() {
|
|
74
|
-
if (this.flushTimer || this.isShutdown) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
this.flushTimer = setInterval(async () => {
|
|
78
|
-
if (this.queue.length > 0 && !this.isFlushing) {
|
|
79
|
-
await this.flush();
|
|
80
|
-
}
|
|
81
|
-
}, this.options.flushIntervalMs);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Stop the flush timer.
|
|
85
|
-
*/
|
|
86
|
-
stopFlushTimer() {
|
|
87
|
-
if (this.flushTimer) {
|
|
88
|
-
clearInterval(this.flushTimer);
|
|
89
|
-
this.flushTimer = null;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Queue a create operation.
|
|
94
|
-
*
|
|
95
|
-
* @param entityName - Name of the entity to create
|
|
96
|
-
* @param text - Text content to embed
|
|
97
|
-
*/
|
|
98
|
-
queueCreate(entityName, text) {
|
|
99
|
-
if (this.isShutdown) {
|
|
100
|
-
throw new Error('Indexer is shutdown');
|
|
101
|
-
}
|
|
102
|
-
// Remove any existing operations for this entity
|
|
103
|
-
this.removeFromQueue(entityName);
|
|
104
|
-
this.queue.push({
|
|
105
|
-
type: 'create',
|
|
106
|
-
entityName,
|
|
107
|
-
text,
|
|
108
|
-
queuedAt: Date.now(),
|
|
109
|
-
});
|
|
110
|
-
this.checkAutoFlush();
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Queue an update operation.
|
|
114
|
-
*
|
|
115
|
-
* @param entityName - Name of the entity to update
|
|
116
|
-
* @param text - Updated text content to embed
|
|
117
|
-
*/
|
|
118
|
-
queueUpdate(entityName, text) {
|
|
119
|
-
if (this.isShutdown) {
|
|
120
|
-
throw new Error('Indexer is shutdown');
|
|
121
|
-
}
|
|
122
|
-
// Remove any existing operations for this entity
|
|
123
|
-
this.removeFromQueue(entityName);
|
|
124
|
-
this.queue.push({
|
|
125
|
-
type: 'update',
|
|
126
|
-
entityName,
|
|
127
|
-
text,
|
|
128
|
-
queuedAt: Date.now(),
|
|
129
|
-
});
|
|
130
|
-
this.checkAutoFlush();
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Queue a delete operation.
|
|
134
|
-
*
|
|
135
|
-
* @param entityName - Name of the entity to delete
|
|
136
|
-
*/
|
|
137
|
-
queueDelete(entityName) {
|
|
138
|
-
if (this.isShutdown) {
|
|
139
|
-
throw new Error('Indexer is shutdown');
|
|
140
|
-
}
|
|
141
|
-
// Remove any existing operations for this entity
|
|
142
|
-
this.removeFromQueue(entityName);
|
|
143
|
-
this.queue.push({
|
|
144
|
-
type: 'delete',
|
|
145
|
-
entityName,
|
|
146
|
-
queuedAt: Date.now(),
|
|
147
|
-
});
|
|
148
|
-
this.checkAutoFlush();
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Remove all queued operations for an entity.
|
|
152
|
-
*
|
|
153
|
-
* @param entityName - Entity name to remove from queue
|
|
154
|
-
*/
|
|
155
|
-
removeFromQueue(entityName) {
|
|
156
|
-
this.queue = this.queue.filter(op => op.entityName !== entityName);
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Check if auto-flush threshold is reached.
|
|
160
|
-
*/
|
|
161
|
-
checkAutoFlush() {
|
|
162
|
-
if (this.queue.length >= this.options.flushThreshold && !this.isFlushing) {
|
|
163
|
-
// Use setImmediate to avoid blocking
|
|
164
|
-
setImmediate(() => this.flush());
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Flush the queue and process all pending operations.
|
|
169
|
-
*
|
|
170
|
-
* @returns Result of the flush operation
|
|
171
|
-
*/
|
|
172
|
-
async flush() {
|
|
173
|
-
if (this.isFlushing) {
|
|
174
|
-
return {
|
|
175
|
-
processed: 0,
|
|
176
|
-
succeeded: 0,
|
|
177
|
-
failed: 0,
|
|
178
|
-
errors: [],
|
|
179
|
-
durationMs: 0,
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
this.isFlushing = true;
|
|
183
|
-
const startTime = Date.now();
|
|
184
|
-
const errors = [];
|
|
185
|
-
let succeeded = 0;
|
|
186
|
-
let failed = 0;
|
|
187
|
-
// Take the current queue
|
|
188
|
-
const operations = [...this.queue];
|
|
189
|
-
this.queue = [];
|
|
190
|
-
try {
|
|
191
|
-
// Separate operations by type
|
|
192
|
-
const createOps = operations.filter(op => op.type === 'create');
|
|
193
|
-
const updateOps = operations.filter(op => op.type === 'update');
|
|
194
|
-
const deleteOps = operations.filter(op => op.type === 'delete');
|
|
195
|
-
// Process deletes first (fast, O(1))
|
|
196
|
-
for (const op of deleteOps) {
|
|
197
|
-
try {
|
|
198
|
-
this.vectorStore.remove(op.entityName);
|
|
199
|
-
succeeded++;
|
|
200
|
-
}
|
|
201
|
-
catch (error) {
|
|
202
|
-
failed++;
|
|
203
|
-
errors.push({
|
|
204
|
-
entityName: op.entityName,
|
|
205
|
-
error: error instanceof Error ? error.message : String(error),
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
// Batch process creates and updates together
|
|
210
|
-
const embedOps = [...createOps, ...updateOps];
|
|
211
|
-
if (embedOps.length > 0) {
|
|
212
|
-
const texts = embedOps.map(op => op.text);
|
|
213
|
-
const entityNames = embedOps.map(op => op.entityName);
|
|
214
|
-
try {
|
|
215
|
-
// Check if the embedding service has the batch with progress method
|
|
216
|
-
let embeddings;
|
|
217
|
-
if (this.onProgress && 'embedBatchWithProgress' in this.embeddingService) {
|
|
218
|
-
embeddings = await this.embeddingService
|
|
219
|
-
.embedBatchWithProgress(texts, this.options.embeddingMode, this.onProgress);
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
embeddings = await this.embeddingService.embedBatch(texts, this.options.embeddingMode);
|
|
223
|
-
}
|
|
224
|
-
// Store each embedding
|
|
225
|
-
for (let i = 0; i < embeddings.length; i++) {
|
|
226
|
-
try {
|
|
227
|
-
this.vectorStore.add(entityNames[i], embeddings[i]);
|
|
228
|
-
succeeded++;
|
|
229
|
-
}
|
|
230
|
-
catch (error) {
|
|
231
|
-
failed++;
|
|
232
|
-
errors.push({
|
|
233
|
-
entityName: entityNames[i],
|
|
234
|
-
error: error instanceof Error ? error.message : String(error),
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
catch (error) {
|
|
240
|
-
// Batch embedding failed, count all as failed
|
|
241
|
-
failed += embedOps.length;
|
|
242
|
-
for (const op of embedOps) {
|
|
243
|
-
errors.push({
|
|
244
|
-
entityName: op.entityName,
|
|
245
|
-
error: error instanceof Error ? error.message : String(error),
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
finally {
|
|
252
|
-
this.isFlushing = false;
|
|
253
|
-
}
|
|
254
|
-
return {
|
|
255
|
-
processed: operations.length,
|
|
256
|
-
succeeded,
|
|
257
|
-
failed,
|
|
258
|
-
errors,
|
|
259
|
-
durationMs: Date.now() - startTime,
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Get the current queue size.
|
|
264
|
-
*
|
|
265
|
-
* @returns Number of operations in the queue
|
|
266
|
-
*/
|
|
267
|
-
getQueueSize() {
|
|
268
|
-
return this.queue.length;
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Get the current queue contents (for debugging/monitoring).
|
|
272
|
-
*
|
|
273
|
-
* @returns Copy of the current queue
|
|
274
|
-
*/
|
|
275
|
-
getQueue() {
|
|
276
|
-
return [...this.queue];
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Check if the indexer is currently flushing.
|
|
280
|
-
*
|
|
281
|
-
* @returns True if flushing
|
|
282
|
-
*/
|
|
283
|
-
isBusy() {
|
|
284
|
-
return this.isFlushing;
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* Check if the indexer is shutdown.
|
|
288
|
-
*
|
|
289
|
-
* @returns True if shutdown
|
|
290
|
-
*/
|
|
291
|
-
isShutdownComplete() {
|
|
292
|
-
return this.isShutdown;
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Graceful shutdown with final flush.
|
|
296
|
-
*
|
|
297
|
-
* Stops the timer and flushes any remaining operations.
|
|
298
|
-
*
|
|
299
|
-
* @returns Result of the final flush
|
|
300
|
-
*/
|
|
301
|
-
async shutdown() {
|
|
302
|
-
this.isShutdown = true;
|
|
303
|
-
this.stopFlushTimer();
|
|
304
|
-
// Wait for any in-progress flush to complete
|
|
305
|
-
while (this.isFlushing) {
|
|
306
|
-
await new Promise(resolve => setTimeout(resolve, 10));
|
|
307
|
-
}
|
|
308
|
-
// Final flush
|
|
309
|
-
return this.flush();
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Update indexer options.
|
|
313
|
-
*
|
|
314
|
-
* Note: Changes to flushIntervalMs will take effect on the next interval.
|
|
315
|
-
*
|
|
316
|
-
* @param options - New options to apply
|
|
317
|
-
*/
|
|
318
|
-
updateOptions(options) {
|
|
319
|
-
const { onProgress, ...rest } = options;
|
|
320
|
-
if (onProgress !== undefined) {
|
|
321
|
-
this.onProgress = onProgress;
|
|
322
|
-
}
|
|
323
|
-
if (Object.keys(rest).length > 0) {
|
|
324
|
-
this.options = { ...this.options, ...rest };
|
|
325
|
-
// Restart timer if interval changed
|
|
326
|
-
if (rest.flushIntervalMs !== undefined) {
|
|
327
|
-
this.stopFlushTimer();
|
|
328
|
-
this.startFlushTimer();
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
/**
|
|
333
|
-
* Clear the queue without processing.
|
|
334
|
-
*
|
|
335
|
-
* @returns Number of operations cleared
|
|
336
|
-
*/
|
|
337
|
-
clearQueue() {
|
|
338
|
-
const count = this.queue.length;
|
|
339
|
-
this.queue = [];
|
|
340
|
-
return count;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
//# sourceMappingURL=IncrementalIndexer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalIndexer.js","sourceRoot":"","sources":["../../src/search/IncrementalIndexer.ts"],"names":[],"mappings":"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"}
|