91 lines
2.5 KiB
TypeScript
91 lines
2.5 KiB
TypeScript
/**
|
|
* Session history management
|
|
* @module nopy.history
|
|
*/
|
|
import type { NopySession } from './nopy.session.js';
|
|
/** Default number of sessions to keep in history */
|
|
export declare const DEFAULT_HISTORY_SIZE = 10;
|
|
/** History file name */
|
|
export declare const HISTORY_FILE = ".nopy.history.json";
|
|
/**
|
|
* A session entry in history
|
|
*/
|
|
export interface HistoryEntry {
|
|
/** Unique identifier (timestamp-based) */
|
|
id: string;
|
|
/** Human-readable name (timestamp + cube names) */
|
|
name: string;
|
|
/** ISO timestamp when session was executed */
|
|
timestamp: string;
|
|
/** The full session data */
|
|
session: NopySession;
|
|
}
|
|
/**
|
|
* History file structure
|
|
*/
|
|
export interface SessionHistory {
|
|
/** Array of session entries, newest first */
|
|
entries: HistoryEntry[];
|
|
}
|
|
/**
|
|
* Gets the path to the history file
|
|
*/
|
|
export declare function getHistoryPath(): string;
|
|
/**
|
|
* Loads the session history from disk
|
|
*
|
|
* @returns The session history or empty history if file doesn't exist
|
|
*/
|
|
export declare function loadHistory(): SessionHistory;
|
|
/**
|
|
* Saves the session history to disk
|
|
*
|
|
* @param history - The history to save
|
|
*/
|
|
export declare function saveHistory(history: SessionHistory): void;
|
|
/**
|
|
* Adds a session to the history
|
|
*
|
|
* @param session - The session to add
|
|
* @param maxEntries - Maximum number of entries to keep
|
|
* @returns The created history entry
|
|
*/
|
|
export declare function addToHistory(session: NopySession, maxEntries?: number): HistoryEntry;
|
|
/**
|
|
* Gets the most recent session from history
|
|
*
|
|
* @returns The last session or undefined if history is empty
|
|
*/
|
|
export declare function getLastSession(): HistoryEntry | undefined;
|
|
/**
|
|
* Gets a session by ID
|
|
*
|
|
* @param id - The session ID
|
|
* @returns The session entry or undefined
|
|
*/
|
|
export declare function getSessionById(id: string): HistoryEntry | undefined;
|
|
/**
|
|
* Lists all sessions in history
|
|
*
|
|
* @returns Array of history entries, newest first
|
|
*/
|
|
export declare function listHistory(): HistoryEntry[];
|
|
/**
|
|
* Clears all session history
|
|
*/
|
|
export declare function clearHistory(): void;
|
|
/**
|
|
* Removes a specific session from history
|
|
*
|
|
* @param id - The session ID to remove
|
|
* @returns true if removed, false if not found
|
|
*/
|
|
export declare function removeFromHistory(id: string): boolean;
|
|
/**
|
|
* Formats history entries for display
|
|
*
|
|
* @param entries - History entries to format
|
|
* @returns Formatted string for console output
|
|
*/
|
|
export declare function formatHistoryList(entries: HistoryEntry[]): string;
|