@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,149 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Semantic Search Manager
|
|
3
|
-
*
|
|
4
|
-
* Phase 4 Sprint 12: Orchestrates embedding service and vector store
|
|
5
|
-
* to provide semantic similarity search capabilities.
|
|
6
|
-
*
|
|
7
|
-
* @module search/SemanticSearch
|
|
8
|
-
*/
|
|
9
|
-
import type { Entity, EmbeddingService, IVectorStore, SemanticSearchResult, SemanticIndexOptions, ReadonlyKnowledgeGraph } from '../types/index.js';
|
|
10
|
-
/**
|
|
11
|
-
* Convert an entity to a text representation for embedding.
|
|
12
|
-
*
|
|
13
|
-
* Creates a structured text that captures the entity's key information
|
|
14
|
-
* for generating meaningful embeddings.
|
|
15
|
-
*
|
|
16
|
-
* @param entity - Entity to convert
|
|
17
|
-
* @returns Text representation suitable for embedding
|
|
18
|
-
*/
|
|
19
|
-
export declare function entityToText(entity: Entity): string;
|
|
20
|
-
/**
|
|
21
|
-
* Semantic Search Manager
|
|
22
|
-
*
|
|
23
|
-
* Provides semantic similarity search by converting entities to embeddings
|
|
24
|
-
* and storing them in a vector store. Supports search by query text and
|
|
25
|
-
* finding similar entities.
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* const semanticSearch = new SemanticSearch(embeddingService, vectorStore);
|
|
30
|
-
* await semanticSearch.indexAll(graph);
|
|
31
|
-
* const results = await semanticSearch.search(graph, "machine learning");
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export declare class SemanticSearch {
|
|
35
|
-
/** Embedding service for generating vectors */
|
|
36
|
-
private embeddingService;
|
|
37
|
-
/** Vector store for storing and searching embeddings */
|
|
38
|
-
private vectorStore;
|
|
39
|
-
/** Whether embeddings have been indexed */
|
|
40
|
-
private indexed;
|
|
41
|
-
/** Number of entities currently indexed */
|
|
42
|
-
private indexedCount;
|
|
43
|
-
/**
|
|
44
|
-
* Create a semantic search manager.
|
|
45
|
-
*
|
|
46
|
-
* @param embeddingService - Service for generating embeddings
|
|
47
|
-
* @param vectorStore - Store for vector storage and search
|
|
48
|
-
*/
|
|
49
|
-
constructor(embeddingService: EmbeddingService, vectorStore?: IVectorStore);
|
|
50
|
-
/**
|
|
51
|
-
* Index all entities in the knowledge graph.
|
|
52
|
-
*
|
|
53
|
-
* Generates embeddings for all entities and stores them in the vector store.
|
|
54
|
-
* Can be called incrementally - only indexes entities that aren't already indexed.
|
|
55
|
-
*
|
|
56
|
-
* Phase 9B: Supports cancellation via AbortSignal in options.
|
|
57
|
-
*
|
|
58
|
-
* @param graph - Knowledge graph to index
|
|
59
|
-
* @param options - Indexing options (includes signal for cancellation)
|
|
60
|
-
* @returns Index statistics
|
|
61
|
-
* @throws {OperationCancelledError} If operation is cancelled via signal (Phase 9B)
|
|
62
|
-
*/
|
|
63
|
-
indexAll(graph: ReadonlyKnowledgeGraph, options?: SemanticIndexOptions): Promise<{
|
|
64
|
-
indexed: number;
|
|
65
|
-
skipped: number;
|
|
66
|
-
errors: number;
|
|
67
|
-
}>;
|
|
68
|
-
/**
|
|
69
|
-
* Index a single entity.
|
|
70
|
-
*
|
|
71
|
-
* @param entity - Entity to index
|
|
72
|
-
* @returns True if indexed successfully
|
|
73
|
-
*/
|
|
74
|
-
indexEntity(entity: Entity): Promise<boolean>;
|
|
75
|
-
/**
|
|
76
|
-
* Remove an entity from the index.
|
|
77
|
-
*
|
|
78
|
-
* @param entityName - Name of entity to remove
|
|
79
|
-
* @returns True if found and removed
|
|
80
|
-
*/
|
|
81
|
-
removeEntity(entityName: string): boolean;
|
|
82
|
-
/**
|
|
83
|
-
* Search for entities semantically similar to a query.
|
|
84
|
-
*
|
|
85
|
-
* @param graph - Knowledge graph to search in
|
|
86
|
-
* @param query - Search query text
|
|
87
|
-
* @param limit - Maximum number of results (default: 10)
|
|
88
|
-
* @param minSimilarity - Minimum similarity threshold (default: 0)
|
|
89
|
-
* @returns Array of search results with similarity scores
|
|
90
|
-
*/
|
|
91
|
-
search(graph: ReadonlyKnowledgeGraph, query: string, limit?: number, minSimilarity?: number): Promise<SemanticSearchResult[]>;
|
|
92
|
-
/**
|
|
93
|
-
* Find entities similar to a given entity.
|
|
94
|
-
*
|
|
95
|
-
* @param graph - Knowledge graph to search in
|
|
96
|
-
* @param entityName - Name of entity to find similar entities for
|
|
97
|
-
* @param limit - Maximum number of results (default: 10)
|
|
98
|
-
* @param minSimilarity - Minimum similarity threshold (default: 0)
|
|
99
|
-
* @returns Array of search results with similarity scores
|
|
100
|
-
*/
|
|
101
|
-
findSimilar(graph: ReadonlyKnowledgeGraph, entityName: string, limit?: number, minSimilarity?: number): Promise<SemanticSearchResult[]>;
|
|
102
|
-
/**
|
|
103
|
-
* Get the embedding service.
|
|
104
|
-
*
|
|
105
|
-
* @returns Embedding service instance
|
|
106
|
-
*/
|
|
107
|
-
getEmbeddingService(): EmbeddingService;
|
|
108
|
-
/**
|
|
109
|
-
* Get the vector store.
|
|
110
|
-
*
|
|
111
|
-
* @returns Vector store instance
|
|
112
|
-
*/
|
|
113
|
-
getVectorStore(): IVectorStore;
|
|
114
|
-
/**
|
|
115
|
-
* Check if the index has been built.
|
|
116
|
-
*
|
|
117
|
-
* @returns True if indexAll has been called
|
|
118
|
-
*/
|
|
119
|
-
isIndexed(): boolean;
|
|
120
|
-
/**
|
|
121
|
-
* Get the number of indexed entities.
|
|
122
|
-
*
|
|
123
|
-
* @returns Number of entities in the vector store
|
|
124
|
-
*/
|
|
125
|
-
getIndexedCount(): number;
|
|
126
|
-
/**
|
|
127
|
-
* Clear all indexed embeddings.
|
|
128
|
-
*/
|
|
129
|
-
clearIndex(): void;
|
|
130
|
-
/**
|
|
131
|
-
* Check if semantic search is available.
|
|
132
|
-
*
|
|
133
|
-
* @returns True if embedding service is ready
|
|
134
|
-
*/
|
|
135
|
-
isAvailable(): Promise<boolean>;
|
|
136
|
-
/**
|
|
137
|
-
* Get semantic search statistics.
|
|
138
|
-
*
|
|
139
|
-
* @returns Statistics about the semantic search index
|
|
140
|
-
*/
|
|
141
|
-
getStats(): {
|
|
142
|
-
indexed: boolean;
|
|
143
|
-
indexedCount: number;
|
|
144
|
-
provider: string;
|
|
145
|
-
model: string;
|
|
146
|
-
dimensions: number;
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
//# sourceMappingURL=SemanticSearch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SemanticSearch.d.ts","sourceRoot":"","sources":["../../src/search/SemanticSearch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAK3B;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBnD;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc;IACzB,+CAA+C;IAC/C,OAAO,CAAC,gBAAgB,CAAmB;IAE3C,wDAAwD;IACxD,OAAO,CAAC,WAAW,CAAe;IAElC,2CAA2C;IAC3C,OAAO,CAAC,OAAO,CAAS;IAExB,2CAA2C;IAC3C,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;;OAKG;gBACS,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,YAAY;IAK1E;;;;;;;;;;;;OAYG;IACG,QAAQ,CACZ,KAAK,EAAE,sBAAsB,EAC7B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAwEhE;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYnD;;;;;OAKG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAQzC;;;;;;;;OAQG;IACG,MAAM,CACV,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAA6C,EACpD,aAAa,GAAE,MAA8C,GAC5D,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAsClC;;;;;;;;OAQG;IACG,WAAW,CACf,KAAK,EAAE,sBAAsB,EAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAA6C,EACpD,aAAa,GAAE,MAA8C,GAC5D,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAoDlC;;;;OAIG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;;;OAIG;IACH,cAAc,IAAI,YAAY;IAI9B;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;;;OAIG;IACH,QAAQ,IAAI;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB;CASF"}
|
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Semantic Search Manager
|
|
3
|
-
*
|
|
4
|
-
* Phase 4 Sprint 12: Orchestrates embedding service and vector store
|
|
5
|
-
* to provide semantic similarity search capabilities.
|
|
6
|
-
*
|
|
7
|
-
* @module search/SemanticSearch
|
|
8
|
-
*/
|
|
9
|
-
import { InMemoryVectorStore } from './VectorStore.js';
|
|
10
|
-
import { EMBEDDING_DEFAULTS, SEMANTIC_SEARCH_LIMITS } from '../utils/constants.js';
|
|
11
|
-
import { checkCancellation } from '../utils/index.js';
|
|
12
|
-
/**
|
|
13
|
-
* Convert an entity to a text representation for embedding.
|
|
14
|
-
*
|
|
15
|
-
* Creates a structured text that captures the entity's key information
|
|
16
|
-
* for generating meaningful embeddings.
|
|
17
|
-
*
|
|
18
|
-
* @param entity - Entity to convert
|
|
19
|
-
* @returns Text representation suitable for embedding
|
|
20
|
-
*/
|
|
21
|
-
export function entityToText(entity) {
|
|
22
|
-
const parts = [];
|
|
23
|
-
// Name and type are most important
|
|
24
|
-
parts.push(`${entity.name} (${entity.entityType})`);
|
|
25
|
-
// Add observations (limited to prevent overly long text)
|
|
26
|
-
if (entity.observations.length > 0) {
|
|
27
|
-
const observationText = entity.observations.slice(0, 10).join('. ');
|
|
28
|
-
parts.push(observationText);
|
|
29
|
-
}
|
|
30
|
-
// Add tags if present
|
|
31
|
-
if (entity.tags && entity.tags.length > 0) {
|
|
32
|
-
parts.push(`Tags: ${entity.tags.join(', ')}`);
|
|
33
|
-
}
|
|
34
|
-
return parts.join('\n');
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Semantic Search Manager
|
|
38
|
-
*
|
|
39
|
-
* Provides semantic similarity search by converting entities to embeddings
|
|
40
|
-
* and storing them in a vector store. Supports search by query text and
|
|
41
|
-
* finding similar entities.
|
|
42
|
-
*
|
|
43
|
-
* @example
|
|
44
|
-
* ```typescript
|
|
45
|
-
* const semanticSearch = new SemanticSearch(embeddingService, vectorStore);
|
|
46
|
-
* await semanticSearch.indexAll(graph);
|
|
47
|
-
* const results = await semanticSearch.search(graph, "machine learning");
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
export class SemanticSearch {
|
|
51
|
-
/** Embedding service for generating vectors */
|
|
52
|
-
embeddingService;
|
|
53
|
-
/** Vector store for storing and searching embeddings */
|
|
54
|
-
vectorStore;
|
|
55
|
-
/** Whether embeddings have been indexed */
|
|
56
|
-
indexed = false;
|
|
57
|
-
/** Number of entities currently indexed */
|
|
58
|
-
indexedCount = 0;
|
|
59
|
-
/**
|
|
60
|
-
* Create a semantic search manager.
|
|
61
|
-
*
|
|
62
|
-
* @param embeddingService - Service for generating embeddings
|
|
63
|
-
* @param vectorStore - Store for vector storage and search
|
|
64
|
-
*/
|
|
65
|
-
constructor(embeddingService, vectorStore) {
|
|
66
|
-
this.embeddingService = embeddingService;
|
|
67
|
-
this.vectorStore = vectorStore || new InMemoryVectorStore();
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Index all entities in the knowledge graph.
|
|
71
|
-
*
|
|
72
|
-
* Generates embeddings for all entities and stores them in the vector store.
|
|
73
|
-
* Can be called incrementally - only indexes entities that aren't already indexed.
|
|
74
|
-
*
|
|
75
|
-
* Phase 9B: Supports cancellation via AbortSignal in options.
|
|
76
|
-
*
|
|
77
|
-
* @param graph - Knowledge graph to index
|
|
78
|
-
* @param options - Indexing options (includes signal for cancellation)
|
|
79
|
-
* @returns Index statistics
|
|
80
|
-
* @throws {OperationCancelledError} If operation is cancelled via signal (Phase 9B)
|
|
81
|
-
*/
|
|
82
|
-
async indexAll(graph, options = {}) {
|
|
83
|
-
const { forceReindex = false, onProgress, batchSize = EMBEDDING_DEFAULTS.DEFAULT_BATCH_SIZE, signal, } = options;
|
|
84
|
-
// Check for early cancellation
|
|
85
|
-
checkCancellation(signal, 'indexAll');
|
|
86
|
-
let indexed = 0;
|
|
87
|
-
let skipped = 0;
|
|
88
|
-
let errors = 0;
|
|
89
|
-
const entities = graph.entities;
|
|
90
|
-
const total = entities.length;
|
|
91
|
-
// Collect entities to index
|
|
92
|
-
const toIndex = [];
|
|
93
|
-
for (const entity of entities) {
|
|
94
|
-
if (forceReindex || !this.vectorStore.has(entity.name)) {
|
|
95
|
-
toIndex.push(entity);
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
skipped++;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
// Process in batches
|
|
102
|
-
for (let i = 0; i < toIndex.length; i += batchSize) {
|
|
103
|
-
// Check for cancellation between batches
|
|
104
|
-
checkCancellation(signal, 'indexAll');
|
|
105
|
-
const batch = toIndex.slice(i, i + batchSize);
|
|
106
|
-
const texts = batch.map(entityToText);
|
|
107
|
-
try {
|
|
108
|
-
const embeddings = await this.embeddingService.embedBatch(texts);
|
|
109
|
-
for (let j = 0; j < batch.length; j++) {
|
|
110
|
-
this.vectorStore.add(batch[j].name, embeddings[j]);
|
|
111
|
-
indexed++;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
catch (error) {
|
|
115
|
-
// Try individual embeddings on batch failure
|
|
116
|
-
for (const entity of batch) {
|
|
117
|
-
// Check for cancellation during fallback
|
|
118
|
-
checkCancellation(signal, 'indexAll');
|
|
119
|
-
try {
|
|
120
|
-
const text = entityToText(entity);
|
|
121
|
-
const embedding = await this.embeddingService.embed(text);
|
|
122
|
-
this.vectorStore.add(entity.name, embedding);
|
|
123
|
-
indexed++;
|
|
124
|
-
}
|
|
125
|
-
catch {
|
|
126
|
-
errors++;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// Report progress
|
|
131
|
-
if (onProgress) {
|
|
132
|
-
onProgress(indexed + skipped + errors, total);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
this.indexed = true;
|
|
136
|
-
this.indexedCount = this.vectorStore.size();
|
|
137
|
-
return { indexed, skipped, errors };
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Index a single entity.
|
|
141
|
-
*
|
|
142
|
-
* @param entity - Entity to index
|
|
143
|
-
* @returns True if indexed successfully
|
|
144
|
-
*/
|
|
145
|
-
async indexEntity(entity) {
|
|
146
|
-
try {
|
|
147
|
-
const text = entityToText(entity);
|
|
148
|
-
const embedding = await this.embeddingService.embed(text);
|
|
149
|
-
this.vectorStore.add(entity.name, embedding);
|
|
150
|
-
this.indexedCount = this.vectorStore.size();
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
catch {
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Remove an entity from the index.
|
|
159
|
-
*
|
|
160
|
-
* @param entityName - Name of entity to remove
|
|
161
|
-
* @returns True if found and removed
|
|
162
|
-
*/
|
|
163
|
-
removeEntity(entityName) {
|
|
164
|
-
const removed = this.vectorStore.remove(entityName);
|
|
165
|
-
if (removed) {
|
|
166
|
-
this.indexedCount = this.vectorStore.size();
|
|
167
|
-
}
|
|
168
|
-
return removed;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Search for entities semantically similar to a query.
|
|
172
|
-
*
|
|
173
|
-
* @param graph - Knowledge graph to search in
|
|
174
|
-
* @param query - Search query text
|
|
175
|
-
* @param limit - Maximum number of results (default: 10)
|
|
176
|
-
* @param minSimilarity - Minimum similarity threshold (default: 0)
|
|
177
|
-
* @returns Array of search results with similarity scores
|
|
178
|
-
*/
|
|
179
|
-
async search(graph, query, limit = SEMANTIC_SEARCH_LIMITS.DEFAULT_LIMIT, minSimilarity = SEMANTIC_SEARCH_LIMITS.MIN_SIMILARITY) {
|
|
180
|
-
// Ensure limit is within bounds
|
|
181
|
-
const effectiveLimit = Math.min(limit, SEMANTIC_SEARCH_LIMITS.MAX_LIMIT);
|
|
182
|
-
// Generate embedding for query
|
|
183
|
-
const queryEmbedding = await this.embeddingService.embed(query);
|
|
184
|
-
// Search vector store
|
|
185
|
-
const vectorResults = this.vectorStore.search(queryEmbedding, effectiveLimit * 2); // Get extra for filtering
|
|
186
|
-
// Convert to SemanticSearchResult with entity lookup
|
|
187
|
-
const entityMap = new Map();
|
|
188
|
-
for (const entity of graph.entities) {
|
|
189
|
-
entityMap.set(entity.name, entity);
|
|
190
|
-
}
|
|
191
|
-
const results = [];
|
|
192
|
-
for (const result of vectorResults) {
|
|
193
|
-
if (result.score < minSimilarity) {
|
|
194
|
-
continue;
|
|
195
|
-
}
|
|
196
|
-
const entity = entityMap.get(result.name);
|
|
197
|
-
if (entity) {
|
|
198
|
-
results.push({
|
|
199
|
-
entity,
|
|
200
|
-
similarity: result.score,
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
if (results.length >= effectiveLimit) {
|
|
204
|
-
break;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
return results;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Find entities similar to a given entity.
|
|
211
|
-
*
|
|
212
|
-
* @param graph - Knowledge graph to search in
|
|
213
|
-
* @param entityName - Name of entity to find similar entities for
|
|
214
|
-
* @param limit - Maximum number of results (default: 10)
|
|
215
|
-
* @param minSimilarity - Minimum similarity threshold (default: 0)
|
|
216
|
-
* @returns Array of search results with similarity scores
|
|
217
|
-
*/
|
|
218
|
-
async findSimilar(graph, entityName, limit = SEMANTIC_SEARCH_LIMITS.DEFAULT_LIMIT, minSimilarity = SEMANTIC_SEARCH_LIMITS.MIN_SIMILARITY) {
|
|
219
|
-
// Get the entity's embedding
|
|
220
|
-
const embedding = this.vectorStore.get(entityName);
|
|
221
|
-
if (!embedding) {
|
|
222
|
-
// Try to find and index the entity
|
|
223
|
-
const entity = graph.entities.find(e => e.name === entityName);
|
|
224
|
-
if (entity) {
|
|
225
|
-
await this.indexEntity(entity);
|
|
226
|
-
return this.findSimilar(graph, entityName, limit, minSimilarity);
|
|
227
|
-
}
|
|
228
|
-
return [];
|
|
229
|
-
}
|
|
230
|
-
// Ensure limit is within bounds
|
|
231
|
-
const effectiveLimit = Math.min(limit, SEMANTIC_SEARCH_LIMITS.MAX_LIMIT);
|
|
232
|
-
// Search vector store (request extra to filter out self)
|
|
233
|
-
const vectorResults = this.vectorStore.search(embedding, effectiveLimit + 1);
|
|
234
|
-
// Convert to SemanticSearchResult with entity lookup
|
|
235
|
-
const entityMap = new Map();
|
|
236
|
-
for (const entity of graph.entities) {
|
|
237
|
-
entityMap.set(entity.name, entity);
|
|
238
|
-
}
|
|
239
|
-
const results = [];
|
|
240
|
-
for (const result of vectorResults) {
|
|
241
|
-
// Skip self
|
|
242
|
-
if (result.name === entityName) {
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
if (result.score < minSimilarity) {
|
|
246
|
-
continue;
|
|
247
|
-
}
|
|
248
|
-
const entity = entityMap.get(result.name);
|
|
249
|
-
if (entity) {
|
|
250
|
-
results.push({
|
|
251
|
-
entity,
|
|
252
|
-
similarity: result.score,
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
if (results.length >= effectiveLimit) {
|
|
256
|
-
break;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
return results;
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Get the embedding service.
|
|
263
|
-
*
|
|
264
|
-
* @returns Embedding service instance
|
|
265
|
-
*/
|
|
266
|
-
getEmbeddingService() {
|
|
267
|
-
return this.embeddingService;
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* Get the vector store.
|
|
271
|
-
*
|
|
272
|
-
* @returns Vector store instance
|
|
273
|
-
*/
|
|
274
|
-
getVectorStore() {
|
|
275
|
-
return this.vectorStore;
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Check if the index has been built.
|
|
279
|
-
*
|
|
280
|
-
* @returns True if indexAll has been called
|
|
281
|
-
*/
|
|
282
|
-
isIndexed() {
|
|
283
|
-
return this.indexed;
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Get the number of indexed entities.
|
|
287
|
-
*
|
|
288
|
-
* @returns Number of entities in the vector store
|
|
289
|
-
*/
|
|
290
|
-
getIndexedCount() {
|
|
291
|
-
return this.indexedCount;
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Clear all indexed embeddings.
|
|
295
|
-
*/
|
|
296
|
-
clearIndex() {
|
|
297
|
-
this.vectorStore.clear();
|
|
298
|
-
this.indexed = false;
|
|
299
|
-
this.indexedCount = 0;
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Check if semantic search is available.
|
|
303
|
-
*
|
|
304
|
-
* @returns True if embedding service is ready
|
|
305
|
-
*/
|
|
306
|
-
async isAvailable() {
|
|
307
|
-
return this.embeddingService.isReady();
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* Get semantic search statistics.
|
|
311
|
-
*
|
|
312
|
-
* @returns Statistics about the semantic search index
|
|
313
|
-
*/
|
|
314
|
-
getStats() {
|
|
315
|
-
return {
|
|
316
|
-
indexed: this.indexed,
|
|
317
|
-
indexedCount: this.indexedCount,
|
|
318
|
-
provider: this.embeddingService.provider,
|
|
319
|
-
model: this.embeddingService.model,
|
|
320
|
-
dimensions: this.embeddingService.dimensions,
|
|
321
|
-
};
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
//# sourceMappingURL=SemanticSearch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SemanticSearch.js","sourceRoot":"","sources":["../../src/search/SemanticSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Symbolic Search Layer
|
|
3
|
-
*
|
|
4
|
-
* Phase 11: Provides metadata-based filtering using structured predicates.
|
|
5
|
-
* Part of the three-layer hybrid search architecture.
|
|
6
|
-
*
|
|
7
|
-
* @module search/SymbolicSearch
|
|
8
|
-
*/
|
|
9
|
-
import type { Entity, SymbolicFilters } from '../types/index.js';
|
|
10
|
-
/**
|
|
11
|
-
* Result from symbolic search with match score.
|
|
12
|
-
*/
|
|
13
|
-
export interface SymbolicResult {
|
|
14
|
-
entity: Entity;
|
|
15
|
-
score: number;
|
|
16
|
-
matchedFilters: string[];
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Symbolic Search provides metadata-based filtering.
|
|
20
|
-
*
|
|
21
|
-
* Filters entities using structured predicates on tags, types,
|
|
22
|
-
* dates, importance, and hierarchy.
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* const symbolic = new SymbolicSearch();
|
|
27
|
-
* const results = symbolic.search(entities, {
|
|
28
|
-
* tags: ['important'],
|
|
29
|
-
* entityTypes: ['person'],
|
|
30
|
-
* importance: { min: 5 }
|
|
31
|
-
* });
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export declare class SymbolicSearch {
|
|
35
|
-
/**
|
|
36
|
-
* Filter entities using structured metadata predicates.
|
|
37
|
-
* All filters are AND-combined.
|
|
38
|
-
*
|
|
39
|
-
* @param entities - Entities to filter
|
|
40
|
-
* @param filters - Symbolic filter criteria
|
|
41
|
-
* @returns Filtered entities with match scores
|
|
42
|
-
*/
|
|
43
|
-
search(entities: readonly Entity[], filters: SymbolicFilters): SymbolicResult[];
|
|
44
|
-
/**
|
|
45
|
-
* Evaluate all filters against an entity.
|
|
46
|
-
*/
|
|
47
|
-
private evaluateFilters;
|
|
48
|
-
/**
|
|
49
|
-
* Get entities matching a specific tag.
|
|
50
|
-
*/
|
|
51
|
-
byTag(entities: readonly Entity[], tag: string): Entity[];
|
|
52
|
-
/**
|
|
53
|
-
* Get entities of a specific type.
|
|
54
|
-
*/
|
|
55
|
-
byType(entities: readonly Entity[], entityType: string): Entity[];
|
|
56
|
-
/**
|
|
57
|
-
* Get entities within importance range.
|
|
58
|
-
*/
|
|
59
|
-
byImportance(entities: readonly Entity[], min: number, max: number): Entity[];
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=SymbolicSearch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SymbolicSearch.d.ts","sourceRoot":"","sources":["../../src/search/SymbolicSearch.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAc;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc,EAAE;IAc/E;;OAEG;IACH,OAAO,CAAC,eAAe;IAyGvB;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAMzD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAMjE;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;CAM9E"}
|