memento-mcp-server 1.14.0 → 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.
Files changed (77) hide show
  1. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts +18 -0
  2. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts.map +1 -0
  3. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js +346 -0
  4. package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js.map +1 -0
  5. package/dist/domains/memory/tools/remember-tool.d.ts.map +1 -1
  6. package/dist/domains/memory/tools/remember-tool.js +182 -1
  7. package/dist/domains/memory/tools/remember-tool.js.map +1 -1
  8. package/dist/infrastructure/database/database/migration/migrations/005-relation-engine-schema.sql +7 -7
  9. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts +65 -0
  10. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts.map +1 -0
  11. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js +250 -0
  12. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js.map +1 -0
  13. package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.sql +86 -0
  14. package/dist/infrastructure/logging/triple-extraction-logger.d.ts +92 -0
  15. package/dist/infrastructure/logging/triple-extraction-logger.d.ts.map +1 -0
  16. package/dist/infrastructure/logging/triple-extraction-logger.js +194 -0
  17. package/dist/infrastructure/logging/triple-extraction-logger.js.map +1 -0
  18. package/dist/infrastructure/scheduler/batch-scheduler.d.ts +57 -0
  19. package/dist/infrastructure/scheduler/batch-scheduler.d.ts.map +1 -1
  20. package/dist/infrastructure/scheduler/batch-scheduler.js +220 -0
  21. package/dist/infrastructure/scheduler/batch-scheduler.js.map +1 -1
  22. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts +194 -0
  23. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts.map +1 -0
  24. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js +639 -0
  25. package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js.map +1 -0
  26. package/dist/services/semantic-memory/semantic-memory-statistics.d.ts +64 -0
  27. package/dist/services/semantic-memory/semantic-memory-statistics.d.ts.map +1 -0
  28. package/dist/services/semantic-memory/semantic-memory-statistics.js +113 -0
  29. package/dist/services/semantic-memory/semantic-memory-statistics.js.map +1 -0
  30. package/dist/services/semantic-memory/semantic-memory-update-service.d.ts +257 -0
  31. package/dist/services/semantic-memory/semantic-memory-update-service.d.ts.map +1 -0
  32. package/dist/services/semantic-memory/semantic-memory-update-service.js +696 -0
  33. package/dist/services/semantic-memory/semantic-memory-update-service.js.map +1 -0
  34. package/dist/services/triple-extraction/entity-linker.d.ts +55 -0
  35. package/dist/services/triple-extraction/entity-linker.d.ts.map +1 -0
  36. package/dist/services/triple-extraction/entity-linker.js +154 -0
  37. package/dist/services/triple-extraction/entity-linker.js.map +1 -0
  38. package/dist/services/triple-extraction/predicate-canonicalizer.d.ts +63 -0
  39. package/dist/services/triple-extraction/predicate-canonicalizer.d.ts.map +1 -0
  40. package/dist/services/triple-extraction/predicate-canonicalizer.js +166 -0
  41. package/dist/services/triple-extraction/predicate-canonicalizer.js.map +1 -0
  42. package/dist/services/triple-extraction/triple-extraction-service.d.ts +181 -0
  43. package/dist/services/triple-extraction/triple-extraction-service.d.ts.map +1 -0
  44. package/dist/services/triple-extraction/triple-extraction-service.js +907 -0
  45. package/dist/services/triple-extraction/triple-extraction-service.js.map +1 -0
  46. package/dist/services/triple-extraction/triple-extraction-statistics.d.ts +74 -0
  47. package/dist/services/triple-extraction/triple-extraction-statistics.d.ts.map +1 -0
  48. package/dist/services/triple-extraction/triple-extraction-statistics.js +146 -0
  49. package/dist/services/triple-extraction/triple-extraction-statistics.js.map +1 -0
  50. package/dist/shared/types/index.d.ts +1 -0
  51. package/dist/shared/types/index.d.ts.map +1 -1
  52. package/dist/shared/types/index.js.map +1 -1
  53. package/dist/shared/types/triple-extraction.d.ts +99 -0
  54. package/dist/shared/types/triple-extraction.d.ts.map +1 -0
  55. package/dist/shared/types/triple-extraction.js +6 -0
  56. package/dist/shared/types/triple-extraction.js.map +1 -0
  57. package/dist/shared/utils/pii-masker.d.ts +67 -0
  58. package/dist/shared/utils/pii-masker.d.ts.map +1 -0
  59. package/dist/shared/utils/pii-masker.js +205 -0
  60. package/dist/shared/utils/pii-masker.js.map +1 -0
  61. package/dist/shared/utils/prompt-template-loader.d.ts +42 -0
  62. package/dist/shared/utils/prompt-template-loader.d.ts.map +1 -0
  63. package/dist/shared/utils/prompt-template-loader.js +92 -0
  64. package/dist/shared/utils/prompt-template-loader.js.map +1 -0
  65. package/dist/shared/utils/triple-cache.d.ts +90 -0
  66. package/dist/shared/utils/triple-cache.d.ts.map +1 -0
  67. package/dist/shared/utils/triple-cache.js +124 -0
  68. package/dist/shared/utils/triple-cache.js.map +1 -0
  69. package/dist/tools/index.d.ts +2 -1
  70. package/dist/tools/index.d.ts.map +1 -1
  71. package/dist/tools/index.js +3 -1
  72. package/dist/tools/index.js.map +1 -1
  73. package/dist/tools/types.d.ts +1 -0
  74. package/dist/tools/types.d.ts.map +1 -1
  75. package/dist/tools/types.js +2 -0
  76. package/dist/tools/types.js.map +1 -1
  77. package/package.json +1 -1
@@ -15,6 +15,8 @@ import { RetryManager } from './retry-manager.js';
15
15
  import { HealthChecker } from './health-checker.js';
16
16
  import { FileLogger } from './file-logger.js';
17
17
  import { RelationValidatorExecutor } from './relation-validator-executor.js';
18
+ import { tripleExtractionLogger } from '../logging/triple-extraction-logger.js';
19
+ import { TripleExtractionBatchJob } from './jobs/triple-extraction-batch-job.js';
18
20
  export class BatchScheduler {
19
21
  config;
20
22
  forgettingService;
@@ -34,6 +36,7 @@ export class BatchScheduler {
34
36
  healthChecker;
35
37
  fileLogger;
36
38
  relationValidatorExecutor;
39
+ tripleExtractionBatchJob = null;
37
40
  constructor(config, dependencies) {
38
41
  this.config = {
39
42
  cleanupInterval: 60 * 60 * 1000, // 1시간
@@ -45,6 +48,11 @@ export class BatchScheduler {
45
48
  relationValidationInterval: 7 * 24 * 60 * 60 * 1000, // 7일
46
49
  relationValidationDayOfWeek: 0, // 일요일
47
50
  relationValidationHour: 2, // 새벽 2시
51
+ logRotationInterval: 24 * 60 * 60 * 1000, // 24시간 (매일)
52
+ tripleExtractionInterval: 60 * 60 * 1000, // 1시간
53
+ tripleExtractionHour: undefined, // 시간 지정 안 함 (간격 기반 실행)
54
+ tripleExtractionBatchSize: 10, // 배치 크기 10개
55
+ tripleExtractionTimeout: 30 * 1000, // 30초
48
56
  maxBatchSize: 1000,
49
57
  enableLogging: true,
50
58
  enableNotifications: false,
@@ -126,6 +134,10 @@ export class BatchScheduler {
126
134
  }
127
135
  // 주간 관계 추출 품질 검증 작업 스케줄링
128
136
  this.scheduleWeeklyRelationValidation();
137
+ // 로그 로테이션 작업 스케줄링
138
+ this.scheduleJob('log_rotation', this.config.logRotationInterval, async () => { await this.runLogRotation(); }, 5);
139
+ // Triple 추출 배치 작업 스케줄링 (PRD 6.1)
140
+ this.scheduleTripleExtractionBatch();
129
141
  // 작업 큐 처리 시작
130
142
  this.startJobProcessor();
131
143
  this.log('BatchScheduler started', {
@@ -188,6 +200,19 @@ export class BatchScheduler {
188
200
  if (this.config.jobTimeout < 1000) {
189
201
  throw new Error('jobTimeout must be at least 1 second');
190
202
  }
203
+ if (this.config.tripleExtractionInterval < 60000) {
204
+ throw new Error('tripleExtractionInterval must be at least 1 minute');
205
+ }
206
+ if (this.config.tripleExtractionHour !== undefined &&
207
+ (this.config.tripleExtractionHour < 0 || this.config.tripleExtractionHour > 23)) {
208
+ throw new Error('tripleExtractionHour must be between 0 and 23');
209
+ }
210
+ if (this.config.tripleExtractionBatchSize < 1) {
211
+ throw new Error('tripleExtractionBatchSize must be at least 1');
212
+ }
213
+ if (this.config.tripleExtractionTimeout < 1000) {
214
+ throw new Error('tripleExtractionTimeout must be at least 1 second');
215
+ }
191
216
  // weeklyRelationValidationTimeout 검증 (설정된 경우에만)
192
217
  if (this.config.weeklyRelationValidationTimeout !== undefined) {
193
218
  if (typeof this.config.weeklyRelationValidationTimeout !== 'number' ||
@@ -295,10 +320,28 @@ export class BatchScheduler {
295
320
  /**
296
321
  * 큐에 작업 추가 (중복 방지 포함)
297
322
  * 동일 이름의 잡이 이미 큐에 있거나 실행 중이면 추가하지 않음
323
+ *
324
+ * PRD 6.2: 기존 배치 작업과 충돌 방지
325
+ * - 중복 방지: 동일 이름의 작업이 이미 큐에 있거나 실행 중이면 추가하지 않음
326
+ * - Triple 추출 배치 작업도 이 메커니즘을 통해 중복 실행 방지
327
+ * - 우선순위 기반 큐 관리로 중요한 작업 우선 처리
298
328
  */
299
329
  addJobToQueue(name, job, priority, retryCount = 0) {
300
330
  return this.jobQueue.add(name, job, priority, retryCount);
301
331
  }
332
+ /**
333
+ * 외부에서 작업을 큐에 추가하는 public 메서드
334
+ * AriGraph Pipeline 등 외부 컴포넌트에서 사용
335
+ *
336
+ * @param name 작업 이름 (고유 식별자)
337
+ * @param job 실행할 작업 함수
338
+ * @param priority 우선순위 (낮을수록 높은 우선순위, 기본값: 10)
339
+ * @param retryCount 재시도 횟수 (기본값: 0)
340
+ * @returns 추가 성공 여부
341
+ */
342
+ addJob(name, job, priority = 10, retryCount = 0) {
343
+ return this.addJobToQueue(name, job, priority, retryCount);
344
+ }
302
345
  /**
303
346
  * 작업 스케줄링
304
347
  * 시작 시 maxConcurrentJobs를 보장하기 위해 무조건 큐를 통해 실행
@@ -319,9 +362,16 @@ export class BatchScheduler {
319
362
  /**
320
363
  * 작업 큐 처리기 시작
321
364
  * 재시도 큐에서도 동일한 래퍼(타임아웃+상태 관리)를 사용하도록 수정
365
+ *
366
+ * PRD 6.2: 기존 배치 작업과 충돌 방지
367
+ * - maxConcurrentJobs 설정을 통해 동시 실행 작업 수 제한
368
+ * - Triple 추출 배치 작업도 이 제한에 포함되어 다른 배치 작업과 충돌 방지
369
+ * - 우선순위 기반 실행으로 중요한 작업 우선 처리
322
370
  */
323
371
  startJobProcessor() {
324
372
  const processQueue = async () => {
373
+ // PRD 6.2: maxConcurrentJobs 제한으로 충돌 방지
374
+ // Triple 추출 배치 작업도 이 제한에 포함되어 다른 배치 작업과 동시 실행 방지
325
375
  if (this.jobQueue.isEmpty || this.jobQueue.runningCount >= this.config.maxConcurrentJobs) {
326
376
  return;
327
377
  }
@@ -971,6 +1021,176 @@ export class BatchScheduler {
971
1021
  this.log('Scheduler health check failed', { error: error instanceof Error ? error.message : String(error) }, 'error');
972
1022
  }
973
1023
  }
1024
+ /**
1025
+ * Triple 추출 배치 작업 실행
1026
+ *
1027
+ * PRD 6.1: 주기적 배치 실행
1028
+ * - 대상: triple_extracted=false 또는 null인 Episodic Memory
1029
+ * - 재시도 정책 적용 (최대 시도 횟수 확인)
1030
+ * - abandoned 상태는 제외
1031
+ */
1032
+ async runTripleExtractionBatch() {
1033
+ const startTime = new Date();
1034
+ const result = {
1035
+ jobType: 'triple_extraction_batch',
1036
+ startTime,
1037
+ endTime: new Date(),
1038
+ duration: 0,
1039
+ success: false,
1040
+ processed: 0,
1041
+ errors: [],
1042
+ warnings: []
1043
+ };
1044
+ try {
1045
+ if (!this.db) {
1046
+ throw new Error('Database not initialized');
1047
+ }
1048
+ // TripleExtractionBatchJob 초기화 (아직 초기화되지 않은 경우)
1049
+ if (!this.tripleExtractionBatchJob) {
1050
+ this.tripleExtractionBatchJob = new TripleExtractionBatchJob({
1051
+ batchSize: this.config.tripleExtractionBatchSize,
1052
+ timeout: this.config.tripleExtractionTimeout,
1053
+ chunkSize: 5, // SQLite WAL 환경 고려
1054
+ chunkDelayMs: 100 // 청크 사이 지연
1055
+ });
1056
+ }
1057
+ // 배치 작업 실행
1058
+ const batchResult = await this.tripleExtractionBatchJob.execute(this.db);
1059
+ // 결과 반영
1060
+ result.success = batchResult.success;
1061
+ result.processed = batchResult.processed;
1062
+ result.errors = batchResult.errors;
1063
+ result.warnings = batchResult.warnings;
1064
+ result.details = batchResult.details;
1065
+ // 실행 기록 업데이트
1066
+ this.lastExecution.set('triple_extraction_batch', new Date());
1067
+ this.totalExecutions.set('triple_extraction_batch', (this.totalExecutions.get('triple_extraction_batch') || 0) + 1);
1068
+ this.log('Triple extraction batch job completed', {
1069
+ processed: batchResult.details.processed,
1070
+ success: batchResult.details.success,
1071
+ failed: batchResult.details.failed,
1072
+ semanticMemoriesCreated: batchResult.details.semanticMemoriesCreated,
1073
+ semanticMemoriesUpdated: batchResult.details.semanticMemoriesUpdated
1074
+ });
1075
+ }
1076
+ catch (error) {
1077
+ result.errors.push(error instanceof Error ? error.message : String(error));
1078
+ this.log('Triple extraction batch job failed:', error, 'error');
1079
+ }
1080
+ finally {
1081
+ result.endTime = new Date();
1082
+ result.duration = result.endTime.getTime() - result.startTime.getTime();
1083
+ }
1084
+ return result;
1085
+ }
1086
+ /**
1087
+ * Triple 추출 배치 작업 스케줄링
1088
+ *
1089
+ * PRD 6.1: 주기적 배치 실행
1090
+ * - 주기: 매일 새벽 2시 (설정 가능, tripleExtractionInterval, tripleExtractionHour 설정)
1091
+ * - tripleExtractionHour가 지정된 경우 해당 시간에만 실행
1092
+ * - tripleExtractionHour가 지정되지 않은 경우 interval마다 실행
1093
+ *
1094
+ * PRD 6.2: 기존 배치 작업과 충돌 방지
1095
+ * - BatchScheduler의 maxConcurrentJobs 설정 고려
1096
+ * - Triple 추출 배치 작업은 다른 배치 작업과 동시 실행되지 않도록 스케줄링
1097
+ * - Triple Extraction Job은 독립적인 작업 큐로 관리
1098
+ * - 우선순위 6 설정 (로그 로테이션 다음, 다른 중요 작업보다 낮은 우선순위)
1099
+ * - JobQueue를 통해 실행하여 maxConcurrentJobs 제한 및 중복 방지 적용
1100
+ */
1101
+ scheduleTripleExtractionBatch() {
1102
+ if (this.config.tripleExtractionHour !== undefined) {
1103
+ // 특정 시간에만 실행 (예: 매일 새벽 2시)
1104
+ // PRD 6.1: 주기: 매일 새벽 2시 (설정 가능)
1105
+ // scheduleConsolidationScoreFullSweep()와 동일한 패턴 사용
1106
+ const checkAndRun = () => {
1107
+ const now = new Date();
1108
+ const currentHour = now.getHours();
1109
+ // 지정된 시간에 실행
1110
+ if (currentHour === this.config.tripleExtractionHour) {
1111
+ // 이미 오늘 실행했는지 확인 (lastExecution 체크)
1112
+ const lastExecution = this.lastExecution.get('triple_extraction_batch');
1113
+ const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
1114
+ if (!lastExecution || lastExecution < today) {
1115
+ // 큐를 통해 실행하여 maxConcurrentJobs, 타임아웃, 재시도, lastExecution 기록이 적용되도록 함 (중복 방지 포함)
1116
+ this.addJobToQueue('triple_extraction_batch', async () => { await this.runTripleExtractionBatch(); }, 6, // 우선순위 6 (로그 로테이션 다음)
1117
+ 0);
1118
+ }
1119
+ }
1120
+ };
1121
+ // 매 시간마다 체크 (config 기반 간격 사용)
1122
+ const checkInterval = 60 * 60 * 1000; // 1시간마다 체크
1123
+ const intervalId = setInterval(checkAndRun, checkInterval);
1124
+ // intervals Map에 저장하여 stop()에서 정리 가능하도록 함
1125
+ this.intervals.set('triple_extraction_batch', intervalId);
1126
+ // 즉시 한 번 체크 (현재 시간이 지정된 시간이면 실행)
1127
+ checkAndRun();
1128
+ }
1129
+ else {
1130
+ // interval마다 실행 (기본: 1시간마다)
1131
+ // PRD 6.1: 주기: 매일 새벽 2시 (설정 가능, tripleExtractionInterval)
1132
+ // PRD 6.2: 기존 배치 작업과 충돌 방지
1133
+ // scheduleJob()은 내부적으로 addJobToQueue()를 사용하여 maxConcurrentJobs 제한 및 중복 방지 적용
1134
+ // 우선순위 6 설정: 로그 로테이션(5) 다음, 다른 중요 작업보다 낮은 우선순위
1135
+ this.scheduleJob('triple_extraction_batch', this.config.tripleExtractionInterval, async () => { await this.runTripleExtractionBatch(); }, 6 // 우선순위 6 (로그 로테이션 다음, 다른 중요 작업보다 낮은 우선순위)
1136
+ );
1137
+ }
1138
+ }
1139
+ /**
1140
+ * 로그 로테이션 실행
1141
+ * 30일 이상 된 Triple 추출 로그 파일을 삭제합니다.
1142
+ */
1143
+ async runLogRotation() {
1144
+ const startTime = new Date();
1145
+ const errors = [];
1146
+ const warnings = [];
1147
+ let deletedCount = 0;
1148
+ try {
1149
+ this.log('Starting log rotation...', { jobType: 'log_rotation' });
1150
+ // Triple 추출 로그 파일 정리 (30일 이상 된 파일 삭제)
1151
+ deletedCount = await tripleExtractionLogger.deleteOldLogs(30);
1152
+ this.log('Log rotation completed', {
1153
+ jobType: 'log_rotation',
1154
+ deletedFiles: deletedCount
1155
+ });
1156
+ if (deletedCount > 0) {
1157
+ this.log(`Deleted ${deletedCount} old log file(s)`, {
1158
+ jobType: 'log_rotation',
1159
+ retentionDays: 30
1160
+ });
1161
+ }
1162
+ const endTime = new Date();
1163
+ return {
1164
+ jobType: 'log_rotation',
1165
+ startTime,
1166
+ endTime,
1167
+ duration: endTime.getTime() - startTime.getTime(),
1168
+ success: true,
1169
+ processed: deletedCount,
1170
+ errors,
1171
+ warnings
1172
+ };
1173
+ }
1174
+ catch (error) {
1175
+ const errorMessage = error instanceof Error ? error.message : String(error);
1176
+ errors.push(errorMessage);
1177
+ this.log('Log rotation failed', {
1178
+ jobType: 'log_rotation',
1179
+ error: errorMessage
1180
+ }, 'error');
1181
+ const endTime = new Date();
1182
+ return {
1183
+ jobType: 'log_rotation',
1184
+ startTime,
1185
+ endTime,
1186
+ duration: endTime.getTime() - startTime.getTime(),
1187
+ success: false,
1188
+ processed: deletedCount,
1189
+ errors,
1190
+ warnings
1191
+ };
1192
+ }
1193
+ }
974
1194
  /**
975
1195
  * 스케줄러 통계 조회
976
1196
  */
@@ -1 +1 @@
1
- {"version":3,"file":"batch-scheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/batch-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-scheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/batch-scheduler.ts"],"names":[],"mappings":"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"}
@@ -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"}