memento-mcp-server 1.12.0-a → 1.12.0-a2

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.
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { type VectorSearchResult } from '../services/memory-embedding-service.js';
6
6
  import { UnifiedEmbeddingService } from '../services/unified-embedding-service.js';
7
- import type { MemorySearchFilters, MemoryType } from '../types/index.js';
7
+ import type { MemorySearchFilters, MemoryType, EmbeddingProvider } from '../types/index.js';
8
8
  import Database from 'better-sqlite3';
9
9
  import { RelationGraph } from '../services/relation-graph.js';
10
10
  export interface ITextSearchEngine {
@@ -115,6 +115,7 @@ export interface HybridSearchQuery {
115
115
  textWeight?: number | undefined;
116
116
  includeRelations?: boolean;
117
117
  experiment_id?: string;
118
+ provider_filter?: EmbeddingProvider[];
118
119
  }
119
120
  export interface HybridSearchResult {
120
121
  id: string;
@@ -167,13 +168,106 @@ export declare class HybridSearchEngine {
167
168
  private calculateAdaptiveWeights;
168
169
  private executeTextSearch;
169
170
  private executeVectorSearch;
171
+ /**
172
+ * 벡터 검색 실행 (다중 provider 지원)
173
+ *
174
+ * @param db - 데이터베이스 연결
175
+ * @param query - 하이브리드 검색 쿼리
176
+ * @param searchId - 검색 ID (로깅용)
177
+ * @param startTime - 시작 시간 (성능 측정용)
178
+ * @returns 벡터 검색 결과 배열
179
+ */
170
180
  private executeVecSearch;
181
+ /**
182
+ * Provider 필터링
183
+ *
184
+ * @param detectedProviders - 감지된 모든 provider 목록
185
+ * @param providerFilter - 필터링할 provider 목록 (선택적, 빈 배열이면 undefined로 처리되어 모든 provider 검색)
186
+ * @param searchId - 검색 ID (로깅용)
187
+ * @returns 필터링된 provider 목록
188
+ */
189
+ private filterProvidersToSearch;
190
+ /**
191
+ * 단일 provider 검색 작업 생성 (타임아웃 포함)
192
+ *
193
+ * @param provider - 검색할 provider
194
+ * @param query - 검색 쿼리 문자열
195
+ * @param searchOptions - 검색 옵션
196
+ * @param searchId - 검색 ID (로깅용)
197
+ * @returns 검색 결과 Promise (타임아웃 포함)
198
+ */
199
+ private createProviderSearchTask;
200
+ /**
201
+ * 모든 provider 검색 실행 및 결과 수집 (전체 타임아웃 포함)
202
+ *
203
+ * @param searchPromises - 각 provider별 검색 Promise 배열
204
+ * @param providersToSearch - 검색할 provider 목록
205
+ * @param searchId - 검색 ID (로깅용)
206
+ * @returns 검색 결과 및 통계
207
+ */
208
+ private executeProviderSearchesWithTimeout;
209
+ /**
210
+ * 결과 정규화 및 중복 제거
211
+ * Provider별로 Min-Max 정규화를 수행하고, 중복된 memory_id는 최고 점수만 유지
212
+ *
213
+ * @param allResults - 모든 provider의 검색 결과
214
+ * @returns 정규화 및 중복 제거된 결과 배열
215
+ */
216
+ private normalizeAndDeduplicateResults;
217
+ /**
218
+ * Provider별로 결과 그룹화
219
+ */
220
+ private groupResultsByProvider;
221
+ /**
222
+ * Provider별로 Min-Max 정규화 수행
223
+ */
224
+ private normalizeResultsByProvider;
225
+ /**
226
+ * 중복 제거 (memory_id 기준, 정규화된 점수 중 최고 점수만 유지)
227
+ */
228
+ private deduplicateResults;
229
+ /**
230
+ * 정규화된 점수로 재랭킹
231
+ */
232
+ private rankResults;
233
+ /**
234
+ * Fallback 벡터 검색 실행
235
+ * 벡터 인덱스가 사용 불가능한 경우 임베딩 서비스를 직접 사용하여 검색
236
+ *
237
+ * @param db - 데이터베이스 연결
238
+ * @param query - 하이브리드 검색 쿼리
239
+ * @param searchId - 검색 ID (로깅용)
240
+ * @param startTime - 시작 시간 (성능 측정용, 현재는 사용하지 않음)
241
+ * @returns 벡터 검색 결과 배열
242
+ */
171
243
  private executeFallbackSearch;
172
244
  /**
173
- * 저장된 임베딩의 provider 감지
174
- * 가장 많이 사용된 provider를 반환 (기본값: 'minilm')
245
+ * Provider 목록 캐시 (메모리 캐시)
246
+ * Provider 목록은 자주 변경되지 않으므로 캐싱하여 성능 개선
247
+ */
248
+ private providerCache;
249
+ /**
250
+ * Provider 캐시 TTL (밀리초)
251
+ * 5분간 캐시 유지
252
+ */
253
+ private static readonly PROVIDER_CACHE_TTL_MS;
254
+ /**
255
+ * 저장된 임베딩의 모든 provider 감지
256
+ * 모든 provider 목록을 반환 (count 내림차순 정렬)
257
+ * 캐싱을 사용하여 성능 개선
258
+ */
259
+ private detectAllStoredEmbeddingProviders;
260
+ /**
261
+ * 쿼리 임베딩 벡터 생성
262
+ * preferredProvider가 지정된 경우 해당 provider로만 임베딩 생성
263
+ * 각 provider는 서로 다른 차원의 임베딩을 사용할 수 있으므로 fallback을 사용하지 않음
264
+ *
265
+ * @param query - 검색 쿼리 문자열
266
+ * @param searchId - 검색 ID (로깅용)
267
+ * @param preferredProvider - 선호하는 임베딩 provider (필수, 각 provider별로 다른 차원의 임베딩 필요)
268
+ * @returns 임베딩 벡터 배열
269
+ * @throws SearchError - 임베딩 생성 실패 시
175
270
  */
176
- private detectStoredEmbeddingProvider;
177
271
  private generateQueryVector;
178
272
  private combineAndSortResults;
179
273
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hybrid-search-engine.d.ts","sourceRoot":"","sources":["../../src/algorithms/hybrid-search-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hybrid-search-engine.d.ts","sourceRoot":"","sources":["../../src/algorithms/hybrid-search-engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC1G,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAEnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAgC,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1H,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AA8B9D,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5K;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,IAAI,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC9J,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxC,cAAc,IAAI;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAChR;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;CAClI;AAED,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACzH;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC;IAC/D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAChH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACjF,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CAC5F;AAGD,oBAAY,eAAe;IACzB,2BAA2B,gCAAgC;IAC3D,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;IACzC,yBAAyB,8BAA8B;IACvD,0BAA0B,+BAA+B;IACzD,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;CAC5C;AAED,qBAAa,WAAY,SAAQ,KAAK;IAE3B,IAAI,EAAE,eAAe;IAErB,aAAa,CAAC,EAAE,KAAK;IACrB,OAAO,CAAC,EAAE,GAAG;gBAHb,IAAI,EAAE,eAAe,EAC5B,OAAO,EAAE,MAAM,EACR,aAAa,CAAC,EAAE,KAAK,YAAA,EACrB,OAAO,CAAC,EAAE,GAAG,YAAA;CAKvB;AAGD,qBAAa,oBAAqB,YAAW,qBAAqB;IAChE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAqDhI,OAAO,CAAC,oBAAoB;CAe7B;AAED,qBAAa,wBAAyB,YAAW,yBAAyB;IACxE,OAAO,CAAC,eAAe,CAAwE;IAE/F,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAwCvH,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;CAGvB;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAWhE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAI9D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAU/G,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAUhF;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAO1F;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,qBAAa,kBAAkB;IAQ3B,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;IAb/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;gBAGzC,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;IAe/B;;OAEG;IACH,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD;;OAEG;IACG,MAAM,CACV,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC;QAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAuFpF,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,wBAAwB;YAclB,iBAAiB;YA4BjB,mBAAmB;IAgBjC;;;;;;;;OAQG;YACW,gBAAgB;IAoD9B;;;;;;;OAOG;IACH,OAAO,CAAC,uBAAuB;IA0B/B;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAsFhC;;;;;;;OAOG;YACW,kCAAkC;IAoHhD;;;;;;OAMG;IACH,OAAO,CAAC,8BAA8B;IAStC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAoClC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;;;;;;;;OASG;YACW,qBAAqB;IAsBnC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAGL;IAEhB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAiB;IAE9D;;;;OAIG;YACW,iCAAiC;IA4D/C;;;;;;;;;;OAUG;YACW,mBAAmB;YAwCnB,qBAAqB;IA8FnC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;;OAGG;YACW,oBAAoB;IAqDlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,cAAc;IAItB;;OAEG;IACG,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC;QACrC,mBAAmB,EAAE,OAAO,CAAC;QAC7B,qBAAqB,EAAE,OAAO,CAAC;QAC/B,cAAc,EAAE,GAAG,CAAC;QACpB,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;;OAEG;IACH,oBAAoB,IAAI,OAAO;CAGhC;AAGD,wBAAgB,wBAAwB,CACtC,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,CASpB;AAKD,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D"}