import { type DiagnosticEvent } from "../diagnostics/error-codes.js"; /** * Strict Pi session v3 JSONL streaming parser(roadmap §5.1)。 */ export interface SessionHeader { type: "session"; version: number; id: string; cwd: string; timestamp: string; parentSession?: string; } export interface ParsedEntryBase { type: string; id: string; parentId: string | null; timestamp: string; byteOffset: number; lineHash: string; } export interface TextBlock { blockIndex: number; text: string; } export interface ParsedMessageEntry extends ParsedEntryBase { type: "message"; role: string; rawContent: unknown; textBlocks: TextBlock[]; } export type ParsedEntry = ParsedMessageEntry | (ParsedEntryBase & { type: string; }); export type SessionParseStatus = "ok" | "header-invalid" | "legacy-unsupported" | "empty"; export interface ParsedSession { status: SessionParseStatus; header?: SessionHeader; entries: ParsedEntry[]; messages: ParsedMessageEntry[]; diagnostics: DiagnosticEvent[]; /** 完整文件字节长度 */ byteLength: number; /** 末尾完整行 hash(增量游标) */ trailingLineHash: string | null; /** 下一可追加 byte offset */ nextByteOffset: number; } /** * 解析完整 session 文本(按行扫描,不把正文写入 diagnostics)。 */ export declare function parseSessionText(text: string): ParsedSession; /** * 仅提取 user/assistant 的 text blocks。 */ export declare function extractTextBlocks(role: string, content: unknown): TextBlock[]; /** * 行 hash。 */ export declare function hashLine(line: string): string; //# sourceMappingURL=parser.d.ts.map