@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,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hierarchy Manager
|
|
3
|
-
*
|
|
4
|
-
* Handles entity hierarchy operations (parent-child relationships).
|
|
5
|
-
* Extracted from EntityManager (Phase 4: Consolidate God Objects).
|
|
6
|
-
*
|
|
7
|
-
* @module core/HierarchyManager
|
|
8
|
-
*/
|
|
9
|
-
import type { Entity, KnowledgeGraph } from '../types/index.js';
|
|
10
|
-
import type { GraphStorage } from './GraphStorage.js';
|
|
11
|
-
/**
|
|
12
|
-
* Manages hierarchical relationships between entities.
|
|
13
|
-
*/
|
|
14
|
-
export declare class HierarchyManager {
|
|
15
|
-
private storage;
|
|
16
|
-
constructor(storage: GraphStorage);
|
|
17
|
-
/**
|
|
18
|
-
* Set the parent of an entity.
|
|
19
|
-
*
|
|
20
|
-
* Validates:
|
|
21
|
-
* - Entity and parent exist
|
|
22
|
-
* - Setting parent won't create a cycle
|
|
23
|
-
*
|
|
24
|
-
* @param entityName - Entity to set parent for
|
|
25
|
-
* @param parentName - Parent entity name (null to remove parent)
|
|
26
|
-
* @returns Updated entity
|
|
27
|
-
* @throws {EntityNotFoundError} If entity or parent not found
|
|
28
|
-
* @throws {CycleDetectedError} If setting parent would create a cycle
|
|
29
|
-
*/
|
|
30
|
-
setEntityParent(entityName: string, parentName: string | null): Promise<Entity>;
|
|
31
|
-
/**
|
|
32
|
-
* Check if setting a parent would create a cycle in the hierarchy.
|
|
33
|
-
*
|
|
34
|
-
* @param graph - Knowledge graph
|
|
35
|
-
* @param entityName - Entity to set parent for
|
|
36
|
-
* @param parentName - Proposed parent
|
|
37
|
-
* @returns True if cycle would be created
|
|
38
|
-
*/
|
|
39
|
-
private wouldCreateCycle;
|
|
40
|
-
/**
|
|
41
|
-
* Get the immediate children of an entity.
|
|
42
|
-
*
|
|
43
|
-
* @param entityName - Parent entity name
|
|
44
|
-
* @returns Array of child entities
|
|
45
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
46
|
-
*/
|
|
47
|
-
getChildren(entityName: string): Promise<Entity[]>;
|
|
48
|
-
/**
|
|
49
|
-
* Get the parent of an entity.
|
|
50
|
-
*
|
|
51
|
-
* @param entityName - Entity name
|
|
52
|
-
* @returns Parent entity or null if no parent
|
|
53
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
54
|
-
*/
|
|
55
|
-
getParent(entityName: string): Promise<Entity | null>;
|
|
56
|
-
/**
|
|
57
|
-
* Get all ancestors of an entity (parent, grandparent, etc.).
|
|
58
|
-
*
|
|
59
|
-
* @param entityName - Entity name
|
|
60
|
-
* @returns Array of ancestor entities (ordered from immediate parent to root)
|
|
61
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
62
|
-
*/
|
|
63
|
-
getAncestors(entityName: string): Promise<Entity[]>;
|
|
64
|
-
/**
|
|
65
|
-
* Get all descendants of an entity (children, grandchildren, etc.).
|
|
66
|
-
*
|
|
67
|
-
* Uses breadth-first traversal.
|
|
68
|
-
*
|
|
69
|
-
* @param entityName - Entity name
|
|
70
|
-
* @returns Array of descendant entities
|
|
71
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
72
|
-
*/
|
|
73
|
-
getDescendants(entityName: string): Promise<Entity[]>;
|
|
74
|
-
/**
|
|
75
|
-
* Get the entire subtree rooted at an entity (entity + all descendants).
|
|
76
|
-
*
|
|
77
|
-
* Includes relations between entities in the subtree.
|
|
78
|
-
*
|
|
79
|
-
* @param entityName - Root entity name
|
|
80
|
-
* @returns Knowledge graph containing subtree
|
|
81
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
82
|
-
*/
|
|
83
|
-
getSubtree(entityName: string): Promise<KnowledgeGraph>;
|
|
84
|
-
/**
|
|
85
|
-
* Get root entities (entities with no parent).
|
|
86
|
-
*
|
|
87
|
-
* @returns Array of root entities
|
|
88
|
-
*/
|
|
89
|
-
getRootEntities(): Promise<Entity[]>;
|
|
90
|
-
/**
|
|
91
|
-
* Get the depth of an entity in the hierarchy.
|
|
92
|
-
*
|
|
93
|
-
* Root entities have depth 0, their children depth 1, etc.
|
|
94
|
-
*
|
|
95
|
-
* @param entityName - Entity name
|
|
96
|
-
* @returns Depth (number of ancestors)
|
|
97
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
98
|
-
*/
|
|
99
|
-
getEntityDepth(entityName: string): Promise<number>;
|
|
100
|
-
/**
|
|
101
|
-
* Move an entity to a new parent (maintaining its descendants).
|
|
102
|
-
*
|
|
103
|
-
* Alias for setEntityParent.
|
|
104
|
-
*
|
|
105
|
-
* @param entityName - Entity to move
|
|
106
|
-
* @param newParentName - New parent name (null to make root)
|
|
107
|
-
* @returns Updated entity
|
|
108
|
-
*/
|
|
109
|
-
moveEntity(entityName: string, newParentName: string | null): Promise<Entity>;
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=HierarchyManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchyManager.d.ts","sourceRoot":"","sources":["../../src/core/HierarchyManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAA0B,MAAM,mBAAmB,CAAC;AACxF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;GAEG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAEzC;;;;;;;;;;;;OAYG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCrF;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;;;OAMG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxD;;;;;;OAMG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgB3D;;;;;;OAMG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmBzD;;;;;;;;OAQG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwB3D;;;;;;;;OAQG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuB7D;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAK1C;;;;;;;;OAQG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzD;;;;;;;;OAQG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CAGpF"}
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hierarchy Manager
|
|
3
|
-
*
|
|
4
|
-
* Handles entity hierarchy operations (parent-child relationships).
|
|
5
|
-
* Extracted from EntityManager (Phase 4: Consolidate God Objects).
|
|
6
|
-
*
|
|
7
|
-
* @module core/HierarchyManager
|
|
8
|
-
*/
|
|
9
|
-
import { EntityNotFoundError, CycleDetectedError } from '../utils/errors.js';
|
|
10
|
-
/**
|
|
11
|
-
* Manages hierarchical relationships between entities.
|
|
12
|
-
*/
|
|
13
|
-
export class HierarchyManager {
|
|
14
|
-
storage;
|
|
15
|
-
constructor(storage) {
|
|
16
|
-
this.storage = storage;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Set the parent of an entity.
|
|
20
|
-
*
|
|
21
|
-
* Validates:
|
|
22
|
-
* - Entity and parent exist
|
|
23
|
-
* - Setting parent won't create a cycle
|
|
24
|
-
*
|
|
25
|
-
* @param entityName - Entity to set parent for
|
|
26
|
-
* @param parentName - Parent entity name (null to remove parent)
|
|
27
|
-
* @returns Updated entity
|
|
28
|
-
* @throws {EntityNotFoundError} If entity or parent not found
|
|
29
|
-
* @throws {CycleDetectedError} If setting parent would create a cycle
|
|
30
|
-
*/
|
|
31
|
-
async setEntityParent(entityName, parentName) {
|
|
32
|
-
// Use read-only graph for validation checks
|
|
33
|
-
const readGraph = await this.storage.loadGraph();
|
|
34
|
-
const entityExists = readGraph.entities.find(e => e.name === entityName);
|
|
35
|
-
if (!entityExists) {
|
|
36
|
-
throw new EntityNotFoundError(entityName);
|
|
37
|
-
}
|
|
38
|
-
// If setting a parent, validate it exists and doesn't create a cycle
|
|
39
|
-
if (parentName !== null) {
|
|
40
|
-
const parent = readGraph.entities.find(e => e.name === parentName);
|
|
41
|
-
if (!parent) {
|
|
42
|
-
throw new EntityNotFoundError(parentName);
|
|
43
|
-
}
|
|
44
|
-
// Check for cycles
|
|
45
|
-
if (this.wouldCreateCycle(readGraph, entityName, parentName)) {
|
|
46
|
-
throw new CycleDetectedError(entityName, parentName);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// Get mutable copy for write operation
|
|
50
|
-
const graph = await this.storage.getGraphForMutation();
|
|
51
|
-
const entity = graph.entities.find(e => e.name === entityName);
|
|
52
|
-
entity.parentId = parentName || undefined;
|
|
53
|
-
entity.lastModified = new Date().toISOString();
|
|
54
|
-
await this.storage.saveGraph(graph);
|
|
55
|
-
return entity;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Check if setting a parent would create a cycle in the hierarchy.
|
|
59
|
-
*
|
|
60
|
-
* @param graph - Knowledge graph
|
|
61
|
-
* @param entityName - Entity to set parent for
|
|
62
|
-
* @param parentName - Proposed parent
|
|
63
|
-
* @returns True if cycle would be created
|
|
64
|
-
*/
|
|
65
|
-
wouldCreateCycle(graph, entityName, parentName) {
|
|
66
|
-
const visited = new Set();
|
|
67
|
-
let current = parentName;
|
|
68
|
-
while (current) {
|
|
69
|
-
if (visited.has(current)) {
|
|
70
|
-
return true; // Cycle detected in existing hierarchy
|
|
71
|
-
}
|
|
72
|
-
if (current === entityName) {
|
|
73
|
-
return true; // Would create a cycle
|
|
74
|
-
}
|
|
75
|
-
visited.add(current);
|
|
76
|
-
const currentEntity = graph.entities.find(e => e.name === current);
|
|
77
|
-
current = currentEntity?.parentId;
|
|
78
|
-
}
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Get the immediate children of an entity.
|
|
83
|
-
*
|
|
84
|
-
* @param entityName - Parent entity name
|
|
85
|
-
* @returns Array of child entities
|
|
86
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
87
|
-
*/
|
|
88
|
-
async getChildren(entityName) {
|
|
89
|
-
const graph = await this.storage.loadGraph();
|
|
90
|
-
// Verify entity exists
|
|
91
|
-
if (!graph.entities.find(e => e.name === entityName)) {
|
|
92
|
-
throw new EntityNotFoundError(entityName);
|
|
93
|
-
}
|
|
94
|
-
return graph.entities.filter(e => e.parentId === entityName);
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get the parent of an entity.
|
|
98
|
-
*
|
|
99
|
-
* @param entityName - Entity name
|
|
100
|
-
* @returns Parent entity or null if no parent
|
|
101
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
102
|
-
*/
|
|
103
|
-
async getParent(entityName) {
|
|
104
|
-
const graph = await this.storage.loadGraph();
|
|
105
|
-
const entity = graph.entities.find(e => e.name === entityName);
|
|
106
|
-
if (!entity) {
|
|
107
|
-
throw new EntityNotFoundError(entityName);
|
|
108
|
-
}
|
|
109
|
-
if (!entity.parentId) {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
const parent = graph.entities.find(e => e.name === entity.parentId);
|
|
113
|
-
return parent || null;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Get all ancestors of an entity (parent, grandparent, etc.).
|
|
117
|
-
*
|
|
118
|
-
* @param entityName - Entity name
|
|
119
|
-
* @returns Array of ancestor entities (ordered from immediate parent to root)
|
|
120
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
121
|
-
*/
|
|
122
|
-
async getAncestors(entityName) {
|
|
123
|
-
const graph = await this.storage.loadGraph();
|
|
124
|
-
const ancestors = [];
|
|
125
|
-
let current = graph.entities.find(e => e.name === entityName);
|
|
126
|
-
if (!current) {
|
|
127
|
-
throw new EntityNotFoundError(entityName);
|
|
128
|
-
}
|
|
129
|
-
while (current.parentId) {
|
|
130
|
-
const parent = graph.entities.find(e => e.name === current.parentId);
|
|
131
|
-
if (!parent)
|
|
132
|
-
break;
|
|
133
|
-
ancestors.push(parent);
|
|
134
|
-
current = parent;
|
|
135
|
-
}
|
|
136
|
-
return ancestors;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Get all descendants of an entity (children, grandchildren, etc.).
|
|
140
|
-
*
|
|
141
|
-
* Uses breadth-first traversal.
|
|
142
|
-
*
|
|
143
|
-
* @param entityName - Entity name
|
|
144
|
-
* @returns Array of descendant entities
|
|
145
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
146
|
-
*/
|
|
147
|
-
async getDescendants(entityName) {
|
|
148
|
-
const graph = await this.storage.loadGraph();
|
|
149
|
-
// Verify entity exists
|
|
150
|
-
if (!graph.entities.find(e => e.name === entityName)) {
|
|
151
|
-
throw new EntityNotFoundError(entityName);
|
|
152
|
-
}
|
|
153
|
-
const descendants = [];
|
|
154
|
-
const toProcess = [entityName];
|
|
155
|
-
while (toProcess.length > 0) {
|
|
156
|
-
const current = toProcess.shift();
|
|
157
|
-
const children = graph.entities.filter(e => e.parentId === current);
|
|
158
|
-
for (const child of children) {
|
|
159
|
-
descendants.push(child);
|
|
160
|
-
toProcess.push(child.name);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return descendants;
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Get the entire subtree rooted at an entity (entity + all descendants).
|
|
167
|
-
*
|
|
168
|
-
* Includes relations between entities in the subtree.
|
|
169
|
-
*
|
|
170
|
-
* @param entityName - Root entity name
|
|
171
|
-
* @returns Knowledge graph containing subtree
|
|
172
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
173
|
-
*/
|
|
174
|
-
async getSubtree(entityName) {
|
|
175
|
-
const graph = await this.storage.loadGraph();
|
|
176
|
-
const entity = graph.entities.find(e => e.name === entityName);
|
|
177
|
-
if (!entity) {
|
|
178
|
-
throw new EntityNotFoundError(entityName);
|
|
179
|
-
}
|
|
180
|
-
const descendants = await this.getDescendants(entityName);
|
|
181
|
-
const subtreeEntities = [entity, ...descendants];
|
|
182
|
-
const subtreeEntityNames = new Set(subtreeEntities.map(e => e.name));
|
|
183
|
-
// Include relations between entities in the subtree
|
|
184
|
-
const subtreeRelations = graph.relations.filter(r => subtreeEntityNames.has(r.from) && subtreeEntityNames.has(r.to));
|
|
185
|
-
return {
|
|
186
|
-
entities: subtreeEntities,
|
|
187
|
-
relations: subtreeRelations,
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Get root entities (entities with no parent).
|
|
192
|
-
*
|
|
193
|
-
* @returns Array of root entities
|
|
194
|
-
*/
|
|
195
|
-
async getRootEntities() {
|
|
196
|
-
const graph = await this.storage.loadGraph();
|
|
197
|
-
return graph.entities.filter(e => !e.parentId);
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Get the depth of an entity in the hierarchy.
|
|
201
|
-
*
|
|
202
|
-
* Root entities have depth 0, their children depth 1, etc.
|
|
203
|
-
*
|
|
204
|
-
* @param entityName - Entity name
|
|
205
|
-
* @returns Depth (number of ancestors)
|
|
206
|
-
* @throws {EntityNotFoundError} If entity not found
|
|
207
|
-
*/
|
|
208
|
-
async getEntityDepth(entityName) {
|
|
209
|
-
const ancestors = await this.getAncestors(entityName);
|
|
210
|
-
return ancestors.length;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Move an entity to a new parent (maintaining its descendants).
|
|
214
|
-
*
|
|
215
|
-
* Alias for setEntityParent.
|
|
216
|
-
*
|
|
217
|
-
* @param entityName - Entity to move
|
|
218
|
-
* @param newParentName - New parent name (null to make root)
|
|
219
|
-
* @returns Updated entity
|
|
220
|
-
*/
|
|
221
|
-
async moveEntity(entityName, newParentName) {
|
|
222
|
-
return await this.setEntityParent(entityName, newParentName);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
//# sourceMappingURL=HierarchyManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HierarchyManager.js","sourceRoot":"","sources":["../../src/core/HierarchyManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Manager Context
|
|
3
|
-
*
|
|
4
|
-
* Central context holding all manager instances with lazy initialization.
|
|
5
|
-
* Provides direct manager access for toolHandlers.
|
|
6
|
-
* Phase 4: Removed convenience methods - use managers directly.
|
|
7
|
-
*
|
|
8
|
-
* @module core/ManagerContext
|
|
9
|
-
*/
|
|
10
|
-
import { GraphStorage } from './GraphStorage.js';
|
|
11
|
-
import { EntityManager } from './EntityManager.js';
|
|
12
|
-
import { RelationManager } from './RelationManager.js';
|
|
13
|
-
import { ObservationManager } from './ObservationManager.js';
|
|
14
|
-
import { HierarchyManager } from './HierarchyManager.js';
|
|
15
|
-
import { GraphTraversal } from './GraphTraversal.js';
|
|
16
|
-
import { SearchManager } from '../search/SearchManager.js';
|
|
17
|
-
import { RankedSearch } from '../search/RankedSearch.js';
|
|
18
|
-
import { SemanticSearch } from '../search/index.js';
|
|
19
|
-
import { IOManager } from '../features/IOManager.js';
|
|
20
|
-
import { TagManager } from '../features/TagManager.js';
|
|
21
|
-
import { AnalyticsManager } from '../features/AnalyticsManager.js';
|
|
22
|
-
import { CompressionManager } from '../features/CompressionManager.js';
|
|
23
|
-
import { ArchiveManager } from '../features/ArchiveManager.js';
|
|
24
|
-
/**
|
|
25
|
-
* Context holding all manager instances with lazy initialization.
|
|
26
|
-
* Provides direct manager access for toolHandlers.
|
|
27
|
-
*/
|
|
28
|
-
export declare class ManagerContext {
|
|
29
|
-
readonly storage: GraphStorage;
|
|
30
|
-
private readonly savedSearchesFilePath;
|
|
31
|
-
private readonly tagAliasesFilePath;
|
|
32
|
-
private _entityManager?;
|
|
33
|
-
private _relationManager?;
|
|
34
|
-
private _observationManager?;
|
|
35
|
-
private _hierarchyManager?;
|
|
36
|
-
private _graphTraversal?;
|
|
37
|
-
private _searchManager?;
|
|
38
|
-
private _semanticSearch?;
|
|
39
|
-
private _rankedSearch?;
|
|
40
|
-
private _ioManager?;
|
|
41
|
-
private _tagManager?;
|
|
42
|
-
private _analyticsManager?;
|
|
43
|
-
private _compressionManager?;
|
|
44
|
-
private _archiveManager?;
|
|
45
|
-
constructor(memoryFilePath: string);
|
|
46
|
-
/** EntityManager - Entity CRUD and tag operations */
|
|
47
|
-
get entityManager(): EntityManager;
|
|
48
|
-
/** RelationManager - Relation CRUD */
|
|
49
|
-
get relationManager(): RelationManager;
|
|
50
|
-
/** ObservationManager - Observation CRUD */
|
|
51
|
-
get observationManager(): ObservationManager;
|
|
52
|
-
/** HierarchyManager - Entity hierarchy operations */
|
|
53
|
-
get hierarchyManager(): HierarchyManager;
|
|
54
|
-
/** GraphTraversal - Phase 4 Sprint 6-8: Graph traversal algorithms */
|
|
55
|
-
get graphTraversal(): GraphTraversal;
|
|
56
|
-
/** SearchManager - All search operations */
|
|
57
|
-
get searchManager(): SearchManager;
|
|
58
|
-
/**
|
|
59
|
-
* SemanticSearch - Phase 4 Sprint 12: Semantic similarity search.
|
|
60
|
-
* Returns null if no embedding provider is configured.
|
|
61
|
-
*/
|
|
62
|
-
get semanticSearch(): SemanticSearch | null;
|
|
63
|
-
/** RankedSearch - Phase 11: TF-IDF/BM25 ranked search for hybrid search */
|
|
64
|
-
get rankedSearch(): RankedSearch;
|
|
65
|
-
/** IOManager - Import, export, and backup operations */
|
|
66
|
-
get ioManager(): IOManager;
|
|
67
|
-
/** TagManager - Tag alias management */
|
|
68
|
-
get tagManager(): TagManager;
|
|
69
|
-
/** AnalyticsManager - Graph statistics and validation */
|
|
70
|
-
get analyticsManager(): AnalyticsManager;
|
|
71
|
-
/** CompressionManager - Duplicate detection and entity merging */
|
|
72
|
-
get compressionManager(): CompressionManager;
|
|
73
|
-
/** ArchiveManager - Entity archival operations */
|
|
74
|
-
get archiveManager(): ArchiveManager;
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=ManagerContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ManagerContext.d.ts","sourceRoot":"","sources":["../../src/core/ManagerContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAA6C,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D;;;GAGG;AACH,qBAAa,cAAc;IAGzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAG5C,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,eAAe,CAAC,CAAwB;IAChD,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,OAAO,CAAC,eAAe,CAAC,CAAiB;gBAE7B,cAAc,EAAE,MAAM;IAclC,qDAAqD;IACrD,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED,sCAAsC;IACtC,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,4CAA4C;IAC5C,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED,qDAAqD;IACrD,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,sEAAsE;IACtE,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,4CAA4C;IAC5C,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED;;;OAGG;IACH,IAAI,cAAc,IAAI,cAAc,GAAG,IAAI,CAa1C;IAED,2EAA2E;IAC3E,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,wDAAwD;IACxD,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,wCAAwC;IACxC,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,yDAAyD;IACzD,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED,kEAAkE;IAClE,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED,kDAAkD;IAClD,IAAI,cAAc,IAAI,cAAc,CAEnC;CACF"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Manager Context
|
|
3
|
-
*
|
|
4
|
-
* Central context holding all manager instances with lazy initialization.
|
|
5
|
-
* Provides direct manager access for toolHandlers.
|
|
6
|
-
* Phase 4: Removed convenience methods - use managers directly.
|
|
7
|
-
*
|
|
8
|
-
* @module core/ManagerContext
|
|
9
|
-
*/
|
|
10
|
-
import path from 'path';
|
|
11
|
-
import { createStorageFromPath } from './StorageFactory.js';
|
|
12
|
-
import { EntityManager } from './EntityManager.js';
|
|
13
|
-
import { RelationManager } from './RelationManager.js';
|
|
14
|
-
import { ObservationManager } from './ObservationManager.js';
|
|
15
|
-
import { HierarchyManager } from './HierarchyManager.js';
|
|
16
|
-
import { GraphTraversal } from './GraphTraversal.js';
|
|
17
|
-
import { SearchManager } from '../search/SearchManager.js';
|
|
18
|
-
import { RankedSearch } from '../search/RankedSearch.js';
|
|
19
|
-
import { SemanticSearch, createEmbeddingService, createVectorStore } from '../search/index.js';
|
|
20
|
-
import { IOManager } from '../features/IOManager.js';
|
|
21
|
-
import { TagManager } from '../features/TagManager.js';
|
|
22
|
-
import { AnalyticsManager } from '../features/AnalyticsManager.js';
|
|
23
|
-
import { CompressionManager } from '../features/CompressionManager.js';
|
|
24
|
-
import { ArchiveManager } from '../features/ArchiveManager.js';
|
|
25
|
-
import { getEmbeddingConfig } from '../utils/constants.js';
|
|
26
|
-
/**
|
|
27
|
-
* Context holding all manager instances with lazy initialization.
|
|
28
|
-
* Provides direct manager access for toolHandlers.
|
|
29
|
-
*/
|
|
30
|
-
export class ManagerContext {
|
|
31
|
-
// Type as GraphStorage for manager compatibility; actual instance may be SQLiteStorage
|
|
32
|
-
// which implements the same interface via duck typing
|
|
33
|
-
storage;
|
|
34
|
-
savedSearchesFilePath;
|
|
35
|
-
tagAliasesFilePath;
|
|
36
|
-
// Lazy-initialized managers
|
|
37
|
-
_entityManager;
|
|
38
|
-
_relationManager;
|
|
39
|
-
_observationManager;
|
|
40
|
-
_hierarchyManager;
|
|
41
|
-
_graphTraversal;
|
|
42
|
-
_searchManager;
|
|
43
|
-
_semanticSearch;
|
|
44
|
-
_rankedSearch;
|
|
45
|
-
_ioManager;
|
|
46
|
-
_tagManager;
|
|
47
|
-
_analyticsManager;
|
|
48
|
-
_compressionManager;
|
|
49
|
-
_archiveManager;
|
|
50
|
-
constructor(memoryFilePath) {
|
|
51
|
-
// Derive paths for saved searches and tag aliases
|
|
52
|
-
const dir = path.dirname(memoryFilePath);
|
|
53
|
-
const basename = path.basename(memoryFilePath, path.extname(memoryFilePath));
|
|
54
|
-
this.savedSearchesFilePath = path.join(dir, `${basename}-saved-searches.jsonl`);
|
|
55
|
-
this.tagAliasesFilePath = path.join(dir, `${basename}-tag-aliases.jsonl`);
|
|
56
|
-
// Use StorageFactory to respect MEMORY_STORAGE_TYPE environment variable
|
|
57
|
-
// Type assertion: SQLiteStorage implements same interface as GraphStorage
|
|
58
|
-
this.storage = createStorageFromPath(memoryFilePath);
|
|
59
|
-
}
|
|
60
|
-
// ==================== MANAGER ACCESSORS ====================
|
|
61
|
-
// Use these for direct manager access in toolHandlers
|
|
62
|
-
/** EntityManager - Entity CRUD and tag operations */
|
|
63
|
-
get entityManager() {
|
|
64
|
-
return (this._entityManager ??= new EntityManager(this.storage));
|
|
65
|
-
}
|
|
66
|
-
/** RelationManager - Relation CRUD */
|
|
67
|
-
get relationManager() {
|
|
68
|
-
return (this._relationManager ??= new RelationManager(this.storage));
|
|
69
|
-
}
|
|
70
|
-
/** ObservationManager - Observation CRUD */
|
|
71
|
-
get observationManager() {
|
|
72
|
-
return (this._observationManager ??= new ObservationManager(this.storage));
|
|
73
|
-
}
|
|
74
|
-
/** HierarchyManager - Entity hierarchy operations */
|
|
75
|
-
get hierarchyManager() {
|
|
76
|
-
return (this._hierarchyManager ??= new HierarchyManager(this.storage));
|
|
77
|
-
}
|
|
78
|
-
/** GraphTraversal - Phase 4 Sprint 6-8: Graph traversal algorithms */
|
|
79
|
-
get graphTraversal() {
|
|
80
|
-
return (this._graphTraversal ??= new GraphTraversal(this.storage));
|
|
81
|
-
}
|
|
82
|
-
/** SearchManager - All search operations */
|
|
83
|
-
get searchManager() {
|
|
84
|
-
return (this._searchManager ??= new SearchManager(this.storage, this.savedSearchesFilePath));
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* SemanticSearch - Phase 4 Sprint 12: Semantic similarity search.
|
|
88
|
-
* Returns null if no embedding provider is configured.
|
|
89
|
-
*/
|
|
90
|
-
get semanticSearch() {
|
|
91
|
-
if (this._semanticSearch === undefined) {
|
|
92
|
-
const config = getEmbeddingConfig();
|
|
93
|
-
const embeddingService = createEmbeddingService(config);
|
|
94
|
-
if (embeddingService) {
|
|
95
|
-
const vectorStore = createVectorStore('jsonl'); // Use in-memory for now
|
|
96
|
-
this._semanticSearch = new SemanticSearch(embeddingService, vectorStore);
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
this._semanticSearch = null;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return this._semanticSearch;
|
|
103
|
-
}
|
|
104
|
-
/** RankedSearch - Phase 11: TF-IDF/BM25 ranked search for hybrid search */
|
|
105
|
-
get rankedSearch() {
|
|
106
|
-
return (this._rankedSearch ??= new RankedSearch(this.storage));
|
|
107
|
-
}
|
|
108
|
-
/** IOManager - Import, export, and backup operations */
|
|
109
|
-
get ioManager() {
|
|
110
|
-
return (this._ioManager ??= new IOManager(this.storage));
|
|
111
|
-
}
|
|
112
|
-
/** TagManager - Tag alias management */
|
|
113
|
-
get tagManager() {
|
|
114
|
-
return (this._tagManager ??= new TagManager(this.tagAliasesFilePath));
|
|
115
|
-
}
|
|
116
|
-
/** AnalyticsManager - Graph statistics and validation */
|
|
117
|
-
get analyticsManager() {
|
|
118
|
-
return (this._analyticsManager ??= new AnalyticsManager(this.storage));
|
|
119
|
-
}
|
|
120
|
-
/** CompressionManager - Duplicate detection and entity merging */
|
|
121
|
-
get compressionManager() {
|
|
122
|
-
return (this._compressionManager ??= new CompressionManager(this.storage));
|
|
123
|
-
}
|
|
124
|
-
/** ArchiveManager - Entity archival operations */
|
|
125
|
-
get archiveManager() {
|
|
126
|
-
return (this._archiveManager ??= new ArchiveManager(this.storage));
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=ManagerContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ManagerContext.js","sourceRoot":"","sources":["../../src/core/ManagerContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Observation Manager
|
|
3
|
-
*
|
|
4
|
-
* Handles observation CRUD operations for entities.
|
|
5
|
-
* Extracted from EntityManager (Phase 4: Consolidate God Objects).
|
|
6
|
-
*
|
|
7
|
-
* @module core/ObservationManager
|
|
8
|
-
*/
|
|
9
|
-
import type { GraphStorage } from './GraphStorage.js';
|
|
10
|
-
/**
|
|
11
|
-
* Manages observation operations for entities in the knowledge graph.
|
|
12
|
-
*/
|
|
13
|
-
export declare class ObservationManager {
|
|
14
|
-
private storage;
|
|
15
|
-
constructor(storage: GraphStorage);
|
|
16
|
-
/**
|
|
17
|
-
* Add observations to multiple entities in a single batch operation.
|
|
18
|
-
*
|
|
19
|
-
* This method performs the following operations:
|
|
20
|
-
* - Adds new observations to specified entities
|
|
21
|
-
* - Filters out duplicate observations (already present)
|
|
22
|
-
* - Updates lastModified timestamp only if new observations were added
|
|
23
|
-
* - ATOMIC: All updates are saved in a single operation
|
|
24
|
-
*
|
|
25
|
-
* @param observations - Array of entity names and observations to add
|
|
26
|
-
* @returns Promise resolving to array of results showing which observations were added
|
|
27
|
-
* @throws {EntityNotFoundError} If any entity is not found
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* const manager = new ObservationManager(storage);
|
|
32
|
-
*
|
|
33
|
-
* // Add observations to multiple entities
|
|
34
|
-
* const results = await manager.addObservations([
|
|
35
|
-
* { entityName: 'Alice', contents: ['Completed project X', 'Started project Y'] },
|
|
36
|
-
* { entityName: 'Bob', contents: ['Joined team meeting'] }
|
|
37
|
-
* ]);
|
|
38
|
-
*
|
|
39
|
-
* // Check what was added (duplicates are filtered out)
|
|
40
|
-
* results.forEach(r => {
|
|
41
|
-
* console.log(`${r.entityName}: added ${r.addedObservations.length} new observations`);
|
|
42
|
-
* });
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
45
|
-
addObservations(observations: {
|
|
46
|
-
entityName: string;
|
|
47
|
-
contents: string[];
|
|
48
|
-
}[]): Promise<{
|
|
49
|
-
entityName: string;
|
|
50
|
-
addedObservations: string[];
|
|
51
|
-
}[]>;
|
|
52
|
-
/**
|
|
53
|
-
* Delete observations from multiple entities in a single batch operation.
|
|
54
|
-
*
|
|
55
|
-
* This method performs the following operations:
|
|
56
|
-
* - Removes specified observations from entities
|
|
57
|
-
* - Updates lastModified timestamp only if observations were deleted
|
|
58
|
-
* - Silently ignores entities that don't exist (no error thrown)
|
|
59
|
-
* - ATOMIC: All deletions are saved in a single operation
|
|
60
|
-
*
|
|
61
|
-
* @param deletions - Array of entity names and observations to delete
|
|
62
|
-
* @returns Promise that resolves when deletion is complete
|
|
63
|
-
*
|
|
64
|
-
* @example
|
|
65
|
-
* ```typescript
|
|
66
|
-
* const manager = new ObservationManager(storage);
|
|
67
|
-
*
|
|
68
|
-
* // Delete observations from multiple entities
|
|
69
|
-
* await manager.deleteObservations([
|
|
70
|
-
* { entityName: 'Alice', observations: ['Old observation 1', 'Old observation 2'] },
|
|
71
|
-
* { entityName: 'Bob', observations: ['Outdated info'] }
|
|
72
|
-
* ]);
|
|
73
|
-
*
|
|
74
|
-
* // Safe to delete from non-existent entities (no error)
|
|
75
|
-
* await manager.deleteObservations([
|
|
76
|
-
* { entityName: 'NonExistent', observations: ['Some text'] }
|
|
77
|
-
* ]); // No error thrown
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
deleteObservations(deletions: {
|
|
81
|
-
entityName: string;
|
|
82
|
-
observations: string[];
|
|
83
|
-
}[]): Promise<void>;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=ObservationManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ObservationManager.d.ts","sourceRoot":"","sources":["../../src/core/ObservationManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;GAEG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,eAAe,CACnB,YAAY,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,GACzD,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAiCjE;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,kBAAkB,CACtB,SAAS,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;CAyBjB"}
|