memento-mcp-server 1.13.1-a4 → 1.14.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 (118) hide show
  1. package/dist/database/schema.sql +9 -2
  2. package/dist/domains/memory/tools/recall-tool.d.ts +190 -0
  3. package/dist/domains/memory/tools/recall-tool.d.ts.map +1 -1
  4. package/dist/domains/memory/tools/recall-tool.js +488 -14
  5. package/dist/domains/memory/tools/recall-tool.js.map +1 -1
  6. package/dist/domains/memory/tools/remember-tool.d.ts +10 -0
  7. package/dist/domains/memory/tools/remember-tool.d.ts.map +1 -1
  8. package/dist/domains/memory/tools/remember-tool.js +264 -35
  9. package/dist/domains/memory/tools/remember-tool.js.map +1 -1
  10. package/dist/domains/relation/services/relation-quality-validator.d.ts.map +1 -1
  11. package/dist/domains/relation/services/relation-quality-validator.js +15 -10
  12. package/dist/domains/relation/services/relation-quality-validator.js.map +1 -1
  13. package/dist/domains/relation/services/rule-based-relation-extractor.d.ts.map +1 -1
  14. package/dist/domains/relation/services/rule-based-relation-extractor.js +18 -0
  15. package/dist/domains/relation/services/rule-based-relation-extractor.js.map +1 -1
  16. package/dist/domains/relation/tools/add-relation-tool.d.ts +3 -3
  17. package/dist/domains/relation/tools/add-relation-tool.js +2 -2
  18. package/dist/domains/relation/tools/add-relation-tool.js.map +1 -1
  19. package/dist/domains/relation/tools/get-relations-tool.d.ts +3 -3
  20. package/dist/domains/relation/tools/get-relations-tool.js +2 -2
  21. package/dist/domains/relation/tools/get-relations-tool.js.map +1 -1
  22. package/dist/domains/search/algorithms/hybrid-search-engine.d.ts +20 -0
  23. package/dist/domains/search/algorithms/hybrid-search-engine.d.ts.map +1 -1
  24. package/dist/domains/search/algorithms/hybrid-search-engine.js +168 -5
  25. package/dist/domains/search/algorithms/hybrid-search-engine.js.map +1 -1
  26. package/dist/domains/search/algorithms/search-engine.d.ts.map +1 -1
  27. package/dist/domains/search/algorithms/search-engine.js +37 -17
  28. package/dist/domains/search/algorithms/search-engine.js.map +1 -1
  29. package/dist/domains/search/algorithms/search-ranking.d.ts +15 -2
  30. package/dist/domains/search/algorithms/search-ranking.d.ts.map +1 -1
  31. package/dist/domains/search/algorithms/search-ranking.js +46 -15
  32. package/dist/domains/search/algorithms/search-ranking.js.map +1 -1
  33. package/dist/domains/search/repositories/vector-search.repository.d.ts.map +1 -1
  34. package/dist/domains/search/repositories/vector-search.repository.js +180 -89
  35. package/dist/domains/search/repositories/vector-search.repository.js.map +1 -1
  36. package/dist/infrastructure/database/database/migration/migrations/007-procedural-memory-enhancement.d.ts +63 -0
  37. package/dist/infrastructure/database/database/migration/migrations/007-procedural-memory-enhancement.d.ts.map +1 -0
  38. package/dist/infrastructure/database/database/migration/migrations/007-procedural-memory-enhancement.js +257 -0
  39. package/dist/infrastructure/database/database/migration/migrations/007-procedural-memory-enhancement.js.map +1 -0
  40. package/dist/infrastructure/database/database/migration/migrations/007-procedural-memory-enhancement.sql +66 -0
  41. package/dist/infrastructure/reflexion-worker.d.ts +18 -0
  42. package/dist/infrastructure/reflexion-worker.d.ts.map +1 -1
  43. package/dist/infrastructure/reflexion-worker.js +216 -0
  44. package/dist/infrastructure/reflexion-worker.js.map +1 -1
  45. package/dist/infrastructure/scheduler/batch-scheduler.d.ts +51 -8
  46. package/dist/infrastructure/scheduler/batch-scheduler.d.ts.map +1 -1
  47. package/dist/infrastructure/scheduler/batch-scheduler.js +299 -205
  48. package/dist/infrastructure/scheduler/batch-scheduler.js.map +1 -1
  49. package/dist/infrastructure/scheduler/file-logger.d.ts +82 -0
  50. package/dist/infrastructure/scheduler/file-logger.d.ts.map +1 -0
  51. package/dist/infrastructure/scheduler/file-logger.js +133 -0
  52. package/dist/infrastructure/scheduler/file-logger.js.map +1 -0
  53. package/dist/infrastructure/scheduler/health-checker.d.ts +54 -0
  54. package/dist/infrastructure/scheduler/health-checker.d.ts.map +1 -0
  55. package/dist/infrastructure/scheduler/health-checker.js +96 -0
  56. package/dist/infrastructure/scheduler/health-checker.js.map +1 -0
  57. package/dist/infrastructure/scheduler/job-queue.d.ts +85 -0
  58. package/dist/infrastructure/scheduler/job-queue.d.ts.map +1 -0
  59. package/dist/infrastructure/scheduler/job-queue.js +125 -0
  60. package/dist/infrastructure/scheduler/job-queue.js.map +1 -0
  61. package/dist/infrastructure/scheduler/relation-validator-executor.d.ts +37 -0
  62. package/dist/infrastructure/scheduler/relation-validator-executor.d.ts.map +1 -0
  63. package/dist/infrastructure/scheduler/relation-validator-executor.js +120 -0
  64. package/dist/infrastructure/scheduler/relation-validator-executor.js.map +1 -0
  65. package/dist/infrastructure/scheduler/retry-manager.d.ts +62 -0
  66. package/dist/infrastructure/scheduler/retry-manager.d.ts.map +1 -0
  67. package/dist/infrastructure/scheduler/retry-manager.js +91 -0
  68. package/dist/infrastructure/scheduler/retry-manager.js.map +1 -0
  69. package/dist/npm-client/utils.d.ts.map +1 -1
  70. package/dist/npm-client/utils.js +2 -1
  71. package/dist/npm-client/utils.js.map +1 -1
  72. package/dist/scripts/copy-assets.js +4 -4
  73. package/dist/scripts/copy-assets.js.map +1 -1
  74. package/dist/server/http-server.d.ts.map +1 -1
  75. package/dist/server/http-server.js +15 -17
  76. package/dist/server/http-server.js.map +1 -1
  77. package/dist/services/anchor-manager.d.ts.map +1 -1
  78. package/dist/services/anchor-manager.js.map +1 -1
  79. package/dist/shared/types/index.d.ts +36 -0
  80. package/dist/shared/types/index.d.ts.map +1 -1
  81. package/dist/shared/types/index.js.map +1 -1
  82. package/dist/shared/types/relation.d.ts +1 -1
  83. package/dist/shared/types/relation.d.ts.map +1 -1
  84. package/dist/shared/types/relation.js +7 -4
  85. package/dist/shared/types/relation.js.map +1 -1
  86. package/dist/shared/utils/database.d.ts.map +1 -1
  87. package/dist/shared/utils/database.js +9 -2
  88. package/dist/shared/utils/database.js.map +1 -1
  89. package/dist/shared/utils/procedural-memory-extractor.d.ts +108 -0
  90. package/dist/shared/utils/procedural-memory-extractor.d.ts.map +1 -0
  91. package/dist/shared/utils/procedural-memory-extractor.js +581 -0
  92. package/dist/shared/utils/procedural-memory-extractor.js.map +1 -0
  93. package/dist/shared/utils/relation-type-converter.d.ts +52 -0
  94. package/dist/shared/utils/relation-type-converter.d.ts.map +1 -0
  95. package/dist/shared/utils/relation-type-converter.js +106 -0
  96. package/dist/shared/utils/relation-type-converter.js.map +1 -0
  97. package/dist/shared/utils/type-param-validator.d.ts +31 -0
  98. package/dist/shared/utils/type-param-validator.d.ts.map +1 -1
  99. package/dist/shared/utils/type-param-validator.js +90 -2
  100. package/dist/shared/utils/type-param-validator.js.map +1 -1
  101. package/dist/tools/base-tool.d.ts.map +1 -1
  102. package/dist/tools/types.d.ts +4 -0
  103. package/dist/tools/types.d.ts.map +1 -1
  104. package/dist/tools/types.js +5 -0
  105. package/dist/tools/types.js.map +1 -1
  106. package/dist/workers/consolidation-score-worker.d.ts.map +1 -1
  107. package/dist/workers/consolidation-score-worker.js +0 -2
  108. package/dist/workers/consolidation-score-worker.js.map +1 -1
  109. package/package.json +3 -3
  110. package/scripts/auto-setup.js +1 -1
  111. /package/dist/{database → infrastructure/database/database}/migration/migrations/002-mirix-schema-expansion-core-memory.sql +0 -0
  112. /package/dist/{database → infrastructure/database/database}/migration/migrations/002-mirix-schema-expansion-knowledge-vault.sql +0 -0
  113. /package/dist/{database → infrastructure/database/database}/migration/migrations/002-mirix-schema-expansion-memory-item.sql +0 -0
  114. /package/dist/{database → infrastructure/database/database}/migration/migrations/002-mirix-schema-expansion-schema-version.sql +0 -0
  115. /package/dist/{database → infrastructure/database/database}/migration/migrations/003-consolidation-score-fields.sql +0 -0
  116. /package/dist/{database → infrastructure/database/database}/migration/migrations/005-relation-engine-schema.sql +0 -0
  117. /package/dist/{database → infrastructure/database/database}/migration/migrations/006-fts5-reflection-notes-migration-status.sql +0 -0
  118. /package/dist/{database → infrastructure/database/database}/migration/migrations/006-fts5-reflection-notes.sql +0 -0
@@ -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,82 @@
1
+ /**
2
+ * 파일 로깅 모듈
3
+ * 배치 작업의 에러 로그를 파일에 저장하는 기능 제공
4
+ * 비동기 I/O를 사용하여 이벤트 루프 블로킹 방지
5
+ */
6
+ export interface FileLoggerConfig {
7
+ logDir?: string;
8
+ logFileName?: string;
9
+ enabled?: boolean;
10
+ }
11
+ export interface LogEntry {
12
+ timestamp: Date;
13
+ service: string;
14
+ level: 'info' | 'warn' | 'error';
15
+ message: string;
16
+ data?: any;
17
+ uptime?: number;
18
+ activeJobs?: number;
19
+ queueSize?: number;
20
+ }
21
+ /**
22
+ * 파일 로거
23
+ *
24
+ * 역할:
25
+ * - 에러 로그를 파일에 저장
26
+ * - 로그 디렉토리 자동 생성
27
+ * - 로그 엔트리 포맷팅
28
+ */
29
+ export declare class FileLogger {
30
+ private config;
31
+ private logFilePath;
32
+ constructor(config?: FileLoggerConfig);
33
+ /**
34
+ * 로그 엔트리 저장 (비동기)
35
+ * 동기 I/O를 사용하지 않아 이벤트 루프 블로킹을 방지함
36
+ *
37
+ * @param entry 로그 엔트리
38
+ */
39
+ log(entry: LogEntry): Promise<void>;
40
+ /**
41
+ * 경고 로그 저장 (비동기)
42
+ *
43
+ * @param message 메시지
44
+ * @param data 추가 데이터
45
+ * @param context 컨텍스트 정보
46
+ */
47
+ logWarn(message: string, data?: any, context?: {
48
+ uptime?: number;
49
+ activeJobs?: number;
50
+ queueSize?: number;
51
+ }): Promise<void>;
52
+ /**
53
+ * 에러 로그 저장 (비동기)
54
+ *
55
+ * @param message 메시지
56
+ * @param data 추가 데이터
57
+ * @param context 컨텍스트 정보
58
+ */
59
+ logError(message: string, data?: any, context?: {
60
+ uptime?: number;
61
+ activeJobs?: number;
62
+ queueSize?: number;
63
+ }): Promise<void>;
64
+ /**
65
+ * 데이터 정제 (Error 객체 처리)
66
+ *
67
+ * @param data 원본 데이터
68
+ * @returns 정제된 데이터
69
+ */
70
+ private sanitizeData;
71
+ /**
72
+ * 로그 파일 경로 조회
73
+ */
74
+ getLogFilePath(): string;
75
+ /**
76
+ * 로깅 활성화/비활성화
77
+ *
78
+ * @param enabled 활성화 여부
79
+ */
80
+ setEnabled(enabled: boolean): void;
81
+ }
82
+ //# sourceMappingURL=file-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-logger.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/file-logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,GAAE,gBAAqB;IAUzC;;;;;OAKG;IACG,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCzC;;;;;;OAMG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,IAAI,CAAC;IAahB;;;;;;OAMG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,IAAI,CAAC;IAahB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGnC"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * 파일 로깅 모듈
3
+ * 배치 작업의 에러 로그를 파일에 저장하는 기능 제공
4
+ * 비동기 I/O를 사용하여 이벤트 루프 블로킹 방지
5
+ */
6
+ import fs from 'fs';
7
+ import fsPromises from 'fs/promises';
8
+ import path from 'path';
9
+ /**
10
+ * 파일 로거
11
+ *
12
+ * 역할:
13
+ * - 에러 로그를 파일에 저장
14
+ * - 로그 디렉토리 자동 생성
15
+ * - 로그 엔트리 포맷팅
16
+ */
17
+ export class FileLogger {
18
+ config;
19
+ logFilePath;
20
+ constructor(config = {}) {
21
+ this.config = {
22
+ logDir: config.logDir ?? path.join(process.cwd(), 'logs'),
23
+ logFileName: config.logFileName ?? 'batch-scheduler.log',
24
+ enabled: config.enabled ?? true
25
+ };
26
+ this.logFilePath = path.join(this.config.logDir, this.config.logFileName);
27
+ }
28
+ /**
29
+ * 로그 엔트리 저장 (비동기)
30
+ * 동기 I/O를 사용하지 않아 이벤트 루프 블로킹을 방지함
31
+ *
32
+ * @param entry 로그 엔트리
33
+ */
34
+ async log(entry) {
35
+ if (!this.config.enabled) {
36
+ return;
37
+ }
38
+ try {
39
+ // 로그 디렉토리 존재 확인 및 생성 (비동기)
40
+ try {
41
+ await fsPromises.access(this.config.logDir);
42
+ }
43
+ catch {
44
+ // 디렉토리가 없으면 생성
45
+ await fsPromises.mkdir(this.config.logDir, { recursive: true });
46
+ }
47
+ // 데이터 정제
48
+ const sanitizedEntry = {
49
+ ...entry,
50
+ data: this.sanitizeData(entry.data)
51
+ };
52
+ // 로그 엔트리 포맷팅
53
+ const logLine = JSON.stringify(sanitizedEntry) + '\n';
54
+ // 파일에 추가 (비동기)
55
+ await fsPromises.appendFile(this.logFilePath, logLine);
56
+ }
57
+ catch (error) {
58
+ // 파일 로깅 실패는 무시 (콘솔 로거 사용)
59
+ // 실제 운영 환경에서는 콘솔 로거에 위임해야 함
60
+ console.error('Failed to write to log file:', error);
61
+ }
62
+ }
63
+ /**
64
+ * 경고 로그 저장 (비동기)
65
+ *
66
+ * @param message 메시지
67
+ * @param data 추가 데이터
68
+ * @param context 컨텍스트 정보
69
+ */
70
+ async logWarn(message, data, context) {
71
+ const entry = {
72
+ timestamp: new Date(),
73
+ service: 'BatchScheduler',
74
+ level: 'warn',
75
+ message,
76
+ data: this.sanitizeData(data),
77
+ ...context
78
+ };
79
+ await this.log(entry);
80
+ }
81
+ /**
82
+ * 에러 로그 저장 (비동기)
83
+ *
84
+ * @param message 메시지
85
+ * @param data 추가 데이터
86
+ * @param context 컨텍스트 정보
87
+ */
88
+ async logError(message, data, context) {
89
+ const entry = {
90
+ timestamp: new Date(),
91
+ service: 'BatchScheduler',
92
+ level: 'error',
93
+ message,
94
+ data: this.sanitizeData(data),
95
+ ...context
96
+ };
97
+ await this.log(entry);
98
+ }
99
+ /**
100
+ * 데이터 정제 (Error 객체 처리)
101
+ *
102
+ * @param data 원본 데이터
103
+ * @returns 정제된 데이터
104
+ */
105
+ sanitizeData(data) {
106
+ if (data instanceof Error) {
107
+ return {
108
+ message: data.message,
109
+ name: data.name,
110
+ stack: data.stack
111
+ };
112
+ }
113
+ if (typeof data === 'object' && data !== null && !Array.isArray(data)) {
114
+ return data;
115
+ }
116
+ return {};
117
+ }
118
+ /**
119
+ * 로그 파일 경로 조회
120
+ */
121
+ getLogFilePath() {
122
+ return this.logFilePath;
123
+ }
124
+ /**
125
+ * 로깅 활성화/비활성화
126
+ *
127
+ * @param enabled 활성화 여부
128
+ */
129
+ setEnabled(enabled) {
130
+ this.config.enabled = enabled;
131
+ }
132
+ }
133
+ //# sourceMappingURL=file-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-logger.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/file-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * 헬스체크 모듈
3
+ * 스케줄러 및 시스템 상태 확인 기능 제공
4
+ */
5
+ import Database from 'better-sqlite3';
6
+ export interface HealthCheckResult {
7
+ isHealthy: boolean;
8
+ memoryUsage: number;
9
+ runningJobs: number;
10
+ queueSize: number;
11
+ uptime: number;
12
+ warnings: string[];
13
+ errors: string[];
14
+ }
15
+ export interface HealthCheckConfig {
16
+ maxMemoryUsagePercent?: number;
17
+ maxConcurrentJobsPercent?: number;
18
+ maxQueueSize?: number;
19
+ }
20
+ /**
21
+ * 헬스체크 관리자
22
+ *
23
+ * 역할:
24
+ * - 데이터베이스 연결 확인
25
+ * - 메모리 사용량 확인
26
+ * - 실행 중인 작업 수 확인
27
+ * - 큐 크기 확인
28
+ */
29
+ export declare class HealthChecker {
30
+ private config;
31
+ private startTime;
32
+ constructor(config?: HealthCheckConfig);
33
+ /**
34
+ * 시작 시간 설정
35
+ *
36
+ * @param startTime 시작 시간
37
+ */
38
+ setStartTime(startTime: Date): void;
39
+ /**
40
+ * 헬스체크 실행
41
+ *
42
+ * @param db 데이터베이스 인스턴스
43
+ * @param runningJobs 실행 중인 작업 수
44
+ * @param queueSize 큐 크기
45
+ * @param maxConcurrentJobs 최대 동시 작업 수
46
+ * @returns 헬스체크 결과
47
+ */
48
+ check(db: Database.Database | null, runningJobs: number, queueSize: number, maxConcurrentJobs: number): Promise<HealthCheckResult>;
49
+ /**
50
+ * 가비지 컬렉션 트리거 (가능한 경우)
51
+ */
52
+ triggerGarbageCollection(): boolean;
53
+ }
54
+ //# sourceMappingURL=health-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-checker.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/health-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAqB;gBAE1B,MAAM,GAAE,iBAAsB;IAS1C;;;;OAIG;IACH,YAAY,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI;IAInC;;;;;;;;OAQG;IACG,KAAK,CACT,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,EAC5B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,iBAAiB,CAAC;IAgD7B;;OAEG;IACH,wBAAwB,IAAI,OAAO;CAOpC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * 헬스체크 모듈
3
+ * 스케줄러 및 시스템 상태 확인 기능 제공
4
+ */
5
+ import Database from 'better-sqlite3';
6
+ /**
7
+ * 헬스체크 관리자
8
+ *
9
+ * 역할:
10
+ * - 데이터베이스 연결 확인
11
+ * - 메모리 사용량 확인
12
+ * - 실행 중인 작업 수 확인
13
+ * - 큐 크기 확인
14
+ */
15
+ export class HealthChecker {
16
+ config;
17
+ startTime = null;
18
+ constructor(config = {}) {
19
+ this.config = {
20
+ maxMemoryUsagePercent: config.maxMemoryUsagePercent ?? 90,
21
+ maxConcurrentJobsPercent: config.maxConcurrentJobsPercent ?? 0.8,
22
+ maxQueueSize: config.maxQueueSize ?? 100,
23
+ ...config
24
+ };
25
+ }
26
+ /**
27
+ * 시작 시간 설정
28
+ *
29
+ * @param startTime 시작 시간
30
+ */
31
+ setStartTime(startTime) {
32
+ this.startTime = startTime;
33
+ }
34
+ /**
35
+ * 헬스체크 실행
36
+ *
37
+ * @param db 데이터베이스 인스턴스
38
+ * @param runningJobs 실행 중인 작업 수
39
+ * @param queueSize 큐 크기
40
+ * @param maxConcurrentJobs 최대 동시 작업 수
41
+ * @returns 헬스체크 결과
42
+ */
43
+ async check(db, runningJobs, queueSize, maxConcurrentJobs) {
44
+ const warnings = [];
45
+ const errors = [];
46
+ // 데이터베이스 연결 확인
47
+ if (db) {
48
+ try {
49
+ await db.prepare('SELECT 1').get();
50
+ }
51
+ catch (error) {
52
+ errors.push(`Database connection failed: ${error instanceof Error ? error.message : String(error)}`);
53
+ }
54
+ }
55
+ else {
56
+ errors.push('Database not initialized');
57
+ }
58
+ // 메모리 사용량 확인
59
+ const memUsage = process.memoryUsage();
60
+ const memUsagePercent = (memUsage.heapUsed / memUsage.heapTotal) * 100;
61
+ if (memUsagePercent > this.config.maxMemoryUsagePercent) {
62
+ warnings.push(`High memory usage: ${memUsagePercent.toFixed(1)}%`);
63
+ }
64
+ // 실행 중인 작업 수 확인
65
+ const maxConcurrentJobsThreshold = maxConcurrentJobs * (this.config.maxConcurrentJobsPercent ?? 0.8);
66
+ if (runningJobs > maxConcurrentJobsThreshold) {
67
+ warnings.push(`High job concurrency: ${runningJobs}/${maxConcurrentJobs}`);
68
+ }
69
+ // 큐 크기 확인
70
+ if (queueSize > this.config.maxQueueSize) {
71
+ warnings.push(`Large job queue: ${queueSize} items`);
72
+ }
73
+ // Uptime 계산
74
+ const uptime = this.startTime ? Date.now() - this.startTime.getTime() : 0;
75
+ return {
76
+ isHealthy: errors.length === 0,
77
+ memoryUsage: memUsagePercent,
78
+ runningJobs,
79
+ queueSize,
80
+ uptime,
81
+ warnings,
82
+ errors
83
+ };
84
+ }
85
+ /**
86
+ * 가비지 컬렉션 트리거 (가능한 경우)
87
+ */
88
+ triggerGarbageCollection() {
89
+ if (global.gc) {
90
+ global.gc();
91
+ return true;
92
+ }
93
+ return false;
94
+ }
95
+ }
96
+ //# sourceMappingURL=health-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-checker.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/health-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAkBtC;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAoB;IAC1B,SAAS,GAAgB,IAAI,CAAC;IAEtC,YAAY,SAA4B,EAAE;QACxC,IAAI,CAAC,MAAM,GAAG;YACZ,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,EAAE;YACzD,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,IAAI,GAAG;YAChE,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,GAAG;YACxC,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,SAAe;QAC1B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,CACT,EAA4B,EAC5B,WAAmB,EACnB,SAAiB,EACjB,iBAAyB;QAEzB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,eAAe;QACf,IAAI,EAAE,EAAE,CAAC;YACP,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC;QAED,aAAa;QACb,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,eAAe,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;QAEvE,IAAI,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAsB,EAAE,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,sBAAsB,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;QAED,gBAAgB;QAChB,MAAM,0BAA0B,GAAG,iBAAiB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,IAAI,GAAG,CAAC,CAAC;QACrG,IAAI,WAAW,GAAG,0BAA0B,EAAE,CAAC;YAC7C,QAAQ,CAAC,IAAI,CAAC,yBAAyB,WAAW,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,UAAU;QACV,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAa,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,oBAAoB,SAAS,QAAQ,CAAC,CAAC;QACvD,CAAC;QAED,YAAY;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC9B,WAAW,EAAE,eAAe;YAC5B,WAAW;YACX,SAAS;YACT,MAAM;YACN,QAAQ;YACR,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,wBAAwB;QACtB,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * 작업 큐 관리 모듈
3
+ * 배치 작업의 큐 관리, 우선순위 정렬, 중복 방지 기능 제공
4
+ */
5
+ export interface QueuedJob {
6
+ name: string;
7
+ job: () => Promise<void>;
8
+ priority: number;
9
+ retryCount?: number;
10
+ }
11
+ export interface JobQueueConfig {
12
+ maxSize?: number;
13
+ }
14
+ /**
15
+ * 작업 큐 관리자
16
+ *
17
+ * 역할:
18
+ * - 작업 추가/제거
19
+ * - 우선순위 기반 정렬
20
+ * - 중복 작업 방지
21
+ * - 큐 크기 관리
22
+ */
23
+ export declare class JobQueue {
24
+ private queue;
25
+ private runningJobs;
26
+ private config;
27
+ constructor(config?: JobQueueConfig);
28
+ /**
29
+ * 큐에 작업 추가 (중복 방지 포함)
30
+ *
31
+ * @param name 작업 이름
32
+ * @param job 실행할 작업 함수
33
+ * @param priority 우선순위 (낮을수록 높은 우선순위)
34
+ * @param retryCount 재시도 횟수
35
+ * @returns 추가 성공 여부
36
+ */
37
+ add(name: string, job: () => Promise<void>, priority: number, retryCount?: number): boolean;
38
+ /**
39
+ * 다음 작업 가져오기 (우선순위 순으로 정렬)
40
+ *
41
+ * @returns 다음 작업 또는 undefined
42
+ */
43
+ getNext(): QueuedJob | undefined;
44
+ /**
45
+ * 실행 중인 작업으로 표시
46
+ *
47
+ * @param name 작업 이름
48
+ */
49
+ markRunning(name: string): void;
50
+ /**
51
+ * 실행 완료된 작업 표시 제거
52
+ *
53
+ * @param name 작업 이름
54
+ */
55
+ markCompleted(name: string): void;
56
+ /**
57
+ * 큐 크기
58
+ */
59
+ get size(): number;
60
+ /**
61
+ * 실행 중인 작업 수
62
+ */
63
+ get runningCount(): number;
64
+ /**
65
+ * 큐가 비어있는지 확인
66
+ */
67
+ get isEmpty(): boolean;
68
+ /**
69
+ * 큐 비우기
70
+ */
71
+ clear(): void;
72
+ /**
73
+ * 특정 작업이 실행 중인지 확인
74
+ *
75
+ * @param name 작업 이름
76
+ */
77
+ isRunning(name: string): boolean;
78
+ /**
79
+ * 특정 작업이 큐에 있는지 확인
80
+ *
81
+ * @param name 작업 이름
82
+ */
83
+ isQueued(name: string): boolean;
84
+ }
85
+ //# sourceMappingURL=job-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-queue.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/job-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,GAAE,cAAmB;IAIvC;;;;;;;;OAQG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO;IA6B9F;;;;OAIG;IACH,OAAO,IAAI,SAAS,GAAG,SAAS;IAWhC;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGhC"}