@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.
Files changed (300) hide show
  1. package/README.md +385 -113
  2. package/README.md.backup-1768084780988 +266 -0
  3. package/dist/index.cjs +24156 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +16967 -0
  6. package/dist/index.d.ts +16963 -11
  7. package/dist/index.js +23887 -19
  8. package/dist/index.js.map +1 -1
  9. package/dist/workers/levenshteinWorker.cjs +102 -0
  10. package/dist/workers/levenshteinWorker.cjs.map +1 -0
  11. package/dist/workers/levenshteinWorker.js +57 -91
  12. package/dist/workers/levenshteinWorker.js.map +1 -1
  13. package/package.json +75 -69
  14. package/dist/core/EntityManager.d.ts +0 -268
  15. package/dist/core/EntityManager.d.ts.map +0 -1
  16. package/dist/core/EntityManager.js +0 -512
  17. package/dist/core/EntityManager.js.map +0 -1
  18. package/dist/core/GraphEventEmitter.d.ts +0 -202
  19. package/dist/core/GraphEventEmitter.d.ts.map +0 -1
  20. package/dist/core/GraphEventEmitter.js +0 -347
  21. package/dist/core/GraphEventEmitter.js.map +0 -1
  22. package/dist/core/GraphStorage.d.ts +0 -395
  23. package/dist/core/GraphStorage.d.ts.map +0 -1
  24. package/dist/core/GraphStorage.js +0 -786
  25. package/dist/core/GraphStorage.js.map +0 -1
  26. package/dist/core/GraphTraversal.d.ts +0 -141
  27. package/dist/core/GraphTraversal.d.ts.map +0 -1
  28. package/dist/core/GraphTraversal.js +0 -574
  29. package/dist/core/GraphTraversal.js.map +0 -1
  30. package/dist/core/HierarchyManager.d.ts +0 -111
  31. package/dist/core/HierarchyManager.d.ts.map +0 -1
  32. package/dist/core/HierarchyManager.js +0 -225
  33. package/dist/core/HierarchyManager.js.map +0 -1
  34. package/dist/core/ManagerContext.d.ts +0 -76
  35. package/dist/core/ManagerContext.d.ts.map +0 -1
  36. package/dist/core/ManagerContext.js +0 -129
  37. package/dist/core/ManagerContext.js.map +0 -1
  38. package/dist/core/ObservationManager.d.ts +0 -85
  39. package/dist/core/ObservationManager.d.ts.map +0 -1
  40. package/dist/core/ObservationManager.js +0 -124
  41. package/dist/core/ObservationManager.js.map +0 -1
  42. package/dist/core/RelationManager.d.ts +0 -131
  43. package/dist/core/RelationManager.d.ts.map +0 -1
  44. package/dist/core/RelationManager.js +0 -212
  45. package/dist/core/RelationManager.js.map +0 -1
  46. package/dist/core/SQLiteStorage.d.ts +0 -354
  47. package/dist/core/SQLiteStorage.d.ts.map +0 -1
  48. package/dist/core/SQLiteStorage.js +0 -919
  49. package/dist/core/SQLiteStorage.js.map +0 -1
  50. package/dist/core/StorageFactory.d.ts +0 -45
  51. package/dist/core/StorageFactory.d.ts.map +0 -1
  52. package/dist/core/StorageFactory.js +0 -65
  53. package/dist/core/StorageFactory.js.map +0 -1
  54. package/dist/core/TransactionManager.d.ts +0 -464
  55. package/dist/core/TransactionManager.d.ts.map +0 -1
  56. package/dist/core/TransactionManager.js +0 -869
  57. package/dist/core/TransactionManager.js.map +0 -1
  58. package/dist/core/index.d.ts +0 -17
  59. package/dist/core/index.d.ts.map +0 -1
  60. package/dist/core/index.js +0 -20
  61. package/dist/core/index.js.map +0 -1
  62. package/dist/features/AnalyticsManager.d.ts +0 -44
  63. package/dist/features/AnalyticsManager.d.ts.map +0 -1
  64. package/dist/features/AnalyticsManager.js +0 -224
  65. package/dist/features/AnalyticsManager.js.map +0 -1
  66. package/dist/features/ArchiveManager.d.ts +0 -133
  67. package/dist/features/ArchiveManager.d.ts.map +0 -1
  68. package/dist/features/ArchiveManager.js +0 -282
  69. package/dist/features/ArchiveManager.js.map +0 -1
  70. package/dist/features/CompressionManager.d.ts +0 -119
  71. package/dist/features/CompressionManager.d.ts.map +0 -1
  72. package/dist/features/CompressionManager.js +0 -470
  73. package/dist/features/CompressionManager.js.map +0 -1
  74. package/dist/features/IOManager.d.ts +0 -225
  75. package/dist/features/IOManager.d.ts.map +0 -1
  76. package/dist/features/IOManager.js +0 -1093
  77. package/dist/features/IOManager.js.map +0 -1
  78. package/dist/features/KeywordExtractor.d.ts +0 -61
  79. package/dist/features/KeywordExtractor.d.ts.map +0 -1
  80. package/dist/features/KeywordExtractor.js +0 -127
  81. package/dist/features/KeywordExtractor.js.map +0 -1
  82. package/dist/features/ObservationNormalizer.d.ts +0 -90
  83. package/dist/features/ObservationNormalizer.d.ts.map +0 -1
  84. package/dist/features/ObservationNormalizer.js +0 -194
  85. package/dist/features/ObservationNormalizer.js.map +0 -1
  86. package/dist/features/StreamingExporter.d.ts +0 -128
  87. package/dist/features/StreamingExporter.d.ts.map +0 -1
  88. package/dist/features/StreamingExporter.js +0 -212
  89. package/dist/features/StreamingExporter.js.map +0 -1
  90. package/dist/features/TagManager.d.ts +0 -147
  91. package/dist/features/TagManager.d.ts.map +0 -1
  92. package/dist/features/TagManager.js +0 -211
  93. package/dist/features/TagManager.js.map +0 -1
  94. package/dist/features/index.d.ts +0 -14
  95. package/dist/features/index.d.ts.map +0 -1
  96. package/dist/features/index.js +0 -15
  97. package/dist/features/index.js.map +0 -1
  98. package/dist/index.d.ts.map +0 -1
  99. package/dist/search/BM25Search.d.ts +0 -148
  100. package/dist/search/BM25Search.d.ts.map +0 -1
  101. package/dist/search/BM25Search.js +0 -340
  102. package/dist/search/BM25Search.js.map +0 -1
  103. package/dist/search/BasicSearch.d.ts +0 -51
  104. package/dist/search/BasicSearch.d.ts.map +0 -1
  105. package/dist/search/BasicSearch.js +0 -138
  106. package/dist/search/BasicSearch.js.map +0 -1
  107. package/dist/search/BooleanSearch.d.ts +0 -98
  108. package/dist/search/BooleanSearch.d.ts.map +0 -1
  109. package/dist/search/BooleanSearch.js +0 -431
  110. package/dist/search/BooleanSearch.js.map +0 -1
  111. package/dist/search/EarlyTerminationManager.d.ts +0 -140
  112. package/dist/search/EarlyTerminationManager.d.ts.map +0 -1
  113. package/dist/search/EarlyTerminationManager.js +0 -280
  114. package/dist/search/EarlyTerminationManager.js.map +0 -1
  115. package/dist/search/EmbeddingCache.d.ts +0 -175
  116. package/dist/search/EmbeddingCache.d.ts.map +0 -1
  117. package/dist/search/EmbeddingCache.js +0 -247
  118. package/dist/search/EmbeddingCache.js.map +0 -1
  119. package/dist/search/EmbeddingService.d.ts +0 -277
  120. package/dist/search/EmbeddingService.d.ts.map +0 -1
  121. package/dist/search/EmbeddingService.js +0 -531
  122. package/dist/search/EmbeddingService.js.map +0 -1
  123. package/dist/search/FuzzySearch.d.ts +0 -118
  124. package/dist/search/FuzzySearch.d.ts.map +0 -1
  125. package/dist/search/FuzzySearch.js +0 -313
  126. package/dist/search/FuzzySearch.js.map +0 -1
  127. package/dist/search/HybridScorer.d.ts +0 -181
  128. package/dist/search/HybridScorer.d.ts.map +0 -1
  129. package/dist/search/HybridScorer.js +0 -258
  130. package/dist/search/HybridScorer.js.map +0 -1
  131. package/dist/search/HybridSearchManager.d.ts +0 -80
  132. package/dist/search/HybridSearchManager.d.ts.map +0 -1
  133. package/dist/search/HybridSearchManager.js +0 -188
  134. package/dist/search/HybridSearchManager.js.map +0 -1
  135. package/dist/search/IncrementalIndexer.d.ts +0 -201
  136. package/dist/search/IncrementalIndexer.d.ts.map +0 -1
  137. package/dist/search/IncrementalIndexer.js +0 -343
  138. package/dist/search/IncrementalIndexer.js.map +0 -1
  139. package/dist/search/OptimizedInvertedIndex.d.ts +0 -163
  140. package/dist/search/OptimizedInvertedIndex.d.ts.map +0 -1
  141. package/dist/search/OptimizedInvertedIndex.js +0 -359
  142. package/dist/search/OptimizedInvertedIndex.js.map +0 -1
  143. package/dist/search/ParallelSearchExecutor.d.ts +0 -172
  144. package/dist/search/ParallelSearchExecutor.d.ts.map +0 -1
  145. package/dist/search/ParallelSearchExecutor.js +0 -310
  146. package/dist/search/ParallelSearchExecutor.js.map +0 -1
  147. package/dist/search/QuantizedVectorStore.d.ts +0 -171
  148. package/dist/search/QuantizedVectorStore.d.ts.map +0 -1
  149. package/dist/search/QuantizedVectorStore.js +0 -308
  150. package/dist/search/QuantizedVectorStore.js.map +0 -1
  151. package/dist/search/QueryAnalyzer.d.ts +0 -76
  152. package/dist/search/QueryAnalyzer.d.ts.map +0 -1
  153. package/dist/search/QueryAnalyzer.js +0 -228
  154. package/dist/search/QueryAnalyzer.js.map +0 -1
  155. package/dist/search/QueryCostEstimator.d.ts +0 -244
  156. package/dist/search/QueryCostEstimator.d.ts.map +0 -1
  157. package/dist/search/QueryCostEstimator.js +0 -653
  158. package/dist/search/QueryCostEstimator.js.map +0 -1
  159. package/dist/search/QueryPlanCache.d.ts +0 -220
  160. package/dist/search/QueryPlanCache.d.ts.map +0 -1
  161. package/dist/search/QueryPlanCache.js +0 -380
  162. package/dist/search/QueryPlanCache.js.map +0 -1
  163. package/dist/search/QueryPlanner.d.ts +0 -58
  164. package/dist/search/QueryPlanner.d.ts.map +0 -1
  165. package/dist/search/QueryPlanner.js +0 -138
  166. package/dist/search/QueryPlanner.js.map +0 -1
  167. package/dist/search/RankedSearch.d.ts +0 -71
  168. package/dist/search/RankedSearch.d.ts.map +0 -1
  169. package/dist/search/RankedSearch.js +0 -239
  170. package/dist/search/RankedSearch.js.map +0 -1
  171. package/dist/search/ReflectionManager.d.ts +0 -120
  172. package/dist/search/ReflectionManager.d.ts.map +0 -1
  173. package/dist/search/ReflectionManager.js +0 -232
  174. package/dist/search/ReflectionManager.js.map +0 -1
  175. package/dist/search/SavedSearchManager.d.ts +0 -79
  176. package/dist/search/SavedSearchManager.d.ts.map +0 -1
  177. package/dist/search/SavedSearchManager.js +0 -147
  178. package/dist/search/SavedSearchManager.js.map +0 -1
  179. package/dist/search/SearchFilterChain.d.ts +0 -120
  180. package/dist/search/SearchFilterChain.d.ts.map +0 -1
  181. package/dist/search/SearchFilterChain.js +0 -186
  182. package/dist/search/SearchFilterChain.js.map +0 -1
  183. package/dist/search/SearchManager.d.ts +0 -326
  184. package/dist/search/SearchManager.d.ts.map +0 -1
  185. package/dist/search/SearchManager.js +0 -454
  186. package/dist/search/SearchManager.js.map +0 -1
  187. package/dist/search/SearchSuggestions.d.ts +0 -27
  188. package/dist/search/SearchSuggestions.d.ts.map +0 -1
  189. package/dist/search/SearchSuggestions.js +0 -58
  190. package/dist/search/SearchSuggestions.js.map +0 -1
  191. package/dist/search/SemanticSearch.d.ts +0 -149
  192. package/dist/search/SemanticSearch.d.ts.map +0 -1
  193. package/dist/search/SemanticSearch.js +0 -324
  194. package/dist/search/SemanticSearch.js.map +0 -1
  195. package/dist/search/SymbolicSearch.d.ts +0 -61
  196. package/dist/search/SymbolicSearch.d.ts.map +0 -1
  197. package/dist/search/SymbolicSearch.js +0 -164
  198. package/dist/search/SymbolicSearch.js.map +0 -1
  199. package/dist/search/TFIDFEventSync.d.ts +0 -85
  200. package/dist/search/TFIDFEventSync.d.ts.map +0 -1
  201. package/dist/search/TFIDFEventSync.js +0 -134
  202. package/dist/search/TFIDFEventSync.js.map +0 -1
  203. package/dist/search/TFIDFIndexManager.d.ts +0 -151
  204. package/dist/search/TFIDFIndexManager.d.ts.map +0 -1
  205. package/dist/search/TFIDFIndexManager.js +0 -433
  206. package/dist/search/TFIDFIndexManager.js.map +0 -1
  207. package/dist/search/VectorStore.d.ts +0 -235
  208. package/dist/search/VectorStore.d.ts.map +0 -1
  209. package/dist/search/VectorStore.js +0 -312
  210. package/dist/search/VectorStore.js.map +0 -1
  211. package/dist/search/index.d.ts +0 -35
  212. package/dist/search/index.d.ts.map +0 -1
  213. package/dist/search/index.js +0 -53
  214. package/dist/search/index.js.map +0 -1
  215. package/dist/types/index.d.ts +0 -13
  216. package/dist/types/index.d.ts.map +0 -1
  217. package/dist/types/index.js +0 -13
  218. package/dist/types/index.js.map +0 -1
  219. package/dist/types/types.d.ts +0 -1811
  220. package/dist/types/types.d.ts.map +0 -1
  221. package/dist/types/types.js +0 -10
  222. package/dist/types/types.js.map +0 -1
  223. package/dist/utils/BatchProcessor.d.ts +0 -271
  224. package/dist/utils/BatchProcessor.d.ts.map +0 -1
  225. package/dist/utils/BatchProcessor.js +0 -377
  226. package/dist/utils/BatchProcessor.js.map +0 -1
  227. package/dist/utils/MemoryMonitor.d.ts +0 -176
  228. package/dist/utils/MemoryMonitor.d.ts.map +0 -1
  229. package/dist/utils/MemoryMonitor.js +0 -306
  230. package/dist/utils/MemoryMonitor.js.map +0 -1
  231. package/dist/utils/WorkerPoolManager.d.ts +0 -233
  232. package/dist/utils/WorkerPoolManager.d.ts.map +0 -1
  233. package/dist/utils/WorkerPoolManager.js +0 -421
  234. package/dist/utils/WorkerPoolManager.js.map +0 -1
  235. package/dist/utils/compressedCache.d.ts +0 -221
  236. package/dist/utils/compressedCache.d.ts.map +0 -1
  237. package/dist/utils/compressedCache.js +0 -349
  238. package/dist/utils/compressedCache.js.map +0 -1
  239. package/dist/utils/compressionUtil.d.ts +0 -214
  240. package/dist/utils/compressionUtil.d.ts.map +0 -1
  241. package/dist/utils/compressionUtil.js +0 -248
  242. package/dist/utils/compressionUtil.js.map +0 -1
  243. package/dist/utils/constants.d.ts +0 -245
  244. package/dist/utils/constants.d.ts.map +0 -1
  245. package/dist/utils/constants.js +0 -253
  246. package/dist/utils/constants.js.map +0 -1
  247. package/dist/utils/entityUtils.d.ts +0 -379
  248. package/dist/utils/entityUtils.d.ts.map +0 -1
  249. package/dist/utils/entityUtils.js +0 -649
  250. package/dist/utils/entityUtils.js.map +0 -1
  251. package/dist/utils/errors.d.ts +0 -95
  252. package/dist/utils/errors.d.ts.map +0 -1
  253. package/dist/utils/errors.js +0 -146
  254. package/dist/utils/errors.js.map +0 -1
  255. package/dist/utils/formatters.d.ts +0 -145
  256. package/dist/utils/formatters.d.ts.map +0 -1
  257. package/dist/utils/formatters.js +0 -133
  258. package/dist/utils/formatters.js.map +0 -1
  259. package/dist/utils/index.d.ts +0 -26
  260. package/dist/utils/index.d.ts.map +0 -1
  261. package/dist/utils/index.js +0 -88
  262. package/dist/utils/index.js.map +0 -1
  263. package/dist/utils/indexes.d.ts +0 -270
  264. package/dist/utils/indexes.d.ts.map +0 -1
  265. package/dist/utils/indexes.js +0 -527
  266. package/dist/utils/indexes.js.map +0 -1
  267. package/dist/utils/logger.d.ts +0 -31
  268. package/dist/utils/logger.d.ts.map +0 -1
  269. package/dist/utils/logger.js +0 -41
  270. package/dist/utils/logger.js.map +0 -1
  271. package/dist/utils/operationUtils.d.ts +0 -124
  272. package/dist/utils/operationUtils.d.ts.map +0 -1
  273. package/dist/utils/operationUtils.js +0 -176
  274. package/dist/utils/operationUtils.js.map +0 -1
  275. package/dist/utils/parallelUtils.d.ts +0 -76
  276. package/dist/utils/parallelUtils.d.ts.map +0 -1
  277. package/dist/utils/parallelUtils.js +0 -192
  278. package/dist/utils/parallelUtils.js.map +0 -1
  279. package/dist/utils/schemas.d.ts +0 -556
  280. package/dist/utils/schemas.d.ts.map +0 -1
  281. package/dist/utils/schemas.js +0 -485
  282. package/dist/utils/schemas.js.map +0 -1
  283. package/dist/utils/searchAlgorithms.d.ts +0 -99
  284. package/dist/utils/searchAlgorithms.d.ts.map +0 -1
  285. package/dist/utils/searchAlgorithms.js +0 -168
  286. package/dist/utils/searchAlgorithms.js.map +0 -1
  287. package/dist/utils/searchCache.d.ts +0 -108
  288. package/dist/utils/searchCache.d.ts.map +0 -1
  289. package/dist/utils/searchCache.js +0 -210
  290. package/dist/utils/searchCache.js.map +0 -1
  291. package/dist/utils/taskScheduler.d.ts +0 -294
  292. package/dist/utils/taskScheduler.d.ts.map +0 -1
  293. package/dist/utils/taskScheduler.js +0 -487
  294. package/dist/utils/taskScheduler.js.map +0 -1
  295. package/dist/workers/index.d.ts +0 -12
  296. package/dist/workers/index.d.ts.map +0 -1
  297. package/dist/workers/index.js +0 -10
  298. package/dist/workers/index.js.map +0 -1
  299. package/dist/workers/levenshteinWorker.d.ts +0 -60
  300. package/dist/workers/levenshteinWorker.d.ts.map +0 -1
@@ -1,164 +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
- /**
10
- * Symbolic Search provides metadata-based filtering.
11
- *
12
- * Filters entities using structured predicates on tags, types,
13
- * dates, importance, and hierarchy.
14
- *
15
- * @example
16
- * ```typescript
17
- * const symbolic = new SymbolicSearch();
18
- * const results = symbolic.search(entities, {
19
- * tags: ['important'],
20
- * entityTypes: ['person'],
21
- * importance: { min: 5 }
22
- * });
23
- * ```
24
- */
25
- export class SymbolicSearch {
26
- /**
27
- * Filter entities using structured metadata predicates.
28
- * All filters are AND-combined.
29
- *
30
- * @param entities - Entities to filter
31
- * @param filters - Symbolic filter criteria
32
- * @returns Filtered entities with match scores
33
- */
34
- search(entities, filters) {
35
- const results = [];
36
- for (const entity of entities) {
37
- const { matches, score, matchedFilters } = this.evaluateFilters(entity, filters);
38
- if (matches) {
39
- results.push({ entity, score, matchedFilters });
40
- }
41
- }
42
- // Sort by score descending
43
- return results.sort((a, b) => b.score - a.score);
44
- }
45
- /**
46
- * Evaluate all filters against an entity.
47
- */
48
- evaluateFilters(entity, filters) {
49
- const matchedFilters = [];
50
- let totalFilters = 0;
51
- let matchedCount = 0;
52
- // Tag filter
53
- if (filters.tags && filters.tags.length > 0) {
54
- totalFilters++;
55
- const entityTags = entity.tags ?? [];
56
- const matchingTags = filters.tags.filter((t) => entityTags.some((et) => et.toLowerCase() === t.toLowerCase()));
57
- if (matchingTags.length > 0) {
58
- matchedCount++;
59
- matchedFilters.push(`tags:${matchingTags.join(',')}`);
60
- }
61
- else {
62
- return { matches: false, score: 0, matchedFilters: [] };
63
- }
64
- }
65
- // Entity type filter
66
- if (filters.entityTypes && filters.entityTypes.length > 0) {
67
- totalFilters++;
68
- if (filters.entityTypes.some((t) => t.toLowerCase() === entity.entityType.toLowerCase())) {
69
- matchedCount++;
70
- matchedFilters.push(`type:${entity.entityType}`);
71
- }
72
- else {
73
- return { matches: false, score: 0, matchedFilters: [] };
74
- }
75
- }
76
- // Date range filter
77
- if (filters.dateRange) {
78
- totalFilters++;
79
- const entityDate = entity.createdAt || entity.lastModified;
80
- if (!entityDate) {
81
- // Entities without dates are excluded when date filter is applied
82
- return { matches: false, score: 0, matchedFilters: [] };
83
- }
84
- const date = new Date(entityDate);
85
- const start = filters.dateRange.start ? new Date(filters.dateRange.start) : null;
86
- const end = filters.dateRange.end ? new Date(filters.dateRange.end) : null;
87
- const inRange = (!start || date >= start) && (!end || date <= end);
88
- if (inRange) {
89
- matchedCount++;
90
- matchedFilters.push('dateRange');
91
- }
92
- else {
93
- return { matches: false, score: 0, matchedFilters: [] };
94
- }
95
- }
96
- // Importance filter
97
- if (filters.importance) {
98
- totalFilters++;
99
- const importance = entity.importance ?? 5;
100
- const { min, max } = filters.importance;
101
- const inRange = (min === undefined || importance >= min) &&
102
- (max === undefined || importance <= max);
103
- if (inRange) {
104
- matchedCount++;
105
- matchedFilters.push(`importance:${importance}`);
106
- }
107
- else {
108
- return { matches: false, score: 0, matchedFilters: [] };
109
- }
110
- }
111
- // Parent filter
112
- if (filters.parentId !== undefined) {
113
- totalFilters++;
114
- if (entity.parentId === filters.parentId) {
115
- matchedCount++;
116
- matchedFilters.push(`parent:${filters.parentId}`);
117
- }
118
- else {
119
- return { matches: false, score: 0, matchedFilters: [] };
120
- }
121
- }
122
- // Has observations filter
123
- if (filters.hasObservations !== undefined) {
124
- totalFilters++;
125
- const hasObs = entity.observations.length > 0;
126
- if (hasObs === filters.hasObservations) {
127
- matchedCount++;
128
- matchedFilters.push('hasObservations');
129
- }
130
- else {
131
- return { matches: false, score: 0, matchedFilters: [] };
132
- }
133
- }
134
- // If no filters specified, match all with base score
135
- if (totalFilters === 0) {
136
- return { matches: true, score: 0.5, matchedFilters: [] };
137
- }
138
- // Score based on proportion of filters matched
139
- const score = matchedCount / totalFilters;
140
- return { matches: true, score, matchedFilters };
141
- }
142
- /**
143
- * Get entities matching a specific tag.
144
- */
145
- byTag(entities, tag) {
146
- return entities.filter(e => e.tags?.some(t => t.toLowerCase() === tag.toLowerCase()));
147
- }
148
- /**
149
- * Get entities of a specific type.
150
- */
151
- byType(entities, entityType) {
152
- return entities.filter(e => e.entityType.toLowerCase() === entityType.toLowerCase());
153
- }
154
- /**
155
- * Get entities within importance range.
156
- */
157
- byImportance(entities, min, max) {
158
- return entities.filter(e => {
159
- const imp = e.importance ?? 5;
160
- return imp >= min && imp <= max;
161
- });
162
- }
163
- }
164
- //# sourceMappingURL=SymbolicSearch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SymbolicSearch.js","sourceRoot":"","sources":["../../src/search/SymbolicSearch.ts"],"names":[],"mappings":"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"}
@@ -1,85 +0,0 @@
1
- /**
2
- * TF-IDF Event Sync
3
- *
4
- * Phase 10 Sprint 3: Hooks TFIDFIndexManager to graph events for automatic
5
- * incremental index updates when entities change.
6
- *
7
- * @module search/TFIDFEventSync
8
- */
9
- import type { GraphEventEmitter } from '../core/GraphEventEmitter.js';
10
- import type { TFIDFIndexManager } from './TFIDFIndexManager.js';
11
- import type { IGraphStorage } from '../types/index.js';
12
- /**
13
- * Phase 10 Sprint 3: Synchronizes TF-IDF index with graph changes via events.
14
- *
15
- * Listens to graph events and triggers incremental index updates automatically.
16
- * More efficient than rebuilding the entire index on every change.
17
- *
18
- * @example
19
- * ```typescript
20
- * const storage = new GraphStorage('/data/memory.jsonl');
21
- * const indexManager = new TFIDFIndexManager('/data');
22
- *
23
- * // Load or build index
24
- * await indexManager.loadIndex();
25
- *
26
- * // Enable automatic sync
27
- * const sync = new TFIDFEventSync(indexManager, storage.events, storage);
28
- * sync.enable();
29
- *
30
- * // Now entities added to storage will automatically update the index
31
- * await storage.appendEntity({ name: 'New', entityType: 'test', observations: [] });
32
- *
33
- * // Disable when done
34
- * sync.disable();
35
- * ```
36
- */
37
- export declare class TFIDFEventSync {
38
- private indexManager;
39
- private eventEmitter;
40
- private storage;
41
- private unsubscribers;
42
- private enabled;
43
- /**
44
- * Create a new TFIDFEventSync instance.
45
- *
46
- * @param indexManager - TFIDFIndexManager to sync
47
- * @param eventEmitter - GraphEventEmitter to listen to
48
- * @param storage - Storage to fetch entity data from (for updates)
49
- */
50
- constructor(indexManager: TFIDFIndexManager, eventEmitter: GraphEventEmitter, storage: IGraphStorage);
51
- /**
52
- * Enable automatic index synchronization.
53
- *
54
- * Subscribes to entity:created, entity:updated, and entity:deleted events.
55
- */
56
- enable(): void;
57
- /**
58
- * Disable automatic index synchronization.
59
- *
60
- * Unsubscribes from all events.
61
- */
62
- disable(): void;
63
- /**
64
- * Check if synchronization is enabled.
65
- *
66
- * @returns True if enabled
67
- */
68
- isEnabled(): boolean;
69
- /**
70
- * Handle entity:created event.
71
- * @private
72
- */
73
- private handleEntityCreated;
74
- /**
75
- * Handle entity:updated event.
76
- * @private
77
- */
78
- private handleEntityUpdated;
79
- /**
80
- * Handle entity:deleted event.
81
- * @private
82
- */
83
- private handleEntityDeleted;
84
- }
85
- //# sourceMappingURL=TFIDFEventSync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TFIDFEventSync.d.ts","sourceRoot":"","sources":["../../src/search/TFIDFEventSync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOvD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,OAAO,CAAkB;IAEjC;;;;;;OAMG;gBAED,YAAY,EAAE,iBAAiB,EAC/B,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,aAAa;IAOxB;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAqBd;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAYf;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;OAGG;YACW,mBAAmB;IAkBjC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAO5B"}
@@ -1,134 +0,0 @@
1
- /**
2
- * TF-IDF Event Sync
3
- *
4
- * Phase 10 Sprint 3: Hooks TFIDFIndexManager to graph events for automatic
5
- * incremental index updates when entities change.
6
- *
7
- * @module search/TFIDFEventSync
8
- */
9
- /**
10
- * Phase 10 Sprint 3: Synchronizes TF-IDF index with graph changes via events.
11
- *
12
- * Listens to graph events and triggers incremental index updates automatically.
13
- * More efficient than rebuilding the entire index on every change.
14
- *
15
- * @example
16
- * ```typescript
17
- * const storage = new GraphStorage('/data/memory.jsonl');
18
- * const indexManager = new TFIDFIndexManager('/data');
19
- *
20
- * // Load or build index
21
- * await indexManager.loadIndex();
22
- *
23
- * // Enable automatic sync
24
- * const sync = new TFIDFEventSync(indexManager, storage.events, storage);
25
- * sync.enable();
26
- *
27
- * // Now entities added to storage will automatically update the index
28
- * await storage.appendEntity({ name: 'New', entityType: 'test', observations: [] });
29
- *
30
- * // Disable when done
31
- * sync.disable();
32
- * ```
33
- */
34
- export class TFIDFEventSync {
35
- indexManager;
36
- eventEmitter;
37
- storage;
38
- unsubscribers = [];
39
- enabled = false;
40
- /**
41
- * Create a new TFIDFEventSync instance.
42
- *
43
- * @param indexManager - TFIDFIndexManager to sync
44
- * @param eventEmitter - GraphEventEmitter to listen to
45
- * @param storage - Storage to fetch entity data from (for updates)
46
- */
47
- constructor(indexManager, eventEmitter, storage) {
48
- this.indexManager = indexManager;
49
- this.eventEmitter = eventEmitter;
50
- this.storage = storage;
51
- }
52
- /**
53
- * Enable automatic index synchronization.
54
- *
55
- * Subscribes to entity:created, entity:updated, and entity:deleted events.
56
- */
57
- enable() {
58
- if (this.enabled) {
59
- return;
60
- }
61
- // Subscribe to entity events
62
- this.unsubscribers.push(this.eventEmitter.on('entity:created', this.handleEntityCreated.bind(this)));
63
- this.unsubscribers.push(this.eventEmitter.on('entity:updated', this.handleEntityUpdated.bind(this)));
64
- this.unsubscribers.push(this.eventEmitter.on('entity:deleted', this.handleEntityDeleted.bind(this)));
65
- this.enabled = true;
66
- }
67
- /**
68
- * Disable automatic index synchronization.
69
- *
70
- * Unsubscribes from all events.
71
- */
72
- disable() {
73
- if (!this.enabled) {
74
- return;
75
- }
76
- for (const unsubscribe of this.unsubscribers) {
77
- unsubscribe();
78
- }
79
- this.unsubscribers = [];
80
- this.enabled = false;
81
- }
82
- /**
83
- * Check if synchronization is enabled.
84
- *
85
- * @returns True if enabled
86
- */
87
- isEnabled() {
88
- return this.enabled;
89
- }
90
- /**
91
- * Handle entity:created event.
92
- * @private
93
- */
94
- handleEntityCreated(event) {
95
- if (!this.indexManager.isInitialized()) {
96
- return;
97
- }
98
- this.indexManager.addDocument({
99
- name: event.entity.name,
100
- entityType: event.entity.entityType,
101
- observations: event.entity.observations,
102
- });
103
- }
104
- /**
105
- * Handle entity:updated event.
106
- * @private
107
- */
108
- async handleEntityUpdated(event) {
109
- if (!this.indexManager.isInitialized()) {
110
- return;
111
- }
112
- // Fetch the current entity state
113
- const graph = await this.storage.loadGraph();
114
- const entity = graph.entities.find(e => e.name === event.entityName);
115
- if (entity) {
116
- this.indexManager.updateDocument({
117
- name: entity.name,
118
- entityType: entity.entityType,
119
- observations: entity.observations,
120
- });
121
- }
122
- }
123
- /**
124
- * Handle entity:deleted event.
125
- * @private
126
- */
127
- handleEntityDeleted(event) {
128
- if (!this.indexManager.isInitialized()) {
129
- return;
130
- }
131
- this.indexManager.removeDocument(event.entityName);
132
- }
133
- }
134
- //# sourceMappingURL=TFIDFEventSync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TFIDFEventSync.js","sourceRoot":"","sources":["../../src/search/TFIDFEventSync.ts"],"names":[],"mappings":"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"}
@@ -1,151 +0,0 @@
1
- /**
2
- * TF-IDF Index Manager
3
- *
4
- * Manages pre-calculated TF-IDF indexes for fast ranked search.
5
- * Handles index building, incremental updates, and persistence.
6
- *
7
- * @module search/TFIDFIndexManager
8
- */
9
- import type { TFIDFIndex, KnowledgeGraph, ReadonlyKnowledgeGraph } from '../types/index.js';
10
- /**
11
- * Manages TF-IDF index lifecycle: building, updating, and persistence.
12
- */
13
- export declare class TFIDFIndexManager {
14
- private indexPath;
15
- private index;
16
- constructor(storageDir: string);
17
- /**
18
- * Build a complete TF-IDF index from a knowledge graph.
19
- *
20
- * @param graph - Knowledge graph to index
21
- * @returns Newly built TF-IDF index
22
- */
23
- buildIndex(graph: ReadonlyKnowledgeGraph): Promise<TFIDFIndex>;
24
- /**
25
- * Update the index incrementally when entities change.
26
- *
27
- * More efficient than rebuilding the entire index.
28
- *
29
- * @param graph - Updated knowledge graph
30
- * @param changedEntityNames - Names of entities that changed
31
- */
32
- updateIndex(graph: ReadonlyKnowledgeGraph, changedEntityNames: Set<string>): Promise<TFIDFIndex>;
33
- /**
34
- * Load index from disk.
35
- *
36
- * @returns Loaded index or null if not found
37
- */
38
- loadIndex(): Promise<TFIDFIndex | null>;
39
- /**
40
- * Save index to disk.
41
- *
42
- * @param index - Index to save (uses cached index if not provided)
43
- */
44
- saveIndex(index?: TFIDFIndex): Promise<void>;
45
- /**
46
- * Get the current cached index.
47
- *
48
- * @returns Cached index or null if not loaded
49
- */
50
- getIndex(): TFIDFIndex | null;
51
- /**
52
- * Clear the cached index and delete from disk.
53
- */
54
- clearIndex(): Promise<void>;
55
- /**
56
- * Check if the index needs rebuilding based on graph state.
57
- *
58
- * @param graph - Current knowledge graph
59
- * @returns True if index should be rebuilt
60
- */
61
- needsRebuild(graph: KnowledgeGraph): boolean;
62
- /**
63
- * Phase 10 Sprint 3: Add a single document to the index incrementally.
64
- *
65
- * More efficient than rebuilding the entire index for single entity additions.
66
- * Updates TF for the new document and recalculates IDF for affected terms.
67
- *
68
- * @param entity - The entity to add
69
- *
70
- * @example
71
- * ```typescript
72
- * const indexManager = new TFIDFIndexManager('/data');
73
- * await indexManager.loadIndex();
74
- *
75
- * // Add new entity
76
- * indexManager.addDocument({
77
- * name: 'NewEntity',
78
- * entityType: 'person',
79
- * observations: ['Software engineer']
80
- * });
81
- * ```
82
- */
83
- addDocument(entity: {
84
- name: string;
85
- entityType: string;
86
- observations: string[];
87
- }): void;
88
- /**
89
- * Phase 10 Sprint 3: Remove a single document from the index incrementally.
90
- *
91
- * More efficient than rebuilding the entire index for single entity deletions.
92
- * Recalculates IDF for terms that were in the removed document.
93
- *
94
- * @param entityName - Name of the entity to remove
95
- *
96
- * @example
97
- * ```typescript
98
- * indexManager.removeDocument('DeletedEntity');
99
- * ```
100
- */
101
- removeDocument(entityName: string): void;
102
- /**
103
- * Phase 10 Sprint 3: Update a single document in the index incrementally.
104
- *
105
- * More efficient than rebuilding the entire index for single entity updates.
106
- * Handles both term changes and observation updates.
107
- *
108
- * @param entity - The updated entity
109
- *
110
- * @example
111
- * ```typescript
112
- * indexManager.updateDocument({
113
- * name: 'ExistingEntity',
114
- * entityType: 'person',
115
- * observations: ['Updated observations']
116
- * });
117
- * ```
118
- */
119
- updateDocument(entity: {
120
- name: string;
121
- entityType: string;
122
- observations: string[];
123
- }): void;
124
- /**
125
- * Phase 10 Sprint 3: Recalculate IDF scores for a set of terms.
126
- *
127
- * @param terms - Set of terms to recalculate IDF for
128
- * @private
129
- */
130
- private recalculateIDFForTerms;
131
- /**
132
- * Phase 10 Sprint 3: Recalculate IDF scores for ALL terms in the index.
133
- *
134
- * Called when the total document count changes (add/remove document).
135
- * @private
136
- */
137
- private recalculateAllIDF;
138
- /**
139
- * Phase 10 Sprint 3: Check if the index is loaded/initialized.
140
- *
141
- * @returns True if index is available
142
- */
143
- isInitialized(): boolean;
144
- /**
145
- * Phase 10 Sprint 3: Get the number of documents in the index.
146
- *
147
- * @returns Document count or 0 if not initialized
148
- */
149
- getDocumentCount(): number;
150
- }
151
- //# sourceMappingURL=TFIDFIndexManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TFIDFIndexManager.d.ts","sourceRoot":"","sources":["../../src/search/TFIDFIndexManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAkB,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAgB5G;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAA2B;gBAE5B,UAAU,EAAE,MAAM;IAI9B;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC;IAgDpE;;;;;;;OAOG;IACG,WAAW,CAAC,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAgEtG;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAmB7C;;;;OAIG;IACG,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBlD;;;;OAIG;IACH,QAAQ,IAAI,UAAU,GAAG,IAAI;IAI7B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;IAsB5C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,WAAW,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IA+BvF;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAqBxC;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IAgD1F;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAkC9B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;;;OAIG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;OAIG;IACH,gBAAgB,IAAI,MAAM;CAG3B"}