/** * Session JSONL Parser * * Claude Code 세션 JSONL 파일을 파싱하여 SessionMessage 배열로 변환합니다. * 세션 파일 위치: ~/.claude/projects//.jsonl */ import type { SessionMessage, SessionInfo } from '../types/index.js'; /** * JSONL 파일을 파싱하여 SessionMessage 배열 반환 */ export declare function parseSessionFile(filePath: string): SessionMessage[]; /** * 프로젝트 경로를 Claude Code의 디렉토리 slug로 변환 (ADR-052 D1) * * Claude Code는 **모든 비영숫자**를 '-'로 치환한다. 슬래시만 바꾸면 * 언더스코어·점·공백을 가진 경로가 실재하는 디렉토리와 어긋나 세션 파일을 * 0건으로 인식한다(#84 — extract가 이 경로에서 성공한 적이 없었다). * * /Users/me/local_dev_source/A2A → -Users-me-local-dev-source-A2A * /Users/me/bitwarden/syncus.kr → -Users-me-bitwarden-syncus-kr * * 대소문자는 보존한다(`A2A` 실측). */ export declare function projectPathToSlug(projectPath: string): string; /** * Claude 디렉토리 slug를 프로젝트 경로로 **추정** (ADR-052 D2) * * ⚠️ 손실 변환이다 — slug의 '-'가 원래 '/'였는지 '_'였는지 '.'이었는지 * 알 수 없다. `-Users-me-local-dev-source-A2A`를 되돌리면 * `/Users/me/local/dev/source/A2A`가 되어 실제 경로와 다르다. * (이 손상이 sessions 233행에 실제로 기록돼 있었다.) * * 따라서 **정확한 경로를 아는 호출자는 이 함수를 쓰면 안 된다**: * - caller가 projectPath를 알면 그 값을 그대로 쓴다 * - 전체 스캔이면 transcript의 `cwd`(원본 무손실)를 우선 사용한다 * 이 함수는 두 소스가 모두 없을 때의 마지막 fallback이다. */ export declare function slugToProjectPath(slug: string): string; /** * transcript(.jsonl)에서 원본 프로젝트 경로(cwd)를 추출 (ADR-052 D2) * * Claude Code는 각 메시지 줄에 `cwd`를 기록한다 — slug 역추정과 달리 * 손실이 없다. 파일 내용을 이미 읽은 경우 재사용하도록 content를 받는다. */ export declare function extractCwdFromContent(content: string): string | null; /** * 세션 파일 목록 탐색 */ export declare function findSessionFiles(projectPath?: string): SessionInfo[]; /** * 특정 세션의 메시지 반환 */ export declare function getSessionMessages(sessionId: string, projectPath: string): SessionMessage[]; //# sourceMappingURL=parser.d.ts.map