/** * State persistence module for DCP plugin. * Persists pruned tool IDs across sessions so they survive OpenCode restarts. * Storage location: ~/.local/share/opencode/storage/plugin/dcp/{sessionId}.json */ import type { CompressionBlock, PrunedMessageEntry, SessionState, SessionStats } from "./types"; import type { Logger } from "../logger"; /** Prune state as stored on disk */ export interface PersistedPruneMessagesState { byMessageId: Record; blocksById: Record; activeBlockIds: number[]; activeByAnchorMessageId: Record; nextBlockId: number; nextRunId: number; } export interface PersistedPrune { tools?: Record; messages?: PersistedPruneMessagesState; } export interface PersistedNudges { contextLimitAnchors: string[]; turnNudgeAnchors?: string[]; iterationNudgeAnchors?: string[]; } export interface PersistedSessionState { sessionName?: string; prune: PersistedPrune; nudges: PersistedNudges; stats: SessionStats; lastUpdated: string; } export declare function saveSessionState(sessionState: SessionState, logger: Logger, sessionName?: string): Promise; export declare function loadSessionState(sessionId: string, logger: Logger): Promise; export interface AggregatedStats { totalTokens: number; totalTools: number; totalMessages: number; sessionCount: number; } export declare function loadAllSessionStats(logger: Logger): Promise; //# sourceMappingURL=persistence.d.ts.map