memento-mcp-server 1.13.1-a2 → 1.13.1-a4

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