memento-mcp-server 1.10.1 → 1.11.0
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.
- package/dist/algorithms/hybrid-search-engine.d.ts +6 -1
- package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -1
- package/dist/algorithms/hybrid-search-engine.js +57 -5
- package/dist/algorithms/hybrid-search-engine.js.map +1 -1
- package/dist/algorithms/vector-search-engine.d.ts +6 -0
- package/dist/algorithms/vector-search-engine.d.ts.map +1 -1
- package/dist/algorithms/vector-search-engine.js +49 -6
- package/dist/algorithms/vector-search-engine.js.map +1 -1
- package/dist/database/migration/migrations/004-anchor-table.d.ts +51 -0
- package/dist/database/migration/migrations/004-anchor-table.d.ts.map +1 -0
- package/dist/database/migration/migrations/004-anchor-table.js +198 -0
- package/dist/database/migration/migrations/004-anchor-table.js.map +1 -0
- package/dist/server/bootstrap.d.ts +2 -0
- package/dist/server/bootstrap.d.ts.map +1 -1
- package/dist/server/bootstrap.js +12 -1
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/http-server.js +337 -4
- package/dist/server/http-server.js.map +1 -1
- package/dist/server/index.js +3 -2
- package/dist/server/index.js.map +1 -1
- package/dist/services/anchor-manager.d.ts +294 -0
- package/dist/services/anchor-manager.d.ts.map +1 -0
- package/dist/services/anchor-manager.js +1270 -0
- package/dist/services/anchor-manager.js.map +1 -0
- package/dist/services/memory-embedding-service.d.ts +1 -0
- package/dist/services/memory-embedding-service.d.ts.map +1 -1
- package/dist/services/memory-embedding-service.js +15 -6
- package/dist/services/memory-embedding-service.js.map +1 -1
- package/dist/services/memory-neighbor-service.d.ts.map +1 -1
- package/dist/services/memory-neighbor-service.js +4 -2
- package/dist/services/memory-neighbor-service.js.map +1 -1
- package/dist/services/minilm-embedding-service.d.ts +1 -0
- package/dist/services/minilm-embedding-service.d.ts.map +1 -1
- package/dist/services/minilm-embedding-service.js +45 -4
- package/dist/services/minilm-embedding-service.js.map +1 -1
- package/dist/services/vector-compatibility-service.js +1 -1
- package/dist/services/vector-compatibility-service.js.map +1 -1
- package/dist/tools/clear-anchor-tool.d.ts +10 -0
- package/dist/tools/clear-anchor-tool.d.ts.map +1 -0
- package/dist/tools/clear-anchor-tool.js +64 -0
- package/dist/tools/clear-anchor-tool.js.map +1 -0
- package/dist/tools/get-anchor-tool.d.ts +10 -0
- package/dist/tools/get-anchor-tool.d.ts.map +1 -0
- package/dist/tools/get-anchor-tool.js +91 -0
- package/dist/tools/get-anchor-tool.js.map +1 -0
- package/dist/tools/index.d.ts +6 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +15 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/restore-anchors-tool.d.ts +11 -0
- package/dist/tools/restore-anchors-tool.d.ts.map +1 -0
- package/dist/tools/restore-anchors-tool.js +117 -0
- package/dist/tools/restore-anchors-tool.js.map +1 -0
- package/dist/tools/search-local-tool.d.ts +10 -0
- package/dist/tools/search-local-tool.d.ts.map +1 -0
- package/dist/tools/search-local-tool.js +90 -0
- package/dist/tools/search-local-tool.js.map +1 -0
- package/dist/tools/set-anchor-tool.d.ts +10 -0
- package/dist/tools/set-anchor-tool.d.ts.map +1 -0
- package/dist/tools/set-anchor-tool.js +70 -0
- package/dist/tools/set-anchor-tool.js.map +1 -0
- package/dist/tools/types.d.ts +2 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/utils/write-coalescing.d.ts +3 -1
- package/dist/utils/write-coalescing.d.ts.map +1 -1
- package/dist/utils/write-coalescing.js +58 -6
- package/dist/utils/write-coalescing.js.map +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,7 @@ export class WriteCoalescingManager {
|
|
|
15
15
|
flushInterval; // 밀리초
|
|
16
16
|
flushTimer = null;
|
|
17
17
|
isFlushing = false;
|
|
18
|
+
isDestroyed = false; // destroy 호출 여부 추적
|
|
18
19
|
flushCallback;
|
|
19
20
|
/**
|
|
20
21
|
* @param flushIntervalMs flush 간격 (밀리초, 기본값: 1000ms = 1초)
|
|
@@ -31,6 +32,11 @@ export class WriteCoalescingManager {
|
|
|
31
32
|
* @param write 쓰기 작업
|
|
32
33
|
*/
|
|
33
34
|
addWrite(write) {
|
|
35
|
+
// destroy된 후에는 쓰기 추가 불가
|
|
36
|
+
if (this.isDestroyed) {
|
|
37
|
+
console.warn('WriteCoalescingManager가 destroy된 후에는 쓰기를 추가할 수 없습니다.');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
34
40
|
const existing = this.buffer.get(write.memoryId);
|
|
35
41
|
if (existing) {
|
|
36
42
|
// 기존 항목과 병합 (최신 값으로 덮어쓰기)
|
|
@@ -44,7 +50,7 @@ export class WriteCoalescingManager {
|
|
|
44
50
|
this.buffer.set(write.memoryId, { ...write });
|
|
45
51
|
}
|
|
46
52
|
// 첫 번째 항목이 추가되면 타이머 시작
|
|
47
|
-
if (this.buffer.size === 1 && !this.flushTimer) {
|
|
53
|
+
if (this.buffer.size === 1 && !this.flushTimer && !this.isDestroyed) {
|
|
48
54
|
this.startFlushTimer();
|
|
49
55
|
}
|
|
50
56
|
}
|
|
@@ -62,12 +68,29 @@ export class WriteCoalescingManager {
|
|
|
62
68
|
* Flush 타이머 시작
|
|
63
69
|
*/
|
|
64
70
|
startFlushTimer() {
|
|
65
|
-
if (this.flushTimer) {
|
|
66
|
-
return; // 이미 실행
|
|
71
|
+
if (this.flushTimer || this.isDestroyed) {
|
|
72
|
+
return; // 이미 실행 중이거나 destroy됨
|
|
67
73
|
}
|
|
68
|
-
this.flushTimer = setTimeout(() => {
|
|
74
|
+
this.flushTimer = setTimeout(async () => {
|
|
69
75
|
this.flushTimer = null;
|
|
70
|
-
|
|
76
|
+
// destroy가 호출되었거나 버퍼가 비어있으면 종료
|
|
77
|
+
if (this.isDestroyed || this.buffer.size === 0) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
// flush 실행 (destroy 중이 아닐 때만)
|
|
81
|
+
if (!this.isFlushing) {
|
|
82
|
+
try {
|
|
83
|
+
await this.flush();
|
|
84
|
+
// flush 후 버퍼에 항목이 있고 destroy되지 않았으면 타이머 재시작
|
|
85
|
+
if (this.buffer.size > 0 && !this.flushTimer && !this.isDestroyed) {
|
|
86
|
+
this.startFlushTimer();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
// flush 실패는 무시 (이미 로깅됨)
|
|
91
|
+
console.error('Write coalescing timer flush 실패:', error);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
71
94
|
}, this.flushInterval);
|
|
72
95
|
}
|
|
73
96
|
/**
|
|
@@ -120,12 +143,41 @@ export class WriteCoalescingManager {
|
|
|
120
143
|
}
|
|
121
144
|
/**
|
|
122
145
|
* 모든 타이머 정리 및 버퍼 초기화
|
|
146
|
+
* 진행 중인 flush 작업이 있으면 완료될 때까지 대기합니다.
|
|
123
147
|
*/
|
|
124
|
-
destroy() {
|
|
148
|
+
async destroy() {
|
|
149
|
+
// 중복 호출 방지
|
|
150
|
+
if (this.isDestroyed) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
this.isDestroyed = true;
|
|
154
|
+
// 타이머 정리
|
|
125
155
|
if (this.flushTimer) {
|
|
126
156
|
clearTimeout(this.flushTimer);
|
|
127
157
|
this.flushTimer = null;
|
|
128
158
|
}
|
|
159
|
+
// 진행 중인 flush 작업이 있으면 완료될 때까지 대기
|
|
160
|
+
// 최대 1초 대기 (무한 대기 방지)
|
|
161
|
+
const maxWaitTime = 1000;
|
|
162
|
+
const startTime = Date.now();
|
|
163
|
+
while (this.isFlushing && (Date.now() - startTime) < maxWaitTime) {
|
|
164
|
+
await new Promise(resolve => setTimeout(resolve, 10));
|
|
165
|
+
}
|
|
166
|
+
// 남은 버퍼 flush (동기적으로)
|
|
167
|
+
if (this.buffer.size > 0 && !this.isFlushing) {
|
|
168
|
+
try {
|
|
169
|
+
// 동기 flush (타이머 없이)
|
|
170
|
+
const writes = Array.from(this.buffer.values());
|
|
171
|
+
this.buffer.clear();
|
|
172
|
+
if (writes.length > 0) {
|
|
173
|
+
await this.flushCallback(writes);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
console.error('Write coalescing destroy 시 flush 실패:', error);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// 버퍼 초기화
|
|
129
181
|
this.buffer.clear();
|
|
130
182
|
this.isFlushing = false;
|
|
131
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-coalescing.js","sourceRoot":"","sources":["../../src/utils/write-coalescing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmBH;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IACzB,MAAM,GAAgC,IAAI,GAAG,EAAE,CAAC;IAChD,aAAa,CAAS,CAAC,MAAM;IAC7B,UAAU,GAA0B,IAAI,CAAC;IACzC,UAAU,GAAY,KAAK,CAAC;IAC5B,aAAa,CAA8C;IAEnE;;;OAGG;IACH,YACE,kBAA0B,IAAI,EAC9B,aAA0D;QAE1D,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,KAAqB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,QAAQ,EAAE,CAAC;YACb,0BAA0B;YAC1B,QAAQ,CAAC,MAAM,GAAG;gBAChB,GAAG,QAAQ,CAAC,MAAM;gBAClB,GAAG,KAAK,CAAC,MAAM;aAChB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,UAAU;YACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,uBAAuB;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"write-coalescing.js","sourceRoot":"","sources":["../../src/utils/write-coalescing.ts"],"names":[],"mappings":"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"}
|