memento-mcp-server 1.13.1-a0 → 1.13.1-a3

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 (988) hide show
  1. package/dist/client/index.d.ts +1 -1
  2. package/dist/client/index.d.ts.map +1 -1
  3. package/dist/domains/anchor/services/anchor/anchor-cache-service.d.ts +77 -0
  4. package/dist/domains/anchor/services/anchor/anchor-cache-service.d.ts.map +1 -0
  5. package/dist/domains/anchor/services/anchor/anchor-cache-service.js +193 -0
  6. package/dist/domains/anchor/services/anchor/anchor-cache-service.js.map +1 -0
  7. package/dist/domains/anchor/services/anchor/anchor-interfaces.d.ts.map +1 -0
  8. package/dist/domains/anchor/services/anchor/anchor-interfaces.js.map +1 -0
  9. package/dist/domains/anchor/services/anchor/anchor-manager.d.ts +85 -0
  10. package/dist/domains/anchor/services/anchor/anchor-manager.d.ts.map +1 -0
  11. package/dist/domains/anchor/services/anchor/anchor-manager.js +241 -0
  12. package/dist/domains/anchor/services/anchor/anchor-manager.js.map +1 -0
  13. package/dist/domains/anchor/services/anchor/anchor-search-service.d.ts +131 -0
  14. package/dist/domains/anchor/services/anchor/anchor-search-service.d.ts.map +1 -0
  15. package/dist/domains/anchor/services/anchor/anchor-search-service.js +918 -0
  16. package/dist/domains/anchor/services/anchor/anchor-search-service.js.map +1 -0
  17. package/dist/domains/anchor/services/anchor/index.d.ts.map +1 -0
  18. package/dist/domains/anchor/services/anchor/index.js.map +1 -0
  19. package/dist/domains/anchor/tools/clear-anchor-tool.d.ts +10 -0
  20. package/dist/domains/anchor/tools/clear-anchor-tool.d.ts.map +1 -0
  21. package/dist/domains/anchor/tools/clear-anchor-tool.js +64 -0
  22. package/dist/domains/anchor/tools/clear-anchor-tool.js.map +1 -0
  23. package/dist/domains/anchor/tools/get-anchor-tool.d.ts +10 -0
  24. package/dist/domains/anchor/tools/get-anchor-tool.d.ts.map +1 -0
  25. package/dist/domains/anchor/tools/get-anchor-tool.js +91 -0
  26. package/dist/domains/anchor/tools/get-anchor-tool.js.map +1 -0
  27. package/dist/domains/anchor/tools/restore-anchors-tool.d.ts +11 -0
  28. package/dist/domains/anchor/tools/restore-anchors-tool.d.ts.map +1 -0
  29. package/dist/domains/anchor/tools/restore-anchors-tool.js +117 -0
  30. package/dist/domains/anchor/tools/restore-anchors-tool.js.map +1 -0
  31. package/dist/domains/anchor/tools/search-local-tool.d.ts +10 -0
  32. package/dist/domains/anchor/tools/search-local-tool.d.ts.map +1 -0
  33. package/dist/domains/anchor/tools/search-local-tool.js +134 -0
  34. package/dist/domains/anchor/tools/search-local-tool.js.map +1 -0
  35. package/dist/domains/anchor/tools/set-anchor-tool.d.ts +10 -0
  36. package/dist/domains/anchor/tools/set-anchor-tool.d.ts.map +1 -0
  37. package/dist/domains/anchor/tools/set-anchor-tool.js +70 -0
  38. package/dist/domains/anchor/tools/set-anchor-tool.js.map +1 -0
  39. package/dist/domains/embedding/providers/embedding-provider-factory.d.ts +69 -0
  40. package/dist/domains/embedding/providers/embedding-provider-factory.d.ts.map +1 -0
  41. package/dist/domains/embedding/providers/embedding-provider-factory.js +233 -0
  42. package/dist/domains/embedding/providers/embedding-provider-factory.js.map +1 -0
  43. package/dist/domains/embedding/providers/model-availability-service.d.ts +22 -0
  44. package/dist/domains/embedding/providers/model-availability-service.d.ts.map +1 -0
  45. package/dist/domains/embedding/providers/model-availability-service.js +140 -0
  46. package/dist/domains/embedding/providers/model-availability-service.js.map +1 -0
  47. package/dist/domains/embedding/services/embedding-migration-service.d.ts +24 -0
  48. package/dist/domains/embedding/services/embedding-migration-service.d.ts.map +1 -0
  49. package/dist/domains/embedding/services/embedding-migration-service.js +360 -0
  50. package/dist/domains/embedding/services/embedding-migration-service.js.map +1 -0
  51. package/dist/domains/embedding/services/embedding-service.d.ts.map +1 -0
  52. package/dist/domains/embedding/services/embedding-service.js +276 -0
  53. package/dist/domains/embedding/services/embedding-service.js.map +1 -0
  54. package/dist/domains/embedding/services/gemini-embedding-service.d.ts +84 -0
  55. package/dist/domains/embedding/services/gemini-embedding-service.d.ts.map +1 -0
  56. package/dist/domains/embedding/services/gemini-embedding-service.js +241 -0
  57. package/dist/domains/embedding/services/gemini-embedding-service.js.map +1 -0
  58. package/dist/domains/embedding/services/lightweight-embedding-service.d.ts +95 -0
  59. package/dist/domains/embedding/services/lightweight-embedding-service.d.ts.map +1 -0
  60. package/dist/domains/embedding/services/lightweight-embedding-service.js +264 -0
  61. package/dist/domains/embedding/services/lightweight-embedding-service.js.map +1 -0
  62. package/dist/domains/embedding/services/minilm-embedding-service.d.ts +93 -0
  63. package/dist/domains/embedding/services/minilm-embedding-service.d.ts.map +1 -0
  64. package/dist/domains/embedding/services/minilm-embedding-service.js.map +1 -0
  65. package/dist/domains/embedding/services/openai-embedding-service.d.ts +36 -0
  66. package/dist/domains/embedding/services/openai-embedding-service.d.ts.map +1 -0
  67. package/dist/domains/embedding/services/openai-embedding-service.js +192 -0
  68. package/dist/domains/embedding/services/openai-embedding-service.js.map +1 -0
  69. package/dist/domains/embedding/services/unified-embedding-service.d.ts +78 -0
  70. package/dist/domains/embedding/services/unified-embedding-service.d.ts.map +1 -0
  71. package/dist/domains/embedding/services/unified-embedding-service.js +208 -0
  72. package/dist/domains/embedding/services/unified-embedding-service.js.map +1 -0
  73. package/dist/domains/embedding/services/vector-compatibility-service.d.ts +68 -0
  74. package/dist/domains/embedding/services/vector-compatibility-service.d.ts.map +1 -0
  75. package/dist/domains/embedding/services/vector-compatibility-service.js.map +1 -0
  76. package/dist/domains/forgetting/algorithms/forgetting-algorithm.d.ts.map +1 -0
  77. package/dist/domains/forgetting/algorithms/forgetting-algorithm.js.map +1 -0
  78. package/dist/domains/forgetting/algorithms/spaced-repetition.d.ts.map +1 -0
  79. package/dist/domains/forgetting/algorithms/spaced-repetition.js.map +1 -0
  80. package/dist/domains/forgetting/factories/spaced-repetition.factory.d.ts +48 -0
  81. package/dist/domains/forgetting/factories/spaced-repetition.factory.d.ts.map +1 -0
  82. package/dist/domains/forgetting/factories/spaced-repetition.factory.js.map +1 -0
  83. package/dist/domains/forgetting/services/forgetting-policy-service.d.ts.map +1 -0
  84. package/dist/domains/forgetting/services/forgetting-policy-service.js +233 -0
  85. package/dist/domains/forgetting/services/forgetting-policy-service.js.map +1 -0
  86. package/dist/domains/forgetting/services/spaced-repetition/interval-calculation.service.d.ts +38 -0
  87. package/dist/domains/forgetting/services/spaced-repetition/interval-calculation.service.d.ts.map +1 -0
  88. package/dist/domains/forgetting/services/spaced-repetition/interval-calculation.service.js.map +1 -0
  89. package/dist/domains/forgetting/services/spaced-repetition/optimal-interval.service.d.ts +56 -0
  90. package/dist/domains/forgetting/services/spaced-repetition/optimal-interval.service.d.ts.map +1 -0
  91. package/dist/domains/forgetting/services/spaced-repetition/optimal-interval.service.js.map +1 -0
  92. package/dist/domains/forgetting/services/spaced-repetition/performance-analysis.service.d.ts +48 -0
  93. package/dist/domains/forgetting/services/spaced-repetition/performance-analysis.service.d.ts.map +1 -0
  94. package/dist/domains/forgetting/services/spaced-repetition/performance-analysis.service.js.map +1 -0
  95. package/dist/domains/forgetting/services/spaced-repetition/priority-calculation.service.d.ts +53 -0
  96. package/dist/domains/forgetting/services/spaced-repetition/priority-calculation.service.d.ts.map +1 -0
  97. package/dist/domains/forgetting/services/spaced-repetition/priority-calculation.service.js.map +1 -0
  98. package/dist/domains/forgetting/services/spaced-repetition/recall-probability.service.d.ts +36 -0
  99. package/dist/domains/forgetting/services/spaced-repetition/recall-probability.service.d.ts.map +1 -0
  100. package/dist/domains/forgetting/services/spaced-repetition/recall-probability.service.js.map +1 -0
  101. package/dist/domains/forgetting/services/spaced-repetition/review-scheduling.service.d.ts +43 -0
  102. package/dist/domains/forgetting/services/spaced-repetition/review-scheduling.service.d.ts.map +1 -0
  103. package/dist/domains/forgetting/services/spaced-repetition/review-scheduling.service.js.map +1 -0
  104. package/dist/domains/forgetting/services/spaced-repetition/spaced-repetition-container.d.ts +69 -0
  105. package/dist/domains/forgetting/services/spaced-repetition/spaced-repetition-container.d.ts.map +1 -0
  106. package/dist/domains/forgetting/services/spaced-repetition/spaced-repetition-container.js.map +1 -0
  107. package/dist/domains/forgetting/tools/forgetting-stats-tool.d.ts +10 -0
  108. package/dist/domains/forgetting/tools/forgetting-stats-tool.d.ts.map +1 -0
  109. package/dist/domains/forgetting/tools/forgetting-stats-tool.js +37 -0
  110. package/dist/domains/forgetting/tools/forgetting-stats-tool.js.map +1 -0
  111. package/dist/domains/memory/repositories/core-memory-repository.d.ts.map +1 -0
  112. package/dist/domains/memory/repositories/core-memory-repository.js.map +1 -0
  113. package/dist/domains/memory/repositories/knowledge-vault-repository.d.ts.map +1 -0
  114. package/dist/domains/memory/repositories/knowledge-vault-repository.js.map +1 -0
  115. package/dist/domains/memory/services/core-memory-cache-service.d.ts.map +1 -0
  116. package/dist/domains/memory/services/core-memory-cache-service.js.map +1 -0
  117. package/dist/domains/memory/services/core-memory-service.d.ts.map +1 -0
  118. package/dist/domains/memory/services/core-memory-service.js.map +1 -0
  119. package/dist/domains/memory/services/knowledge-vault-service.d.ts.map +1 -0
  120. package/dist/domains/memory/services/knowledge-vault-service.js.map +1 -0
  121. package/dist/domains/memory/services/memory-embedding-service.d.ts +78 -0
  122. package/dist/domains/memory/services/memory-embedding-service.d.ts.map +1 -0
  123. package/dist/domains/memory/services/memory-embedding-service.js +341 -0
  124. package/dist/domains/memory/services/memory-embedding-service.js.map +1 -0
  125. package/dist/domains/memory/services/memory-neighbor-service.d.ts +81 -0
  126. package/dist/domains/memory/services/memory-neighbor-service.d.ts.map +1 -0
  127. package/dist/domains/memory/services/memory-neighbor-service.js +297 -0
  128. package/dist/domains/memory/services/memory-neighbor-service.js.map +1 -0
  129. package/dist/domains/memory/tools/cleanup-memory-tool.d.ts +10 -0
  130. package/dist/domains/memory/tools/cleanup-memory-tool.d.ts.map +1 -0
  131. package/dist/domains/memory/tools/cleanup-memory-tool.js +66 -0
  132. package/dist/domains/memory/tools/cleanup-memory-tool.js.map +1 -0
  133. package/dist/domains/memory/tools/forget-tool.d.ts +63 -0
  134. package/dist/domains/memory/tools/forget-tool.d.ts.map +1 -0
  135. package/dist/domains/memory/tools/forget-tool.js +340 -0
  136. package/dist/domains/memory/tools/forget-tool.js.map +1 -0
  137. package/dist/domains/memory/tools/get-memory-neighbors-tool.d.ts +26 -0
  138. package/dist/domains/memory/tools/get-memory-neighbors-tool.d.ts.map +1 -0
  139. package/dist/domains/memory/tools/get-memory-neighbors-tool.js +125 -0
  140. package/dist/domains/memory/tools/get-memory-neighbors-tool.js.map +1 -0
  141. package/dist/domains/memory/tools/memory-injection-prompt.d.ts +43 -0
  142. package/dist/domains/memory/tools/memory-injection-prompt.d.ts.map +1 -0
  143. package/dist/domains/memory/tools/memory-injection-prompt.js +332 -0
  144. package/dist/domains/memory/tools/memory-injection-prompt.js.map +1 -0
  145. package/dist/domains/memory/tools/pin-tool.d.ts +39 -0
  146. package/dist/domains/memory/tools/pin-tool.d.ts.map +1 -0
  147. package/dist/domains/memory/tools/pin-tool.js +211 -0
  148. package/dist/domains/memory/tools/pin-tool.js.map +1 -0
  149. package/dist/domains/memory/tools/recall-tool.d.ts +38 -0
  150. package/dist/domains/memory/tools/recall-tool.d.ts.map +1 -0
  151. package/dist/domains/memory/tools/recall-tool.js +709 -0
  152. package/dist/domains/memory/tools/recall-tool.js.map +1 -0
  153. package/dist/domains/memory/tools/remember-tool.d.ts +51 -0
  154. package/dist/domains/memory/tools/remember-tool.d.ts.map +1 -0
  155. package/dist/domains/memory/tools/remember-tool.js +722 -0
  156. package/dist/domains/memory/tools/remember-tool.js.map +1 -0
  157. package/dist/domains/memory/tools/unpin-tool.d.ts +43 -0
  158. package/dist/domains/memory/tools/unpin-tool.d.ts.map +1 -0
  159. package/dist/domains/memory/tools/unpin-tool.js +233 -0
  160. package/dist/domains/memory/tools/unpin-tool.js.map +1 -0
  161. package/dist/domains/monitoring/services/alert-notification-service.d.ts +16 -0
  162. package/dist/domains/monitoring/services/alert-notification-service.d.ts.map +1 -0
  163. package/dist/domains/monitoring/services/alert-notification-service.js.map +1 -0
  164. package/dist/domains/monitoring/services/error-logging-service.d.ts.map +1 -0
  165. package/dist/domains/monitoring/services/error-logging-service.js.map +1 -0
  166. package/dist/domains/monitoring/services/failure-detector.d.ts +120 -0
  167. package/dist/domains/monitoring/services/failure-detector.d.ts.map +1 -0
  168. package/dist/domains/monitoring/services/failure-detector.js +370 -0
  169. package/dist/domains/monitoring/services/failure-detector.js.map +1 -0
  170. package/dist/domains/monitoring/services/performance-alert-service.d.ts.map +1 -0
  171. package/dist/domains/monitoring/services/performance-alert-service.js.map +1 -0
  172. package/dist/domains/monitoring/services/performance-monitor.d.ts.map +1 -0
  173. package/dist/domains/monitoring/services/performance-monitor.js +802 -0
  174. package/dist/domains/monitoring/services/performance-monitor.js.map +1 -0
  175. package/dist/domains/monitoring/tools/error-stats.d.ts +93 -0
  176. package/dist/domains/monitoring/tools/error-stats.d.ts.map +1 -0
  177. package/dist/domains/monitoring/tools/error-stats.js.map +1 -0
  178. package/dist/domains/monitoring/tools/performance-alerts.d.ts +127 -0
  179. package/dist/domains/monitoring/tools/performance-alerts.d.ts.map +1 -0
  180. package/dist/domains/monitoring/tools/performance-alerts.js.map +1 -0
  181. package/dist/domains/monitoring/tools/performance-stats-tool.d.ts +10 -0
  182. package/dist/domains/monitoring/tools/performance-stats-tool.d.ts.map +1 -0
  183. package/dist/domains/monitoring/tools/performance-stats-tool.js +38 -0
  184. package/dist/domains/monitoring/tools/performance-stats-tool.js.map +1 -0
  185. package/dist/domains/monitoring/tools/resolve-error.d.ts +54 -0
  186. package/dist/domains/monitoring/tools/resolve-error.d.ts.map +1 -0
  187. package/dist/domains/monitoring/tools/resolve-error.js.map +1 -0
  188. package/dist/domains/relation/services/llm-based-relation-extractor.d.ts +157 -0
  189. package/dist/domains/relation/services/llm-based-relation-extractor.d.ts.map +1 -0
  190. package/dist/domains/relation/services/llm-based-relation-extractor.js +1350 -0
  191. package/dist/domains/relation/services/llm-based-relation-extractor.js.map +1 -0
  192. package/dist/domains/relation/services/relation-extractor.d.ts +73 -0
  193. package/dist/domains/relation/services/relation-extractor.d.ts.map +1 -0
  194. package/dist/domains/relation/services/relation-extractor.js +231 -0
  195. package/dist/domains/relation/services/relation-extractor.js.map +1 -0
  196. package/dist/domains/relation/services/relation-graph.d.ts +275 -0
  197. package/dist/domains/relation/services/relation-graph.d.ts.map +1 -0
  198. package/dist/domains/relation/services/relation-graph.js +869 -0
  199. package/dist/domains/relation/services/relation-graph.js.map +1 -0
  200. package/dist/domains/relation/services/relation-quality-validator.d.ts +211 -0
  201. package/dist/domains/relation/services/relation-quality-validator.d.ts.map +1 -0
  202. package/dist/domains/relation/services/relation-quality-validator.js +415 -0
  203. package/dist/domains/relation/services/relation-quality-validator.js.map +1 -0
  204. package/dist/domains/relation/services/rule-based-relation-extractor.d.ts +66 -0
  205. package/dist/domains/relation/services/rule-based-relation-extractor.d.ts.map +1 -0
  206. package/dist/domains/relation/services/rule-based-relation-extractor.js +258 -0
  207. package/dist/domains/relation/services/rule-based-relation-extractor.js.map +1 -0
  208. package/dist/domains/relation/tools/add-relation-tool.d.ts +34 -0
  209. package/dist/domains/relation/tools/add-relation-tool.d.ts.map +1 -0
  210. package/dist/domains/relation/tools/add-relation-tool.js +163 -0
  211. package/dist/domains/relation/tools/add-relation-tool.js.map +1 -0
  212. package/dist/domains/relation/tools/extract-relations-tool.d.ts +28 -0
  213. package/dist/domains/relation/tools/extract-relations-tool.d.ts.map +1 -0
  214. package/dist/domains/relation/tools/extract-relations-tool.js +159 -0
  215. package/dist/domains/relation/tools/extract-relations-tool.js.map +1 -0
  216. package/dist/domains/relation/tools/get-relations-tool.d.ts +34 -0
  217. package/dist/domains/relation/tools/get-relations-tool.d.ts.map +1 -0
  218. package/dist/domains/relation/tools/get-relations-tool.js +155 -0
  219. package/dist/domains/relation/tools/get-relations-tool.js.map +1 -0
  220. package/dist/domains/relation/tools/remove-relation-tool.d.ts +45 -0
  221. package/dist/domains/relation/tools/remove-relation-tool.d.ts.map +1 -0
  222. package/dist/domains/relation/tools/remove-relation-tool.js +142 -0
  223. package/dist/domains/relation/tools/remove-relation-tool.js.map +1 -0
  224. package/dist/domains/relation/tools/visualize-relations-tool.d.ts +46 -0
  225. package/dist/domains/relation/tools/visualize-relations-tool.d.ts.map +1 -0
  226. package/dist/domains/relation/tools/visualize-relations-tool.js +157 -0
  227. package/dist/domains/relation/tools/visualize-relations-tool.js.map +1 -0
  228. package/dist/domains/search/algorithms/hybrid-search-engine.d.ts +318 -0
  229. package/dist/domains/search/algorithms/hybrid-search-engine.d.ts.map +1 -0
  230. package/dist/domains/search/algorithms/hybrid-search-engine.js +1049 -0
  231. package/dist/domains/search/algorithms/hybrid-search-engine.js.map +1 -0
  232. package/dist/domains/search/algorithms/search-engine.d.ts +74 -0
  233. package/dist/domains/search/algorithms/search-engine.d.ts.map +1 -0
  234. package/dist/domains/search/algorithms/search-engine.js +432 -0
  235. package/dist/domains/search/algorithms/search-engine.js.map +1 -0
  236. package/dist/domains/search/algorithms/search-ranking.d.ts.map +1 -0
  237. package/dist/domains/search/algorithms/search-ranking.js.map +1 -0
  238. package/dist/domains/search/algorithms/vector-search-engine-migration.d.ts.map +1 -0
  239. package/dist/domains/search/algorithms/vector-search-engine-migration.js +198 -0
  240. package/dist/domains/search/algorithms/vector-search-engine-migration.js.map +1 -0
  241. package/dist/domains/search/algorithms/vector-search-engine-refactored.d.ts +56 -0
  242. package/dist/domains/search/algorithms/vector-search-engine-refactored.d.ts.map +1 -0
  243. package/dist/domains/search/algorithms/vector-search-engine-refactored.js.map +1 -0
  244. package/dist/domains/search/algorithms/vector-search-engine.d.ts.map +1 -0
  245. package/dist/domains/search/algorithms/vector-search-engine.js.map +1 -0
  246. package/dist/domains/search/factories/hybrid-search.factory.d.ts.map +1 -0
  247. package/dist/domains/search/factories/hybrid-search.factory.js +57 -0
  248. package/dist/domains/search/factories/hybrid-search.factory.js.map +1 -0
  249. package/dist/domains/search/factories/vector-search.factory.d.ts.map +1 -0
  250. package/dist/domains/search/factories/vector-search.factory.js +47 -0
  251. package/dist/domains/search/factories/vector-search.factory.js.map +1 -0
  252. package/dist/domains/search/repositories/vector-performance.repository.d.ts +25 -0
  253. package/dist/domains/search/repositories/vector-performance.repository.d.ts.map +1 -0
  254. package/dist/domains/search/repositories/vector-performance.repository.js +134 -0
  255. package/dist/domains/search/repositories/vector-performance.repository.js.map +1 -0
  256. package/dist/domains/search/repositories/vector-search.repository.d.ts +43 -0
  257. package/dist/domains/search/repositories/vector-search.repository.d.ts.map +1 -0
  258. package/dist/domains/search/repositories/vector-search.repository.js +377 -0
  259. package/dist/domains/search/repositories/vector-search.repository.js.map +1 -0
  260. package/dist/domains/search/services/vector-search/vector-index-manager.d.ts +27 -0
  261. package/dist/domains/search/services/vector-search/vector-index-manager.d.ts.map +1 -0
  262. package/dist/domains/search/services/vector-search/vector-index-manager.js.map +1 -0
  263. package/dist/domains/search/services/vector-search/vector-performance-tester.d.ts +30 -0
  264. package/dist/domains/search/services/vector-search/vector-performance-tester.d.ts.map +1 -0
  265. package/dist/domains/search/services/vector-search/vector-performance-tester.js +87 -0
  266. package/dist/domains/search/services/vector-search/vector-performance-tester.js.map +1 -0
  267. package/dist/domains/search/services/vector-search/vector-search-container.d.ts.map +1 -0
  268. package/dist/domains/search/services/vector-search/vector-search-container.js +74 -0
  269. package/dist/domains/search/services/vector-search/vector-search-container.js.map +1 -0
  270. package/dist/domains/search/services/vector-search/vector-search-facade.d.ts +63 -0
  271. package/dist/domains/search/services/vector-search/vector-search-facade.d.ts.map +1 -0
  272. package/dist/domains/search/services/vector-search/vector-search-facade.js +91 -0
  273. package/dist/domains/search/services/vector-search/vector-search-facade.js.map +1 -0
  274. package/dist/domains/search/services/vector-search/vector-search-result-normalizer.d.ts +6 -0
  275. package/dist/domains/search/services/vector-search/vector-search-result-normalizer.d.ts.map +1 -0
  276. package/dist/domains/search/services/vector-search/vector-search-result-normalizer.js.map +1 -0
  277. package/dist/domains/search/services/vector-search/vector-search.service.d.ts +33 -0
  278. package/dist/domains/search/services/vector-search/vector-search.service.d.ts.map +1 -0
  279. package/dist/domains/search/services/vector-search/vector-search.service.js +149 -0
  280. package/dist/domains/search/services/vector-search/vector-search.service.js.map +1 -0
  281. package/dist/infrastructure/async-optimizer.d.ts.map +1 -0
  282. package/dist/infrastructure/async-optimizer.js.map +1 -0
  283. package/dist/infrastructure/cache/cache-service.d.ts.map +1 -0
  284. package/dist/infrastructure/cache/cache-service.js.map +1 -0
  285. package/dist/infrastructure/consolidation-score-service.d.ts +80 -0
  286. package/dist/infrastructure/consolidation-score-service.d.ts.map +1 -0
  287. package/dist/infrastructure/consolidation-score-service.js.map +1 -0
  288. package/dist/infrastructure/database/database/init.d.ts.map +1 -0
  289. package/dist/infrastructure/database/database/init.js +444 -0
  290. package/dist/infrastructure/database/database/init.js.map +1 -0
  291. package/dist/infrastructure/database/database/migrate.d.ts.map +1 -0
  292. package/dist/infrastructure/database/database/migrate.js +257 -0
  293. package/dist/infrastructure/database/database/migrate.js.map +1 -0
  294. package/dist/infrastructure/database/database/migration/backup-manager.d.ts.map +1 -0
  295. package/dist/infrastructure/database/database/migration/backup-manager.js +181 -0
  296. package/dist/infrastructure/database/database/migration/backup-manager.js.map +1 -0
  297. package/dist/infrastructure/database/database/migration/dependency-validator.d.ts.map +1 -0
  298. package/dist/infrastructure/database/database/migration/dependency-validator.js.map +1 -0
  299. package/dist/infrastructure/database/database/migration/migration-detector.d.ts.map +1 -0
  300. package/dist/infrastructure/database/database/migration/migration-detector.js.map +1 -0
  301. package/dist/infrastructure/database/database/migration/migration-logger.d.ts.map +1 -0
  302. package/dist/infrastructure/database/database/migration/migration-logger.js +168 -0
  303. package/dist/infrastructure/database/database/migration/migration-logger.js.map +1 -0
  304. package/dist/infrastructure/database/database/migration/migration-runner.d.ts.map +1 -0
  305. package/dist/infrastructure/database/database/migration/migration-runner.js.map +1 -0
  306. package/dist/infrastructure/database/database/migration/migrations/002-mirix-schema-expansion.d.ts.map +1 -0
  307. package/dist/infrastructure/database/database/migration/migrations/002-mirix-schema-expansion.js.map +1 -0
  308. package/dist/infrastructure/database/database/migration/migrations/003-consolidation-score-fields.d.ts.map +1 -0
  309. package/dist/infrastructure/database/database/migration/migrations/003-consolidation-score-fields.js.map +1 -0
  310. package/dist/infrastructure/database/database/migration/migrations/004-anchor-table.d.ts.map +1 -0
  311. package/dist/infrastructure/database/database/migration/migrations/004-anchor-table.js.map +1 -0
  312. package/dist/infrastructure/database/database/migration/migrations/005-relation-engine-schema.d.ts.map +1 -0
  313. package/dist/infrastructure/database/database/migration/migrations/005-relation-engine-schema.js.map +1 -0
  314. package/dist/infrastructure/database/database/migration/migrations/006-fts5-reflection-notes.d.ts.map +1 -0
  315. package/dist/infrastructure/database/database/migration/migrations/006-fts5-reflection-notes.js +467 -0
  316. package/dist/infrastructure/database/database/migration/migrations/006-fts5-reflection-notes.js.map +1 -0
  317. package/dist/infrastructure/database/database/migration/schema-version-manager.d.ts.map +1 -0
  318. package/dist/infrastructure/database/database/migration/schema-version-manager.js +146 -0
  319. package/dist/infrastructure/database/database/migration/schema-version-manager.js.map +1 -0
  320. package/dist/infrastructure/database/database/migration/types.d.ts.map +1 -0
  321. package/dist/infrastructure/database/database/migration/types.js.map +1 -0
  322. package/dist/infrastructure/database/database-optimize-tool.d.ts +10 -0
  323. package/dist/infrastructure/database/database-optimize-tool.d.ts.map +1 -0
  324. package/dist/infrastructure/database/database-optimize-tool.js +64 -0
  325. package/dist/infrastructure/database/database-optimize-tool.js.map +1 -0
  326. package/dist/infrastructure/database/database-optimizer.d.ts.map +1 -0
  327. package/dist/infrastructure/database/database-optimizer.js +369 -0
  328. package/dist/infrastructure/database/database-optimizer.js.map +1 -0
  329. package/dist/infrastructure/database/migration-history-service.d.ts +14 -0
  330. package/dist/infrastructure/database/migration-history-service.d.ts.map +1 -0
  331. package/dist/infrastructure/database/migration-history-service.js.map +1 -0
  332. package/dist/infrastructure/database/migration-monitor-service.d.ts +24 -0
  333. package/dist/infrastructure/database/migration-monitor-service.d.ts.map +1 -0
  334. package/dist/infrastructure/database/migration-monitor-service.js.map +1 -0
  335. package/dist/infrastructure/reflexion-worker.d.ts +170 -0
  336. package/dist/infrastructure/reflexion-worker.d.ts.map +1 -0
  337. package/dist/infrastructure/reflexion-worker.js +635 -0
  338. package/dist/infrastructure/reflexion-worker.js.map +1 -0
  339. package/dist/infrastructure/scheduler/batch-scheduler.d.ts +195 -0
  340. package/dist/infrastructure/scheduler/batch-scheduler.d.ts.map +1 -0
  341. package/dist/infrastructure/scheduler/batch-scheduler.js +926 -0
  342. package/dist/infrastructure/scheduler/batch-scheduler.js.map +1 -0
  343. package/dist/scripts/check-migration-status.js +3 -3
  344. package/dist/scripts/check-migration-status.js.map +1 -1
  345. package/dist/scripts/copy-assets.js +2 -2
  346. package/dist/scripts/copy-assets.js.map +1 -1
  347. package/dist/server/bootstrap.d.ts +12 -12
  348. package/dist/server/bootstrap.d.ts.map +1 -1
  349. package/dist/server/bootstrap.js +16 -16
  350. package/dist/server/bootstrap.js.map +1 -1
  351. package/dist/server/handlers/anchor-map.handler.js +1 -1
  352. package/dist/server/handlers/anchor-map.handler.js.map +1 -1
  353. package/dist/server/http-server.d.ts +3 -3
  354. package/dist/server/http-server.d.ts.map +1 -1
  355. package/dist/server/http-server.js +13 -13
  356. package/dist/server/http-server.js.map +1 -1
  357. package/dist/server/index.js +14 -7
  358. package/dist/server/index.js.map +1 -1
  359. package/dist/server/middleware/error-handler.middleware.js +2 -2
  360. package/dist/server/middleware/error-handler.middleware.js.map +1 -1
  361. package/dist/server/routes/admin.routes.js +11 -11
  362. package/dist/server/routes/admin.routes.js.map +1 -1
  363. package/dist/server/routes/api.routes.js +3 -3
  364. package/dist/server/routes/api.routes.js.map +1 -1
  365. package/dist/server/routes/mcp.routes.js +4 -4
  366. package/dist/server/routes/mcp.routes.js.map +1 -1
  367. package/dist/server/routes/tools.routes.js +1 -1
  368. package/dist/server/routes/tools.routes.js.map +1 -1
  369. package/dist/services/anchor-manager.d.ts +5 -5
  370. package/dist/services/anchor-manager.d.ts.map +1 -1
  371. package/dist/services/anchor-manager.js +7 -7
  372. package/dist/services/anchor-manager.js.map +1 -1
  373. package/dist/shared/config/environment.d.ts.map +1 -0
  374. package/dist/shared/config/environment.js.map +1 -0
  375. package/dist/shared/config/index.d.ts.map +1 -0
  376. package/dist/shared/config/index.js.map +1 -0
  377. package/dist/shared/config/ranking-weights-loader.d.ts.map +1 -0
  378. package/dist/shared/config/ranking-weights-loader.js.map +1 -0
  379. package/dist/shared/config/vector-search.config.d.ts.map +1 -0
  380. package/dist/shared/config/vector-search.config.js.map +1 -0
  381. package/dist/shared/constants/relation-constants.d.ts.map +1 -0
  382. package/dist/shared/constants/relation-constants.js.map +1 -0
  383. package/dist/shared/interfaces/database.interface.d.ts.map +1 -0
  384. package/dist/shared/interfaces/database.interface.js.map +1 -0
  385. package/dist/shared/interfaces/spaced-repetition.interface.d.ts.map +1 -0
  386. package/dist/shared/interfaces/spaced-repetition.interface.js.map +1 -0
  387. package/dist/shared/types/alerts.types.d.ts.map +1 -0
  388. package/dist/shared/types/alerts.types.js.map +1 -0
  389. package/dist/shared/types/consolidation-score.types.d.ts.map +1 -0
  390. package/dist/shared/types/consolidation-score.types.js.map +1 -0
  391. package/dist/shared/types/embedding-provider-monitoring.types.d.ts.map +1 -0
  392. package/dist/shared/types/embedding-provider-monitoring.types.js.map +1 -0
  393. package/dist/shared/types/embedding.types.d.ts.map +1 -0
  394. package/dist/shared/types/embedding.types.js.map +1 -0
  395. package/dist/shared/types/index.d.ts.map +1 -0
  396. package/dist/shared/types/index.js.map +1 -0
  397. package/dist/shared/types/migration.types.d.ts.map +1 -0
  398. package/dist/shared/types/migration.types.js.map +1 -0
  399. package/dist/shared/types/relation-graph.d.ts.map +1 -0
  400. package/dist/shared/types/relation-graph.js.map +1 -0
  401. package/dist/shared/types/relation.d.ts.map +1 -0
  402. package/dist/shared/types/relation.js.map +1 -0
  403. package/dist/shared/types/spaced-repetition.types.d.ts.map +1 -0
  404. package/dist/shared/types/spaced-repetition.types.js.map +1 -0
  405. package/dist/shared/types/vector-search.types.d.ts.map +1 -0
  406. package/dist/shared/types/vector-search.types.js.map +1 -0
  407. package/dist/shared/utils/cache-key-generator.d.ts.map +1 -0
  408. package/dist/shared/utils/cache-key-generator.js.map +1 -0
  409. package/dist/shared/utils/configuration-validator.d.ts.map +1 -0
  410. package/dist/shared/utils/configuration-validator.js.map +1 -0
  411. package/dist/shared/utils/database.d.ts.map +1 -0
  412. package/dist/shared/utils/database.js.map +1 -0
  413. package/dist/shared/utils/environment-check.d.ts.map +1 -0
  414. package/dist/shared/utils/environment-check.js.map +1 -0
  415. package/dist/shared/utils/fts5-migration-status.d.ts.map +1 -0
  416. package/dist/shared/utils/fts5-migration-status.js.map +1 -0
  417. package/dist/shared/utils/logger.d.ts.map +1 -0
  418. package/dist/shared/utils/logger.js.map +1 -0
  419. package/dist/shared/utils/reflection-notes-merge.d.ts.map +1 -0
  420. package/dist/shared/utils/reflection-notes-merge.js.map +1 -0
  421. package/dist/shared/utils/reflection-notes-normalize.d.ts.map +1 -0
  422. package/dist/shared/utils/reflection-notes-normalize.js.map +1 -0
  423. package/dist/shared/utils/reflection-notes-schema.d.ts.map +1 -0
  424. package/dist/shared/utils/reflection-notes-schema.js.map +1 -0
  425. package/dist/shared/utils/relation-visualizer.d.ts.map +1 -0
  426. package/dist/shared/utils/relation-visualizer.js.map +1 -0
  427. package/dist/shared/utils/stopwords.d.ts.map +1 -0
  428. package/dist/shared/utils/stopwords.js.map +1 -0
  429. package/dist/shared/utils/type-guards.d.ts.map +1 -0
  430. package/dist/shared/utils/type-guards.js.map +1 -0
  431. package/dist/shared/utils/type-param-validator.d.ts.map +1 -0
  432. package/dist/shared/utils/type-param-validator.js.map +1 -0
  433. package/dist/shared/utils/write-coalescing.d.ts.map +1 -0
  434. package/dist/shared/utils/write-coalescing.js.map +1 -0
  435. package/dist/tools/index.d.ts +12 -12
  436. package/dist/tools/index.d.ts.map +1 -1
  437. package/dist/tools/index.js +12 -12
  438. package/dist/tools/index.js.map +1 -1
  439. package/dist/tools/migrate-embeddings-tool.js +3 -3
  440. package/dist/tools/migrate-embeddings-tool.js.map +1 -1
  441. package/dist/workers/consolidation-score-worker.js +2 -2
  442. package/dist/workers/consolidation-score-worker.js.map +1 -1
  443. package/package.json +3 -2
  444. package/dist/algorithms/forgetting-algorithm.d.ts.map +0 -1
  445. package/dist/algorithms/forgetting-algorithm.js.map +0 -1
  446. package/dist/algorithms/hybrid-search-engine.d.ts +0 -318
  447. package/dist/algorithms/hybrid-search-engine.d.ts.map +0 -1
  448. package/dist/algorithms/hybrid-search-engine.js +0 -1042
  449. package/dist/algorithms/hybrid-search-engine.js.map +0 -1
  450. package/dist/algorithms/search-engine.d.ts +0 -74
  451. package/dist/algorithms/search-engine.d.ts.map +0 -1
  452. package/dist/algorithms/search-engine.js +0 -432
  453. package/dist/algorithms/search-engine.js.map +0 -1
  454. package/dist/algorithms/search-ranking.d.ts.map +0 -1
  455. package/dist/algorithms/search-ranking.js.map +0 -1
  456. package/dist/algorithms/spaced-repetition.d.ts.map +0 -1
  457. package/dist/algorithms/spaced-repetition.js.map +0 -1
  458. package/dist/algorithms/vector-search-engine-migration.d.ts.map +0 -1
  459. package/dist/algorithms/vector-search-engine-migration.js +0 -198
  460. package/dist/algorithms/vector-search-engine-migration.js.map +0 -1
  461. package/dist/algorithms/vector-search-engine-refactored.d.ts +0 -56
  462. package/dist/algorithms/vector-search-engine-refactored.d.ts.map +0 -1
  463. package/dist/algorithms/vector-search-engine-refactored.js.map +0 -1
  464. package/dist/algorithms/vector-search-engine.d.ts.map +0 -1
  465. package/dist/algorithms/vector-search-engine.js.map +0 -1
  466. package/dist/config/environment.d.ts.map +0 -1
  467. package/dist/config/environment.js.map +0 -1
  468. package/dist/config/index.d.ts.map +0 -1
  469. package/dist/config/index.js.map +0 -1
  470. package/dist/config/ranking-weights-loader.d.ts.map +0 -1
  471. package/dist/config/ranking-weights-loader.js.map +0 -1
  472. package/dist/config/vector-search.config.d.ts.map +0 -1
  473. package/dist/config/vector-search.config.js.map +0 -1
  474. package/dist/constants/relation-constants.d.ts.map +0 -1
  475. package/dist/constants/relation-constants.js.map +0 -1
  476. package/dist/database/init.d.ts.map +0 -1
  477. package/dist/database/init.js +0 -444
  478. package/dist/database/init.js.map +0 -1
  479. package/dist/database/migrate.d.ts.map +0 -1
  480. package/dist/database/migrate.js +0 -257
  481. package/dist/database/migrate.js.map +0 -1
  482. package/dist/database/migration/backup-manager.d.ts.map +0 -1
  483. package/dist/database/migration/backup-manager.js +0 -181
  484. package/dist/database/migration/backup-manager.js.map +0 -1
  485. package/dist/database/migration/dependency-validator.d.ts.map +0 -1
  486. package/dist/database/migration/dependency-validator.js.map +0 -1
  487. package/dist/database/migration/migration-detector.d.ts.map +0 -1
  488. package/dist/database/migration/migration-detector.js.map +0 -1
  489. package/dist/database/migration/migration-logger.d.ts.map +0 -1
  490. package/dist/database/migration/migration-logger.js +0 -168
  491. package/dist/database/migration/migration-logger.js.map +0 -1
  492. package/dist/database/migration/migration-runner.d.ts.map +0 -1
  493. package/dist/database/migration/migration-runner.js.map +0 -1
  494. package/dist/database/migration/migrations/002-mirix-schema-expansion.d.ts.map +0 -1
  495. package/dist/database/migration/migrations/002-mirix-schema-expansion.js.map +0 -1
  496. package/dist/database/migration/migrations/003-consolidation-score-fields.d.ts.map +0 -1
  497. package/dist/database/migration/migrations/003-consolidation-score-fields.js.map +0 -1
  498. package/dist/database/migration/migrations/004-anchor-table.d.ts.map +0 -1
  499. package/dist/database/migration/migrations/004-anchor-table.js.map +0 -1
  500. package/dist/database/migration/migrations/005-relation-engine-schema.d.ts.map +0 -1
  501. package/dist/database/migration/migrations/005-relation-engine-schema.js.map +0 -1
  502. package/dist/database/migration/migrations/006-fts5-reflection-notes.d.ts.map +0 -1
  503. package/dist/database/migration/migrations/006-fts5-reflection-notes.js +0 -467
  504. package/dist/database/migration/migrations/006-fts5-reflection-notes.js.map +0 -1
  505. package/dist/database/migration/schema-version-manager.d.ts.map +0 -1
  506. package/dist/database/migration/schema-version-manager.js +0 -146
  507. package/dist/database/migration/schema-version-manager.js.map +0 -1
  508. package/dist/database/migration/types.d.ts.map +0 -1
  509. package/dist/database/migration/types.js.map +0 -1
  510. package/dist/factories/hybrid-search.factory.d.ts.map +0 -1
  511. package/dist/factories/hybrid-search.factory.js +0 -57
  512. package/dist/factories/hybrid-search.factory.js.map +0 -1
  513. package/dist/factories/spaced-repetition.factory.d.ts +0 -48
  514. package/dist/factories/spaced-repetition.factory.d.ts.map +0 -1
  515. package/dist/factories/spaced-repetition.factory.js.map +0 -1
  516. package/dist/factories/vector-search.factory.d.ts.map +0 -1
  517. package/dist/factories/vector-search.factory.js +0 -47
  518. package/dist/factories/vector-search.factory.js.map +0 -1
  519. package/dist/interfaces/database.interface.d.ts.map +0 -1
  520. package/dist/interfaces/database.interface.js.map +0 -1
  521. package/dist/interfaces/spaced-repetition.interface.d.ts.map +0 -1
  522. package/dist/interfaces/spaced-repetition.interface.js.map +0 -1
  523. package/dist/repositories/core-memory-repository.d.ts.map +0 -1
  524. package/dist/repositories/core-memory-repository.js.map +0 -1
  525. package/dist/repositories/knowledge-vault-repository.d.ts.map +0 -1
  526. package/dist/repositories/knowledge-vault-repository.js.map +0 -1
  527. package/dist/repositories/vector-performance.repository.d.ts +0 -25
  528. package/dist/repositories/vector-performance.repository.d.ts.map +0 -1
  529. package/dist/repositories/vector-performance.repository.js +0 -134
  530. package/dist/repositories/vector-performance.repository.js.map +0 -1
  531. package/dist/repositories/vector-search.repository.d.ts +0 -43
  532. package/dist/repositories/vector-search.repository.d.ts.map +0 -1
  533. package/dist/repositories/vector-search.repository.js +0 -377
  534. package/dist/repositories/vector-search.repository.js.map +0 -1
  535. package/dist/services/alert-notification-service.d.ts +0 -16
  536. package/dist/services/alert-notification-service.d.ts.map +0 -1
  537. package/dist/services/alert-notification-service.js.map +0 -1
  538. package/dist/services/anchor/anchor-cache-service.d.ts +0 -77
  539. package/dist/services/anchor/anchor-cache-service.d.ts.map +0 -1
  540. package/dist/services/anchor/anchor-cache-service.js +0 -193
  541. package/dist/services/anchor/anchor-cache-service.js.map +0 -1
  542. package/dist/services/anchor/anchor-interfaces.d.ts.map +0 -1
  543. package/dist/services/anchor/anchor-interfaces.js.map +0 -1
  544. package/dist/services/anchor/anchor-manager.d.ts +0 -71
  545. package/dist/services/anchor/anchor-manager.d.ts.map +0 -1
  546. package/dist/services/anchor/anchor-manager.js +0 -205
  547. package/dist/services/anchor/anchor-manager.js.map +0 -1
  548. package/dist/services/anchor/anchor-search-service.d.ts +0 -131
  549. package/dist/services/anchor/anchor-search-service.d.ts.map +0 -1
  550. package/dist/services/anchor/anchor-search-service.js +0 -918
  551. package/dist/services/anchor/anchor-search-service.js.map +0 -1
  552. package/dist/services/anchor/index.d.ts.map +0 -1
  553. package/dist/services/anchor/index.js.map +0 -1
  554. package/dist/services/async-optimizer.d.ts.map +0 -1
  555. package/dist/services/async-optimizer.js.map +0 -1
  556. package/dist/services/batch-scheduler.d.ts +0 -194
  557. package/dist/services/batch-scheduler.d.ts.map +0 -1
  558. package/dist/services/batch-scheduler.js +0 -907
  559. package/dist/services/batch-scheduler.js.map +0 -1
  560. package/dist/services/cache-service.d.ts.map +0 -1
  561. package/dist/services/cache-service.js.map +0 -1
  562. package/dist/services/consolidation-score-service.d.ts +0 -80
  563. package/dist/services/consolidation-score-service.d.ts.map +0 -1
  564. package/dist/services/consolidation-score-service.js.map +0 -1
  565. package/dist/services/core-memory-cache-service.d.ts.map +0 -1
  566. package/dist/services/core-memory-cache-service.js.map +0 -1
  567. package/dist/services/core-memory-service.d.ts.map +0 -1
  568. package/dist/services/core-memory-service.js.map +0 -1
  569. package/dist/services/database-optimizer.d.ts.map +0 -1
  570. package/dist/services/database-optimizer.js +0 -369
  571. package/dist/services/database-optimizer.js.map +0 -1
  572. package/dist/services/embedding-migration-service.d.ts +0 -24
  573. package/dist/services/embedding-migration-service.d.ts.map +0 -1
  574. package/dist/services/embedding-migration-service.js +0 -360
  575. package/dist/services/embedding-migration-service.js.map +0 -1
  576. package/dist/services/embedding-provider-factory.d.ts +0 -69
  577. package/dist/services/embedding-provider-factory.d.ts.map +0 -1
  578. package/dist/services/embedding-provider-factory.js +0 -233
  579. package/dist/services/embedding-provider-factory.js.map +0 -1
  580. package/dist/services/embedding-service.d.ts.map +0 -1
  581. package/dist/services/embedding-service.js +0 -276
  582. package/dist/services/embedding-service.js.map +0 -1
  583. package/dist/services/error-logging-service.d.ts.map +0 -1
  584. package/dist/services/error-logging-service.js.map +0 -1
  585. package/dist/services/failure-detector.d.ts +0 -120
  586. package/dist/services/failure-detector.d.ts.map +0 -1
  587. package/dist/services/failure-detector.js +0 -370
  588. package/dist/services/failure-detector.js.map +0 -1
  589. package/dist/services/forgetting-policy-service.d.ts.map +0 -1
  590. package/dist/services/forgetting-policy-service.js +0 -233
  591. package/dist/services/forgetting-policy-service.js.map +0 -1
  592. package/dist/services/gemini-embedding-service.d.ts +0 -82
  593. package/dist/services/gemini-embedding-service.d.ts.map +0 -1
  594. package/dist/services/gemini-embedding-service.js +0 -239
  595. package/dist/services/gemini-embedding-service.js.map +0 -1
  596. package/dist/services/knowledge-vault-service.d.ts.map +0 -1
  597. package/dist/services/knowledge-vault-service.js.map +0 -1
  598. package/dist/services/lightweight-embedding-service.d.ts +0 -95
  599. package/dist/services/lightweight-embedding-service.d.ts.map +0 -1
  600. package/dist/services/lightweight-embedding-service.js +0 -264
  601. package/dist/services/lightweight-embedding-service.js.map +0 -1
  602. package/dist/services/llm-based-relation-extractor.d.ts +0 -156
  603. package/dist/services/llm-based-relation-extractor.d.ts.map +0 -1
  604. package/dist/services/llm-based-relation-extractor.js +0 -1350
  605. package/dist/services/llm-based-relation-extractor.js.map +0 -1
  606. package/dist/services/memory-embedding-service.d.ts +0 -78
  607. package/dist/services/memory-embedding-service.d.ts.map +0 -1
  608. package/dist/services/memory-embedding-service.js +0 -341
  609. package/dist/services/memory-embedding-service.js.map +0 -1
  610. package/dist/services/memory-neighbor-service.d.ts +0 -81
  611. package/dist/services/memory-neighbor-service.d.ts.map +0 -1
  612. package/dist/services/memory-neighbor-service.js +0 -297
  613. package/dist/services/memory-neighbor-service.js.map +0 -1
  614. package/dist/services/migration-history-service.d.ts +0 -14
  615. package/dist/services/migration-history-service.d.ts.map +0 -1
  616. package/dist/services/migration-history-service.js.map +0 -1
  617. package/dist/services/migration-monitor-service.d.ts +0 -24
  618. package/dist/services/migration-monitor-service.d.ts.map +0 -1
  619. package/dist/services/migration-monitor-service.js.map +0 -1
  620. package/dist/services/minilm-embedding-service.d.ts +0 -93
  621. package/dist/services/minilm-embedding-service.d.ts.map +0 -1
  622. package/dist/services/minilm-embedding-service.js.map +0 -1
  623. package/dist/services/model-availability-service.d.ts +0 -22
  624. package/dist/services/model-availability-service.d.ts.map +0 -1
  625. package/dist/services/model-availability-service.js +0 -140
  626. package/dist/services/model-availability-service.js.map +0 -1
  627. package/dist/services/openai-embedding-service.d.ts +0 -36
  628. package/dist/services/openai-embedding-service.d.ts.map +0 -1
  629. package/dist/services/openai-embedding-service.js +0 -192
  630. package/dist/services/openai-embedding-service.js.map +0 -1
  631. package/dist/services/performance-alert-service.d.ts.map +0 -1
  632. package/dist/services/performance-alert-service.js.map +0 -1
  633. package/dist/services/performance-monitor.d.ts.map +0 -1
  634. package/dist/services/performance-monitor.js +0 -802
  635. package/dist/services/performance-monitor.js.map +0 -1
  636. package/dist/services/reflexion-worker.d.ts +0 -170
  637. package/dist/services/reflexion-worker.d.ts.map +0 -1
  638. package/dist/services/reflexion-worker.js +0 -636
  639. package/dist/services/reflexion-worker.js.map +0 -1
  640. package/dist/services/relation-extractor.d.ts +0 -73
  641. package/dist/services/relation-extractor.d.ts.map +0 -1
  642. package/dist/services/relation-extractor.js +0 -231
  643. package/dist/services/relation-extractor.js.map +0 -1
  644. package/dist/services/relation-graph.d.ts +0 -275
  645. package/dist/services/relation-graph.d.ts.map +0 -1
  646. package/dist/services/relation-graph.js +0 -869
  647. package/dist/services/relation-graph.js.map +0 -1
  648. package/dist/services/relation-quality-validator.d.ts +0 -211
  649. package/dist/services/relation-quality-validator.d.ts.map +0 -1
  650. package/dist/services/relation-quality-validator.js +0 -415
  651. package/dist/services/relation-quality-validator.js.map +0 -1
  652. package/dist/services/rule-based-relation-extractor.d.ts +0 -66
  653. package/dist/services/rule-based-relation-extractor.d.ts.map +0 -1
  654. package/dist/services/rule-based-relation-extractor.js +0 -258
  655. package/dist/services/rule-based-relation-extractor.js.map +0 -1
  656. package/dist/services/spaced-repetition/interval-calculation.service.d.ts +0 -38
  657. package/dist/services/spaced-repetition/interval-calculation.service.d.ts.map +0 -1
  658. package/dist/services/spaced-repetition/interval-calculation.service.js.map +0 -1
  659. package/dist/services/spaced-repetition/optimal-interval.service.d.ts +0 -56
  660. package/dist/services/spaced-repetition/optimal-interval.service.d.ts.map +0 -1
  661. package/dist/services/spaced-repetition/optimal-interval.service.js.map +0 -1
  662. package/dist/services/spaced-repetition/performance-analysis.service.d.ts +0 -48
  663. package/dist/services/spaced-repetition/performance-analysis.service.d.ts.map +0 -1
  664. package/dist/services/spaced-repetition/performance-analysis.service.js.map +0 -1
  665. package/dist/services/spaced-repetition/priority-calculation.service.d.ts +0 -53
  666. package/dist/services/spaced-repetition/priority-calculation.service.d.ts.map +0 -1
  667. package/dist/services/spaced-repetition/priority-calculation.service.js.map +0 -1
  668. package/dist/services/spaced-repetition/recall-probability.service.d.ts +0 -36
  669. package/dist/services/spaced-repetition/recall-probability.service.d.ts.map +0 -1
  670. package/dist/services/spaced-repetition/recall-probability.service.js.map +0 -1
  671. package/dist/services/spaced-repetition/review-scheduling.service.d.ts +0 -43
  672. package/dist/services/spaced-repetition/review-scheduling.service.d.ts.map +0 -1
  673. package/dist/services/spaced-repetition/review-scheduling.service.js.map +0 -1
  674. package/dist/services/spaced-repetition/spaced-repetition-container.d.ts +0 -69
  675. package/dist/services/spaced-repetition/spaced-repetition-container.d.ts.map +0 -1
  676. package/dist/services/spaced-repetition/spaced-repetition-container.js.map +0 -1
  677. package/dist/services/unified-embedding-service.d.ts +0 -78
  678. package/dist/services/unified-embedding-service.d.ts.map +0 -1
  679. package/dist/services/unified-embedding-service.js +0 -208
  680. package/dist/services/unified-embedding-service.js.map +0 -1
  681. package/dist/services/vector-compatibility-service.d.ts +0 -68
  682. package/dist/services/vector-compatibility-service.d.ts.map +0 -1
  683. package/dist/services/vector-compatibility-service.js.map +0 -1
  684. package/dist/services/vector-search/vector-index-manager.d.ts +0 -27
  685. package/dist/services/vector-search/vector-index-manager.d.ts.map +0 -1
  686. package/dist/services/vector-search/vector-index-manager.js.map +0 -1
  687. package/dist/services/vector-search/vector-performance-tester.d.ts +0 -30
  688. package/dist/services/vector-search/vector-performance-tester.d.ts.map +0 -1
  689. package/dist/services/vector-search/vector-performance-tester.js +0 -87
  690. package/dist/services/vector-search/vector-performance-tester.js.map +0 -1
  691. package/dist/services/vector-search/vector-search-container.d.ts.map +0 -1
  692. package/dist/services/vector-search/vector-search-container.js +0 -74
  693. package/dist/services/vector-search/vector-search-container.js.map +0 -1
  694. package/dist/services/vector-search/vector-search-facade.d.ts +0 -63
  695. package/dist/services/vector-search/vector-search-facade.d.ts.map +0 -1
  696. package/dist/services/vector-search/vector-search-facade.js +0 -91
  697. package/dist/services/vector-search/vector-search-facade.js.map +0 -1
  698. package/dist/services/vector-search/vector-search-result-normalizer.d.ts +0 -6
  699. package/dist/services/vector-search/vector-search-result-normalizer.d.ts.map +0 -1
  700. package/dist/services/vector-search/vector-search-result-normalizer.js.map +0 -1
  701. package/dist/services/vector-search/vector-search.service.d.ts +0 -33
  702. package/dist/services/vector-search/vector-search.service.d.ts.map +0 -1
  703. package/dist/services/vector-search/vector-search.service.js +0 -149
  704. package/dist/services/vector-search/vector-search.service.js.map +0 -1
  705. package/dist/tools/add-relation-tool.d.ts +0 -34
  706. package/dist/tools/add-relation-tool.d.ts.map +0 -1
  707. package/dist/tools/add-relation-tool.js +0 -163
  708. package/dist/tools/add-relation-tool.js.map +0 -1
  709. package/dist/tools/cleanup-memory-tool.d.ts +0 -10
  710. package/dist/tools/cleanup-memory-tool.d.ts.map +0 -1
  711. package/dist/tools/cleanup-memory-tool.js +0 -66
  712. package/dist/tools/cleanup-memory-tool.js.map +0 -1
  713. package/dist/tools/clear-anchor-tool.d.ts +0 -10
  714. package/dist/tools/clear-anchor-tool.d.ts.map +0 -1
  715. package/dist/tools/clear-anchor-tool.js +0 -64
  716. package/dist/tools/clear-anchor-tool.js.map +0 -1
  717. package/dist/tools/database-optimize-tool.d.ts +0 -10
  718. package/dist/tools/database-optimize-tool.d.ts.map +0 -1
  719. package/dist/tools/database-optimize-tool.js +0 -64
  720. package/dist/tools/database-optimize-tool.js.map +0 -1
  721. package/dist/tools/error-stats.d.ts +0 -93
  722. package/dist/tools/error-stats.d.ts.map +0 -1
  723. package/dist/tools/error-stats.js.map +0 -1
  724. package/dist/tools/extract-relations-tool.d.ts +0 -28
  725. package/dist/tools/extract-relations-tool.d.ts.map +0 -1
  726. package/dist/tools/extract-relations-tool.js +0 -159
  727. package/dist/tools/extract-relations-tool.js.map +0 -1
  728. package/dist/tools/forget-tool.d.ts +0 -63
  729. package/dist/tools/forget-tool.d.ts.map +0 -1
  730. package/dist/tools/forget-tool.js +0 -340
  731. package/dist/tools/forget-tool.js.map +0 -1
  732. package/dist/tools/forgetting-stats-tool.d.ts +0 -10
  733. package/dist/tools/forgetting-stats-tool.d.ts.map +0 -1
  734. package/dist/tools/forgetting-stats-tool.js +0 -37
  735. package/dist/tools/forgetting-stats-tool.js.map +0 -1
  736. package/dist/tools/get-anchor-tool.d.ts +0 -10
  737. package/dist/tools/get-anchor-tool.d.ts.map +0 -1
  738. package/dist/tools/get-anchor-tool.js +0 -91
  739. package/dist/tools/get-anchor-tool.js.map +0 -1
  740. package/dist/tools/get-memory-neighbors-tool.d.ts +0 -26
  741. package/dist/tools/get-memory-neighbors-tool.d.ts.map +0 -1
  742. package/dist/tools/get-memory-neighbors-tool.js +0 -125
  743. package/dist/tools/get-memory-neighbors-tool.js.map +0 -1
  744. package/dist/tools/get-relations-tool.d.ts +0 -34
  745. package/dist/tools/get-relations-tool.d.ts.map +0 -1
  746. package/dist/tools/get-relations-tool.js +0 -155
  747. package/dist/tools/get-relations-tool.js.map +0 -1
  748. package/dist/tools/memory-injection-prompt.d.ts +0 -43
  749. package/dist/tools/memory-injection-prompt.d.ts.map +0 -1
  750. package/dist/tools/memory-injection-prompt.js +0 -332
  751. package/dist/tools/memory-injection-prompt.js.map +0 -1
  752. package/dist/tools/performance-alerts.d.ts +0 -127
  753. package/dist/tools/performance-alerts.d.ts.map +0 -1
  754. package/dist/tools/performance-alerts.js.map +0 -1
  755. package/dist/tools/performance-stats-tool.d.ts +0 -10
  756. package/dist/tools/performance-stats-tool.d.ts.map +0 -1
  757. package/dist/tools/performance-stats-tool.js +0 -38
  758. package/dist/tools/performance-stats-tool.js.map +0 -1
  759. package/dist/tools/pin-tool.d.ts +0 -39
  760. package/dist/tools/pin-tool.d.ts.map +0 -1
  761. package/dist/tools/pin-tool.js +0 -211
  762. package/dist/tools/pin-tool.js.map +0 -1
  763. package/dist/tools/recall-tool.d.ts +0 -38
  764. package/dist/tools/recall-tool.d.ts.map +0 -1
  765. package/dist/tools/recall-tool.js +0 -709
  766. package/dist/tools/recall-tool.js.map +0 -1
  767. package/dist/tools/remember-tool.d.ts +0 -51
  768. package/dist/tools/remember-tool.d.ts.map +0 -1
  769. package/dist/tools/remember-tool.js +0 -722
  770. package/dist/tools/remember-tool.js.map +0 -1
  771. package/dist/tools/remove-relation-tool.d.ts +0 -45
  772. package/dist/tools/remove-relation-tool.d.ts.map +0 -1
  773. package/dist/tools/remove-relation-tool.js +0 -142
  774. package/dist/tools/remove-relation-tool.js.map +0 -1
  775. package/dist/tools/resolve-error.d.ts +0 -54
  776. package/dist/tools/resolve-error.d.ts.map +0 -1
  777. package/dist/tools/resolve-error.js.map +0 -1
  778. package/dist/tools/restore-anchors-tool.d.ts +0 -11
  779. package/dist/tools/restore-anchors-tool.d.ts.map +0 -1
  780. package/dist/tools/restore-anchors-tool.js +0 -117
  781. package/dist/tools/restore-anchors-tool.js.map +0 -1
  782. package/dist/tools/search-local-tool.d.ts +0 -10
  783. package/dist/tools/search-local-tool.d.ts.map +0 -1
  784. package/dist/tools/search-local-tool.js +0 -97
  785. package/dist/tools/search-local-tool.js.map +0 -1
  786. package/dist/tools/set-anchor-tool.d.ts +0 -10
  787. package/dist/tools/set-anchor-tool.d.ts.map +0 -1
  788. package/dist/tools/set-anchor-tool.js +0 -70
  789. package/dist/tools/set-anchor-tool.js.map +0 -1
  790. package/dist/tools/unpin-tool.d.ts +0 -43
  791. package/dist/tools/unpin-tool.d.ts.map +0 -1
  792. package/dist/tools/unpin-tool.js +0 -233
  793. package/dist/tools/unpin-tool.js.map +0 -1
  794. package/dist/tools/visualize-relations-tool.d.ts +0 -46
  795. package/dist/tools/visualize-relations-tool.d.ts.map +0 -1
  796. package/dist/tools/visualize-relations-tool.js +0 -157
  797. package/dist/tools/visualize-relations-tool.js.map +0 -1
  798. package/dist/types/alerts.types.d.ts.map +0 -1
  799. package/dist/types/alerts.types.js.map +0 -1
  800. package/dist/types/consolidation-score.types.d.ts.map +0 -1
  801. package/dist/types/consolidation-score.types.js.map +0 -1
  802. package/dist/types/embedding-provider-monitoring.types.d.ts.map +0 -1
  803. package/dist/types/embedding-provider-monitoring.types.js.map +0 -1
  804. package/dist/types/embedding.types.d.ts.map +0 -1
  805. package/dist/types/embedding.types.js.map +0 -1
  806. package/dist/types/index.d.ts.map +0 -1
  807. package/dist/types/index.js.map +0 -1
  808. package/dist/types/migration.types.d.ts.map +0 -1
  809. package/dist/types/migration.types.js.map +0 -1
  810. package/dist/types/relation-graph.d.ts.map +0 -1
  811. package/dist/types/relation-graph.js.map +0 -1
  812. package/dist/types/relation.d.ts.map +0 -1
  813. package/dist/types/relation.js.map +0 -1
  814. package/dist/types/spaced-repetition.types.d.ts.map +0 -1
  815. package/dist/types/spaced-repetition.types.js.map +0 -1
  816. package/dist/types/vector-search.types.d.ts.map +0 -1
  817. package/dist/types/vector-search.types.js.map +0 -1
  818. package/dist/utils/cache-key-generator.d.ts.map +0 -1
  819. package/dist/utils/cache-key-generator.js.map +0 -1
  820. package/dist/utils/configuration-validator.d.ts.map +0 -1
  821. package/dist/utils/configuration-validator.js.map +0 -1
  822. package/dist/utils/database.d.ts.map +0 -1
  823. package/dist/utils/database.js.map +0 -1
  824. package/dist/utils/environment-check.d.ts.map +0 -1
  825. package/dist/utils/environment-check.js.map +0 -1
  826. package/dist/utils/fts5-migration-status.d.ts.map +0 -1
  827. package/dist/utils/fts5-migration-status.js.map +0 -1
  828. package/dist/utils/logger.d.ts.map +0 -1
  829. package/dist/utils/logger.js.map +0 -1
  830. package/dist/utils/reflection-notes-merge.d.ts.map +0 -1
  831. package/dist/utils/reflection-notes-merge.js.map +0 -1
  832. package/dist/utils/reflection-notes-normalize.d.ts.map +0 -1
  833. package/dist/utils/reflection-notes-normalize.js.map +0 -1
  834. package/dist/utils/reflection-notes-schema.d.ts.map +0 -1
  835. package/dist/utils/reflection-notes-schema.js.map +0 -1
  836. package/dist/utils/relation-visualizer.d.ts.map +0 -1
  837. package/dist/utils/relation-visualizer.js.map +0 -1
  838. package/dist/utils/stopwords.d.ts.map +0 -1
  839. package/dist/utils/stopwords.js.map +0 -1
  840. package/dist/utils/type-guards.d.ts.map +0 -1
  841. package/dist/utils/type-guards.js.map +0 -1
  842. package/dist/utils/type-param-validator.d.ts.map +0 -1
  843. package/dist/utils/type-param-validator.js.map +0 -1
  844. package/dist/utils/write-coalescing.d.ts.map +0 -1
  845. package/dist/utils/write-coalescing.js.map +0 -1
  846. package/src/database/schema.sql +0 -304
  847. /package/dist/{services → domains/anchor/services}/anchor/anchor-interfaces.d.ts +0 -0
  848. /package/dist/{services → domains/anchor/services}/anchor/anchor-interfaces.js +0 -0
  849. /package/dist/{services → domains/anchor/services}/anchor/index.d.ts +0 -0
  850. /package/dist/{services → domains/anchor/services}/anchor/index.js +0 -0
  851. /package/dist/{services → domains/embedding/services}/embedding-service.d.ts +0 -0
  852. /package/dist/{services → domains/embedding/services}/minilm-embedding-service.js +0 -0
  853. /package/dist/{services → domains/embedding/services}/vector-compatibility-service.js +0 -0
  854. /package/dist/{algorithms → domains/forgetting/algorithms}/forgetting-algorithm.d.ts +0 -0
  855. /package/dist/{algorithms → domains/forgetting/algorithms}/forgetting-algorithm.js +0 -0
  856. /package/dist/{algorithms → domains/forgetting/algorithms}/spaced-repetition.d.ts +0 -0
  857. /package/dist/{algorithms → domains/forgetting/algorithms}/spaced-repetition.js +0 -0
  858. /package/dist/{factories → domains/forgetting/factories}/spaced-repetition.factory.js +0 -0
  859. /package/dist/{services → domains/forgetting/services}/forgetting-policy-service.d.ts +0 -0
  860. /package/dist/{services → domains/forgetting/services}/spaced-repetition/interval-calculation.service.js +0 -0
  861. /package/dist/{services → domains/forgetting/services}/spaced-repetition/optimal-interval.service.js +0 -0
  862. /package/dist/{services → domains/forgetting/services}/spaced-repetition/performance-analysis.service.js +0 -0
  863. /package/dist/{services → domains/forgetting/services}/spaced-repetition/priority-calculation.service.js +0 -0
  864. /package/dist/{services → domains/forgetting/services}/spaced-repetition/recall-probability.service.js +0 -0
  865. /package/dist/{services → domains/forgetting/services}/spaced-repetition/review-scheduling.service.js +0 -0
  866. /package/dist/{services → domains/forgetting/services}/spaced-repetition/spaced-repetition-container.js +0 -0
  867. /package/dist/{repositories → domains/memory/repositories}/core-memory-repository.d.ts +0 -0
  868. /package/dist/{repositories → domains/memory/repositories}/core-memory-repository.js +0 -0
  869. /package/dist/{repositories → domains/memory/repositories}/knowledge-vault-repository.d.ts +0 -0
  870. /package/dist/{repositories → domains/memory/repositories}/knowledge-vault-repository.js +0 -0
  871. /package/dist/{services → domains/memory/services}/core-memory-cache-service.d.ts +0 -0
  872. /package/dist/{services → domains/memory/services}/core-memory-cache-service.js +0 -0
  873. /package/dist/{services → domains/memory/services}/core-memory-service.d.ts +0 -0
  874. /package/dist/{services → domains/memory/services}/core-memory-service.js +0 -0
  875. /package/dist/{services → domains/memory/services}/knowledge-vault-service.d.ts +0 -0
  876. /package/dist/{services → domains/memory/services}/knowledge-vault-service.js +0 -0
  877. /package/dist/{services → domains/monitoring/services}/alert-notification-service.js +0 -0
  878. /package/dist/{services → domains/monitoring/services}/error-logging-service.d.ts +0 -0
  879. /package/dist/{services → domains/monitoring/services}/error-logging-service.js +0 -0
  880. /package/dist/{services → domains/monitoring/services}/performance-alert-service.d.ts +0 -0
  881. /package/dist/{services → domains/monitoring/services}/performance-alert-service.js +0 -0
  882. /package/dist/{services → domains/monitoring/services}/performance-monitor.d.ts +0 -0
  883. /package/dist/{tools → domains/monitoring/tools}/error-stats.js +0 -0
  884. /package/dist/{tools → domains/monitoring/tools}/performance-alerts.js +0 -0
  885. /package/dist/{tools → domains/monitoring/tools}/resolve-error.js +0 -0
  886. /package/dist/{algorithms → domains/search/algorithms}/search-ranking.d.ts +0 -0
  887. /package/dist/{algorithms → domains/search/algorithms}/search-ranking.js +0 -0
  888. /package/dist/{algorithms → domains/search/algorithms}/vector-search-engine-migration.d.ts +0 -0
  889. /package/dist/{algorithms → domains/search/algorithms}/vector-search-engine-refactored.js +0 -0
  890. /package/dist/{algorithms → domains/search/algorithms}/vector-search-engine.d.ts +0 -0
  891. /package/dist/{algorithms → domains/search/algorithms}/vector-search-engine.js +0 -0
  892. /package/dist/{factories → domains/search/factories}/hybrid-search.factory.d.ts +0 -0
  893. /package/dist/{factories → domains/search/factories}/vector-search.factory.d.ts +0 -0
  894. /package/dist/{services → domains/search/services}/vector-search/vector-index-manager.js +0 -0
  895. /package/dist/{services → domains/search/services}/vector-search/vector-search-container.d.ts +0 -0
  896. /package/dist/{services → domains/search/services}/vector-search/vector-search-result-normalizer.js +0 -0
  897. /package/dist/{services → infrastructure}/async-optimizer.d.ts +0 -0
  898. /package/dist/{services → infrastructure}/async-optimizer.js +0 -0
  899. /package/dist/{services → infrastructure/cache}/cache-service.d.ts +0 -0
  900. /package/dist/{services → infrastructure/cache}/cache-service.js +0 -0
  901. /package/dist/{services → infrastructure}/consolidation-score-service.js +0 -0
  902. /package/dist/{database → infrastructure/database/database}/init.d.ts +0 -0
  903. /package/dist/{database → infrastructure/database/database}/migrate.d.ts +0 -0
  904. /package/dist/{database → infrastructure/database/database}/migration/backup-manager.d.ts +0 -0
  905. /package/dist/{database → infrastructure/database/database}/migration/dependency-validator.d.ts +0 -0
  906. /package/dist/{database → infrastructure/database/database}/migration/dependency-validator.js +0 -0
  907. /package/dist/{database → infrastructure/database/database}/migration/migration-detector.d.ts +0 -0
  908. /package/dist/{database → infrastructure/database/database}/migration/migration-detector.js +0 -0
  909. /package/dist/{database → infrastructure/database/database}/migration/migration-logger.d.ts +0 -0
  910. /package/dist/{database → infrastructure/database/database}/migration/migration-runner.d.ts +0 -0
  911. /package/dist/{database → infrastructure/database/database}/migration/migration-runner.js +0 -0
  912. /package/dist/{database → infrastructure/database/database}/migration/migrations/002-mirix-schema-expansion.d.ts +0 -0
  913. /package/dist/{database → infrastructure/database/database}/migration/migrations/002-mirix-schema-expansion.js +0 -0
  914. /package/dist/{database → infrastructure/database/database}/migration/migrations/003-consolidation-score-fields.d.ts +0 -0
  915. /package/dist/{database → infrastructure/database/database}/migration/migrations/003-consolidation-score-fields.js +0 -0
  916. /package/dist/{database → infrastructure/database/database}/migration/migrations/004-anchor-table.d.ts +0 -0
  917. /package/dist/{database → infrastructure/database/database}/migration/migrations/004-anchor-table.js +0 -0
  918. /package/dist/{database → infrastructure/database/database}/migration/migrations/005-relation-engine-schema.d.ts +0 -0
  919. /package/dist/{database → infrastructure/database/database}/migration/migrations/005-relation-engine-schema.js +0 -0
  920. /package/dist/{database → infrastructure/database/database}/migration/migrations/006-fts5-reflection-notes.d.ts +0 -0
  921. /package/dist/{database → infrastructure/database/database}/migration/schema-version-manager.d.ts +0 -0
  922. /package/dist/{database → infrastructure/database/database}/migration/types.d.ts +0 -0
  923. /package/dist/{database → infrastructure/database/database}/migration/types.js +0 -0
  924. /package/dist/{services → infrastructure/database}/database-optimizer.d.ts +0 -0
  925. /package/dist/{services → infrastructure/database}/migration-history-service.js +0 -0
  926. /package/dist/{services → infrastructure/database}/migration-monitor-service.js +0 -0
  927. /package/dist/{config → shared/config}/environment.d.ts +0 -0
  928. /package/dist/{config → shared/config}/environment.js +0 -0
  929. /package/dist/{config → shared/config}/index.d.ts +0 -0
  930. /package/dist/{config → shared/config}/index.js +0 -0
  931. /package/dist/{config → shared/config}/ranking-weights-loader.d.ts +0 -0
  932. /package/dist/{config → shared/config}/ranking-weights-loader.js +0 -0
  933. /package/dist/{config → shared/config}/vector-search.config.d.ts +0 -0
  934. /package/dist/{config → shared/config}/vector-search.config.js +0 -0
  935. /package/dist/{constants → shared/constants}/relation-constants.d.ts +0 -0
  936. /package/dist/{constants → shared/constants}/relation-constants.js +0 -0
  937. /package/dist/{interfaces → shared/interfaces}/database.interface.d.ts +0 -0
  938. /package/dist/{interfaces → shared/interfaces}/database.interface.js +0 -0
  939. /package/dist/{interfaces → shared/interfaces}/spaced-repetition.interface.d.ts +0 -0
  940. /package/dist/{interfaces → shared/interfaces}/spaced-repetition.interface.js +0 -0
  941. /package/dist/{types → shared/types}/alerts.types.d.ts +0 -0
  942. /package/dist/{types → shared/types}/alerts.types.js +0 -0
  943. /package/dist/{types → shared/types}/consolidation-score.types.d.ts +0 -0
  944. /package/dist/{types → shared/types}/consolidation-score.types.js +0 -0
  945. /package/dist/{types → shared/types}/embedding-provider-monitoring.types.d.ts +0 -0
  946. /package/dist/{types → shared/types}/embedding-provider-monitoring.types.js +0 -0
  947. /package/dist/{types → shared/types}/embedding.types.d.ts +0 -0
  948. /package/dist/{types → shared/types}/embedding.types.js +0 -0
  949. /package/dist/{types → shared/types}/index.d.ts +0 -0
  950. /package/dist/{types → shared/types}/index.js +0 -0
  951. /package/dist/{types → shared/types}/migration.types.d.ts +0 -0
  952. /package/dist/{types → shared/types}/migration.types.js +0 -0
  953. /package/dist/{types → shared/types}/relation-graph.d.ts +0 -0
  954. /package/dist/{types → shared/types}/relation-graph.js +0 -0
  955. /package/dist/{types → shared/types}/relation.d.ts +0 -0
  956. /package/dist/{types → shared/types}/relation.js +0 -0
  957. /package/dist/{types → shared/types}/spaced-repetition.types.d.ts +0 -0
  958. /package/dist/{types → shared/types}/spaced-repetition.types.js +0 -0
  959. /package/dist/{types → shared/types}/vector-search.types.d.ts +0 -0
  960. /package/dist/{types → shared/types}/vector-search.types.js +0 -0
  961. /package/dist/{utils → shared/utils}/cache-key-generator.d.ts +0 -0
  962. /package/dist/{utils → shared/utils}/cache-key-generator.js +0 -0
  963. /package/dist/{utils → shared/utils}/configuration-validator.d.ts +0 -0
  964. /package/dist/{utils → shared/utils}/configuration-validator.js +0 -0
  965. /package/dist/{utils → shared/utils}/database.d.ts +0 -0
  966. /package/dist/{utils → shared/utils}/database.js +0 -0
  967. /package/dist/{utils → shared/utils}/environment-check.d.ts +0 -0
  968. /package/dist/{utils → shared/utils}/environment-check.js +0 -0
  969. /package/dist/{utils → shared/utils}/fts5-migration-status.d.ts +0 -0
  970. /package/dist/{utils → shared/utils}/fts5-migration-status.js +0 -0
  971. /package/dist/{utils → shared/utils}/logger.d.ts +0 -0
  972. /package/dist/{utils → shared/utils}/logger.js +0 -0
  973. /package/dist/{utils → shared/utils}/reflection-notes-merge.d.ts +0 -0
  974. /package/dist/{utils → shared/utils}/reflection-notes-merge.js +0 -0
  975. /package/dist/{utils → shared/utils}/reflection-notes-normalize.d.ts +0 -0
  976. /package/dist/{utils → shared/utils}/reflection-notes-normalize.js +0 -0
  977. /package/dist/{utils → shared/utils}/reflection-notes-schema.d.ts +0 -0
  978. /package/dist/{utils → shared/utils}/reflection-notes-schema.js +0 -0
  979. /package/dist/{utils → shared/utils}/relation-visualizer.d.ts +0 -0
  980. /package/dist/{utils → shared/utils}/relation-visualizer.js +0 -0
  981. /package/dist/{utils → shared/utils}/stopwords.d.ts +0 -0
  982. /package/dist/{utils → shared/utils}/stopwords.js +0 -0
  983. /package/dist/{utils → shared/utils}/type-guards.d.ts +0 -0
  984. /package/dist/{utils → shared/utils}/type-guards.js +0 -0
  985. /package/dist/{utils → shared/utils}/type-param-validator.d.ts +0 -0
  986. /package/dist/{utils → shared/utils}/type-param-validator.js +0 -0
  987. /package/dist/{utils → shared/utils}/write-coalescing.d.ts +0 -0
  988. /package/dist/{utils → shared/utils}/write-coalescing.js +0 -0
@@ -1,1042 +0,0 @@
1
- /**
2
- * 텍스트 검색과 벡터 검색을 결합하여 검색 정확도와 포괄성을 동시에 확보합니다.
3
- * FTS5 전문 검색과 벡터 유사도 검색을 병렬로 수행하여 각각의 장점을 활용합니다.
4
- */
5
- import { SearchEngine } from './search-engine.js';
6
- import { MemoryEmbeddingService } from '../services/memory-embedding-service.js';
7
- import { UnifiedEmbeddingService } from '../services/unified-embedding-service.js';
8
- import { getVectorSearchEngine } from './vector-search-engine.js';
9
- import Database from 'better-sqlite3';
10
- import { SearchRanking } from './search-ranking.js';
11
- import { mementoConfig } from '../config/index.js';
12
- import { RelationGraph } from '../services/relation-graph.js';
13
- import { getRankingWeights } from '../config/ranking-weights-loader.js';
14
- // 검색 관련 상수
15
- /**
16
- * 개별 provider의 검색 작업이 지연되어 전체 검색 성능에 영향을 주지 않도록 제한합니다.
17
- * 각 provider별 검색 작업이 이 시간 내에 완료되지 않으면 타임아웃 처리하여 응답성을 보장합니다.
18
- */
19
- const PROVIDER_SEARCH_TIMEOUT_MS = 2000;
20
- /**
21
- * 전체 검색 프로세스가 무한정 대기하지 않도록 최대 대기 시간을 설정합니다.
22
- * 모든 provider 검색이 이 시간 내에 완료되지 않으면 현재까지 완료된 결과만 반환하여 사용자 경험을 보장합니다.
23
- * 개별 provider 타임아웃보다 충분히 길게 설정하여 병렬 실행의 이점을 활용합니다.
24
- */
25
- const OVERALL_SEARCH_TIMEOUT_MS = 5000;
26
- /**
27
- * 중복 제거 과정에서 일부 결과가 제외될 수 있으므로 충분한 후보를 확보합니다.
28
- * 더 많은 결과를 가져와서 최종 결과의 품질과 다양성을 보장합니다.
29
- */
30
- const VECTOR_SEARCH_LIMIT_MULTIPLIER = 2;
31
- /**
32
- * 관련성이 낮은 벡터 검색 결과는 사용자에게 유용하지 않으므로 필터링하여 검색 품질을 향상시킵니다.
33
- * 이 값보다 낮은 similarity를 가진 결과는 노이즈에 가까우므로 제외하여 검색 정확도를 높입니다.
34
- */
35
- const VECTOR_SEARCH_THRESHOLD = 0.5;
36
- // 검색 과정에서 발생할 수 있는 다양한 오류를 분류하여 정확한 오류 처리를 수행합니다.
37
- export var SearchErrorType;
38
- (function (SearchErrorType) {
39
- SearchErrorType["EMBEDDING_GENERATION_FAILED"] = "EMBEDDING_GENERATION_FAILED";
40
- SearchErrorType["VECTOR_SEARCH_FAILED"] = "VECTOR_SEARCH_FAILED";
41
- SearchErrorType["TEXT_SEARCH_FAILED"] = "TEXT_SEARCH_FAILED";
42
- SearchErrorType["RESULT_COMBINATION_FAILED"] = "RESULT_COMBINATION_FAILED";
43
- SearchErrorType["DATABASE_CONNECTION_FAILED"] = "DATABASE_CONNECTION_FAILED";
44
- SearchErrorType["INVALID_QUERY"] = "INVALID_QUERY";
45
- SearchErrorType["SERVICE_UNAVAILABLE"] = "SERVICE_UNAVAILABLE";
46
- })(SearchErrorType || (SearchErrorType = {}));
47
- export class SearchError extends Error {
48
- type;
49
- originalError;
50
- context;
51
- constructor(type, message, originalError, context) {
52
- super(message);
53
- this.type = type;
54
- this.originalError = originalError;
55
- this.context = context;
56
- this.name = 'SearchError';
57
- }
58
- }
59
- // 단일 책임 원칙을 준수하여 각 기능을 독립적인 클래스로 분리하여 유지보수성을 향상시키기 위해
60
- export class SearchResultCombiner {
61
- combine(textResults, vectorResults, textWeight, vectorWeight) {
62
- const resultMap = new Map();
63
- // 텍스트 검색 결과를 먼저 추가하여 기본 점수를 설정합니다.
64
- textResults.forEach(result => {
65
- const textScore = typeof result.score === 'number' ? result.score : 0;
66
- resultMap.set(result.id, {
67
- id: result.id,
68
- content: result.content,
69
- type: result.type,
70
- importance: result.importance,
71
- created_at: result.created_at,
72
- last_accessed: result.last_accessed,
73
- pinned: result.pinned,
74
- tags: result.tags,
75
- textScore: textScore,
76
- vectorScore: 0,
77
- finalScore: textScore * textWeight,
78
- recall_reason: result.recall_reason || '텍스트 검색 결과',
79
- });
80
- });
81
- // 벡터 검색 결과를 추가하거나 기존 텍스트 결과와 결합하여 하이브리드 점수를 계산합니다.
82
- vectorResults.forEach(result => {
83
- const existing = resultMap.get(result.id);
84
- if (existing) {
85
- // 텍스트와 벡터 검색 모두에서 발견된 결과를 업데이트하여 종합 점수를 계산합니다.
86
- existing.vectorScore = result.similarity;
87
- existing.finalScore = (existing.textScore * textWeight) + (result.similarity * vectorWeight);
88
- existing.recall_reason = this.generateHybridReason(existing.textScore, result.similarity);
89
- }
90
- else {
91
- // 벡터 검색에서만 발견된 결과를 추가하여 검색 포괄성을 확보합니다.
92
- resultMap.set(result.id, {
93
- id: result.id,
94
- content: result.content,
95
- type: result.type,
96
- importance: result.importance,
97
- created_at: result.created_at,
98
- last_accessed: result.last_accessed,
99
- pinned: result.pinned,
100
- tags: result.tags,
101
- textScore: 0,
102
- vectorScore: result.similarity,
103
- finalScore: result.similarity * vectorWeight,
104
- recall_reason: `벡터 유사도: ${result.similarity.toFixed(3)}`,
105
- });
106
- }
107
- });
108
- return Array.from(resultMap.values());
109
- }
110
- generateHybridReason(textScore, vectorScore) {
111
- const reasons = [];
112
- if (textScore > 0.7) {
113
- reasons.push('텍스트 매칭 우수');
114
- }
115
- if (vectorScore > 0.8) {
116
- reasons.push('의미적 유사도 높음');
117
- }
118
- if (textScore > 0.5 && vectorScore > 0.5) {
119
- reasons.push('텍스트+벡터 결합');
120
- }
121
- return reasons.length > 0 ? reasons.join(', ') : '하이브리드 검색';
122
- }
123
- }
124
- export class AdaptiveWeightCalculator {
125
- adaptiveWeights = new Map();
126
- calculateWeights(query, vectorWeight, textWeight) {
127
- const queryKey = this.normalizeQuery(query);
128
- // 이전에 계산된 가중치를 재사용하여 일관성 있는 검색 결과를 제공하고 성능을 최적화합니다.
129
- if (this.adaptiveWeights.has(queryKey)) {
130
- return this.adaptiveWeights.get(queryKey);
131
- }
132
- // 쿼리의 특성을 분석하여 최적의 가중치를 결정합니다.
133
- const queryAnalysis = this.analyzeQuery(query);
134
- // 쿼리 특성에 따라 벡터 검색과 텍스트 검색의 가중치를 동적으로 조정하여 검색 정확도를 향상시키기 위해
135
- let adjustedVectorWeight = vectorWeight;
136
- let adjustedTextWeight = textWeight;
137
- if (queryAnalysis.isTechnicalTerm) {
138
- // 기술 용어는 의미적 유사성이 중요하므로 벡터 검색에 더 높은 가중치를 부여합니다.
139
- adjustedVectorWeight = Math.min(0.8, vectorWeight + 0.2);
140
- adjustedTextWeight = Math.max(0.2, textWeight - 0.2);
141
- }
142
- else if (queryAnalysis.isPhrase) {
143
- // 구문 검색은 정확한 단어 매칭이 중요하므로 텍스트 검색에 더 높은 가중치를 부여합니다.
144
- adjustedVectorWeight = Math.max(0.2, vectorWeight - 0.2);
145
- adjustedTextWeight = Math.min(0.8, textWeight + 0.2);
146
- }
147
- else if (queryAnalysis.isShortQuery) {
148
- // 짧은 쿼리는 키워드 매칭이 제한적이므로 의미적 유사성을 활용하는 벡터 검색에 더 의존합니다.
149
- adjustedVectorWeight = Math.min(0.7, vectorWeight + 0.1);
150
- adjustedTextWeight = Math.max(0.3, textWeight - 0.1);
151
- }
152
- // 가중치의 합이 1이 되도록 정규화하여 일관된 점수 범위를 유지합니다.
153
- const totalWeight = adjustedVectorWeight + adjustedTextWeight;
154
- const normalizedVectorWeight = adjustedVectorWeight / totalWeight;
155
- const normalizedTextWeight = adjustedTextWeight / totalWeight;
156
- const weights = { vectorWeight: normalizedVectorWeight, textWeight: normalizedTextWeight };
157
- this.adaptiveWeights.set(queryKey, weights);
158
- return weights;
159
- }
160
- analyzeQuery(query) {
161
- const normalizedQuery = query.toLowerCase().trim();
162
- return {
163
- isTechnicalTerm: /^(api|sql|http|json|xml|css|html|js|ts|react|vue|angular|node|python|java|c\+\+|go|rust|docker|kubernetes|aws|azure|gcp)$/i.test(normalizedQuery),
164
- isPhrase: normalizedQuery.includes(' ') && normalizedQuery.split(' ').length >= 3,
165
- isShortQuery: normalizedQuery.length <= 10
166
- };
167
- }
168
- normalizeQuery(query) {
169
- return query.toLowerCase().trim().replace(/\s+/g, ' ');
170
- }
171
- }
172
- export class SearchLogger {
173
- logSearchStart(searchId, query) {
174
- // console.log(`🔍 [${searchId}] 하이브리드 검색 시작`, {
175
- // query: query.query,
176
- // limit: query.limit,
177
- // vectorWeight: query.vectorWeight,
178
- // textWeight: query.textWeight,
179
- // filters: query.filters,
180
- // experiment_id: query.experiment_id
181
- // });
182
- }
183
- logSearchStep(searchId, step, data) {
184
- console.log(`🔍 [${searchId}] ${step}`, data);
185
- }
186
- logSearchComplete(searchId, result, queryTime) {
187
- // console.log(`✅ [${searchId}] 하이브리드 검색 완료`, {
188
- // resultCount: result.items.length,
189
- // totalCount: result.total_count,
190
- // queryTime: `${queryTime.toFixed(2)}ms`,
191
- // searchType: 'hybrid',
192
- // experiment_id: (result as any).experiment_id
193
- // });
194
- }
195
- logSearchError(searchId, error, query) {
196
- // console.error(`❌ [${searchId}] 하이브리드 검색 에러`, {
197
- // error: error instanceof Error ? error.message : String(error),
198
- // stack: error instanceof Error ? error.stack : undefined,
199
- // query: query.query,
200
- // limit: query.limit,
201
- // experiment_id: query.experiment_id
202
- // });
203
- }
204
- /**
205
- * A/B 테스트를 통해 검색 알고리즘의 효과를 측정하고 개선합니다.
206
- * 실험 ID와 변이 파라미터를 로깅하여 데이터 기반 의사결정을 지원합니다.
207
- */
208
- logExperiment(searchId, experimentId, variant) {
209
- // console.log(`🧪 [${searchId}] 실험 로그`, {
210
- // experiment_id: experimentId,
211
- // variant,
212
- // timestamp: new Date().toISOString()
213
- // });
214
- }
215
- }
216
- export class HybridSearchEngine {
217
- textSearchEngine;
218
- embeddingService;
219
- vectorSearchEngine;
220
- resultCombiner;
221
- weightCalculator;
222
- logger;
223
- queryEmbeddingService;
224
- defaultVectorWeight = 0.6; // 의미적 유사성을 더 중요하게 평가하여 검색 정확도를 향상시키기 위해
225
- defaultTextWeight = 0.4; // 정확한 키워드 매칭도 일정 비율로 반영하여 검색 포괄성을 확보합니다.
226
- searchStats = new Map();
227
- ranking;
228
- relationGraph = null;
229
- constructor(textSearchEngine, embeddingService, vectorSearchEngine, resultCombiner, weightCalculator, logger, queryEmbeddingService = new UnifiedEmbeddingService(), relationGraph) {
230
- this.textSearchEngine = textSearchEngine;
231
- this.embeddingService = embeddingService;
232
- this.vectorSearchEngine = vectorSearchEngine;
233
- this.resultCombiner = resultCombiner;
234
- this.weightCalculator = weightCalculator;
235
- this.logger = logger;
236
- this.queryEmbeddingService = queryEmbeddingService;
237
- // 외부 설정 파일에서 가중치를 로드하여 런타임에 조정 가능하도록 합니다.
238
- const config = getRankingWeights();
239
- this.ranking = new SearchRanking({
240
- relevance: config.ranking_weights.alpha,
241
- recency: config.ranking_weights.beta,
242
- importance: config.ranking_weights.gamma,
243
- usage: config.ranking_weights.delta,
244
- relation_weight: config.ranking_weights.zeta,
245
- duplication_penalty: config.ranking_weights.epsilon
246
- });
247
- this.relationGraph = relationGraph || null;
248
- }
249
- /**
250
- * 관계 그래프를 주입하여 관계 기반 검색 기능을 활성화합니다.
251
- * 선택적으로 설정하여 관계 그래프가 없는 환경에서도 동작하도록 합니다.
252
- */
253
- setRelationGraph(relationGraph) {
254
- this.relationGraph = relationGraph;
255
- }
256
- /**
257
- * 텍스트 검색과 벡터 검색을 병렬로 실행하고 결과를 결합하여 최적의 검색 결과를 제공합니다.
258
- * 쿼리 특성에 따라 적응형 가중치를 적용하여 검색 정확도를 향상시키기 위해
259
- */
260
- async search(db, query) {
261
- const searchId = this.generateSearchId();
262
- const startTime = process.hrtime.bigint();
263
- try {
264
- this.logger.logSearchStart(searchId, query);
265
- // 쿼리 특성에 따라 최적의 가중치를 계산하여 검색 정확도를 향상시키기 위해
266
- const weights = this.calculateAdaptiveWeights(query);
267
- this.logger.logSearchStep(searchId, '적응형 가중치 계산 완료', weights);
268
- // A/B 테스트를 위한 실험 파라미터를 로깅하여 데이터 기반 개선을 지원합니다.
269
- if (query.experiment_id) {
270
- const config = getRankingWeights();
271
- const variant = {
272
- ranking_weights: {
273
- alpha: config.ranking_weights.alpha,
274
- beta: config.ranking_weights.beta,
275
- gamma: config.ranking_weights.gamma,
276
- delta: config.ranking_weights.delta,
277
- zeta: config.ranking_weights.zeta,
278
- epsilon: config.ranking_weights.epsilon
279
- },
280
- adaptive_weights: {
281
- vectorWeight: weights.vectorWeight,
282
- textWeight: weights.textWeight
283
- },
284
- relation_weights: {
285
- max_relations: config.relation_weights.max_relations
286
- }
287
- };
288
- if (this.logger.logExperiment) {
289
- this.logger.logExperiment(searchId, query.experiment_id, variant);
290
- }
291
- else {
292
- // logExperiment 메서드가 없는 경우 일반 로그로 대체하여 호환성을 유지합니다.
293
- this.logger.logSearchStep(searchId, '실험 파라미터', {
294
- experiment_id: query.experiment_id,
295
- variant
296
- });
297
- }
298
- }
299
- // FTS5 전문 검색을 실행하여 정확한 키워드 매칭 결과를 획득합니다.
300
- const textResults = await this.executeTextSearch(db, query, searchId);
301
- // 벡터 유사도 검색을 실행하여 의미적으로 관련된 결과를 획득합니다.
302
- const vectorResults = await this.executeVectorSearch(db, query, searchId);
303
- // 텍스트와 벡터 검색 결과를 결합하고 통합 점수와 관계 가중치를 조회하여 최종 정렬합니다.
304
- const finalResults = await this.combineAndSortResults(textResults, vectorResults, weights, query.limit || 10, db, query.includeRelations || false);
305
- // 검색 통계를 업데이트하여 향후 가중치 조정에 활용합니다.
306
- this.updateSearchStats(query.query, textResults.length, vectorResults.length);
307
- const queryTime = this.calculateQueryTime(startTime);
308
- // A/B 테스트 추적을 위해 검색 완료 로그에 실험 ID를 포함합니다.
309
- const logData = {
310
- items: finalResults,
311
- total_count: finalResults.length
312
- };
313
- if (query.experiment_id) {
314
- logData.experiment_id = query.experiment_id;
315
- }
316
- this.logger.logSearchComplete(searchId, logData, queryTime);
317
- return {
318
- items: finalResults,
319
- total_count: finalResults.length,
320
- query_time: queryTime
321
- };
322
- }
323
- catch (error) {
324
- this.logger.logSearchError(searchId, error, query);
325
- throw error;
326
- }
327
- }
328
- generateSearchId() {
329
- return `search_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
330
- }
331
- calculateAdaptiveWeights(query) {
332
- const vectorWeight = query.vectorWeight ?? this.defaultVectorWeight;
333
- const textWeight = query.textWeight ?? this.defaultTextWeight;
334
- const adaptiveWeights = this.weightCalculator.calculateWeights(query.query, vectorWeight, textWeight);
335
- return {
336
- vectorWeight: adaptiveWeights.vectorWeight,
337
- textWeight: adaptiveWeights.textWeight,
338
- originalVector: vectorWeight,
339
- originalText: textWeight
340
- };
341
- }
342
- async executeTextSearch(db, query, searchId) {
343
- try {
344
- const textSearchStart = process.hrtime.bigint();
345
- this.logger.logSearchStep(searchId, '텍스트 검색 시작', { query: query.query });
346
- const textSearchResult = await this.textSearchEngine.search(db, {
347
- query: query.query,
348
- filters: query.filters,
349
- limit: (query.limit || 10) * 2,
350
- });
351
- const textSearchTime = Number(process.hrtime.bigint() - textSearchStart) / 1_000_000;
352
- this.logger.logSearchStep(searchId, '텍스트 검색 완료', {
353
- resultCount: textSearchResult.items.length,
354
- searchTime: `${textSearchTime.toFixed(2)}ms`
355
- });
356
- return textSearchResult.items;
357
- }
358
- catch (error) {
359
- throw new SearchError(SearchErrorType.TEXT_SEARCH_FAILED, '텍스트 검색 실행 중 오류가 발생했습니다', error instanceof Error ? error : new Error(String(error)), { query: query.query, searchId });
360
- }
361
- }
362
- async executeVectorSearch(db, query, searchId) {
363
- const vectorSearchStart = process.hrtime.bigint();
364
- this.logger.logSearchStep(searchId, '벡터 검색 시작', {
365
- query: query.query,
366
- embeddingAvailable: this.embeddingService.isAvailable()
367
- });
368
- this.vectorSearchEngine.initialize(db);
369
- if (this.vectorSearchEngine.getIndexStatus().available) {
370
- return await this.executeVecSearch(db, query, searchId, vectorSearchStart);
371
- }
372
- else {
373
- return await this.executeFallbackSearch(db, query, searchId, vectorSearchStart);
374
- }
375
- }
376
- /**
377
- * 벡터 검색 실행 (다중 provider 지원)
378
- *
379
- * @param db - 데이터베이스 연결
380
- * @param query - 하이브리드 검색 쿼리
381
- * @param searchId - 검색 ID (로깅용)
382
- * @param startTime - 시작 시간 (성능 측정용)
383
- * @returns 벡터 검색 결과 배열
384
- */
385
- async executeVecSearch(db, query, searchId, startTime) {
386
- try {
387
- // 데이터베이스에 저장된 모든 임베딩 provider를 감지하여 사용 가능한 검색 방법을 파악합니다.
388
- const detectedProviders = await this.detectAllStoredEmbeddingProviders(db);
389
- // provider 필터링
390
- const providersToSearch = this.filterProvidersToSearch(detectedProviders, query.provider_filter, searchId);
391
- if (providersToSearch.length === 0) {
392
- return [];
393
- }
394
- // 여러 provider를 병렬로 검색하여 검색 속도를 향상시키고 포괄성을 확보합니다.
395
- const searchOptions = {
396
- limit: (query.limit || 10) * VECTOR_SEARCH_LIMIT_MULTIPLIER,
397
- threshold: VECTOR_SEARCH_THRESHOLD,
398
- types: query.filters?.type,
399
- includeContent: true
400
- };
401
- // 각 provider에 대해 독립적인 검색 작업을 생성하여 병렬 실행을 준비합니다.
402
- const searchPromises = providersToSearch.map(provider => this.createProviderSearchTask(provider, query.query, searchOptions, searchId));
403
- // 모든 provider 검색을 실행하고 타임아웃을 관리하여 안정적인 결과 수집을 보장합니다.
404
- const { allResults, providerStats, overallTimeoutOccurred } = await this.executeProviderSearchesWithTimeout(searchPromises, providersToSearch, searchId);
405
- // 여러 provider의 결과를 정규화하고 중복을 제거하여 일관된 결과를 제공합니다.
406
- const vectorResults = this.normalizeAndDeduplicateResults(allResults);
407
- const totalTime = Number(process.hrtime.bigint() - startTime) / 1_000_000;
408
- this.logger.logSearchStep(searchId, 'VEC 벡터 검색 완료', {
409
- resultCount: vectorResults.length,
410
- totalVectorTime: `${totalTime.toFixed(2)}ms`,
411
- providerStats,
412
- searchedProviders: providersToSearch.length,
413
- successfulProviders: providerStats.filter(s => s.success).length,
414
- overallTimeoutOccurred
415
- });
416
- return vectorResults;
417
- }
418
- catch (error) {
419
- this.logger.logSearchStep(searchId, 'VEC 벡터 검색 실패, fallback 사용', {
420
- error: error instanceof Error ? error.message : String(error)
421
- });
422
- return await this.executeFallbackSearch(db, query, searchId, startTime);
423
- }
424
- }
425
- /**
426
- * Provider 필터링
427
- *
428
- * @param detectedProviders - 감지된 모든 provider 목록
429
- * @param providerFilter - 필터링할 provider 목록 (선택적, 빈 배열이면 undefined로 처리되어 모든 provider 검색)
430
- * @param searchId - 검색 ID (로깅용)
431
- * @returns 필터링된 provider 목록
432
- */
433
- filterProvidersToSearch(detectedProviders, providerFilter, searchId) {
434
- let providersToSearch = detectedProviders.map(p => p.provider);
435
- // 사용자가 특정 provider만 검색하도록 요청한 경우에만 필터링합니다.
436
- // 빈 배열은 모든 provider를 검색하도록 처리하여 유연성을 제공합니다.
437
- if (providerFilter && providerFilter.length > 0) {
438
- providersToSearch = providersToSearch.filter(p => providerFilter.includes(p));
439
- }
440
- // 검색할 provider가 없는 경우를 로깅하여 문제를 진단할 수 있도록 합니다.
441
- if (providersToSearch.length === 0) {
442
- this.logger.logSearchStep(searchId, 'VEC 벡터 검색 - 검색할 provider 없음', {
443
- detectedProviders: detectedProviders.map(p => p.provider),
444
- providerFilter: providerFilter || []
445
- });
446
- }
447
- return providersToSearch;
448
- }
449
- /**
450
- * 단일 provider 검색 작업 생성 (타임아웃 포함)
451
- *
452
- * @param provider - 검색할 provider
453
- * @param query - 검색 쿼리 문자열
454
- * @param searchOptions - 검색 옵션
455
- * @param searchId - 검색 ID (로깅용)
456
- * @returns 검색 결과 Promise (타임아웃 포함)
457
- */
458
- createProviderSearchTask(provider, query, searchOptions, searchId) {
459
- const providerStartTime = process.hrtime.bigint();
460
- // 타임아웃 Promise 생성
461
- const timeoutPromise = new Promise((resolve) => {
462
- setTimeout(() => {
463
- const providerTime = Number(process.hrtime.bigint() - providerStartTime) / 1_000_000;
464
- resolve({
465
- provider,
466
- results: [],
467
- success: false,
468
- timeMs: providerTime,
469
- error: `Provider 검색 타임아웃 (${PROVIDER_SEARCH_TIMEOUT_MS}ms 초과)`
470
- });
471
- }, PROVIDER_SEARCH_TIMEOUT_MS);
472
- });
473
- // 실제 검색 작업 Promise
474
- const searchTask = (async () => {
475
- try {
476
- // 각 provider에 맞는 쿼리 임베딩 생성
477
- const queryVector = await this.generateQueryVector(query, searchId, provider);
478
- // 벡터 검색 실행
479
- const vecResults = await this.vectorSearchEngine.search(queryVector, searchOptions, provider);
480
- const providerTime = Number(process.hrtime.bigint() - providerStartTime) / 1_000_000;
481
- return {
482
- provider,
483
- results: vecResults.map(result => ({
484
- id: result.memory_id,
485
- content: result.content,
486
- type: result.type,
487
- importance: result.importance,
488
- created_at: result.created_at,
489
- pinned: false,
490
- score: result.similarity,
491
- similarity: result.similarity,
492
- provider // provider 정보 추가
493
- })),
494
- success: true,
495
- timeMs: providerTime,
496
- error: null
497
- };
498
- }
499
- catch (error) {
500
- const providerTime = Number(process.hrtime.bigint() - providerStartTime) / 1_000_000;
501
- const errorMessage = error instanceof Error ? error.message : String(error);
502
- this.logger.logSearchStep(searchId, `VEC 벡터 검색 실패 - ${provider}`, {
503
- provider,
504
- error: errorMessage,
505
- timeMs: providerTime
506
- });
507
- return {
508
- provider,
509
- results: [],
510
- success: false,
511
- timeMs: providerTime,
512
- error: errorMessage
513
- };
514
- }
515
- })();
516
- // Promise.race로 타임아웃과 검색 작업 중 먼저 완료되는 것 반환
517
- return Promise.race([searchTask, timeoutPromise]);
518
- }
519
- /**
520
- * 모든 provider 검색 실행 및 결과 수집 (전체 타임아웃 포함)
521
- *
522
- * @param searchPromises - 각 provider별 검색 Promise 배열
523
- * @param providersToSearch - 검색할 provider 목록
524
- * @param searchId - 검색 ID (로깅용)
525
- * @returns 검색 결과 및 통계
526
- */
527
- async executeProviderSearchesWithTimeout(searchPromises, providersToSearch, searchId) {
528
- // 전체 검색 프로세스의 최대 타임아웃을 설정하여 무한 대기를 방지합니다.
529
- // 모든 provider가 타임아웃되어도 부분 결과라도 반환하여 사용자 경험을 보장합니다.
530
- // 개별 provider 타임아웃보다 충분히 길게 설정하여 병렬 실행의 이점을 활용합니다.
531
- let overallTimeoutOccurred = false;
532
- let overallTimeoutHandle = null;
533
- const overallTimeoutPromise = new Promise((resolve) => {
534
- overallTimeoutHandle = setTimeout(() => {
535
- overallTimeoutOccurred = true;
536
- this.logger.logSearchStep(searchId, 'VEC 벡터 검색 전체 타임아웃', {
537
- timeoutMs: OVERALL_SEARCH_TIMEOUT_MS,
538
- message: '전체 검색 프로세스 타임아웃 발생 - 현재까지 완료된 결과만 반환'
539
- });
540
- resolve();
541
- }, OVERALL_SEARCH_TIMEOUT_MS);
542
- });
543
- // 타임아웃 타이머를 정리하여 메모리 누수를 방지합니다.
544
- const cleanupTimeout = () => {
545
- if (overallTimeoutHandle !== null) {
546
- clearTimeout(overallTimeoutHandle);
547
- overallTimeoutHandle = null;
548
- }
549
- };
550
- try {
551
- // Promise.allSettled()를 사용하여 일부 provider가 실패해도 나머지 검색이 계속 진행되도록 합니다.
552
- // 전체 타임아웃과 병렬 검색 중 먼저 완료되는 것을 사용하여 응답성을 보장합니다.
553
- const searchResults = await Promise.race([
554
- Promise.allSettled(searchPromises).then(results => {
555
- cleanupTimeout();
556
- return results;
557
- }),
558
- overallTimeoutPromise.then(() => {
559
- // 타임아웃 발생 시 현재까지 완료된 Promise만 수집하여 부분 결과라도 반환합니다.
560
- // Promise.allSettled는 이미 실행 중이므로 결과를 기다림
561
- return Promise.allSettled(searchPromises);
562
- })
563
- ]);
564
- // 성공한 검색 결과만 수집하여 신뢰할 수 있는 결과만 반환합니다.
565
- const allResults = [];
566
- const providerStats = [];
567
- searchResults.forEach((result, index) => {
568
- if (result.status === 'fulfilled') {
569
- const providerResult = result.value;
570
- providerStats.push({
571
- provider: providerResult.provider,
572
- resultCount: providerResult.results.length,
573
- success: providerResult.success,
574
- timeMs: providerResult.timeMs,
575
- error: providerResult.error || undefined
576
- });
577
- // 타임아웃 또는 실패 시 상세 로깅하여 문제 진단과 모니터링을 지원합니다.
578
- if (!providerResult.success) {
579
- const isTimeout = providerResult.error?.includes('타임아웃');
580
- this.logger.logSearchStep(searchId, `VEC 벡터 검색 실패 - ${providerResult.provider}`, {
581
- provider: providerResult.provider,
582
- error: providerResult.error,
583
- timeMs: providerResult.timeMs,
584
- isTimeout,
585
- resultCount: providerResult.results.length
586
- });
587
- }
588
- if (providerResult.success) {
589
- allResults.push(...providerResult.results);
590
- }
591
- }
592
- else {
593
- // Promise 자체가 실패한 예외적인 경우를 처리하여 시스템 안정성을 보장합니다.
594
- const provider = providersToSearch[index];
595
- if (!provider) {
596
- // provider가 없는 예외적인 경우를 스킵하여 오류를 방지합니다.
597
- return;
598
- }
599
- const errorMessage = result.reason instanceof Error ? result.reason.message : String(result.reason);
600
- providerStats.push({
601
- provider,
602
- resultCount: 0,
603
- success: false,
604
- timeMs: 0,
605
- error: errorMessage
606
- });
607
- this.logger.logSearchStep(searchId, `VEC 벡터 검색 Promise 실패 - ${provider}`, {
608
- provider,
609
- error: errorMessage,
610
- isTimeout: false
611
- });
612
- }
613
- });
614
- return { allResults, providerStats, overallTimeoutOccurred };
615
- }
616
- finally {
617
- // 예외 발생 시에도 타임아웃 타이머를 정리하여 메모리 누수를 방지합니다.
618
- cleanupTimeout();
619
- }
620
- }
621
- /**
622
- * 결과 정규화 및 중복 제거
623
- * Provider별로 Min-Max 정규화를 수행하고, 중복된 memory_id는 최고 점수만 유지
624
- *
625
- * @param allResults - 모든 provider의 검색 결과
626
- * @returns 정규화 및 중복 제거된 결과 배열
627
- */
628
- normalizeAndDeduplicateResults(allResults) {
629
- const resultsByProvider = this.groupResultsByProvider(allResults);
630
- const normalizedResults = this.normalizeResultsByProvider(resultsByProvider);
631
- const deduplicatedResults = this.deduplicateResults(normalizedResults);
632
- return this.rankResults(deduplicatedResults);
633
- }
634
- /**
635
- * Provider별로 결과 그룹화
636
- */
637
- groupResultsByProvider(allResults) {
638
- const resultsByProvider = new Map();
639
- allResults.forEach(result => {
640
- const provider = result.provider;
641
- if (!resultsByProvider.has(provider)) {
642
- resultsByProvider.set(provider, []);
643
- }
644
- const providerResults = resultsByProvider.get(provider);
645
- if (providerResults) {
646
- providerResults.push(result);
647
- }
648
- });
649
- return resultsByProvider;
650
- }
651
- /**
652
- * Provider별로 Min-Max 정규화 수행
653
- */
654
- normalizeResultsByProvider(resultsByProvider) {
655
- const normalizedResults = [];
656
- resultsByProvider.forEach((results) => {
657
- if (results.length === 0) {
658
- return;
659
- }
660
- const scores = results.map(r => r.similarity);
661
- const minScore = Math.min(...scores);
662
- const maxScore = Math.max(...scores);
663
- // 모든 점수가 동일한 경우 원본 점수 유지, 그 외에는 Min-Max 정규화
664
- if (maxScore === minScore) {
665
- results.forEach(result => {
666
- normalizedResults.push({
667
- ...result,
668
- normalizedScore: result.similarity
669
- });
670
- });
671
- }
672
- else {
673
- results.forEach(result => {
674
- const normalizedScore = (result.similarity - minScore) / (maxScore - minScore);
675
- normalizedResults.push({
676
- ...result,
677
- normalizedScore
678
- });
679
- });
680
- }
681
- });
682
- return normalizedResults;
683
- }
684
- /**
685
- * 중복 제거 (memory_id 기준, 정규화된 점수 중 최고 점수만 유지)
686
- */
687
- deduplicateResults(normalizedResults) {
688
- const resultMap = new Map();
689
- normalizedResults.forEach(result => {
690
- const existing = resultMap.get(result.id);
691
- if (!existing || result.normalizedScore > existing.normalizedScore) {
692
- resultMap.set(result.id, result);
693
- }
694
- });
695
- return Array.from(resultMap.values());
696
- }
697
- /**
698
- * 정규화된 점수로 재랭킹
699
- */
700
- rankResults(deduplicatedResults) {
701
- return deduplicatedResults
702
- .map(({ provider, normalizedScore, ...result }) => ({
703
- ...result,
704
- similarity: normalizedScore
705
- }))
706
- .sort((a, b) => b.similarity - a.similarity);
707
- }
708
- /**
709
- * Fallback 벡터 검색 실행
710
- * 벡터 인덱스가 사용 불가능한 경우 임베딩 서비스를 직접 사용하여 검색
711
- *
712
- * @param db - 데이터베이스 연결
713
- * @param query - 하이브리드 검색 쿼리
714
- * @param searchId - 검색 ID (로깅용)
715
- * @param startTime - 시작 시간 (성능 측정용, 현재는 사용하지 않음)
716
- * @returns 벡터 검색 결과 배열
717
- */
718
- async executeFallbackSearch(db, query, searchId, startTime) {
719
- if (!this.embeddingService.isAvailable()) {
720
- this.logger.logSearchStep(searchId, '임베딩 서비스 사용 불가', {});
721
- return [];
722
- }
723
- const fallbackStart = process.hrtime.bigint();
724
- const vectorResults = await this.embeddingService.searchBySimilarity(db, query.query, {
725
- type: query.filters?.type,
726
- limit: (query.limit || 10) * VECTOR_SEARCH_LIMIT_MULTIPLIER,
727
- threshold: VECTOR_SEARCH_THRESHOLD,
728
- });
729
- const fallbackTime = Number(process.hrtime.bigint() - fallbackStart) / 1_000_000;
730
- this.logger.logSearchStep(searchId, 'Fallback 벡터 검색 완료', {
731
- resultCount: vectorResults.length,
732
- fallbackTime: `${fallbackTime.toFixed(2)}ms`
733
- });
734
- return vectorResults;
735
- }
736
- /**
737
- * Provider 목록 캐시 (메모리 캐시)
738
- * Provider 목록은 자주 변경되지 않으므로 캐싱하여 성능 개선
739
- */
740
- providerCache = null;
741
- /**
742
- * Provider 캐시 TTL (밀리초)
743
- * 5분간 캐시 유지
744
- */
745
- static PROVIDER_CACHE_TTL_MS = 5 * 60 * 1000;
746
- /**
747
- * 데이터베이스에 저장된 모든 임베딩 provider를 감지하여 사용 가능한 검색 방법을 파악합니다.
748
- * 모든 provider 목록을 반환하고 count 내림차순으로 정렬하여 주요 provider를 우선 확인합니다.
749
- * 캐싱을 사용하여 반복적인 데이터베이스 조회를 줄이고 성능을 개선합니다.
750
- */
751
- async detectAllStoredEmbeddingProviders(db) {
752
- // 캐시된 provider 정보를 확인하여 불필요한 데이터베이스 조회를 방지합니다.
753
- const now = Date.now();
754
- if (this.providerCache && (now - this.providerCache.timestamp) < HybridSearchEngine.PROVIDER_CACHE_TTL_MS) {
755
- return this.providerCache.stats;
756
- }
757
- try {
758
- const providerStatsList = db.prepare(`
759
- SELECT
760
- LOWER(embedding_provider) as provider,
761
- COUNT(*) as count,
762
- AVG(dimensions) as avg_dimensions
763
- FROM memory_embedding
764
- WHERE embedding_provider IS NOT NULL
765
- AND embedding_provider != ''
766
- AND dimensions IS NOT NULL
767
- GROUP BY LOWER(embedding_provider)
768
- ORDER BY count DESC
769
- `).all();
770
- if (providerStatsList && providerStatsList.length > 0) {
771
- const normalizedStats = providerStatsList
772
- .filter(stat => {
773
- // 알려진 EmbeddingProvider인지 확인하여 잘못된 데이터를 필터링합니다.
774
- const validProviders = ['tfidf', 'lightweight', 'minilm', 'openai', 'gemini'];
775
- return validProviders.includes(stat.provider);
776
- })
777
- .map(stat => ({
778
- provider: stat.provider,
779
- count: stat.count,
780
- avg_dimensions: Math.round(stat.avg_dimensions || 0)
781
- }));
782
- // 새로 조회한 provider 정보를 캐시에 저장하여 향후 조회 성능을 향상시키기 위해
783
- this.providerCache = {
784
- stats: normalizedStats,
785
- timestamp: now
786
- };
787
- this.logger.logSearchStep('', '저장된 임베딩 provider 감지', {
788
- providers: normalizedStats.map(s => s.provider),
789
- total_providers: normalizedStats.length
790
- });
791
- return normalizedStats;
792
- }
793
- }
794
- catch (error) {
795
- console.warn('⚠️ 저장된 임베딩 provider 감지 실패:', error);
796
- }
797
- // provider가 없는 경우 빈 배열을 반환하여 안정적인 동작을 보장합니다.
798
- const emptyStats = [];
799
- this.providerCache = {
800
- stats: emptyStats,
801
- timestamp: now
802
- };
803
- return emptyStats;
804
- }
805
- /**
806
- * 쿼리 임베딩 벡터 생성
807
- * preferredProvider가 지정된 경우 해당 provider로만 임베딩 생성
808
- * 각 provider는 서로 다른 차원의 임베딩을 사용할 수 있으므로 fallback을 사용하지 않음
809
- *
810
- * @param query - 검색 쿼리 문자열
811
- * @param searchId - 검색 ID (로깅용)
812
- * @param preferredProvider - 선호하는 임베딩 provider (필수, 각 provider별로 다른 차원의 임베딩 필요)
813
- * @returns 임베딩 벡터 배열
814
- * @throws SearchError - 임베딩 생성 실패 시
815
- */
816
- async generateQueryVector(query, searchId, preferredProvider) {
817
- try {
818
- const embeddingStart = process.hrtime.bigint();
819
- // 각 provider는 서로 다른 차원의 임베딩을 사용하므로 차원 불일치를 방지합니다.
820
- // preferredProvider로만 임베딩을 생성하고 fallback을 사용하지 않아 일관성을 보장합니다.
821
- const embeddingResult = await this.queryEmbeddingService.generateEmbedding(query, preferredProvider);
822
- if (!embeddingResult) {
823
- throw new SearchError(SearchErrorType.EMBEDDING_GENERATION_FAILED, '임베딩 생성에 실패했습니다', undefined, { query, searchId, preferredProvider });
824
- }
825
- const embeddingTime = Number(process.hrtime.bigint() - embeddingStart) / 1_000_000;
826
- this.logger.logSearchStep(searchId, '임베딩 생성 완료', {
827
- embeddingTime: `${embeddingTime.toFixed(2)}ms`,
828
- vectorLength: embeddingResult.embedding.length,
829
- provider: embeddingResult.provider || preferredProvider
830
- });
831
- return embeddingResult.embedding;
832
- }
833
- catch (error) {
834
- if (error instanceof SearchError) {
835
- throw error;
836
- }
837
- throw new SearchError(SearchErrorType.EMBEDDING_GENERATION_FAILED, `임베딩 생성 중 오류가 발생했습니다 (provider: ${preferredProvider})`, error instanceof Error ? error : new Error(String(error)), { query, searchId, preferredProvider });
838
- }
839
- }
840
- async combineAndSortResults(textResults, vectorResults, weights, limit, db, includeRelations = false) {
841
- try {
842
- const combinedResults = this.resultCombiner.combine(textResults, vectorResults, weights.textWeight, weights.vectorWeight);
843
- // 관계 그래프와 통합 점수를 활용하여 더 정교한 관련성 평가를 수행합니다.
844
- if (db) {
845
- const memoryIds = combinedResults.map(r => r.id);
846
- if (memoryIds.length > 0) {
847
- // 관계 그래프를 기반으로 관계 가중치와 관계 정보를 계산하여 관련성 점수에 반영합니다.
848
- const relationData = await this.fetchRelationWeights(db, memoryIds);
849
- const relationWeights = relationData.weights;
850
- const relationInfo = relationData.relations;
851
- // 통합 점수 기능이 활성화된 경우 추가적인 관련성 지표를 조회합니다.
852
- let consolidationScores = new Map();
853
- if (mementoConfig.consolidationScoreEnabled) {
854
- consolidationScores = this.fetchConsolidationScores(db, memoryIds);
855
- }
856
- // 관계 가중치와 통합 점수를 반영하여 각 결과의 최종 점수를 재계산합니다.
857
- combinedResults.forEach(result => {
858
- const relationWeight = relationWeights.get(result.id);
859
- // relationGraph가 있고 실제 관계가 존재하는 경우에만 관계 가중치를 설정하여 정확성을 보장합니다.
860
- if (relationWeight !== undefined && relationWeight > 0) {
861
- result.relation_weight = relationWeight;
862
- }
863
- // 사용자가 요청한 경우에만 관계 정보를 포함하여 상세한 분석을 지원합니다.
864
- if (includeRelations) {
865
- const relations = relationInfo.get(result.id);
866
- if (relations && relations.length > 0) {
867
- result.relations = relations.map(r => ({
868
- target_id: r.target_id,
869
- relation_type: r.relation_type,
870
- confidence: r.confidence
871
- }));
872
- }
873
- }
874
- const consolidationScore = consolidationScores.get(result.id);
875
- if (consolidationScore !== undefined) {
876
- // 통합 점수가 있는 경우 더 정교한 점수 계산 방식을 사용하여 검색 품질을 향상시키기 위해
877
- result.consolidation_score = consolidationScore;
878
- const vectorSimilarity = result.vectorScore;
879
- result.finalScore = this.ranking.calculateFinalScoreWithConsolidation(vectorSimilarity, consolidationScore, 'balanced');
880
- }
881
- else {
882
- // 관계 가중치를 포함한 finalScore 재계산
883
- // SearchFeatures 구성
884
- const features = {
885
- relevance: result.vectorScore || result.textScore || 0,
886
- recency: this.calculateRecency(result.created_at),
887
- importance: result.importance || 0.5,
888
- usage: this.calculateUsage(result.last_accessed),
889
- relation_weight: relationWeight || 0, // relationWeight가 undefined면 0 사용
890
- duplication_penalty: 0 // 중복 패널티는 이미 결과 결합 시 처리됨
891
- };
892
- result.finalScore = this.ranking.calculateFinalScore(features);
893
- }
894
- });
895
- }
896
- }
897
- return combinedResults
898
- .sort((a, b) => b.finalScore - a.finalScore)
899
- .slice(0, limit);
900
- }
901
- catch (error) {
902
- throw new SearchError(SearchErrorType.RESULT_COMBINATION_FAILED, '결과 결합 중 오류가 발생했습니다', error instanceof Error ? error : new Error(String(error)), { textResultsCount: textResults.length, vectorResultsCount: vectorResults.length, weights });
903
- }
904
- }
905
- /**
906
- * 데이터베이스에서 consolidation_score 조회
907
- */
908
- fetchConsolidationScores(db, memoryIds) {
909
- const scores = new Map();
910
- if (memoryIds.length === 0) {
911
- return scores;
912
- }
913
- try {
914
- const placeholders = memoryIds.map(() => '?').join(',');
915
- const sql = `SELECT id, consolidation_score FROM memory_item WHERE id IN (${placeholders})`;
916
- const results = db.prepare(sql).all(...memoryIds);
917
- results.forEach(row => {
918
- if (row.consolidation_score !== null && row.consolidation_score !== undefined) {
919
- scores.set(row.id, Number(row.consolidation_score));
920
- }
921
- });
922
- }
923
- catch (error) {
924
- // 에러 발생 시 빈 Map 반환 (기존 finalScore 유지)
925
- console.warn('⚠️ Consolidation Score 조회 실패:', error);
926
- }
927
- return scores;
928
- }
929
- /**
930
- * 관계 가중치 계산 및 조회
931
- * 관계 정보도 함께 반환 (선택적)
932
- */
933
- async fetchRelationWeights(db, memoryIds) {
934
- const weights = new Map();
935
- const relations = new Map();
936
- if (memoryIds.length === 0 || !this.relationGraph) {
937
- return { weights, relations };
938
- }
939
- try {
940
- const config = getRankingWeights();
941
- const maxRelations = config.relation_weights.max_relations;
942
- // 각 메모리에 대해 관계 조회 및 가중치 계산
943
- for (const memoryId of memoryIds) {
944
- const memoryRelations = await this.relationGraph.getRelations(memoryId, {
945
- direction: 'both',
946
- minConfidence: 0.5 // 최소 신뢰도 필터
947
- });
948
- if (memoryRelations.length > 0) {
949
- // 관계 가중치 계산
950
- const relationData = memoryRelations.map(r => ({
951
- confidence: r.confidence,
952
- relation_type: r.relation_type
953
- }));
954
- const relationWeight = this.ranking.calculateRelationWeight(relationData, maxRelations);
955
- weights.set(memoryId, relationWeight);
956
- // 관계 정보 저장 (간단한 형태로 변환)
957
- const simplifiedRelations = memoryRelations.map(r => ({
958
- target_id: r.source_id === memoryId ? r.target_id : r.source_id,
959
- relation_type: r.relation_type,
960
- confidence: r.confidence
961
- }));
962
- relations.set(memoryId, simplifiedRelations);
963
- }
964
- }
965
- }
966
- catch (error) {
967
- // 에러 발생 시 빈 Map 반환 (관계 가중치 없이 진행)
968
- console.warn('⚠️ 관계 가중치 계산 실패:', error);
969
- }
970
- return { weights, relations };
971
- }
972
- /**
973
- * 최근성 점수 계산 (간단한 구현)
974
- */
975
- calculateRecency(createdAt) {
976
- if (!createdAt)
977
- return 0.5;
978
- const created = typeof createdAt === 'string' ? new Date(createdAt) : createdAt;
979
- const ageDays = (Date.now() - created.getTime()) / (1000 * 60 * 60 * 24);
980
- // 30일 반감기
981
- return Math.exp(-Math.log(2) * ageDays / 30);
982
- }
983
- /**
984
- * 사용성 점수 계산 (간단한 구현)
985
- */
986
- calculateUsage(lastAccessed) {
987
- if (!lastAccessed)
988
- return 0.1;
989
- const accessed = typeof lastAccessed === 'string' ? new Date(lastAccessed) : lastAccessed;
990
- const daysSinceAccess = (Date.now() - accessed.getTime()) / (1000 * 60 * 60 * 24);
991
- return Math.exp(-daysSinceAccess / 30);
992
- }
993
- calculateQueryTime(startTime) {
994
- const endTime = process.hrtime.bigint();
995
- return Number(endTime - startTime) / 1_000_000;
996
- }
997
- /**
998
- * 검색 통계 업데이트
999
- */
1000
- updateSearchStats(query, textHits, vectorHits) {
1001
- const queryKey = this.normalizeQuery(query);
1002
- const stats = this.searchStats.get(queryKey) || { textHits: 0, vectorHits: 0, totalSearches: 0 };
1003
- stats.textHits += textHits;
1004
- stats.vectorHits += vectorHits;
1005
- stats.totalSearches += 1;
1006
- this.searchStats.set(queryKey, stats);
1007
- }
1008
- normalizeQuery(query) {
1009
- return query.toLowerCase().trim().replace(/\s+/g, ' ');
1010
- }
1011
- /**
1012
- * 검색 통계 정보
1013
- */
1014
- async getSearchStats(db) {
1015
- const embeddingStats = await this.embeddingService.getEmbeddingStats(db);
1016
- return {
1017
- textSearchAvailable: true,
1018
- vectorSearchAvailable: this.embeddingService.isAvailable(),
1019
- embeddingStats,
1020
- searchStats: this.searchStats,
1021
- };
1022
- }
1023
- /**
1024
- * 임베딩 서비스 사용 가능 여부 확인
1025
- */
1026
- isEmbeddingAvailable() {
1027
- return this.embeddingService.isAvailable();
1028
- }
1029
- }
1030
- // 팩토리 함수들
1031
- export function createHybridSearchEngine(textSearchEngine, embeddingService, vectorSearchEngine, resultCombiner, weightCalculator, logger) {
1032
- return new HybridSearchEngine(textSearchEngine ?? new SearchEngine(), embeddingService ?? new MemoryEmbeddingService(), vectorSearchEngine ?? getVectorSearchEngine(), resultCombiner ?? new SearchResultCombiner(), weightCalculator ?? new AdaptiveWeightCalculator(), logger ?? new SearchLogger());
1033
- }
1034
- // 기존 호환성을 위한 싱글톤 (deprecated)
1035
- let hybridSearchEngineInstance = null;
1036
- export function getHybridSearchEngine() {
1037
- if (!hybridSearchEngineInstance) {
1038
- hybridSearchEngineInstance = createHybridSearchEngine();
1039
- }
1040
- return hybridSearchEngineInstance;
1041
- }
1042
- //# sourceMappingURL=hybrid-search-engine.js.map