memento-mcp-server 1.14.0-b → 1.15.0-c
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/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts +18 -0
- package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts.map +1 -0
- package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js +346 -0
- package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js.map +1 -0
- package/dist/domains/memory/tools/recall-tool.d.ts +177 -0
- package/dist/domains/memory/tools/recall-tool.d.ts.map +1 -1
- package/dist/domains/memory/tools/recall-tool.js +329 -3
- package/dist/domains/memory/tools/recall-tool.js.map +1 -1
- package/dist/domains/memory/tools/remember-tool.d.ts.map +1 -1
- package/dist/domains/memory/tools/remember-tool.js +182 -1
- package/dist/domains/memory/tools/remember-tool.js.map +1 -1
- package/dist/infrastructure/database/database/migration/migrations/005-relation-engine-schema.sql +7 -7
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts +65 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts.map +1 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js +250 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js.map +1 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.sql +86 -0
- package/dist/infrastructure/logging/triple-extraction-logger.d.ts +92 -0
- package/dist/infrastructure/logging/triple-extraction-logger.d.ts.map +1 -0
- package/dist/infrastructure/logging/triple-extraction-logger.js +194 -0
- package/dist/infrastructure/logging/triple-extraction-logger.js.map +1 -0
- package/dist/infrastructure/scheduler/batch-scheduler.d.ts +57 -0
- package/dist/infrastructure/scheduler/batch-scheduler.d.ts.map +1 -1
- package/dist/infrastructure/scheduler/batch-scheduler.js +220 -0
- package/dist/infrastructure/scheduler/batch-scheduler.js.map +1 -1
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts +194 -0
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts.map +1 -0
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js +639 -0
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.d.ts +64 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.d.ts.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.js +113 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.js.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.d.ts +257 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.d.ts.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.js +696 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.js.map +1 -0
- package/dist/services/triple-extraction/entity-linker.d.ts +55 -0
- package/dist/services/triple-extraction/entity-linker.d.ts.map +1 -0
- package/dist/services/triple-extraction/entity-linker.js +154 -0
- package/dist/services/triple-extraction/entity-linker.js.map +1 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.d.ts +63 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.d.ts.map +1 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.js +166 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.js.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-service.d.ts +181 -0
- package/dist/services/triple-extraction/triple-extraction-service.d.ts.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-service.js +907 -0
- package/dist/services/triple-extraction/triple-extraction-service.js.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.d.ts +74 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.d.ts.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.js +146 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.js.map +1 -0
- package/dist/shared/types/index.d.ts +1 -0
- package/dist/shared/types/index.d.ts.map +1 -1
- package/dist/shared/types/index.js.map +1 -1
- package/dist/shared/types/triple-extraction.d.ts +99 -0
- package/dist/shared/types/triple-extraction.d.ts.map +1 -0
- package/dist/shared/types/triple-extraction.js +6 -0
- package/dist/shared/types/triple-extraction.js.map +1 -0
- package/dist/shared/utils/pii-masker.d.ts +67 -0
- package/dist/shared/utils/pii-masker.d.ts.map +1 -0
- package/dist/shared/utils/pii-masker.js +205 -0
- package/dist/shared/utils/pii-masker.js.map +1 -0
- package/dist/shared/utils/prompt-template-loader.d.ts +42 -0
- package/dist/shared/utils/prompt-template-loader.d.ts.map +1 -0
- package/dist/shared/utils/prompt-template-loader.js +92 -0
- package/dist/shared/utils/prompt-template-loader.js.map +1 -0
- package/dist/shared/utils/triple-cache.d.ts +90 -0
- package/dist/shared/utils/triple-cache.d.ts.map +1 -0
- package/dist/shared/utils/triple-cache.js +124 -0
- package/dist/shared/utils/triple-cache.js.map +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.d.ts +1 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Triple 추출 배치 작업
|
|
3
|
+
*
|
|
4
|
+
* 미처리 또는 실패한 Episodic Memory에 대해 Triple 추출을 수행하는 배치 작업입니다.
|
|
5
|
+
*
|
|
6
|
+
* 주요 기능:
|
|
7
|
+
* - 미처리 Episodic Memory 조회
|
|
8
|
+
* - Triple 추출 및 Semantic Memory 생성
|
|
9
|
+
* - 재시도 정책 적용 (최대 3회, 지수 백오프: 1일, 2일, 4일)
|
|
10
|
+
* - 상태 업데이트 (성공/실패/abandoned)
|
|
11
|
+
* - 로깅 및 통계 수집
|
|
12
|
+
*
|
|
13
|
+
* 재시도 정책:
|
|
14
|
+
* - 최대 시도 횟수: 3회 (설정 가능)
|
|
15
|
+
* - 지수 백오프: 1일, 2일, 4일 후 재시도
|
|
16
|
+
* - 즉각 재시도 금지: LLM 호출 실패 시 바로 재시도하지 않음 (비용 절감)
|
|
17
|
+
* - 지연 재시도: 배치 작업에서 실패한 항목을 다음 배치에서 재시도
|
|
18
|
+
* - 최대 시도 횟수 초과 시: abandoned 상태로 설정하여 재시도 중단
|
|
19
|
+
*/
|
|
20
|
+
import Database from 'better-sqlite3';
|
|
21
|
+
import { TripleExtractionService } from '../../../services/triple-extraction/triple-extraction-service.js';
|
|
22
|
+
import { SemanticMemoryUpdateService } from '../../../services/semantic-memory/semantic-memory-update-service.js';
|
|
23
|
+
import type { BatchJobResult } from '../batch-scheduler.js';
|
|
24
|
+
/**
|
|
25
|
+
* Triple 추출 배치 작업 설정
|
|
26
|
+
*/
|
|
27
|
+
export interface TripleExtractionBatchJobConfig {
|
|
28
|
+
/**
|
|
29
|
+
* 배치 크기 (한 번에 처리할 최대 메모리 수)
|
|
30
|
+
* 기본값: 10
|
|
31
|
+
*/
|
|
32
|
+
batchSize?: number;
|
|
33
|
+
/**
|
|
34
|
+
* 작업 타임아웃 (밀리초)
|
|
35
|
+
* 기본값: 30000 (30초)
|
|
36
|
+
*/
|
|
37
|
+
timeout?: number;
|
|
38
|
+
/**
|
|
39
|
+
* 최대 재시도 횟수
|
|
40
|
+
* 기본값: 3
|
|
41
|
+
*/
|
|
42
|
+
maxRetries?: number;
|
|
43
|
+
/**
|
|
44
|
+
* 재시도 백오프 간격 (일 단위)
|
|
45
|
+
* 기본값: [1, 2, 4] (1일, 2일, 4일)
|
|
46
|
+
*/
|
|
47
|
+
retryBackoffDays?: number[];
|
|
48
|
+
/**
|
|
49
|
+
* SQLite WAL 환경 고려: 청크 크기 (작은 단위로 나누어 처리하여 Lock 충돌 방지)
|
|
50
|
+
* 기본값: 5 (한 번에 5개씩 처리)
|
|
51
|
+
*/
|
|
52
|
+
chunkSize?: number;
|
|
53
|
+
/**
|
|
54
|
+
* SQLite WAL 환경 고려: 청크 처리 사이 지연 시간 (밀리초)
|
|
55
|
+
* 기본값: 100 (0.1초)
|
|
56
|
+
*/
|
|
57
|
+
chunkDelayMs?: number;
|
|
58
|
+
/**
|
|
59
|
+
* 병렬성 제어 (동시 실행 배치 수)
|
|
60
|
+
* 기본값: 1 (싱글톤 배치 작업)
|
|
61
|
+
*/
|
|
62
|
+
parallelism?: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Triple 추출 배치 작업 결과
|
|
66
|
+
*/
|
|
67
|
+
export interface TripleExtractionBatchResult extends BatchJobResult {
|
|
68
|
+
details: {
|
|
69
|
+
processed: number;
|
|
70
|
+
success: number;
|
|
71
|
+
failed: number;
|
|
72
|
+
skipped: number;
|
|
73
|
+
semanticMemoriesCreated: number;
|
|
74
|
+
semanticMemoriesUpdated: number;
|
|
75
|
+
retryCounts: Map<string, number>;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* 타임아웃 발생 여부
|
|
79
|
+
* 타임아웃이 발생하여 작업이 중단된 경우 true
|
|
80
|
+
*/
|
|
81
|
+
timeoutOccurred?: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Triple 추출 배치 작업 클래스
|
|
85
|
+
*/
|
|
86
|
+
export declare class TripleExtractionBatchJob {
|
|
87
|
+
private config;
|
|
88
|
+
private tripleExtractionService;
|
|
89
|
+
private semanticMemoryUpdateService;
|
|
90
|
+
constructor(config?: TripleExtractionBatchJobConfig, dependencies?: {
|
|
91
|
+
tripleExtractionService?: TripleExtractionService;
|
|
92
|
+
semanticMemoryUpdateService?: SemanticMemoryUpdateService;
|
|
93
|
+
});
|
|
94
|
+
/**
|
|
95
|
+
* 배치 작업 실행
|
|
96
|
+
*
|
|
97
|
+
* PRD 6.2 배치 처리 최적화:
|
|
98
|
+
* - 배치 크기: 10개씩 처리 (설정 가능)
|
|
99
|
+
* - 타임아웃: 배치당 최대 30초 (설정 가능)
|
|
100
|
+
* - 병렬성 제어: Parallelism = 1 (동시에 하나의 배치만 실행)
|
|
101
|
+
*
|
|
102
|
+
* @param db 데이터베이스 연결
|
|
103
|
+
* @returns 배치 작업 결과
|
|
104
|
+
*/
|
|
105
|
+
execute(db: Database.Database): Promise<TripleExtractionBatchResult>;
|
|
106
|
+
/**
|
|
107
|
+
* 메모리 배열을 청크로 분할
|
|
108
|
+
*
|
|
109
|
+
* SQLite WAL 환경 고려: 작은 단위로 나누어 처리하여 Lock 충돌 방지
|
|
110
|
+
*
|
|
111
|
+
* @param memories 메모리 배열
|
|
112
|
+
* @param chunkSize 청크 크기
|
|
113
|
+
* @returns 청크 배열
|
|
114
|
+
*/
|
|
115
|
+
private splitIntoChunks;
|
|
116
|
+
/**
|
|
117
|
+
* 청크 단위 처리
|
|
118
|
+
*
|
|
119
|
+
* SQLite WAL 환경 고려: 작은 트랜잭션으로 처리하여 Lock 충돌 방지
|
|
120
|
+
* 각 메모리 처리는 개별적으로 처리되며, SQLITE_BUSY 오류 발생 시 재시도
|
|
121
|
+
*
|
|
122
|
+
* PRD 6.2 배치 처리 최적화:
|
|
123
|
+
* - 타임아웃 체크: 배치당 최대 30초
|
|
124
|
+
* - 병렬성 제어: 순차 처리 (parallelism=1)
|
|
125
|
+
*
|
|
126
|
+
* @param db 데이터베이스 연결
|
|
127
|
+
* @param chunk 청크 (메모리 배열)
|
|
128
|
+
* @param overallResult 전체 결과 객체 (로깅용)
|
|
129
|
+
* @param timeoutDeadline 타임아웃 데드라인 (타임스탬프)
|
|
130
|
+
* @returns 청크 처리 결과
|
|
131
|
+
*/
|
|
132
|
+
private processChunk;
|
|
133
|
+
/**
|
|
134
|
+
* 배치 작업 대상 조회
|
|
135
|
+
*
|
|
136
|
+
* @param db 데이터베이스 연결
|
|
137
|
+
* @param limit 최대 조회 개수
|
|
138
|
+
* @returns 대상 Episodic Memory 목록 (재시도 정책 적용)
|
|
139
|
+
*/
|
|
140
|
+
private getTargetMemories;
|
|
141
|
+
/**
|
|
142
|
+
* 재시도 정책 확인
|
|
143
|
+
*
|
|
144
|
+
* @param memory Episodic Memory (triple_extraction_metadata 포함)
|
|
145
|
+
* @param now 현재 시간
|
|
146
|
+
* @returns 재시도 가능 여부
|
|
147
|
+
*/
|
|
148
|
+
private shouldRetry;
|
|
149
|
+
/**
|
|
150
|
+
* 재시도 횟수 조회
|
|
151
|
+
*
|
|
152
|
+
* @param memory Episodic Memory (triple_extraction_metadata 포함)
|
|
153
|
+
* @returns 재시도 횟수
|
|
154
|
+
*/
|
|
155
|
+
private getRetryCount;
|
|
156
|
+
/**
|
|
157
|
+
* 메모리 상태 업데이트
|
|
158
|
+
*
|
|
159
|
+
* PRD 1.4 재시도 종료 조건 및 필드 조합 규칙에 따라 상태를 업데이트합니다.
|
|
160
|
+
*
|
|
161
|
+
* 상태 전이 규칙:
|
|
162
|
+
* - 성공 시: triple_extracted=true, triple_extracted_status='success', 이전 실패 기록 초기화
|
|
163
|
+
* - 최대 시도 횟수 초과 시: triple_extracted=false, triple_extracted_status='abandoned', 재시도 중단
|
|
164
|
+
* - 재시도 가능 시: triple_extracted=false, triple_extracted_status='failed', 재시도 정보 저장
|
|
165
|
+
*
|
|
166
|
+
* 필드 조합 규칙 (PRD 1.4):
|
|
167
|
+
* | triple_extracted | triple_extracted_status | 의미 |
|
|
168
|
+
* | ---------------- | ----------------------- | ---- |
|
|
169
|
+
* | NULL | NULL | 미처리 |
|
|
170
|
+
* | true | 'success' | 성공 |
|
|
171
|
+
* | false | 'failed' | 실패 (재시도 가능) |
|
|
172
|
+
* | false | 'abandoned' | 포기 (수동 재시도 필요) |
|
|
173
|
+
* | false | NULL | 미처리 또는 초기 상태 |
|
|
174
|
+
*
|
|
175
|
+
* 이 메서드는 필드 조합 규칙을 준수하여 triple_extracted와 triple_extracted_status를 동기화합니다.
|
|
176
|
+
*
|
|
177
|
+
* @param db 데이터베이스 연결
|
|
178
|
+
* @param memoryId 메모리 ID
|
|
179
|
+
* @param status 상태 ('success' | 'failed' | 'abandoned')
|
|
180
|
+
* @param metadata 메타데이터
|
|
181
|
+
*/
|
|
182
|
+
private updateMemoryStatus;
|
|
183
|
+
/**
|
|
184
|
+
* 평균 Confidence 계산
|
|
185
|
+
*
|
|
186
|
+
* memory_relation 테이블에서 해당 Episodic Memory에서 생성된 모든 관계의 confidence 값을 수집하여 평균 계산
|
|
187
|
+
*
|
|
188
|
+
* @param db 데이터베이스 연결
|
|
189
|
+
* @param episodicMemoryId Episodic Memory ID
|
|
190
|
+
* @returns 평균 Confidence (0.0~1.0), 관계가 없으면 null
|
|
191
|
+
*/
|
|
192
|
+
private calculateAverageConfidence;
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=triple-extraction-batch-job.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triple-extraction-batch-job.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/scheduler/jobs/triple-extraction-batch-job.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kEAAkE,CAAC;AAC3G,OAAO,EAAE,2BAA2B,EAAE,MAAM,qEAAqE,CAAC;AAElH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IACjE,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,uBAAuB,EAAE,MAAM,CAAC;QAChC,uBAAuB,EAAE,MAAM,CAAC;QAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;IACF;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,uBAAuB,CAA0B;IACzD,OAAO,CAAC,2BAA2B,CAA4C;gBAG7E,MAAM,CAAC,EAAE,8BAA8B,EACvC,YAAY,CAAC,EAAE;QACb,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;QAClD,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;KAC3D;IAiBH;;;;;;;;;;OAUG;IACG,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAsP1E;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;;;;;;;;;;;;OAeG;YACW,YAAY;IA8K1B;;;;;;OAMG;YACW,iBAAiB;IA8D/B;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAiDnB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAoBrB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;YACW,kBAAkB;IA4ChC;;;;;;;;OAQG;YACW,0BAA0B;CAmCzC"}
|