/** * Triple 추출 전용 로거 * * rawLLMOutput을 로그 파일에 저장합니다. * * 보안 정책: * - PII/비밀 정보 마스킹 적용 * - logs/triple-extraction/ 디렉토리에 저장 * - 날짜별 파일로 저장 (예: 2025-01-15.log) * - 30일 로테이션 (2.16에서 구현) * - 성공 케이스 10% 샘플링, 실패 케이스 100% 저장 (2.15에서 구현) */ import type { TripleExtractionResult } from '../../shared/types/triple-extraction.js'; /** * Triple 추출 로그 엔트리 */ export interface TripleExtractionLogEntry { timestamp: string; memory_id?: string; extraction_result: 'success' | 'failed'; triples_count: number; failure_reason?: string; steps?: { canonicalization: boolean; entityLinking: boolean; }; raw_llm_output?: string; observation_preview?: string; } /** * Triple 추출 로거 설정 */ export interface TripleExtractionLoggerConfig { /** * 로그 디렉토리 (기본: process.cwd()/logs/triple-extraction) */ logDir?: string; /** * 로깅 활성화 여부 (기본: true) */ enabled?: boolean; /** * PII 마스킹 활성화 여부 (기본: true) */ enablePIIMasking?: boolean; } /** * Triple 추출 전용 로거 */ export declare class TripleExtractionLogger { private config; private logDir; constructor(config?: TripleExtractionLoggerConfig); /** * Triple 추출 결과 로깅 * * @param result Triple 추출 결과 * @param memoryId Episodic Memory ID (선택사항) * @param observation Observation 텍스트 (선택사항, 미리보기용) */ logExtraction(result: TripleExtractionResult, memoryId?: string, observation?: string): Promise; /** * 로그 엔트리 생성 */ private createLogEntry; /** * 로그 디렉토리 생성 */ private ensureLogDirectory; /** * 날짜별 로그 파일 경로 반환 * 형식: YYYY-MM-DD.log * * PRD 0019: 보안 강화 (Phase 1) - Path Traversal 방지 * 파일 경로 검증 적용 */ private getLogFilePath; /** * 로그 파일 목록 조회 * * PRD 0019: 보안 강화 (Phase 1) - Path Traversal 방지 * 파일 경로 검증 적용 * * @returns 로그 파일 경로 배열 */ listLogFiles(): Promise; /** * 오래된 로그 파일 삭제 (30일 이상) * * @param retentionDays 보존 기간 (일) (기본: 30일) */ deleteOldLogs(retentionDays?: number): Promise; } /** * 싱글톤 인스턴스 */ export declare const tripleExtractionLogger: TripleExtractionLogger; //# sourceMappingURL=triple-extraction-logger.d.ts.map