memento-mcp-server 2.1.0 → 2.2.1

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 (372) hide show
  1. package/dist/node_modules/@memento/core/dist/database/schema.sql +10 -3
  2. package/dist/node_modules/@memento/core/dist/domains/anchor/tools/restore-anchors-tool.js.map +1 -1
  3. package/dist/node_modules/@memento/core/dist/domains/anchor/tools/search-local-tool.js.map +1 -1
  4. package/dist/node_modules/@memento/core/dist/domains/anchor/tools/set-anchor-tool.js.map +1 -1
  5. package/dist/node_modules/@memento/core/dist/domains/consolidation/services/cluster-judge.d.ts.map +1 -1
  6. package/dist/node_modules/@memento/core/dist/domains/consolidation/services/cluster-judge.js +3 -0
  7. package/dist/node_modules/@memento/core/dist/domains/consolidation/services/cluster-judge.js.map +1 -1
  8. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service/migration-execution.d.ts.map +1 -1
  9. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service/migration-execution.js +2 -1
  10. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service/migration-execution.js.map +1 -1
  11. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service/migration-rollback.d.ts.map +1 -1
  12. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service/migration-rollback.js +4 -2
  13. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service/migration-rollback.js.map +1 -1
  14. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service/types.d.ts +2 -0
  15. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service/types.d.ts.map +1 -1
  16. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service/types.js.map +1 -1
  17. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service.d.ts.map +1 -1
  18. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service.js +5 -3
  19. package/dist/node_modules/@memento/core/dist/domains/embedding/services/embedding-migration-service.js.map +1 -1
  20. package/dist/node_modules/@memento/core/dist/domains/forgetting/repositories/forgetting-event-repository.d.ts +1 -1
  21. package/dist/node_modules/@memento/core/dist/domains/forgetting/repositories/forgetting-event-repository.d.ts.map +1 -1
  22. package/dist/node_modules/@memento/core/dist/domains/forgetting/repositories/forgetting-event-repository.js +2 -2
  23. package/dist/node_modules/@memento/core/dist/domains/forgetting/repositories/forgetting-event-repository.js.map +1 -1
  24. package/dist/node_modules/@memento/core/dist/domains/forgetting/services/forgetting-policy-service.d.ts +0 -4
  25. package/dist/node_modules/@memento/core/dist/domains/forgetting/services/forgetting-policy-service.d.ts.map +1 -1
  26. package/dist/node_modules/@memento/core/dist/domains/forgetting/services/forgetting-policy-service.js +0 -42
  27. package/dist/node_modules/@memento/core/dist/domains/forgetting/services/forgetting-policy-service.js.map +1 -1
  28. package/dist/node_modules/@memento/core/dist/domains/memory/introspection/get-introspection-summary-tool.js +1 -1
  29. package/dist/node_modules/@memento/core/dist/domains/memory/introspection/get-introspection-summary-tool.js.map +1 -1
  30. package/dist/node_modules/@memento/core/dist/domains/memory/introspection/introspection-heal-tool.js.map +1 -1
  31. package/dist/node_modules/@memento/core/dist/domains/memory/procedural/procedural-llm-extractor.d.ts.map +1 -1
  32. package/dist/node_modules/@memento/core/dist/domains/memory/procedural/procedural-llm-extractor.js +2 -1
  33. package/dist/node_modules/@memento/core/dist/domains/memory/procedural/procedural-llm-extractor.js.map +1 -1
  34. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-anchor-rotation.d.ts +3 -3
  35. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-anchor-rotation.d.ts.map +1 -1
  36. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-anchor-rotation.js.map +1 -1
  37. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-direct.d.ts +6 -3
  38. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-direct.d.ts.map +1 -1
  39. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-direct.js +2 -2
  40. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-direct.js.map +1 -1
  41. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-envelope.d.ts +7 -3
  42. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-envelope.d.ts.map +1 -1
  43. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-envelope.js +5 -3
  44. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-envelope.js.map +1 -1
  45. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-neighbors-fetch.d.ts +3 -3
  46. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-neighbors-fetch.d.ts.map +1 -1
  47. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-neighbors-fetch.js +1 -1
  48. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-neighbors-fetch.js.map +1 -1
  49. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-post-search.d.ts +9 -3
  50. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-post-search.d.ts.map +1 -1
  51. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-post-search.js +8 -8
  52. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-post-search.js.map +1 -1
  53. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-search-execution.d.ts +4 -2
  54. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-search-execution.d.ts.map +1 -1
  55. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-search-execution.js +8 -2
  56. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-search-execution.js.map +1 -1
  57. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-types.d.ts +7 -0
  58. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool-types.d.ts.map +1 -1
  59. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool.d.ts.map +1 -1
  60. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool.js +65 -35
  61. package/dist/node_modules/@memento/core/dist/domains/memory/recall/recall-tool.js.map +1 -1
  62. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-augmentation.d.ts.map +1 -1
  63. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-augmentation.js +35 -19
  64. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-augmentation.js.map +1 -1
  65. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-core.js +4 -4
  66. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-core.js.map +1 -1
  67. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-db-helpers.d.ts.map +1 -1
  68. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-db-helpers.js +4 -1
  69. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-db-helpers.js.map +1 -1
  70. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-memory-item.js +4 -4
  71. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-memory-item.js.map +1 -1
  72. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-near-duplicate.js +2 -2
  73. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-near-duplicate.js.map +1 -1
  74. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-vault.js +4 -4
  75. package/dist/node_modules/@memento/core/dist/domains/memory/remember/remember-tool-vault.js.map +1 -1
  76. package/dist/node_modules/@memento/core/dist/domains/memory/services/memory-embedding-service.d.ts.map +1 -1
  77. package/dist/node_modules/@memento/core/dist/domains/memory/services/memory-embedding-service.js +20 -3
  78. package/dist/node_modules/@memento/core/dist/domains/memory/services/memory-embedding-service.js.map +1 -1
  79. package/dist/node_modules/@memento/core/dist/domains/memory/tools/feedback-tool.js +3 -3
  80. package/dist/node_modules/@memento/core/dist/domains/memory/tools/feedback-tool.js.map +1 -1
  81. package/dist/node_modules/@memento/core/dist/domains/memory/tools/forget-tool.d.ts.map +1 -1
  82. package/dist/node_modules/@memento/core/dist/domains/memory/tools/forget-tool.js +3 -2
  83. package/dist/node_modules/@memento/core/dist/domains/memory/tools/forget-tool.js.map +1 -1
  84. package/dist/node_modules/@memento/core/dist/domains/memory/tools/get-memory-neighbors-tool.js +1 -1
  85. package/dist/node_modules/@memento/core/dist/domains/memory/tools/get-memory-neighbors-tool.js.map +1 -1
  86. package/dist/node_modules/@memento/core/dist/domains/memory/tools/memory-injection-prompt.js +2 -2
  87. package/dist/node_modules/@memento/core/dist/domains/memory/tools/memory-injection-prompt.js.map +1 -1
  88. package/dist/node_modules/@memento/core/dist/domains/memory/tools/pin-tool.js.map +1 -1
  89. package/dist/node_modules/@memento/core/dist/domains/memory/tools/unpin-tool.js.map +1 -1
  90. package/dist/node_modules/@memento/core/dist/domains/monitoring/services/quality-assurance/category-quality-aggregator.d.ts +4 -2
  91. package/dist/node_modules/@memento/core/dist/domains/monitoring/services/quality-assurance/category-quality-aggregator.d.ts.map +1 -1
  92. package/dist/node_modules/@memento/core/dist/domains/monitoring/services/quality-assurance/category-quality-aggregator.js +21 -12
  93. package/dist/node_modules/@memento/core/dist/domains/monitoring/services/quality-assurance/category-quality-aggregator.js.map +1 -1
  94. package/dist/node_modules/@memento/core/dist/domains/monitoring/services/quality-assurance/quality-metrics-collector.d.ts +2 -1
  95. package/dist/node_modules/@memento/core/dist/domains/monitoring/services/quality-assurance/quality-metrics-collector.d.ts.map +1 -1
  96. package/dist/node_modules/@memento/core/dist/domains/monitoring/services/quality-assurance/quality-metrics-collector.js +4 -0
  97. package/dist/node_modules/@memento/core/dist/domains/monitoring/services/quality-assurance/quality-metrics-collector.js.map +1 -1
  98. package/dist/node_modules/@memento/core/dist/domains/monitoring/tools/get-meta-memory-stats-tool.js +1 -1
  99. package/dist/node_modules/@memento/core/dist/domains/monitoring/tools/get-meta-memory-stats-tool.js.map +1 -1
  100. package/dist/node_modules/@memento/core/dist/domains/personal-agent/config/personal-agent-llm-env.d.ts.map +1 -1
  101. package/dist/node_modules/@memento/core/dist/domains/personal-agent/config/personal-agent-llm-env.js +2 -2
  102. package/dist/node_modules/@memento/core/dist/domains/personal-agent/config/personal-agent-llm-env.js.map +1 -1
  103. package/dist/node_modules/@memento/core/dist/domains/relation/services/jev-relation-judge.d.ts +34 -0
  104. package/dist/node_modules/@memento/core/dist/domains/relation/services/jev-relation-judge.d.ts.map +1 -0
  105. package/dist/node_modules/@memento/core/dist/domains/relation/services/jev-relation-judge.js +130 -0
  106. package/dist/node_modules/@memento/core/dist/domains/relation/services/jev-relation-judge.js.map +1 -0
  107. package/dist/node_modules/@memento/core/dist/domains/relation/services/llm-based-relation-extractor.d.ts +0 -6
  108. package/dist/node_modules/@memento/core/dist/domains/relation/services/llm-based-relation-extractor.d.ts.map +1 -1
  109. package/dist/node_modules/@memento/core/dist/domains/relation/services/llm-based-relation-extractor.js +2 -25
  110. package/dist/node_modules/@memento/core/dist/domains/relation/services/llm-based-relation-extractor.js.map +1 -1
  111. package/dist/node_modules/@memento/core/dist/domains/relation/services/llm-relation-extractor/extract-relations-gemini.d.ts.map +1 -1
  112. package/dist/node_modules/@memento/core/dist/domains/relation/services/llm-relation-extractor/extract-relations-gemini.js +2 -0
  113. package/dist/node_modules/@memento/core/dist/domains/relation/services/llm-relation-extractor/extract-relations-gemini.js.map +1 -1
  114. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-candidate-pool.d.ts +9 -0
  115. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-candidate-pool.d.ts.map +1 -0
  116. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-candidate-pool.js +24 -0
  117. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-candidate-pool.js.map +1 -0
  118. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-extractor.d.ts +5 -0
  119. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-extractor.d.ts.map +1 -1
  120. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-extractor.js +54 -3
  121. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-extractor.js.map +1 -1
  122. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-graph-cycle-detector.d.ts +1 -0
  123. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-graph-cycle-detector.d.ts.map +1 -1
  124. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-graph-cycle-detector.js +12 -0
  125. package/dist/node_modules/@memento/core/dist/domains/relation/services/relation-graph-cycle-detector.js.map +1 -1
  126. package/dist/node_modules/@memento/core/dist/domains/relation/services/remember-relation-extraction.d.ts +27 -0
  127. package/dist/node_modules/@memento/core/dist/domains/relation/services/remember-relation-extraction.d.ts.map +1 -0
  128. package/dist/node_modules/@memento/core/dist/domains/relation/services/remember-relation-extraction.js +60 -0
  129. package/dist/node_modules/@memento/core/dist/domains/relation/services/remember-relation-extraction.js.map +1 -0
  130. package/dist/node_modules/@memento/core/dist/domains/relation/services/rule-based-relation-extractor.d.ts +5 -0
  131. package/dist/node_modules/@memento/core/dist/domains/relation/services/rule-based-relation-extractor.d.ts.map +1 -1
  132. package/dist/node_modules/@memento/core/dist/domains/relation/services/rule-based-relation-extractor.js +10 -4
  133. package/dist/node_modules/@memento/core/dist/domains/relation/services/rule-based-relation-extractor.js.map +1 -1
  134. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-engine.d.ts +3 -2
  135. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-engine.d.ts.map +1 -1
  136. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-engine.js +17 -7
  137. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-engine.js.map +1 -1
  138. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-provider-parallel.d.ts +4 -0
  139. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-provider-parallel.d.ts.map +1 -1
  140. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-provider-parallel.js +35 -5
  141. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-provider-parallel.js.map +1 -1
  142. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-types.d.ts +12 -0
  143. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-search-types.d.ts.map +1 -1
  144. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-vector-search-executor.d.ts +2 -0
  145. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-vector-search-executor.d.ts.map +1 -1
  146. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-vector-search-executor.js +3 -1
  147. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/hybrid-vector-search-executor.js.map +1 -1
  148. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/search-engine/search-engine-ranking.d.ts.map +1 -1
  149. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/search-engine/search-engine-ranking.js +24 -50
  150. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/search-engine/search-engine-ranking.js.map +1 -1
  151. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/search-ranking.d.ts +1 -2
  152. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/search-ranking.d.ts.map +1 -1
  153. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/search-ranking.js +3 -5
  154. package/dist/node_modules/@memento/core/dist/domains/search/algorithms/search-ranking.js.map +1 -1
  155. package/dist/node_modules/@memento/core/dist/domains/search/factories/hybrid-search.factory.d.ts +0 -2
  156. package/dist/node_modules/@memento/core/dist/domains/search/factories/hybrid-search.factory.d.ts.map +1 -1
  157. package/dist/node_modules/@memento/core/dist/domains/search/factories/hybrid-search.factory.js +1 -1
  158. package/dist/node_modules/@memento/core/dist/domains/search/factories/hybrid-search.factory.js.map +1 -1
  159. package/dist/node_modules/@memento/core/dist/domains/search/ports/relevance-gate-port.d.ts +7 -8
  160. package/dist/node_modules/@memento/core/dist/domains/search/ports/relevance-gate-port.d.ts.map +1 -1
  161. package/dist/node_modules/@memento/core/dist/domains/search/ports/relevance-gate-port.js +5 -6
  162. package/dist/node_modules/@memento/core/dist/domains/search/ports/relevance-gate-port.js.map +1 -1
  163. package/dist/node_modules/@memento/core/dist/domains/search/repositories/vector-search/vector-search-hybrid-query.d.ts.map +1 -1
  164. package/dist/node_modules/@memento/core/dist/domains/search/repositories/vector-search/vector-search-hybrid-query.js +5 -1
  165. package/dist/node_modules/@memento/core/dist/domains/search/repositories/vector-search/vector-search-hybrid-query.js.map +1 -1
  166. package/dist/node_modules/@memento/core/dist/domains/search/repositories/vector-search/vector-search-knn-query.d.ts.map +1 -1
  167. package/dist/node_modules/@memento/core/dist/domains/search/repositories/vector-search/vector-search-knn-query.js +5 -1
  168. package/dist/node_modules/@memento/core/dist/domains/search/repositories/vector-search/vector-search-knn-query.js.map +1 -1
  169. package/dist/node_modules/@memento/core/dist/domains/search/services/relevance-gate/create-relevance-gate.d.ts.map +1 -1
  170. package/dist/node_modules/@memento/core/dist/domains/search/services/relevance-gate/create-relevance-gate.js +3 -2
  171. package/dist/node_modules/@memento/core/dist/domains/search/services/relevance-gate/create-relevance-gate.js.map +1 -1
  172. package/dist/node_modules/@memento/core/dist/domains/search/services/relevance-gate/jev-relevance-gate.d.ts +8 -24
  173. package/dist/node_modules/@memento/core/dist/domains/search/services/relevance-gate/jev-relevance-gate.d.ts.map +1 -1
  174. package/dist/node_modules/@memento/core/dist/domains/search/services/relevance-gate/jev-relevance-gate.js +55 -117
  175. package/dist/node_modules/@memento/core/dist/domains/search/services/relevance-gate/jev-relevance-gate.js.map +1 -1
  176. package/dist/node_modules/@memento/core/dist/domains/telemetry/repositories/telemetry-repository.d.ts +6 -0
  177. package/dist/node_modules/@memento/core/dist/domains/telemetry/repositories/telemetry-repository.d.ts.map +1 -1
  178. package/dist/node_modules/@memento/core/dist/domains/telemetry/repositories/telemetry-repository.js.map +1 -1
  179. package/dist/node_modules/@memento/core/dist/domains/telemetry/repositories/telemetry-search-quality-query.d.ts.map +1 -1
  180. package/dist/node_modules/@memento/core/dist/domains/telemetry/repositories/telemetry-search-quality-query.js +24 -0
  181. package/dist/node_modules/@memento/core/dist/domains/telemetry/repositories/telemetry-search-quality-query.js.map +1 -1
  182. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/build-outcome-extra.d.ts +13 -0
  183. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/build-outcome-extra.d.ts.map +1 -0
  184. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/build-outcome-extra.js +28 -0
  185. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/build-outcome-extra.js.map +1 -0
  186. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/build-reranked-extra.d.ts +3 -0
  187. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/build-reranked-extra.d.ts.map +1 -0
  188. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/build-reranked-extra.js +10 -0
  189. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/build-reranked-extra.js.map +1 -0
  190. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/extra-keys.d.ts +10 -0
  191. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/extra-keys.d.ts.map +1 -0
  192. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/extra-keys.js +10 -0
  193. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/extra-keys.js.map +1 -0
  194. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/index.d.ts +3 -0
  195. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/index.d.ts.map +1 -0
  196. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/index.js +3 -0
  197. package/dist/node_modules/@memento/core/dist/domains/telemetry/search-quality/index.js.map +1 -0
  198. package/dist/node_modules/@memento/core/dist/domains/telemetry/tools/get-telemetry-summary-tool.d.ts.map +1 -1
  199. package/dist/node_modules/@memento/core/dist/domains/telemetry/tools/get-telemetry-summary-tool.js +5 -2
  200. package/dist/node_modules/@memento/core/dist/domains/telemetry/tools/get-telemetry-summary-tool.js.map +1 -1
  201. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migrate.d.ts.map +1 -1
  202. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migrate.js +8 -0
  203. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migrate.js.map +1 -1
  204. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migration/migrations/053-narrow-legacy-vec-allowlist.d.ts +13 -0
  205. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migration/migrations/053-narrow-legacy-vec-allowlist.d.ts.map +1 -0
  206. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migration/migrations/053-narrow-legacy-vec-allowlist.js +122 -0
  207. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migration/migrations/053-narrow-legacy-vec-allowlist.js.map +1 -0
  208. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migration/migrations/054-memory-embedding-content-hash.d.ts +13 -0
  209. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migration/migrations/054-memory-embedding-content-hash.d.ts.map +1 -0
  210. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migration/migrations/054-memory-embedding-content-hash.js +37 -0
  211. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/migration/migrations/054-memory-embedding-content-hash.js.map +1 -0
  212. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/vec-schema.d.ts +2 -6
  213. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/vec-schema.d.ts.map +1 -1
  214. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/vec-schema.js +18 -10
  215. package/dist/node_modules/@memento/core/dist/infrastructure/database/sqlite/vec-schema.js.map +1 -1
  216. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-create.d.ts +2 -1
  217. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-create.d.ts.map +1 -1
  218. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-create.js +6 -1
  219. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-create.js.map +1 -1
  220. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-incremental.d.ts.map +1 -1
  221. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-incremental.js +6 -2
  222. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-incremental.js.map +1 -1
  223. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-replace.d.ts.map +1 -1
  224. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-replace.js +3 -1
  225. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-replace.js.map +1 -1
  226. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-versioned.d.ts +2 -1
  227. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-versioned.d.ts.map +1 -1
  228. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-versioned.js +3 -2
  229. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service/reflexion-procedural-update-versioned.js.map +1 -1
  230. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service.d.ts +4 -1
  231. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service.d.ts.map +1 -1
  232. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service.js +17 -3
  233. package/dist/node_modules/@memento/core/dist/infrastructure/reflexion-procedural-memory-service.js.map +1 -1
  234. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-recurring-schedules.d.ts +2 -0
  235. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-recurring-schedules.d.ts.map +1 -1
  236. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-recurring-schedules.js +4 -0
  237. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-recurring-schedules.js.map +1 -1
  238. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-context.d.ts +1 -0
  239. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-context.d.ts.map +1 -1
  240. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-context.js +2 -1
  241. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-context.js.map +1 -1
  242. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-default-config.d.ts.map +1 -1
  243. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-default-config.js +1 -0
  244. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-default-config.js.map +1 -1
  245. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-control.d.ts.map +1 -1
  246. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-control.js +3 -2
  247. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-control.js.map +1 -1
  248. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-processor.d.ts +1 -0
  249. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-processor.d.ts.map +1 -1
  250. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-processor.js +2 -1
  251. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-processor.js.map +1 -1
  252. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-runners.d.ts +2 -1
  253. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-runners.d.ts.map +1 -1
  254. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-runners.js +6 -1
  255. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-job-runners.js.map +1 -1
  256. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-service-wiring.d.ts +1 -0
  257. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-service-wiring.d.ts.map +1 -1
  258. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-service-wiring.js.map +1 -1
  259. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-types.d.ts +2 -0
  260. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-types.d.ts.map +1 -1
  261. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler-types.js.map +1 -1
  262. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler.d.ts +1 -0
  263. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler.d.ts.map +1 -1
  264. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler.js +5 -1
  265. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/batch-scheduler/batch-scheduler.js.map +1 -1
  266. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/handlers/batch-scheduler-embedding-handlers.d.ts +4 -0
  267. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/handlers/batch-scheduler-embedding-handlers.d.ts.map +1 -0
  268. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/handlers/batch-scheduler-embedding-handlers.js +25 -0
  269. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/handlers/batch-scheduler-embedding-handlers.js.map +1 -0
  270. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/jobs/embedding-reconciliation-batch-job.d.ts +13 -0
  271. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/jobs/embedding-reconciliation-batch-job.d.ts.map +1 -0
  272. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/jobs/embedding-reconciliation-batch-job.js +86 -0
  273. package/dist/node_modules/@memento/core/dist/infrastructure/scheduler/jobs/embedding-reconciliation-batch-job.js.map +1 -0
  274. package/dist/node_modules/@memento/core/dist/shared/config/constants.d.ts +13 -0
  275. package/dist/node_modules/@memento/core/dist/shared/config/constants.d.ts.map +1 -1
  276. package/dist/node_modules/@memento/core/dist/shared/config/constants.js +13 -0
  277. package/dist/node_modules/@memento/core/dist/shared/config/constants.js.map +1 -1
  278. package/dist/node_modules/@memento/core/dist/shared/config/environment.d.ts.map +1 -1
  279. package/dist/node_modules/@memento/core/dist/shared/config/environment.js +3 -2
  280. package/dist/node_modules/@memento/core/dist/shared/config/environment.js.map +1 -1
  281. package/dist/node_modules/@memento/core/dist/shared/config/index.d.ts.map +1 -1
  282. package/dist/node_modules/@memento/core/dist/shared/config/index.js +8 -6
  283. package/dist/node_modules/@memento/core/dist/shared/config/index.js.map +1 -1
  284. package/dist/node_modules/@memento/core/dist/shared/config/llm-model-resolver.d.ts.map +1 -1
  285. package/dist/node_modules/@memento/core/dist/shared/config/llm-model-resolver.js +2 -1
  286. package/dist/node_modules/@memento/core/dist/shared/config/llm-model-resolver.js.map +1 -1
  287. package/dist/node_modules/@memento/core/dist/shared/config/llm-provider-override.d.ts +2 -0
  288. package/dist/node_modules/@memento/core/dist/shared/config/llm-provider-override.d.ts.map +1 -1
  289. package/dist/node_modules/@memento/core/dist/shared/config/llm-provider-override.js +5 -1
  290. package/dist/node_modules/@memento/core/dist/shared/config/llm-provider-override.js.map +1 -1
  291. package/dist/node_modules/@memento/core/dist/shared/config/ranking-weights-loader.d.ts +1 -0
  292. package/dist/node_modules/@memento/core/dist/shared/config/ranking-weights-loader.d.ts.map +1 -1
  293. package/dist/node_modules/@memento/core/dist/shared/config/ranking-weights-loader.js +1 -0
  294. package/dist/node_modules/@memento/core/dist/shared/config/ranking-weights-loader.js.map +1 -1
  295. package/dist/node_modules/@memento/core/dist/shared/config/relation-extraction-seat.d.ts +30 -0
  296. package/dist/node_modules/@memento/core/dist/shared/config/relation-extraction-seat.d.ts.map +1 -0
  297. package/dist/node_modules/@memento/core/dist/shared/config/relation-extraction-seat.js +37 -0
  298. package/dist/node_modules/@memento/core/dist/shared/config/relation-extraction-seat.js.map +1 -0
  299. package/dist/node_modules/@memento/core/dist/shared/config/vector-search.config.d.ts.map +1 -1
  300. package/dist/node_modules/@memento/core/dist/shared/config/vector-search.config.js +0 -1
  301. package/dist/node_modules/@memento/core/dist/shared/config/vector-search.config.js.map +1 -1
  302. package/dist/node_modules/@memento/core/dist/shared/constants/relation-constants.d.ts +6 -2
  303. package/dist/node_modules/@memento/core/dist/shared/constants/relation-constants.d.ts.map +1 -1
  304. package/dist/node_modules/@memento/core/dist/shared/constants/relation-constants.js +6 -2
  305. package/dist/node_modules/@memento/core/dist/shared/constants/relation-constants.js.map +1 -1
  306. package/dist/node_modules/@memento/core/dist/shared/services/typesafe/system-one-client.d.ts +40 -0
  307. package/dist/node_modules/@memento/core/dist/shared/services/typesafe/system-one-client.d.ts.map +1 -0
  308. package/dist/node_modules/@memento/core/dist/shared/services/typesafe/system-one-client.js +139 -0
  309. package/dist/node_modules/@memento/core/dist/shared/services/typesafe/system-one-client.js.map +1 -0
  310. package/dist/node_modules/@memento/core/dist/shared/types/benchmark.types.d.ts +26 -1
  311. package/dist/node_modules/@memento/core/dist/shared/types/benchmark.types.d.ts.map +1 -1
  312. package/dist/node_modules/@memento/core/dist/shared/types/benchmark.types.js +7 -0
  313. package/dist/node_modules/@memento/core/dist/shared/types/benchmark.types.js.map +1 -1
  314. package/dist/node_modules/@memento/core/dist/shared/types/memory.types.d.ts +6 -0
  315. package/dist/node_modules/@memento/core/dist/shared/types/memory.types.d.ts.map +1 -1
  316. package/dist/node_modules/@memento/core/dist/shared/types/migration.types.d.ts +1 -0
  317. package/dist/node_modules/@memento/core/dist/shared/types/migration.types.d.ts.map +1 -1
  318. package/dist/node_modules/@memento/core/dist/shared/types/relation-graph.d.ts +2 -5
  319. package/dist/node_modules/@memento/core/dist/shared/types/relation-graph.d.ts.map +1 -1
  320. package/dist/node_modules/@memento/core/dist/shared/types/relation.d.ts +6 -2
  321. package/dist/node_modules/@memento/core/dist/shared/types/relation.d.ts.map +1 -1
  322. package/dist/node_modules/@memento/core/dist/shared/types/relation.js.map +1 -1
  323. package/dist/node_modules/@memento/core/dist/shared/utils/database/schema-initialization.d.ts.map +1 -1
  324. package/dist/node_modules/@memento/core/dist/shared/utils/database/schema-initialization.js +3 -0
  325. package/dist/node_modules/@memento/core/dist/shared/utils/database/schema-initialization.js.map +1 -1
  326. package/dist/node_modules/@memento/core/dist/shared/utils/ensure-memory-embedding-content-hash.d.ts +3 -0
  327. package/dist/node_modules/@memento/core/dist/shared/utils/ensure-memory-embedding-content-hash.d.ts.map +1 -0
  328. package/dist/node_modules/@memento/core/dist/shared/utils/ensure-memory-embedding-content-hash.js +27 -0
  329. package/dist/node_modules/@memento/core/dist/shared/utils/ensure-memory-embedding-content-hash.js.map +1 -0
  330. package/dist/node_modules/@memento/core/dist/shared/utils/memory-content-hash.d.ts +2 -0
  331. package/dist/node_modules/@memento/core/dist/shared/utils/memory-content-hash.d.ts.map +1 -0
  332. package/dist/node_modules/@memento/core/dist/shared/utils/memory-content-hash.js +5 -0
  333. package/dist/node_modules/@memento/core/dist/shared/utils/memory-content-hash.js.map +1 -0
  334. package/dist/node_modules/@memento/core/dist/shared/utils/memory-embedding-write.d.ts +2 -1
  335. package/dist/node_modules/@memento/core/dist/shared/utils/memory-embedding-write.d.ts.map +1 -1
  336. package/dist/node_modules/@memento/core/dist/shared/utils/memory-embedding-write.js +7 -4
  337. package/dist/node_modules/@memento/core/dist/shared/utils/memory-embedding-write.js.map +1 -1
  338. package/dist/node_modules/@memento/core/dist/shared/utils/memory-filter-sql.d.ts.map +1 -1
  339. package/dist/node_modules/@memento/core/dist/shared/utils/memory-filter-sql.js +34 -1
  340. package/dist/node_modules/@memento/core/dist/shared/utils/memory-filter-sql.js.map +1 -1
  341. package/dist/node_modules/@memento/core/dist/shared/utils/sql-security-validator.d.ts +0 -1
  342. package/dist/node_modules/@memento/core/dist/shared/utils/sql-security-validator.d.ts.map +1 -1
  343. package/dist/node_modules/@memento/core/dist/shared/utils/sql-security-validator.js +0 -2
  344. package/dist/node_modules/@memento/core/dist/shared/utils/sql-security-validator.js.map +1 -1
  345. package/dist/node_modules/@memento/core/dist/shared/utils/window-embedding-write.d.ts +2 -1
  346. package/dist/node_modules/@memento/core/dist/shared/utils/window-embedding-write.d.ts.map +1 -1
  347. package/dist/node_modules/@memento/core/dist/shared/utils/window-embedding-write.js +26 -19
  348. package/dist/node_modules/@memento/core/dist/shared/utils/window-embedding-write.js.map +1 -1
  349. package/dist/node_modules/@memento/core/dist/tools/base-tool.js +2 -2
  350. package/dist/node_modules/@memento/core/dist/tools/base-tool.js.map +1 -1
  351. package/dist/node_modules/@memento/core/dist/tools/index.js +1 -1
  352. package/dist/node_modules/@memento/core/dist/tools/index.js.map +1 -1
  353. package/dist/node_modules/@memento/core/dist/tools/migrate-embeddings-tool.d.ts.map +1 -1
  354. package/dist/node_modules/@memento/core/dist/tools/migrate-embeddings-tool.js +2 -0
  355. package/dist/node_modules/@memento/core/dist/tools/migrate-embeddings-tool.js.map +1 -1
  356. package/dist/node_modules/@memento/core/dist/tools/types.d.ts +0 -2
  357. package/dist/node_modules/@memento/core/dist/tools/types.d.ts.map +1 -1
  358. package/dist/node_modules/@memento/core/dist/tools/types.js.map +1 -1
  359. package/dist/node_modules/@memento/core/package.json +1 -1
  360. package/dist/server/routes/admin/admin-batch.routes.d.ts.map +1 -1
  361. package/dist/server/routes/admin/admin-batch.routes.js +240 -257
  362. package/dist/server/routes/admin/admin-batch.routes.js.map +1 -1
  363. package/dist/server/routes/api.routes.d.ts.map +1 -1
  364. package/dist/server/routes/api.routes.js +7 -4
  365. package/dist/server/routes/api.routes.js.map +1 -1
  366. package/dist/server/routes/mcp/message-processor.d.ts.map +1 -1
  367. package/dist/server/routes/mcp/message-processor.js +5 -29
  368. package/dist/server/routes/mcp/message-processor.js.map +1 -1
  369. package/dist/telemetry-cli.d.ts.map +1 -1
  370. package/dist/telemetry-cli.js +3 -0
  371. package/dist/telemetry-cli.js.map +1 -1
  372. package/package.json +2 -1
@@ -8,8 +8,13 @@
8
8
  * 3. 타입별 관계 유형 필터링 적용
9
9
  */
10
10
  import { isApplicableRelationType, MEMORY_TYPE_RELATION_MAP } from '../../../shared/types/relation.js';
11
+ import { mementoConfig } from '../../../shared/config/index.js';
12
+ import { resolveRelationExtractionSeat } from '../../../shared/config/relation-extraction-seat.js';
13
+ import { SystemOneClient } from '../../../shared/services/typesafe/system-one-client.js';
11
14
  import { RuleBasedRelationExtractor } from './rule-based-relation-extractor.js';
12
15
  import { LLMBasedRelationExtractor } from './llm-based-relation-extractor.js';
16
+ import { JevRelationJudge, RELATION_JEV_TIMEOUT_MS } from './jev-relation-judge.js';
17
+ import { UnifiedEmbeddingService } from '../../embedding/services/unified-embedding-service.js';
13
18
  import { logger } from '../../../shared/utils/logger.js';
14
19
  import { CacheKeyGenerator } from '../../../shared/utils/cache-key-generator.js';
15
20
  import { CONFIDENCE, LIMITS, CACHE } from '../../../shared/constants/relation-constants.js';
@@ -43,13 +48,17 @@ export class RelationExtractor {
43
48
  const method = options?.method ?? 'hybrid';
44
49
  const minConfidence = options?.minConfidence ?? CONFIDENCE.MIN_RULE_BASED;
45
50
  const immediate = options?.immediate ?? false;
51
+ const jevSeat = resolveRelationExtractionSeat({
52
+ llmProvider: mementoConfig.llmProvider,
53
+ relationExtractionOverride: mementoConfig.relationExtractionOverride,
54
+ }).kind === 'jev';
46
55
  // 타입별 관계 유형 필터링
47
56
  const applicableTypes = this.getApplicableRelationTypes(newMemory.type, options?.relationTypes);
48
57
  if (applicableTypes.length === 0) {
49
58
  return [];
50
59
  }
51
- // 캐시 키 생성 (즉시 처리인 경우에만 캐싱)
52
- if (immediate) {
60
+ // 캐시 키는 엔진을 포함하지 않는다. jev 결과는 넣지 않는다.
61
+ if (immediate && !jevSeat) {
53
62
  const cacheKey = this.generateCacheKey(newMemory.id, existingMemories.map(m => m.id), options);
54
63
  const cached = this.cache.get(cacheKey);
55
64
  if (cached) {
@@ -69,6 +78,10 @@ export class RelationExtractor {
69
78
  return await this.ruleExtractor.extractRelations(newMemory, existingMemories, extractOptions);
70
79
  }
71
80
  if (method === 'llm') {
81
+ const jev = await this.jevArm(newMemory, existingMemories);
82
+ if (jev.seated) {
83
+ return jev.ok ? jev.candidates : [];
84
+ }
72
85
  // LLM만 사용하는 경우, LLM이 사용 가능한지 확인 (초기화 완료까지 대기)
73
86
  if (!(await this.llmExtractor.isAvailableAsync())) {
74
87
  throw new Error('LLM 서비스가 사용 불가능합니다. 규칙 기반 추출을 사용하거나 API 키를 설정해주세요.');
@@ -94,8 +107,20 @@ export class RelationExtractor {
94
107
  }
95
108
  return filtered;
96
109
  }
97
- // 규칙 기반 결과가 없거나 신뢰도가 낮으면 LLM fallback
110
+ // 규칙 기반 결과가 없거나 신뢰도가 낮으면 모델 폴백
98
111
  if (!hasAnyResults || !hasHighConfidenceResults) {
112
+ const jev = await this.jevArm(newMemory, existingMemories);
113
+ if (jev.seated) {
114
+ if (jev.ok === false) {
115
+ logger.info('Jev 관계 추출 실패, 규칙 기반 결과 반환', {
116
+ memoryId: newMemory.id,
117
+ reason: jev.reason,
118
+ });
119
+ return ruleCandidates;
120
+ }
121
+ return this.mergeCandidates(ruleCandidates, jev.candidates)
122
+ .filter(candidate => candidate.confidence >= minConfidence);
123
+ }
99
124
  // LLM이 사용 가능한지 확인 (진행 중인 초기화 완료까지 대기)
100
125
  if (!(await this.llmExtractor.isAvailableAsync())) {
101
126
  // 사유는 중립값이다. 초기화가 끝났는데도 프로바이더가 없다는 것만 알 수 있고,
@@ -138,6 +163,32 @@ export class RelationExtractor {
138
163
  }
139
164
  return ruleCandidates;
140
165
  }
166
+ /**
167
+ * Model arms only. A jev seat never calls chat availability or determineLlmProvider.
168
+ * `seated: false` means the caller should keep the chat path.
169
+ */
170
+ async jevArm(source, existing) {
171
+ const seat = resolveRelationExtractionSeat({
172
+ llmProvider: mementoConfig.llmProvider,
173
+ relationExtractionOverride: mementoConfig.relationExtractionOverride,
174
+ });
175
+ if (seat.kind !== 'jev') {
176
+ return { seated: false };
177
+ }
178
+ const apiKey = mementoConfig.typesafeApiKey?.trim();
179
+ if (!apiKey) {
180
+ return { seated: true, ok: false, reason: 'unavailable' };
181
+ }
182
+ const judged = await new JevRelationJudge(new SystemOneClient({
183
+ apiKey,
184
+ model: mementoConfig.typesafeModel,
185
+ timeoutMs: RELATION_JEV_TIMEOUT_MS,
186
+ }), new UnifiedEmbeddingService()).judge(source, existing);
187
+ if (judged.ok === false) {
188
+ return { seated: true, ok: false, reason: judged.reason };
189
+ }
190
+ return { seated: true, ok: true, candidates: [...judged.candidates] };
191
+ }
141
192
  /**
142
193
  * 기억 타입에 적용 가능한 관계 유형을 반환합니다.
143
194
  *
@@ -1 +1 @@
1
- {"version":3,"file":"relation-extractor.js","sourceRoot":"","sources":["../../../../src/domains/relation/services/relation-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-extractor.js","sourceRoot":"","sources":["../../../../src/domains/relation/services/relation-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAEvG,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAEhG,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACX,aAAa,CAA6B;IAC1C,YAAY,CAA4B;IACxC,KAAK,CAAqC;IAE3D,YACE,aAA0C,EAC1C,YAAwC,EACxC,KAA0C;QAE1C,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,0BAA0B,EAAE,CAAC;QACvE,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,yBAAyB,EAAE,CAAC;QACpE,uBAAuB;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,aAAa,CAAsB,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/G,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,gBAAgB,CACpB,SAAqB,EACrB,gBAA8B,EAC9B,OAAwB;QAExB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC;QAC3C,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,UAAU,CAAC,cAAc,CAAC;QAC1E,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;QAC9C,MAAM,OAAO,GAAG,6BAA6B,CAAC;YAC5C,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,0BAA0B,EAAE,aAAa,CAAC,0BAA0B;SACrE,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;QAElB,gBAAgB;QAChB,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAEhG,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,sCAAsC;QACtC,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1C,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,6CAA6C;QAC7C,MAAM,cAAc,GAAmB;YACrC,GAAG,OAAO;YACV,aAAa,EAAE,eAAe;YAC9B,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,MAAM,CAAC,qBAAqB,CAAC,qBAAqB;SAC9F,CAAC;QAEF,eAAe;QACf,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,CAAC;YACD,8CAA8C;YAC9C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAC/F,CAAC;QAED,yBAAyB;QACzB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAC9D,SAAS,EACT,gBAAgB,EAChB,cAAc,CACf,CAAC;QAEF,cAAc;QACd,MAAM,wBAAwB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC;QACzF,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAEhD,oBAAoB;QACpB,IAAI,wBAAwB,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;gBACzB,aAAa,EAAE,cAAc,CAAC,MAAM;gBACpC,QAAQ,EAAE,SAAS,CAAC,EAAE;aACvB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC;YAE3E,sBAAsB;YACtB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC/F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,aAAa,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC3D,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;wBACvC,QAAQ,EAAE,SAAS,CAAC,EAAE;wBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;qBACnB,CAAC,CAAC;oBACH,OAAO,cAAc,CAAC;gBACxB,CAAC;gBACD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC;qBACxD,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC;YAChE,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;gBAClD,8CAA8C;gBAC9C,8DAA8D;gBAC9D,6CAA6C;gBAC7C,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;oBAC3C,QAAQ,EAAE,SAAS,CAAC,EAAE;oBACtB,MAAM,EAAE,iBAAiB;iBAC1B,CAAC,CAAC;gBACH,OAAO,cAAc,CAAC;YACxB,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;gBAC1C,kBAAkB,EAAE,cAAc,CAAC,MAAM;gBACzC,QAAQ,EAAE,SAAS,CAAC,EAAE;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC5D,SAAS,EACT,gBAAgB,EAChB,cAAc,CACf,CAAC;gBAEF,8BAA8B;gBAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;gBAC7E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC;gBAE7E,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBAC7B,cAAc,EAAE,QAAQ,CAAC,MAAM;oBAC/B,QAAQ,EAAE,SAAS,CAAC,EAAE;iBACvB,CAAC,CAAC;gBAEH,sBAAsB;gBACtB,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC/F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACrC,CAAC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBAC3C,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC7D,QAAQ,EAAE,SAAS,CAAC,EAAE;oBACtB,MAAM,EAAE,iBAAiB;iBAC1B,CAAC,CAAC;gBACH,OAAO,cAAc,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,MAAM,CAClB,MAAkB,EAClB,QAA+B;QAM/B,MAAM,IAAI,GAAG,6BAA6B,CAAC;YACzC,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,0BAA0B,EAAE,aAAa,CAAC,0BAA0B;SACrE,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAC5D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,gBAAgB,CACvC,IAAI,eAAe,CAAC;YAClB,MAAM;YACN,KAAK,EAAE,aAAa,CAAC,aAAa;YAClC,SAAS,EAAE,uBAAuB;SACnC,CAAC,EACF,IAAI,uBAAuB,EAAE,CAC9B,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1B,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACK,0BAA0B,CAChC,UAAsB,EACtB,cAA+B;QAE/B,MAAM,YAAY,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;QAE1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,4BAA4B;QAC5B,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;;OAQG;IACK,eAAe,CACrB,cAAmC,EACnC,aAAkC;QAElC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;QAEpD,cAAc;QACd,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YACvF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,kCAAkC;QAClC,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YACvF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,cAAc;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB,CACtB,WAAmB,EACnB,iBAA2B,EAC3B,OAAwB;QAExB,OAAO,iBAAiB,CAAC,6BAA6B,CAAC,WAAW,EAAE,iBAAiB,EAAE;YACrF,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,aAAa,EAAE,OAAO,EAAE,aAAa;YACrC,cAAc,EAAE,OAAO,EAAE,cAAc;YACvC,aAAa,EAAE,OAAO,EAAE,aAAa;YACrC,SAAS,EAAE,OAAO,EAAE,SAAS;SAC9B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,qBAAqB,CACzB,WAAyB,EACzB,gBAA8B,EAC9B,OAAiD;QAEjD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;QACvD,2CAA2C;QAC3C,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS;YAClC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAChI,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,UAAU;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,kBAAkB;QAClB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAClC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE;gBAC9C,GAAG,OAAO;gBACV,SAAS,EAAE,IAAI,CAAC,iBAAiB;aAClC,CAAC,CACH,CAAC;YAEF,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -6,6 +6,7 @@ import type { RelationType } from '../../../shared/types/relation.js';
6
6
  export declare class RelationGraphCycleDetector {
7
7
  private db;
8
8
  constructor(db: Database.Database);
9
+ private hasInboundSameTypeEdge;
9
10
  /**
10
11
  * 순환 참조 감지 내부 로직 (트랜잭션 없이 실행)
11
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"relation-graph-cycle-detector.d.ts","sourceRoot":"","sources":["../../../../src/domains/relation/services/relation-graph-cycle-detector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAItE,qBAAa,0BAA0B;IACzB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEzC;;OAEG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,QAAQ,GAAE,MAA+B,GACxC,OAAO,CAAC,OAAO,CAAC;IAiFnB;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,QAAQ,GAAE,MAA+B,GACxC,OAAO,CAAC,OAAO,CAAC;CASpB"}
1
+ {"version":3,"file":"relation-graph-cycle-detector.d.ts","sourceRoot":"","sources":["../../../../src/domains/relation/services/relation-graph-cycle-detector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAItE,qBAAa,0BAA0B;IACzB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEzC,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,QAAQ,GAAE,MAA+B,GACxC,OAAO,CAAC,OAAO,CAAC;IAqFnB;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,YAAY,EAC1B,QAAQ,GAAE,MAA+B,GACxC,OAAO,CAAC,OAAO,CAAC;CASpB"}
@@ -10,6 +10,15 @@ export class RelationGraphCycleDetector {
10
10
  constructor(db) {
11
11
  this.db = db;
12
12
  }
13
+ hasInboundSameTypeEdge(nodeId, relationType) {
14
+ const row = DatabaseUtils.get(this.db, `
15
+ SELECT 1 AS ok
16
+ FROM memory_relation
17
+ WHERE target_id = ? AND relation_type = ?
18
+ LIMIT 1
19
+ `, [nodeId, relationType]);
20
+ return Boolean(row);
21
+ }
13
22
  /**
14
23
  * 순환 참조 감지 내부 로직 (트랜잭션 없이 실행)
15
24
  */
@@ -17,6 +26,9 @@ export class RelationGraphCycleDetector {
17
26
  if (sourceId === targetId) {
18
27
  return false;
19
28
  }
29
+ if (!this.hasInboundSameTypeEdge(sourceId, relationType)) {
30
+ return false;
31
+ }
20
32
  const visited = new Set();
21
33
  const nodeRelations = new Map();
22
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"relation-graph-cycle-detector.js","sourceRoot":"","sources":["../../../../src/domains/relation/services/relation-graph-cycle-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-graph-cycle-detector.js","sourceRoot":"","sources":["../../../../src/domains/relation/services/relation-graph-cycle-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { LLMProvider } from '../../../shared/types/memory.types.js';
2
+ import type { MemoryItem } from '../../../shared/types/memory.types.js';
3
+ import type { RelationCandidate } from '../../../shared/types/relation.js';
4
+ import type { SystemOneFailureReason } from '../../../shared/services/typesafe/system-one-client.js';
5
+ import { type RelationExtractionOverride } from '../../../shared/config/relation-extraction-seat.js';
6
+ export type RememberRelationOutcome = {
7
+ readonly status: 'extracted';
8
+ readonly candidates: readonly RelationCandidate[];
9
+ } | {
10
+ readonly status: 'none';
11
+ } | {
12
+ readonly status: 'unavailable';
13
+ } | {
14
+ readonly status: 'failed';
15
+ readonly reason: SystemOneFailureReason | 'chat_failed';
16
+ };
17
+ /**
18
+ * Remember's configured relation engine. Never throws.
19
+ * A jev seat does not construct a chat extractor and does not fall back to one.
20
+ */
21
+ export declare function extractForRemember(source: MemoryItem, existing: readonly MemoryItem[], config: {
22
+ readonly llmProvider: LLMProvider;
23
+ readonly relationExtractionOverride: RelationExtractionOverride;
24
+ readonly typesafeApiKey: string | undefined;
25
+ readonly typesafeModel: string;
26
+ }): Promise<RememberRelationOutcome>;
27
+ //# sourceMappingURL=remember-relation-extraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember-relation-extraction.d.ts","sourceRoot":"","sources":["../../../../src/domains/relation/services/remember-relation-extraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAC;AAGrG,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,oDAAoD,CAAC;AAM5D,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,GACnF;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAClC;IACE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,sBAAsB,GAAG,aAAa,CAAC;CACzD,CAAC;AAmCN;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,MAAM,EAAE;IACN,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;IAChE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,GACA,OAAO,CAAC,uBAAuB,CAAC,CAqBlC"}
@@ -0,0 +1,60 @@
1
+ import { SystemOneClient } from '../../../shared/services/typesafe/system-one-client.js';
2
+ import { LIMITS } from '../../../shared/constants/relation-constants.js';
3
+ import { resolveRelationExtractionSeat, } from '../../../shared/config/relation-extraction-seat.js';
4
+ import { UnifiedEmbeddingService } from '../../embedding/services/unified-embedding-service.js';
5
+ import { JevRelationJudge, RELATION_JEV_TIMEOUT_MS } from './jev-relation-judge.js';
6
+ import { LLMBasedRelationExtractor } from './llm-based-relation-extractor.js';
7
+ import { RelationExtractor } from './relation-extractor.js';
8
+ function hasTypesafeKey(apiKey) {
9
+ return typeof apiKey === 'string' && apiKey.trim() !== '';
10
+ }
11
+ async function extractWithChat(source, existing) {
12
+ const llmExtractor = new LLMBasedRelationExtractor();
13
+ if (!(await llmExtractor.isAvailableAsync())) {
14
+ return { status: 'unavailable' };
15
+ }
16
+ try {
17
+ const candidates = await new RelationExtractor(undefined, llmExtractor).extractRelations(source, [...existing],
18
+ // hybrid+rule draws an edge to every template peer. Remember asks the chat model only (#1378).
19
+ {
20
+ method: 'llm',
21
+ minConfidence: 0.5,
22
+ candidateLimit: LIMITS.LLM_CANDIDATE_DEFAULT,
23
+ immediate: true,
24
+ });
25
+ if (candidates.length === 0) {
26
+ return { status: 'none' };
27
+ }
28
+ return { status: 'extracted', candidates };
29
+ }
30
+ catch {
31
+ return { status: 'failed', reason: 'chat_failed' };
32
+ }
33
+ }
34
+ /**
35
+ * Remember's configured relation engine. Never throws.
36
+ * A jev seat does not construct a chat extractor and does not fall back to one.
37
+ */
38
+ export async function extractForRemember(source, existing, config) {
39
+ const seat = resolveRelationExtractionSeat(config);
40
+ if (seat.kind === 'jev') {
41
+ if (!hasTypesafeKey(config.typesafeApiKey)) {
42
+ return { status: 'unavailable' };
43
+ }
44
+ const client = new SystemOneClient({
45
+ apiKey: config.typesafeApiKey.trim(),
46
+ model: config.typesafeModel,
47
+ timeoutMs: RELATION_JEV_TIMEOUT_MS,
48
+ });
49
+ const judged = await new JevRelationJudge(client, new UnifiedEmbeddingService()).judge(source, existing);
50
+ if (judged.ok === false) {
51
+ return { status: 'failed', reason: judged.reason };
52
+ }
53
+ if (judged.candidates.length === 0) {
54
+ return { status: 'none' };
55
+ }
56
+ return { status: 'extracted', candidates: judged.candidates };
57
+ }
58
+ return extractWithChat(source, existing);
59
+ }
60
+ //# sourceMappingURL=remember-relation-extraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember-relation-extraction.js","sourceRoot":"","sources":["../../../../src/domains/relation/services/remember-relation-extraction.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,11 @@ export declare class RuleBasedRelationExtractor implements IRelationExtractor {
45
45
  * 정규식 특수 문자 이스케이프
46
46
  */
47
47
  private escapeRegex;
48
+ /**
49
+ * 에이전트 5줄 템플릿 줄 전체를 제거한다 (라벨만이 아니라 `다음 걸림돌: …` 본문까지).
50
+ * 그 줄의 '다음'·'근거' 등은 관계 단서가 아니다 (#1378 / PR #1381).
51
+ */
52
+ private stripAgentTemplateLines;
48
53
  /**
49
54
  * 패턴 매칭 강도를 신뢰도로 변환합니다.
50
55
  * 패턴 매칭 강도(0.0~1.0)를 신뢰도(0.5~0.8) 범위로 변환합니다.
@@ -1 +1 @@
1
- {"version":3,"file":"rule-based-relation-extractor.d.ts","sourceRoot":"","sources":["../../../../src/domains/relation/services/rule-based-relation-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAEhB,MAAM,mCAAmC,CAAC;AAkJ3C;;GAEG;AACH,qBAAa,0BAA2B,YAAW,kBAAkB;IACnE;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;;;;OAOG;IACG,gBAAgB,CACpB,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,UAAU,EAAE,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,iBAAiB,EAAE,CAAC;CA+ChC"}
1
+ {"version":3,"file":"rule-based-relation-extractor.d.ts","sourceRoot":"","sources":["../../../../src/domains/relation/services/rule-based-relation-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,KAAK,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EAEhB,MAAM,mCAAmC,CAAC;AAkJ3C;;GAEG;AACH,qBAAa,0BAA2B,YAAW,kBAAkB;IACnE;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;;;;OAOG;IACG,gBAAgB,CACpB,SAAS,EAAE,UAAU,EACrB,gBAAgB,EAAE,UAAU,EAAE,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,iBAAiB,EAAE,CAAC;CA6ChC"}
@@ -213,6 +213,13 @@ export class RuleBasedRelationExtractor {
213
213
  escapeRegex(str) {
214
214
  return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
215
215
  }
216
+ /**
217
+ * 에이전트 5줄 템플릿 줄 전체를 제거한다 (라벨만이 아니라 `다음 걸림돌: …` 본문까지).
218
+ * 그 줄의 '다음'·'근거' 등은 관계 단서가 아니다 (#1378 / PR #1381).
219
+ */
220
+ stripAgentTemplateLines(text) {
221
+ return text.replace(/^(결정|근거|버린 대안|안 통한 것|다음 걸림돌)\s*:.*$/gm, '').trim();
222
+ }
216
223
  /**
217
224
  * 패턴 매칭 강도를 신뢰도로 변환합니다.
218
225
  * 패턴 매칭 강도(0.0~1.0)를 신뢰도(0.5~0.8) 범위로 변환합니다.
@@ -247,12 +254,11 @@ export class RuleBasedRelationExtractor {
247
254
  : MEMORY_TYPE_RELATION_MAP[newMemory.type];
248
255
  // 각 기존 기억에 대해 관계 추출 시도
249
256
  for (const existingMemory of limitedMemories) {
250
- // 새로운 기억과 기존 기억의 내용을 결합하여 분석
251
- const combinedText = `${newMemory.content} ${existingMemory.content}`;
252
- // 각 관계 유형별로 패턴 매칭
257
+ // 키워드는 기존 기억에서만 찾는다. 템플릿 줄은 매칭 전에 뺀다 (#1378).
258
+ const existingText = this.stripAgentTemplateLines(existingMemory.content);
253
259
  for (const relationType of applicableTypes) {
254
260
  const patterns = RELATION_KEYWORD_PATTERNS[relationType];
255
- const match = this.findPatternMatch(combinedText, patterns);
261
+ const match = this.findPatternMatch(existingText, patterns);
256
262
  if (match.matched) {
257
263
  const confidence = this.calculateConfidence(match.strength);
258
264
  // 최소 신뢰도 임계값 확인
@@ -1 +1 @@
1
- {"version":3,"file":"rule-based-relation-extractor.js","sourceRoot":"","sources":["../../../../src/domains/relation/services/rule-based-relation-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-based-relation-extractor.js","sourceRoot":"","sources":["../../../../src/domains/relation/services/rule-based-relation-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAC,MAAM,EAAE,MAAM,iDAAiD,CAAC;AAQpF,OAAO,EAAE,wBAAwB,EAAC,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAWtG;;GAEG;AACH,MAAM,yBAAyB,GAA2C;IACxE,MAAM,EAAE;QACN;YACE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;YAClF,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC;YACtG,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAClC,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,CAAC;YAChE,MAAM,EAAE,GAAG;SACZ;KACF;IACD,UAAU,EAAE;QACV;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAC9C,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC;YACtF,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAC5B,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC;YACvD,MAAM,EAAE,GAAG;SACZ;KACF;IACD,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;YACxD,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC;YACvF,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAC5B,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC;YAChD,MAAM,EAAE,GAAG;SACZ;KACF;IACD,cAAc,EAAE;QACd;YACE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YACvD,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC;YAClG,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;YAC7B,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC;YACrD,MAAM,EAAE,GAAG;SACZ;KACF;IACD,UAAU,EAAE;QACV;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;YAChD,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC;YACtF,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;YAC7B,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,WAAW,CAAC;YACxD,MAAM,EAAE,GAAG;SACZ;KACF;IACD,UAAU,EAAE;QACV;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YACxC,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC;YAC/E,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;YACzB,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,gBAAgB,CAAC;YAC1D,MAAM,EAAE,GAAG;SACZ;KACF;IACD,UAAU,EAAE;QACV;YACE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;YAChD,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,CAAC;YACxG,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC;YACxC,MAAM,EAAE,GAAG;SACZ;QACD;YACE,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;YACpE,MAAM,EAAE,GAAG;SACZ;KACF;IACD,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,0BAA0B;IACrC;;;;;;;OAOG;IACK,kBAAkB,CAAC,IAAY,EAAE,OAAe;QACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACK,mBAAmB,CAAC,IAAY,EAAE,OAAe;QACvD,kGAAkG;QAClG,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChF,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,OAAe;QACrC,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACK,gBAAgB,CAAC,IAAY,EAAE,QAA0B;QAK/D,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACvC,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBAEhD,eAAe;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,iBAAiB,CAAC;oBAC5D,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;gBAEhE,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;oBAChC,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;wBAC3B,WAAW,GAAG,QAAQ,CAAC;wBACvB,cAAc,GAAG,OAAO,CAAC;oBAC3B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,WAAW,GAAG,CAAC;YACxB,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,cAAc,IAAI,EAAE;SAC/B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,GAAW;QAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACK,uBAAuB,CAAC,IAAY;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACK,mBAAmB,CAAC,QAAgB;QAC1C,8BAA8B;QAC9B,gCAAgC;QAChC,gCAAgC;QAChC,OAAO,UAAU,CAAC,iBAAiB,GAAG,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACnH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB,CACpB,SAAqB,EACrB,gBAA8B,EAC9B,OAAwB;QAExB,MAAM,UAAU,GAAwB,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,UAAU,CAAC,cAAc,CAAC;QAC1E,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,MAAM,CAAC,sBAAsB,CAAC;QAChF,MAAM,oBAAoB,GAAG,OAAO,EAAE,aAAa,CAAC;QAEpD,aAAa;QACb,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QAElE,+BAA+B;QAC/B,MAAM,eAAe,GAAG,oBAAoB;YAC1C,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrF,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE7C,uBAAuB;QACvB,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,8CAA8C;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1E,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAE5D,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAE5D,gBAAgB;oBAChB,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;wBAChC,UAAU,CAAC,IAAI,CAAC;4BACd,SAAS,EAAE,SAAS,CAAC,EAAE;4BACvB,SAAS,EAAE,cAAc,CAAC,EAAE;4BAC5B,aAAa,EAAE,YAAY;4BAC3B,UAAU;4BACV,MAAM,EAAE,MAAM;4BACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;yBACzB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,cAAc;QACd,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QAEvD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
@@ -10,7 +10,7 @@ import { AdaptiveWeightCalculator } from './adaptive-weight-calculator.js';
10
10
  import { resolveHybridVectorPrefetchLimit, resolveQueryUnifiedEmbeddingForHybridSearch } from './hybrid-vector-search-executor.js';
11
11
  import { SearchError, SearchErrorType } from './search-error.js';
12
12
  import { SearchResultCombiner } from './search-result-combiner.js';
13
- import type { HybridSearchQuery, HybridSearchResult, IAdaptiveWeightCalculator, IEmbeddingService, IProceduralMemoryMatcher, ISearchLogger, ISearchResultCombiner, ITextSearchEngine, IVectorSearchEngine } from './hybrid-search-types.js';
13
+ import type { HybridLaneMs, HybridSearchQuery, HybridSearchResult, IAdaptiveWeightCalculator, IEmbeddingService, IProceduralMemoryMatcher, ISearchLogger, ISearchResultCombiner, ITextSearchEngine, IVectorSearchEngine } from './hybrid-search-types.js';
14
14
  import type { IRelevanceGatePort } from '../ports/relevance-gate-port.js';
15
15
  import { type RelevanceGateOutcome } from '../ports/relevance-gate-port.js';
16
16
  import type { RepositoryProvider } from '../../memory/repositories/repository-provider.port.js';
@@ -33,7 +33,7 @@ export declare class HybridSearchEngine {
33
33
  private vectorExecutor;
34
34
  private resultRanker;
35
35
  private readonly rankingVersion;
36
- constructor(repositories: RepositoryProvider, textSearchEngine: ITextSearchEngine, embeddingService: IEmbeddingService, vectorSearchEngine: IVectorSearchEngine, resultCombiner: ISearchResultCombiner, weightCalculator: IAdaptiveWeightCalculator, logger: ISearchLogger, queryEmbeddingService?: UnifiedEmbeddingService, relationGraph?: RelationGraph, proceduralMemoryMatcher?: IProceduralMemoryMatcher, rankingWeightsPath?: string);
36
+ constructor(repositories: RepositoryProvider, textSearchEngine: ITextSearchEngine, embeddingService: IEmbeddingService, vectorSearchEngine: IVectorSearchEngine, resultCombiner: ISearchResultCombiner, weightCalculator: IAdaptiveWeightCalculator, logger: ISearchLogger, queryEmbeddingService?: UnifiedEmbeddingService, relationGraph?: RelationGraph, proceduralMemoryMatcher?: IProceduralMemoryMatcher);
37
37
  setRelationGraph(relationGraph: RelationGraph | null): void;
38
38
  /** #1095 기각 게이트. null 이면 게이트 없음 — 현행 동작 그대로다. */
39
39
  private rejectionGate;
@@ -47,6 +47,7 @@ export declare class HybridSearchEngine {
47
47
  vector_count?: number;
48
48
  fallback_used?: boolean;
49
49
  rejection_gate?: RelevanceGateOutcome;
50
+ stage_ms: HybridLaneMs;
50
51
  query_embedding_providers?: EmbeddingProvider[];
51
52
  union_count: number;
52
53
  reranked_count: number;
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid-search-engine.d.ts","sourceRoot":"","sources":["../../../../src/domains/search/algorithms/hybrid-search-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAEhG,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,OAAO,EAEL,gCAAgC,EAChC,2CAA2C,EAC5C,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAKnE,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAElB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEhG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAEhG,OAAO,EACL,gCAAgC,EAChC,2CAA2C,EAC3C,WAAW,EACX,eAAe,EACf,wBAAwB,EAExB,oBAAoB,GACrB,CAAC;AAEF,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAElC,qBAAa,kBAAkB;IAa3B,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,qBAAqB;IAlB/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAO;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IACzC,OAAO,CAAC,WAAW,CAA2F;IAC9G,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,uBAAuB,CAA2B;IAC1D,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAGtC,YAAY,EAAE,kBAAkB,EACxB,gBAAgB,EAAE,iBAAiB,EACnC,gBAAgB,EAAE,iBAAiB,EACnC,kBAAkB,EAAE,mBAAmB,EACvC,cAAc,EAAE,qBAAqB,EACrC,gBAAgB,EAAE,yBAAyB,EAC3C,MAAM,EAAE,aAAa,EACrB,qBAAqB,GAAE,uBAAuD,EACtF,aAAa,CAAC,EAAE,aAAa,EAC7B,uBAAuB,CAAC,EAAE,wBAAwB,EAClD,kBAAkB,CAAC,EAAE,MAAM;IAgC7B,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAI3D,iDAAiD;IACjD,OAAO,CAAC,aAAa,CAAmC;IAExD,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAIvD,iBAAiB,IAAI,MAAM;IAIrB,MAAM,CACV,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC;QACT,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,cAAc,CAAC,EAAE,oBAAoB,CAAC;QACtC,yBAAyB,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAChD,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,8BAA8B,CAAC,EAAE,OAAO,CAAC;QACzC,wCAAwC,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC/D,gBAAgB,CAAC,EAAE;YACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,SAAS,EAAE,MAAM,EAAE,CAAC;YACpB,UAAU,EAAE,MAAM,EAAE,CAAC;YACrB,kBAAkB,EAAE,MAAM,EAAE,CAAC;YAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;YAChB,WAAW,EAAE,MAAM,EAAE,CAAC;YACtB,gBAAgB,EAAE,MAAM,CAAC;YACzB,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,EAAE,MAAM,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;KACH,CAAC;IAqJI,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC;QACnD,mBAAmB,EAAE,OAAO,CAAC;QAC7B,qBAAqB,EAAE,OAAO,CAAC;QAC/B,cAAc,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC3F,CAAC;IAWF,oBAAoB,IAAI,OAAO;YAIjB,iBAAiB;IAiC/B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,gCAAgC;YAkC1B,iCAAiC;YAMjC,mBAAmB;IAQjC,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,gBAAgB;CAGzB;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,kBAAkB,EAChC,gBAAgB,CAAC,EAAE,iBAAiB,EACpC,gBAAgB,CAAC,EAAE,iBAAiB,EACpC,kBAAkB,CAAC,EAAE,mBAAmB,EACxC,cAAc,CAAC,EAAE,qBAAqB,EACtC,gBAAgB,CAAC,EAAE,yBAAyB,EAC5C,MAAM,CAAC,EAAE,aAAa,GACrB,kBAAkB,CAapB"}
1
+ {"version":3,"file":"hybrid-search-engine.d.ts","sourceRoot":"","sources":["../../../../src/domains/search/algorithms/hybrid-search-engine.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ export class HybridSearchEngine {
40
40
  vectorExecutor;
41
41
  resultRanker;
42
42
  rankingVersion;
43
- constructor(repositories, textSearchEngine, embeddingService, vectorSearchEngine, resultCombiner, weightCalculator, logger, queryEmbeddingService = new UnifiedEmbeddingService(), relationGraph, proceduralMemoryMatcher, rankingWeightsPath) {
43
+ constructor(repositories, textSearchEngine, embeddingService, vectorSearchEngine, resultCombiner, weightCalculator, logger, queryEmbeddingService = new UnifiedEmbeddingService(), relationGraph, proceduralMemoryMatcher) {
44
44
  this.textSearchEngine = textSearchEngine;
45
45
  this.embeddingService = embeddingService;
46
46
  this.vectorSearchEngine = vectorSearchEngine;
@@ -49,8 +49,8 @@ export class HybridSearchEngine {
49
49
  this.logger = logger;
50
50
  this.queryEmbeddingService = queryEmbeddingService;
51
51
  this.proceduralMemoryMatcher = proceduralMemoryMatcher ?? new ProceduralMemoryMatcher();
52
- const config = getRankingWeights(rankingWeightsPath);
53
- this.rankingVersion = getRankingVersion(rankingWeightsPath);
52
+ const config = getRankingWeights();
53
+ this.rankingVersion = getRankingVersion();
54
54
  this.ranking = new SearchRanking({
55
55
  relevance: config.ranking_weights.alpha,
56
56
  recency: config.ranking_weights.beta,
@@ -58,7 +58,7 @@ export class HybridSearchEngine {
58
58
  usage: config.ranking_weights.delta,
59
59
  duplication_penalty: config.ranking_weights.epsilon,
60
60
  zeta_fb: config.ranking_weights.zeta_fb ?? 0.05,
61
- }, rankingWeightsPath);
61
+ });
62
62
  this.relationGraph = relationGraph || null;
63
63
  this.vectorExecutor = new HybridVectorSearchExecutor(this.embeddingService, this.vectorSearchEngine, this.queryEmbeddingService, this.logger, db => this.detectAllStoredEmbeddingProviders(db), (query, searchId, preferredProvider) => this.generateQueryVector(query, searchId, preferredProvider));
64
64
  this.resultRanker = new HybridResultRanker(this.resultCombiner, this.ranking, this.proceduralMemoryMatcher, () => this.relationGraph, repositories);
@@ -84,7 +84,8 @@ export class HybridSearchEngine {
84
84
  this.logRankingExperimentIfApplicable(searchId, query, weights);
85
85
  const vectorPromise = this.vectorExecutor.execute(db, query, searchId);
86
86
  const textPromise = this.executeTextSearch(db, query, searchId);
87
- const [textResults, vectorOut] = await Promise.all([textPromise, vectorPromise]);
87
+ const [textOut, vectorOut] = await Promise.all([textPromise, vectorPromise]);
88
+ const textResults = textOut.items;
88
89
  const unionCount = new Set([...textResults, ...vectorOut.results]
89
90
  .map(result => result.id)
90
91
  .filter((id) => typeof id === 'string')).size;
@@ -99,14 +100,17 @@ export class HybridSearchEngine {
99
100
  let finalResults = await this.resultRanker.combineAndSortResults(textResults, vectorResultsForCombine, weights, outputLimit, db, query.includeRelations || false, query);
100
101
  // #1191 게이트 판정을 응답에도 싣는다. 미부착이면 'off', 후보 0건이라 안 탔으면 없음.
101
102
  let rejectionGateOutcome = this.rejectionGate ? undefined : { verdict: 'off', top_score: null, unscored: 0 };
103
+ let gateMs;
102
104
  // #1095 기각 게이트: 후보 최고 점수가 임계값 미만이면 질의 전체를 기각한다.
103
105
  // finalResults 를 재할당하므로 아래 logData·finalIds·return 이 모두 자동으로 따라간다.
104
106
  if (this.rejectionGate && finalResults.length > 0) {
105
- // 임계값 0.5 는 top-10 의 최고 점수로 교정한 값이다. 후보를 더 넣으면 최고 점수가
107
+ // 임계값은 top-10 안의 최고 점수로 교정한다. 후보를 더 넣으면 최고 점수가
106
108
  // 올라가기만 해서 기각이 느슨해진다. 측정한 조건 그대로 상위 10건만 본다.
107
109
  const gateCandidates = finalResults.slice(0, 10);
108
110
  const gateDocs = gateCandidates.map((item) => item.content ?? '');
111
+ const gateStart = process.hrtime.bigint();
109
112
  const gateScores = await this.rejectionGate.score(query.query, gateDocs);
113
+ gateMs = Number(process.hrtime.bigint() - gateStart) / 1_000_000;
110
114
  const verdict = judgeRelevanceGate(gateScores, mementoConfig.searchRejectionGateThreshold, mementoConfig.searchRejectionGateOnError);
111
115
  // #922 어떤 후보가 몇 점을 받았는지 세 경로 모두에 남긴다. 본문은 넣지 않는다 —
112
116
  // id 로 되짚을 수 있고 검색 로그에 기억 본문이 새어 나가면 안 된다.
@@ -178,6 +182,12 @@ export class HybridSearchEngine {
178
182
  reranked_count: finalResults.length,
179
183
  fallback_used: vectorOut.fallback_used,
180
184
  ...(rejectionGateOutcome ? { rejection_gate: rejectionGateOutcome } : {}),
185
+ stage_ms: {
186
+ text_ms: textOut.text_ms,
187
+ ...(vectorOut.embedding_ms !== undefined ? { embedding_ms: vectorOut.embedding_ms } : {}),
188
+ ...(vectorOut.vector_ms !== undefined ? { vector_ms: vectorOut.vector_ms } : {}),
189
+ ...(gateMs !== undefined ? { gate_ms: gateMs } : {}),
190
+ },
181
191
  query_embedding_providers: vectorOut.query_embedding_providers,
182
192
  tfidf_query_embedding_fallback: vectorOut.tfidf_query_embedding_fallback,
183
193
  tfidf_query_embedding_fallback_providers: vectorOut.tfidf_query_embedding_fallback_providers,
@@ -227,7 +237,7 @@ export class HybridSearchEngine {
227
237
  resultCount: textSearchResult.items.length,
228
238
  searchTime: `${textSearchTime.toFixed(2)}ms`,
229
239
  });
230
- return textSearchResult.items;
240
+ return { items: textSearchResult.items, text_ms: textSearchTime };
231
241
  }
232
242
  catch (error) {
233
243
  throw new SearchError(SearchErrorType.TEXT_SEARCH_FAILED, '텍스트 검색 실행 중 오류가 발생했습니다', error instanceof Error ? error : new Error(String(error)), { query: query.query, searchId });
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid-search-engine.js","sourceRoot":"","sources":["../../../../src/domains/search/algorithms/hybrid-search-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hybrid-search-engine.js","sourceRoot":"","sources":["../../../../src/domains/search/algorithms/hybrid-search-engine.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ type ProviderVectorRaceResult = {
17
17
  error: string | null;
18
18
  queryEmbeddingProvider?: EmbeddingProvider;
19
19
  tfidfQueryEmbeddingFallback?: boolean;
20
+ embeddingMs?: number;
21
+ vectorMs?: number;
20
22
  };
21
23
  type ProviderSearchExecutionSummary = {
22
24
  allResults: VectorResultWithProvider[];
@@ -31,6 +33,8 @@ type ProviderSearchExecutionSummary = {
31
33
  queryEmbeddingProviders?: EmbeddingProvider[];
32
34
  tfidfQueryEmbeddingFallback: boolean;
33
35
  tfidfQueryEmbeddingFallbackProviders?: EmbeddingProvider[];
36
+ embedding_ms?: number;
37
+ vector_ms?: number;
34
38
  };
35
39
  export type SearchStepLogger = (searchId: string, step: string, data: unknown) => void;
36
40
  export type ProviderVectorSearchOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid-search-provider-parallel.d.ts","sourceRoot":"","sources":["../../../../src/domains/search/algorithms/hybrid-search-provider-parallel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hybrid-search-provider-parallel.d.ts","sourceRoot":"","sources":["../../../../src/domains/search/algorithms/hybrid-search-provider-parallel.ts"],"names":[],"mappings":"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"}