/** * Context persistence - save and load conversation context between sessions */ import { Message } from '../config/index'; export interface ConversationContext { id: string; projectPath: string; projectName: string; createdAt: number; updatedAt: number; messages: Message[]; summary?: string; } /** * Save conversation context for a project */ export declare function saveContext(projectPath: string, messages: Message[], summary?: string): boolean; /** * Load conversation context for a project */ export declare function loadContext(projectPath: string): ConversationContext | null; /** * Clear context for a project */ export declare function clearContext(projectPath: string): boolean; /** * Get all saved contexts */ export declare function getAllContexts(): ConversationContext[]; /** * AI-powered compaction of a conversation history. * * Used by the `/compact` slash command. Sends the older portion of the * conversation to the active provider with a summarization prompt, then * replaces those messages with a single system message containing the * summary. Keeps the last `keepRecent` messages verbatim so the * conversation can continue without losing the most recent context. * * Returns the same `history` (untouched) if there isn't enough to * meaningfully compact. */ export declare function compactHistory(history: Message[], options?: { keepRecent?: number; projectContext?: import('./project').ProjectContext | null; /** Cap on how long the summarization API call can take, in ms. Defaults to 60s. */ timeoutMs?: number; /** External abort signal (e.g. user pressed /stop). Combined with the timeout. */ abortSignal?: AbortSignal; }): Promise<{ compacted: Message[]; replaced: number; summary: string; }>; /** * Summarize messages for context persistence * Keeps recent messages and summarizes older ones */ export declare function summarizeContext(messages: Message[], maxMessages?: number): { messages: Message[]; summary?: string; }; /** * Merge loaded context with current conversation */ export declare function mergeContext(loaded: ConversationContext | null, currentMessages: Message[]): Message[]; /** * Format context info for display */ export declare function formatContextInfo(context: ConversationContext): string; /** * Clear all contexts */ export declare function clearAllContexts(): number;