memento-mcp-server 1.16.1-a → 1.16.2-a

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 (163) hide show
  1. package/dist/client/index.d.ts.map +1 -1
  2. package/dist/client/index.js +4 -3
  3. package/dist/client/index.js.map +1 -1
  4. package/dist/domains/anchor/services/anchor/anchor-interfaces.d.ts +2 -4
  5. package/dist/domains/anchor/services/anchor/anchor-interfaces.d.ts.map +1 -1
  6. package/dist/domains/anchor/services/anchor/anchor-interfaces.js.map +1 -1
  7. package/dist/domains/anchor/services/anchor/anchor-manager.d.ts +2 -2
  8. package/dist/domains/anchor/services/anchor/anchor-manager.d.ts.map +1 -1
  9. package/dist/domains/anchor/services/anchor/anchor-manager.js.map +1 -1
  10. package/dist/domains/anchor/services/anchor/anchor-search-service.d.ts +11 -34
  11. package/dist/domains/anchor/services/anchor/anchor-search-service.d.ts.map +1 -1
  12. package/dist/domains/anchor/services/anchor/anchor-search-service.js +66 -549
  13. package/dist/domains/anchor/services/anchor/anchor-search-service.js.map +1 -1
  14. package/dist/domains/anchor/services/anchor/database-types.d.ts +28 -0
  15. package/dist/domains/anchor/services/anchor/database-types.d.ts.map +1 -0
  16. package/dist/domains/anchor/services/anchor/database-types.js +6 -0
  17. package/dist/domains/anchor/services/anchor/database-types.js.map +1 -0
  18. package/dist/domains/anchor/services/anchor/embedding-types.d.ts +20 -0
  19. package/dist/domains/anchor/services/anchor/embedding-types.d.ts.map +1 -0
  20. package/dist/domains/anchor/services/anchor/embedding-types.js +6 -0
  21. package/dist/domains/anchor/services/anchor/embedding-types.js.map +1 -0
  22. package/dist/domains/anchor/services/anchor/fallback-search-service.d.ts +36 -0
  23. package/dist/domains/anchor/services/anchor/fallback-search-service.d.ts.map +1 -0
  24. package/dist/domains/anchor/services/anchor/fallback-search-service.js +85 -0
  25. package/dist/domains/anchor/services/anchor/fallback-search-service.js.map +1 -0
  26. package/dist/domains/anchor/services/anchor/fallback-strategy.d.ts +25 -0
  27. package/dist/domains/anchor/services/anchor/fallback-strategy.d.ts.map +1 -0
  28. package/dist/domains/anchor/services/anchor/fallback-strategy.js +35 -0
  29. package/dist/domains/anchor/services/anchor/fallback-strategy.js.map +1 -0
  30. package/dist/domains/anchor/services/anchor/local-search-service.d.ts +72 -0
  31. package/dist/domains/anchor/services/anchor/local-search-service.d.ts.map +1 -0
  32. package/dist/domains/anchor/services/anchor/local-search-service.js +129 -0
  33. package/dist/domains/anchor/services/anchor/local-search-service.js.map +1 -0
  34. package/dist/domains/anchor/services/anchor/n-hop-search-service.d.ts +90 -0
  35. package/dist/domains/anchor/services/anchor/n-hop-search-service.d.ts.map +1 -0
  36. package/dist/domains/anchor/services/anchor/n-hop-search-service.js +385 -0
  37. package/dist/domains/anchor/services/anchor/n-hop-search-service.js.map +1 -0
  38. package/dist/domains/anchor/services/anchor/n-hop-search-strategy.d.ts +24 -0
  39. package/dist/domains/anchor/services/anchor/n-hop-search-strategy.d.ts.map +1 -0
  40. package/dist/domains/anchor/services/anchor/n-hop-search-strategy.js +39 -0
  41. package/dist/domains/anchor/services/anchor/n-hop-search-strategy.js.map +1 -0
  42. package/dist/domains/anchor/services/anchor/query-filter-service.d.ts +52 -0
  43. package/dist/domains/anchor/services/anchor/query-filter-service.d.ts.map +1 -0
  44. package/dist/domains/anchor/services/anchor/query-filter-service.js +136 -0
  45. package/dist/domains/anchor/services/anchor/query-filter-service.js.map +1 -0
  46. package/dist/domains/anchor/services/anchor/query-filter-strategy.d.ts +24 -0
  47. package/dist/domains/anchor/services/anchor/query-filter-strategy.d.ts.map +1 -0
  48. package/dist/domains/anchor/services/anchor/query-filter-strategy.js +34 -0
  49. package/dist/domains/anchor/services/anchor/query-filter-strategy.js.map +1 -0
  50. package/dist/domains/anchor/services/anchor/search-strategy-interfaces.d.ts +52 -0
  51. package/dist/domains/anchor/services/anchor/search-strategy-interfaces.d.ts.map +1 -0
  52. package/dist/domains/anchor/services/anchor/search-strategy-interfaces.js +6 -0
  53. package/dist/domains/anchor/services/anchor/search-strategy-interfaces.js.map +1 -0
  54. package/dist/domains/anchor/services/anchor/vector-search-engine-types.d.ts +18 -0
  55. package/dist/domains/anchor/services/anchor/vector-search-engine-types.d.ts.map +1 -0
  56. package/dist/domains/anchor/services/anchor/vector-search-engine-types.js +11 -0
  57. package/dist/domains/anchor/services/anchor/vector-search-engine-types.js.map +1 -0
  58. package/dist/domains/memory/repositories/core-memory-database.interface.d.ts +47 -0
  59. package/dist/domains/memory/repositories/core-memory-database.interface.d.ts.map +1 -0
  60. package/dist/domains/memory/repositories/core-memory-database.interface.js +7 -0
  61. package/dist/domains/memory/repositories/core-memory-database.interface.js.map +1 -0
  62. package/dist/domains/memory/repositories/core-memory-repository.d.ts +7 -77
  63. package/dist/domains/memory/repositories/core-memory-repository.d.ts.map +1 -1
  64. package/dist/domains/memory/repositories/core-memory-repository.interface.d.ts +92 -0
  65. package/dist/domains/memory/repositories/core-memory-repository.interface.d.ts.map +1 -0
  66. package/dist/domains/memory/repositories/core-memory-repository.interface.js +6 -0
  67. package/dist/domains/memory/repositories/core-memory-repository.interface.js.map +1 -0
  68. package/dist/domains/memory/repositories/core-memory-repository.js +7 -259
  69. package/dist/domains/memory/repositories/core-memory-repository.js.map +1 -1
  70. package/dist/domains/memory/services/core-memory-cache-service.d.ts +55 -0
  71. package/dist/domains/memory/services/core-memory-cache-service.d.ts.map +1 -1
  72. package/dist/domains/memory/services/core-memory-cache-service.js +110 -8
  73. package/dist/domains/memory/services/core-memory-cache-service.js.map +1 -1
  74. package/dist/domains/memory/services/core-memory-service.d.ts +2 -2
  75. package/dist/domains/memory/services/core-memory-service.d.ts.map +1 -1
  76. package/dist/domains/memory/services/core-memory-service.js +43 -24
  77. package/dist/domains/memory/services/core-memory-service.js.map +1 -1
  78. package/dist/domains/memory/tools/recall-tool.d.ts.map +1 -1
  79. package/dist/domains/memory/tools/recall-tool.js +2 -2
  80. package/dist/domains/memory/tools/recall-tool.js.map +1 -1
  81. package/dist/domains/memory/tools/remember-tool.d.ts.map +1 -1
  82. package/dist/domains/memory/tools/remember-tool.js +2 -2
  83. package/dist/domains/memory/tools/remember-tool.js.map +1 -1
  84. package/dist/domains/monitoring/services/performance-monitor.d.ts +8 -0
  85. package/dist/domains/monitoring/services/performance-monitor.d.ts.map +1 -1
  86. package/dist/domains/monitoring/services/performance-monitor.js +16 -0
  87. package/dist/domains/monitoring/services/performance-monitor.js.map +1 -1
  88. package/dist/infrastructure/async-optimizer.d.ts.map +1 -1
  89. package/dist/infrastructure/async-optimizer.js +8 -7
  90. package/dist/infrastructure/async-optimizer.js.map +1 -1
  91. package/dist/infrastructure/database/adapters/sqlite-core-memory-adapter.d.ts +31 -0
  92. package/dist/infrastructure/database/adapters/sqlite-core-memory-adapter.d.ts.map +1 -0
  93. package/dist/infrastructure/database/adapters/sqlite-core-memory-adapter.js +112 -0
  94. package/dist/infrastructure/database/adapters/sqlite-core-memory-adapter.js.map +1 -0
  95. package/dist/infrastructure/database/database/init.d.ts.map +1 -1
  96. package/dist/infrastructure/database/database/init.js +23 -2
  97. package/dist/infrastructure/database/database/init.js.map +1 -1
  98. package/dist/infrastructure/database/database/migration/migrations/010-add-core-memory-version.d.ts +64 -0
  99. package/dist/infrastructure/database/database/migration/migrations/010-add-core-memory-version.d.ts.map +1 -0
  100. package/dist/infrastructure/database/database/migration/migrations/010-add-core-memory-version.js +174 -0
  101. package/dist/infrastructure/database/database/migration/migrations/010-add-core-memory-version.js.map +1 -0
  102. package/dist/infrastructure/database/database/migration/migrations/010-add-core-memory-version.sql +25 -0
  103. package/dist/infrastructure/database/database-lock-monitor.d.ts +105 -0
  104. package/dist/infrastructure/database/database-lock-monitor.d.ts.map +1 -0
  105. package/dist/infrastructure/database/database-lock-monitor.js +265 -0
  106. package/dist/infrastructure/database/database-lock-monitor.js.map +1 -0
  107. package/dist/infrastructure/database/factories/core-memory-repository.factory.d.ts +17 -0
  108. package/dist/infrastructure/database/factories/core-memory-repository.factory.d.ts.map +1 -0
  109. package/dist/infrastructure/database/factories/core-memory-repository.factory.js +43 -0
  110. package/dist/infrastructure/database/factories/core-memory-repository.factory.js.map +1 -0
  111. package/dist/infrastructure/database/repositories/core-memory-repository-sqlite.impl.d.ts +63 -0
  112. package/dist/infrastructure/database/repositories/core-memory-repository-sqlite.impl.d.ts.map +1 -0
  113. package/dist/infrastructure/database/repositories/core-memory-repository-sqlite.impl.js +281 -0
  114. package/dist/infrastructure/database/repositories/core-memory-repository-sqlite.impl.js.map +1 -0
  115. package/dist/infrastructure/database/wal-checkpoint-scheduler.d.ts +166 -0
  116. package/dist/infrastructure/database/wal-checkpoint-scheduler.d.ts.map +1 -0
  117. package/dist/infrastructure/database/wal-checkpoint-scheduler.js +285 -0
  118. package/dist/infrastructure/database/wal-checkpoint-scheduler.js.map +1 -0
  119. package/dist/npm-client/memento-client.d.ts.map +1 -1
  120. package/dist/npm-client/memento-client.js +5 -4
  121. package/dist/npm-client/memento-client.js.map +1 -1
  122. package/dist/npm-client/memory-manager.d.ts.map +1 -1
  123. package/dist/npm-client/memory-manager.js +4 -3
  124. package/dist/npm-client/memory-manager.js.map +1 -1
  125. package/dist/scripts/check-migration-status.d.ts.map +1 -1
  126. package/dist/scripts/check-migration-status.js +1 -0
  127. package/dist/scripts/check-migration-status.js.map +1 -1
  128. package/dist/server/bootstrap.d.ts +4 -0
  129. package/dist/server/bootstrap.d.ts.map +1 -1
  130. package/dist/server/bootstrap.js +27 -2
  131. package/dist/server/bootstrap.js.map +1 -1
  132. package/dist/server/http-server.d.ts.map +1 -1
  133. package/dist/server/http-server.js +59 -31
  134. package/dist/server/http-server.js.map +1 -1
  135. package/dist/server/index.js +32 -16
  136. package/dist/server/index.js.map +1 -1
  137. package/dist/server/simple-mcp-server.d.ts.map +1 -1
  138. package/dist/server/simple-mcp-server.js +15 -14
  139. package/dist/server/simple-mcp-server.js.map +1 -1
  140. package/dist/shared/config/environment.d.ts.map +1 -1
  141. package/dist/shared/config/environment.js +13 -1
  142. package/dist/shared/config/environment.js.map +1 -1
  143. package/dist/shared/config/index.d.ts.map +1 -1
  144. package/dist/shared/config/index.js +13 -1
  145. package/dist/shared/config/index.js.map +1 -1
  146. package/dist/shared/types/index.d.ts +10 -0
  147. package/dist/shared/types/index.d.ts.map +1 -1
  148. package/dist/tools/base-tool.d.ts.map +1 -1
  149. package/dist/tools/base-tool.js +5 -4
  150. package/dist/tools/base-tool.js.map +1 -1
  151. package/dist/tools/migrate-embeddings-tool.d.ts.map +1 -1
  152. package/dist/tools/migrate-embeddings-tool.js +2 -1
  153. package/dist/tools/migrate-embeddings-tool.js.map +1 -1
  154. package/dist/tools/tool-registry.d.ts.map +1 -1
  155. package/dist/tools/tool-registry.js +4 -3
  156. package/dist/tools/tool-registry.js.map +1 -1
  157. package/dist/workers/consolidation-score-worker.d.ts.map +1 -1
  158. package/dist/workers/consolidation-score-worker.js +5 -4
  159. package/dist/workers/consolidation-score-worker.js.map +1 -1
  160. package/package.json +1 -1
  161. package/scripts/check-file-sizes.ts +405 -0
  162. package/scripts/count-any-types.ts +375 -0
  163. package/scripts/count-console-logs.ts +451 -0
@@ -0,0 +1,136 @@
1
+ /**
2
+ * 쿼리 필터 서비스 인터페이스 및 구현
3
+ * Phase 2.4: anchor-search-service.ts 분리
4
+ */
5
+ import { UnifiedEmbeddingService } from '../../../embedding/services/unified-embedding-service.js';
6
+ import { logger } from '../../../../shared/utils/logger.js';
7
+ /**
8
+ * 쿼리 필터 서비스 구현
9
+ */
10
+ export class QueryFilterService {
11
+ cacheService;
12
+ queryEmbeddingService;
13
+ constructor(cacheService) {
14
+ this.cacheService = cacheService;
15
+ this.queryEmbeddingService = new UnifiedEmbeddingService();
16
+ }
17
+ /**
18
+ * 쿼리 기반 필터링
19
+ */
20
+ async filterByQuery(query, results, provider) {
21
+ if (results.length === 0) {
22
+ return results;
23
+ }
24
+ try {
25
+ // 쿼리 임베딩 생성
26
+ const queryEmbeddingResult = await this.queryEmbeddingService.generateEmbedding(query);
27
+ if (!queryEmbeddingResult || !queryEmbeddingResult.embedding) {
28
+ logger.warn('Query embedding generation failed, skipping filter');
29
+ return results;
30
+ }
31
+ const queryEmbedding = queryEmbeddingResult.embedding;
32
+ // 각 결과 메모리의 임베딩 조회 및 쿼리 유사도 계산
33
+ const resultsWithQuerySimilarity = await Promise.all(results.map(async (result) => {
34
+ try {
35
+ const memoryEmbedding = await this.cacheService.getAnchorEmbedding(result.memory_id);
36
+ if (!memoryEmbedding || !memoryEmbedding.embedding) {
37
+ return {
38
+ ...result,
39
+ query_similarity: 0,
40
+ combined_similarity: result.similarity * 0.5
41
+ };
42
+ }
43
+ // 쿼리 임베딩과 메모리 임베딩 간 유사도 계산
44
+ let querySim = 0;
45
+ if (queryEmbedding.length === memoryEmbedding.embedding.length) {
46
+ querySim = this.cosineSimilarity(queryEmbedding, memoryEmbedding.embedding);
47
+ }
48
+ else {
49
+ // 차원이 다르면 텍스트 기반 간단한 매칭
50
+ querySim = this.calculateTextSimilarity(query, result.content);
51
+ }
52
+ const baseRankingScore = this.calculateBaseRankingScore(result.similarity, result.hop_distance, result.importance);
53
+ const combinedSimilarity = baseRankingScore * 0.6 + querySim * 0.4;
54
+ return {
55
+ ...result,
56
+ query_similarity: querySim,
57
+ combined_similarity: combinedSimilarity
58
+ };
59
+ }
60
+ catch (error) {
61
+ logger.error('Query filtering failed for memory', {
62
+ memoryId: result.memory_id,
63
+ error: error instanceof Error ? error.message : String(error)
64
+ });
65
+ return {
66
+ ...result,
67
+ query_similarity: 0,
68
+ combined_similarity: result.similarity * 0.5
69
+ };
70
+ }
71
+ }));
72
+ // 쿼리 유사도 임계값 적용
73
+ const queryThreshold = 0.3;
74
+ const filtered = resultsWithQuerySimilarity.filter(r => r.query_similarity >= queryThreshold || r.combined_similarity >= 0.5);
75
+ // 결합 유사도 기준으로 재정렬
76
+ filtered.sort((a, b) => {
77
+ if (Math.abs(a.combined_similarity - b.combined_similarity) < 0.001) {
78
+ return a.hop_distance - b.hop_distance;
79
+ }
80
+ return b.combined_similarity - a.combined_similarity;
81
+ });
82
+ // 원본 similarity를 combined_similarity로 업데이트하여 반환
83
+ return filtered.map(r => ({
84
+ ...r,
85
+ similarity: r.combined_similarity
86
+ }));
87
+ }
88
+ catch (error) {
89
+ logger.error('Query-based filtering failed', {
90
+ error: error instanceof Error ? error.message : String(error)
91
+ });
92
+ return results;
93
+ }
94
+ }
95
+ /**
96
+ * 코사인 유사도 계산
97
+ */
98
+ cosineSimilarity(a, b) {
99
+ if (a.length !== b.length) {
100
+ throw new Error('벡터 차원이 일치하지 않습니다');
101
+ }
102
+ let dotProduct = 0;
103
+ let normA = 0;
104
+ let normB = 0;
105
+ for (let i = 0; i < a.length; i++) {
106
+ const aVal = a[i] ?? 0;
107
+ const bVal = b[i] ?? 0;
108
+ dotProduct += aVal * bVal;
109
+ normA += aVal * aVal;
110
+ normB += bVal * bVal;
111
+ }
112
+ const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
113
+ return magnitude === 0 ? 0 : dotProduct / magnitude;
114
+ }
115
+ /**
116
+ * 텍스트 기반 유사도 계산
117
+ */
118
+ calculateTextSimilarity(query, content) {
119
+ const queryLower = query.toLowerCase();
120
+ const contentLower = content.toLowerCase();
121
+ const queryWords = queryLower.split(/\s+/);
122
+ const matchCount = queryWords.filter(word => contentLower.includes(word)).length;
123
+ return matchCount / Math.max(queryWords.length, 1);
124
+ }
125
+ /**
126
+ * 기본 랭킹 점수 계산
127
+ */
128
+ calculateBaseRankingScore(similarity, hopDistance, importance = 0.5) {
129
+ const hopDecayFactor = 1.0 / (1.0 + (hopDistance - 1) * 0.3);
130
+ const anchorProximityBoost = hopDistance === 1 ? 1.2 : 1.0;
131
+ const importanceWeight = 0.1;
132
+ const importanceBoost = 1.0 + (importance - 0.5) * importanceWeight;
133
+ return Math.min(1.0, similarity * hopDecayFactor * anchorProximityBoost * importanceBoost);
134
+ }
135
+ }
136
+ //# sourceMappingURL=query-filter-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-filter-service.js","sourceRoot":"","sources":["../../../../../src/domains/anchor/services/anchor/query-filter-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 쿼리 필터 전략 구현
3
+ * Phase 3.5: searchLocal 메서드 분리 - 전략 패턴 적용
4
+ */
5
+ import type { IQueryFilterStrategy, NHopSearchResult } from './search-strategy-interfaces.js';
6
+ import type { QueryFilterService } from './query-filter-service.js';
7
+ /**
8
+ * 쿼리 필터 전략 구현
9
+ * Phase 2.4의 QueryFilterService를 래핑하여 전략 패턴 적용
10
+ */
11
+ export declare class QueryFilterStrategy implements IQueryFilterStrategy {
12
+ readonly name = "QueryFilterStrategy";
13
+ private queryFilterService;
14
+ constructor(queryFilterService: QueryFilterService);
15
+ /**
16
+ * 쿼리 기반 필터링 수행
17
+ */
18
+ filter(query: string, results: NHopSearchResult[], provider: string): Promise<NHopSearchResult[]>;
19
+ /**
20
+ * 전략 실행 (ISearchStrategy 인터페이스 구현)
21
+ */
22
+ execute(...args: any[]): Promise<NHopSearchResult[]>;
23
+ }
24
+ //# sourceMappingURL=query-filter-strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-filter-strategy.d.ts","sourceRoot":"","sources":["../../../../../src/domains/anchor/services/anchor/query-filter-strategy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAC9D,QAAQ,CAAC,IAAI,yBAAyB;IACtC,OAAO,CAAC,kBAAkB,CAAqB;gBAEnC,kBAAkB,EAAE,kBAAkB;IAOlD;;OAEG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,EAAE,EAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI9B;;OAEG;IACG,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAO3D"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 쿼리 필터 전략 구현
3
+ * Phase 3.5: searchLocal 메서드 분리 - 전략 패턴 적용
4
+ */
5
+ /**
6
+ * 쿼리 필터 전략 구현
7
+ * Phase 2.4의 QueryFilterService를 래핑하여 전략 패턴 적용
8
+ */
9
+ export class QueryFilterStrategy {
10
+ name = 'QueryFilterStrategy';
11
+ queryFilterService;
12
+ constructor(queryFilterService) {
13
+ if (!queryFilterService) {
14
+ throw new Error('QueryFilterService is required');
15
+ }
16
+ this.queryFilterService = queryFilterService;
17
+ }
18
+ /**
19
+ * 쿼리 기반 필터링 수행
20
+ */
21
+ async filter(query, results, provider) {
22
+ return this.queryFilterService.filterByQuery(query, results, provider);
23
+ }
24
+ /**
25
+ * 전략 실행 (ISearchStrategy 인터페이스 구현)
26
+ */
27
+ async execute(...args) {
28
+ return this.filter(args[0], // query
29
+ args[1], // results
30
+ args[2] // provider
31
+ );
32
+ }
33
+ }
34
+ //# sourceMappingURL=query-filter-strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-filter-strategy.js","sourceRoot":"","sources":["../../../../../src/domains/anchor/services/anchor/query-filter-strategy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,qBAAqB,CAAC;IAC9B,kBAAkB,CAAqB;IAE/C,YAAY,kBAAsC;QAChD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,KAAa,EACb,OAA2B,EAC3B,QAAgB;QAEhB,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,GAAG,IAAW;QAC1B,OAAO,IAAI,CAAC,MAAM,CAChB,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ;QACjB,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU;QACnB,IAAI,CAAC,CAAC,CAAC,CAAE,WAAW;SACrB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * 검색 전략 인터페이스 정의
3
+ * Phase 3.3: searchLocal 메서드 분리 - 전략 패턴 적용
4
+ */
5
+ import type { NHopSearchResult } from './n-hop-search-service.js';
6
+ import type { SearchOptions } from './anchor-interfaces.js';
7
+ /**
8
+ * N-hop 검색 결과 타입 (재export)
9
+ */
10
+ export type { NHopSearchResult } from './n-hop-search-service.js';
11
+ /**
12
+ * 검색 전략 인터페이스
13
+ * 각 검색 단계를 전략 패턴으로 캡슐화
14
+ */
15
+ export interface ISearchStrategy {
16
+ /**
17
+ * 전략 이름
18
+ */
19
+ readonly name: string;
20
+ /**
21
+ * 전략 실행
22
+ */
23
+ execute(...args: any[]): Promise<any>;
24
+ }
25
+ /**
26
+ * N-hop 검색 전략 인터페이스
27
+ */
28
+ export interface INHopSearchStrategy extends ISearchStrategy {
29
+ /**
30
+ * N-hop 검색 수행
31
+ */
32
+ search(anchorEmbedding: number[], provider: string, anchorMemoryId: string, threshold: number, maxHops: number, limit: number, useRelations?: boolean): Promise<NHopSearchResult[]>;
33
+ }
34
+ /**
35
+ * 쿼리 필터 전략 인터페이스
36
+ */
37
+ export interface IQueryFilterStrategy extends ISearchStrategy {
38
+ /**
39
+ * 쿼리 기반 필터링 수행
40
+ */
41
+ filter(query: string, results: NHopSearchResult[], provider: string): Promise<NHopSearchResult[]>;
42
+ }
43
+ /**
44
+ * Fallback 전략 인터페이스
45
+ */
46
+ export interface IFallbackStrategy extends ISearchStrategy {
47
+ /**
48
+ * Fallback 검색 수행
49
+ */
50
+ fallback(query: string, options: SearchOptions | undefined, startTime: number | undefined): Promise<any>;
51
+ }
52
+ //# sourceMappingURL=search-strategy-interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-strategy-interfaces.d.ts","sourceRoot":"","sources":["../../../../../src/domains/anchor/services/anchor/search-strategy-interfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;GAEG;AACH,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D;;OAEG;IACH,MAAM,CACJ,eAAe,EAAE,MAAM,EAAE,EACzB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D;;OAEG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,EAAE,EAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;OAEG;IACH,QAAQ,CACN,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 검색 전략 인터페이스 정의
3
+ * Phase 3.3: searchLocal 메서드 분리 - 전략 패턴 적용
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=search-strategy-interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-strategy-interfaces.js","sourceRoot":"","sources":["../../../../../src/domains/anchor/services/anchor/search-strategy-interfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * VectorSearchEngine 타입 정의
3
+ * Phase 4.8: 타입 안정성 개선 - 타입 단언 최소화
4
+ */
5
+ import type Database from 'better-sqlite3';
6
+ import type { VectorSearchEngine } from '../../../search/algorithms/vector-search-engine.js';
7
+ /**
8
+ * 초기화 가능한 VectorSearchEngine 타입
9
+ * initialize 메서드가 있는 경우를 위한 타입 가드
10
+ */
11
+ export interface InitializableVectorSearchEngine extends VectorSearchEngine {
12
+ initialize(db: Database.Database): void | Promise<void>;
13
+ }
14
+ /**
15
+ * VectorSearchEngine이 초기화 가능한지 확인하는 타입 가드
16
+ */
17
+ export declare function isInitializableVectorSearchEngine(engine: VectorSearchEngine): engine is InitializableVectorSearchEngine;
18
+ //# sourceMappingURL=vector-search-engine-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-search-engine-types.d.ts","sourceRoot":"","sources":["../../../../../src/domains/anchor/services/anchor/vector-search-engine-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AAE7F;;;GAGG;AACH,MAAM,WAAW,+BAAgC,SAAQ,kBAAkB;IACzE,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,kBAAkB,GACzB,MAAM,IAAI,+BAA+B,CAE3C"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * VectorSearchEngine 타입 정의
3
+ * Phase 4.8: 타입 안정성 개선 - 타입 단언 최소화
4
+ */
5
+ /**
6
+ * VectorSearchEngine이 초기화 가능한지 확인하는 타입 가드
7
+ */
8
+ export function isInitializableVectorSearchEngine(engine) {
9
+ return typeof engine.initialize === 'function';
10
+ }
11
+ //# sourceMappingURL=vector-search-engine-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-search-engine-types.js","sourceRoot":"","sources":["../../../../../src/domains/anchor/services/anchor/vector-search-engine-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAA0B;IAE1B,OAAO,OAAQ,MAA0C,CAAC,UAAU,KAAK,UAAU,CAAC;AACtF,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Core Memory 전용 데이터베이스 인터페이스
3
+ * 비동기 Promise 기반 인터페이스로 정의
4
+ * 기존 DatabaseConnection 인터페이스와 분리하여 CoreMemory 전용으로 사용
5
+ */
6
+ /**
7
+ * Core Memory 전용 PreparedStatement 인터페이스 (비동기)
8
+ */
9
+ export interface CoreMemoryPreparedStatement {
10
+ /**
11
+ * 모든 결과 행을 반환
12
+ */
13
+ all(...params: any[]): Promise<any[]>;
14
+ /**
15
+ * 첫 번째 결과 행을 반환
16
+ */
17
+ get(...params: any[]): Promise<any>;
18
+ /**
19
+ * 쿼리를 실행하고 변경된 행 수와 마지막 삽입된 행 ID를 반환
20
+ */
21
+ run(...params: any[]): Promise<{
22
+ changes: number;
23
+ lastInsertRowid: number;
24
+ }>;
25
+ }
26
+ /**
27
+ * Core Memory 전용 DatabaseConnection 인터페이스 (비동기)
28
+ */
29
+ export interface CoreMemoryDatabaseConnection {
30
+ /**
31
+ * SQL 문을 준비하여 PreparedStatement를 반환
32
+ */
33
+ prepare(sql: string): Promise<CoreMemoryPreparedStatement>;
34
+ /**
35
+ * SQL 문을 실행 (결과 반환 없음)
36
+ */
37
+ exec(sql: string): Promise<void>;
38
+ /**
39
+ * 데이터베이스 연결을 닫음
40
+ */
41
+ close(): Promise<void>;
42
+ /**
43
+ * 데이터베이스 연결이 열려있는지 확인
44
+ */
45
+ isOpen(): Promise<boolean>;
46
+ }
47
+ //# sourceMappingURL=core-memory-database.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-memory-database.interface.d.ts","sourceRoot":"","sources":["../../../../src/domains/memory/repositories/core-memory-database.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEtC;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpC;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAE3D;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5B"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Core Memory 전용 데이터베이스 인터페이스
3
+ * 비동기 Promise 기반 인터페이스로 정의
4
+ * 기존 DatabaseConnection 인터페이스와 분리하여 CoreMemory 전용으로 사용
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=core-memory-database.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-memory-database.interface.js","sourceRoot":"","sources":["../../../../src/domains/memory/repositories/core-memory-database.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,81 +1,11 @@
1
1
  /**
2
2
  * Core Memory Repository
3
- * Core Memory 테이블에 대한 데이터베이스 접근 로직
3
+ *
4
+ * @deprecated 이 파일은 하위 호환성을 위해 유지됩니다.
5
+ * 새로운 코드는 core-memory-repository.interface.ts의 인터페이스를 사용하고
6
+ * Factory 패턴(createCoreMemoryRepository)을 통해 구현체를 생성하세요.
7
+ *
8
+ * 이 파일은 인터페이스와 타입만 re-export합니다.
4
9
  */
5
- import Database from 'better-sqlite3';
6
- export interface CoreMemoryRecord {
7
- core_id: string;
8
- agent_id: string;
9
- key: string;
10
- value: string;
11
- always_load: boolean;
12
- origin_source?: string | null;
13
- created_at: string;
14
- updated_at: string;
15
- }
16
- export interface CreateCoreMemoryInput {
17
- core_id: string;
18
- agent_id?: string;
19
- key: string;
20
- value: string;
21
- always_load?: boolean;
22
- origin_source?: string | null;
23
- }
24
- export interface UpdateCoreMemoryInput {
25
- value?: string;
26
- always_load?: boolean;
27
- origin_source?: string | null;
28
- }
29
- export declare class CoreMemoryRepository {
30
- private db;
31
- constructor(db: Database.Database);
32
- /**
33
- * Core Memory 생성
34
- */
35
- create(input: CreateCoreMemoryInput): Promise<CoreMemoryRecord>;
36
- /**
37
- * ID로 Core Memory 조회
38
- */
39
- findById(core_id: string): Promise<CoreMemoryRecord | null>;
40
- /**
41
- * agent_id와 key로 Core Memory 조회
42
- */
43
- findByKey(agent_id: string, key: string): Promise<CoreMemoryRecord | null>;
44
- /**
45
- * agent_id로 모든 Core Memory 조회
46
- */
47
- findByAgentId(agent_id: string): Promise<CoreMemoryRecord[]>;
48
- /**
49
- * always_load=true인 Core Memory 조회
50
- */
51
- findAlwaysLoad(agent_id?: string): Promise<CoreMemoryRecord[]>;
52
- /**
53
- * Core Memory 업데이트
54
- */
55
- update(core_id: string, input: UpdateCoreMemoryInput): Promise<CoreMemoryRecord | null>;
56
- /**
57
- * agent_id와 key로 Core Memory 업데이트
58
- */
59
- updateByKey(agent_id: string, key: string, input: UpdateCoreMemoryInput): Promise<CoreMemoryRecord | null>;
60
- /**
61
- * Core Memory 삭제
62
- */
63
- delete(core_id: string): Promise<boolean>;
64
- /**
65
- * agent_id와 key로 Core Memory 삭제
66
- */
67
- deleteByKey(agent_id: string, key: string): Promise<boolean>;
68
- /**
69
- * agent_id로 모든 Core Memory 삭제
70
- */
71
- deleteByAgentId(agent_id: string): Promise<number>;
72
- /**
73
- * 모든 Core Memory 조회 (관리용)
74
- */
75
- findAll(): Promise<CoreMemoryRecord[]>;
76
- /**
77
- * Core Memory 개수 조회
78
- */
79
- count(agent_id?: string): Promise<number>;
80
- }
10
+ export type { CoreMemoryRepository, CoreMemoryRecord, CreateCoreMemoryInput, UpdateCoreMemoryInput } from './core-memory-repository.interface.js';
81
11
  //# sourceMappingURL=core-memory-repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-memory-repository.d.ts","sourceRoot":"","sources":["../../../../src/domains/memory/repositories/core-memory-repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,EAAE,CAAoB;gBAElB,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIjC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAsBrE;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAyBjE;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAyBhF;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsBlE;;OAEG;IACG,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAyCpE;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAkC7F;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAkCnC;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/C;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlE;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASxD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAqB5C;;OAEG;IACG,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWhD"}
1
+ {"version":3,"file":"core-memory-repository.d.ts","sourceRoot":"","sources":["../../../../src/domains/memory/repositories/core-memory-repository.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,uCAAuC,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Core Memory Repository Interface
3
+ * Core Memory 테이블에 대한 데이터베이스 접근 인터페이스 정의
4
+ */
5
+ /**
6
+ * Core Memory 레코드 타입
7
+ */
8
+ export interface CoreMemoryRecord {
9
+ core_id: string;
10
+ agent_id: string;
11
+ key: string;
12
+ value: string;
13
+ always_load: boolean;
14
+ origin_source?: string | null;
15
+ version: number;
16
+ created_at: string;
17
+ updated_at: string;
18
+ }
19
+ /**
20
+ * Core Memory 생성 입력 타입
21
+ */
22
+ export interface CreateCoreMemoryInput {
23
+ core_id: string;
24
+ agent_id?: string;
25
+ key: string;
26
+ value: string;
27
+ always_load?: boolean;
28
+ origin_source?: string | null;
29
+ }
30
+ /**
31
+ * Core Memory 업데이트 입력 타입
32
+ */
33
+ export interface UpdateCoreMemoryInput {
34
+ value?: string;
35
+ always_load?: boolean;
36
+ origin_source?: string | null;
37
+ }
38
+ /**
39
+ * Core Memory Repository 인터페이스
40
+ * 모든 메서드는 비동기 Promise를 반환합니다.
41
+ */
42
+ export interface CoreMemoryRepository {
43
+ /**
44
+ * Core Memory 생성
45
+ */
46
+ create(input: CreateCoreMemoryInput): Promise<CoreMemoryRecord>;
47
+ /**
48
+ * ID로 Core Memory 조회
49
+ */
50
+ findById(core_id: string): Promise<CoreMemoryRecord | null>;
51
+ /**
52
+ * agent_id와 key로 Core Memory 조회
53
+ */
54
+ findByKey(agent_id: string, key: string): Promise<CoreMemoryRecord | null>;
55
+ /**
56
+ * agent_id로 모든 Core Memory 조회
57
+ */
58
+ findByAgentId(agent_id: string): Promise<CoreMemoryRecord[]>;
59
+ /**
60
+ * always_load=true인 Core Memory 조회
61
+ */
62
+ findAlwaysLoad(agent_id?: string): Promise<CoreMemoryRecord[]>;
63
+ /**
64
+ * Core Memory 업데이트
65
+ */
66
+ update(core_id: string, input: UpdateCoreMemoryInput): Promise<CoreMemoryRecord | null>;
67
+ /**
68
+ * agent_id와 key로 Core Memory 업데이트
69
+ */
70
+ updateByKey(agent_id: string, key: string, input: UpdateCoreMemoryInput): Promise<CoreMemoryRecord | null>;
71
+ /**
72
+ * Core Memory 삭제
73
+ */
74
+ delete(core_id: string): Promise<boolean>;
75
+ /**
76
+ * agent_id와 key로 Core Memory 삭제
77
+ */
78
+ deleteByKey(agent_id: string, key: string): Promise<boolean>;
79
+ /**
80
+ * agent_id로 모든 Core Memory 삭제
81
+ */
82
+ deleteByAgentId(agent_id: string): Promise<number>;
83
+ /**
84
+ * 모든 Core Memory 조회 (관리용)
85
+ */
86
+ findAll(): Promise<CoreMemoryRecord[]>;
87
+ /**
88
+ * Core Memory 개수 조회
89
+ */
90
+ count(agent_id?: string): Promise<number>;
91
+ }
92
+ //# sourceMappingURL=core-memory-repository.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-memory-repository.interface.d.ts","sourceRoot":"","sources":["../../../../src/domains/memory/repositories/core-memory-repository.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEhE;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAE3E;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAE7D;;OAEG;IACH,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAE/D;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAExF;;OAEG;IACH,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAEpC;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1C;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEvC;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Core Memory Repository Interface
3
+ * Core Memory 테이블에 대한 데이터베이스 접근 인터페이스 정의
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=core-memory-repository.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-memory-repository.interface.js","sourceRoot":"","sources":["../../../../src/domains/memory/repositories/core-memory-repository.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG"}