UNPKG

mcp-adr-analysis-server

Version:

MCP server for analyzing Architectural Decision Records and project architecture

82 lines 2.39 kB
/** * Task Persistence for MCP Tasks Integration * * Provides file-based persistence for tasks to survive server restarts. * Uses JSON files stored in a configurable cache directory. * * Implements ADR-018: MCP Tasks Integration Strategy * * @experimental MCP Tasks is an experimental feature in the MCP specification */ import type { AdrTask } from './task-manager.js'; /** * Configuration for task persistence */ export interface TaskPersistenceConfig { /** Directory to store task data (default: .mcp-adr-cache/tasks) */ cacheDir: string; /** Whether persistence is enabled (default: true) */ enabled: boolean; /** Maximum age of persisted tasks in ms (default: 7 days) */ maxAge: number; /** Write delay in ms for debouncing (default: 1000) */ writeDelay: number; } /** * Task Persistence Manager * * Handles saving and loading tasks to/from disk for durability across * server restarts. Uses debounced writes to avoid excessive disk I/O. */ export declare class TaskPersistence { private config; private writeTimer; private pendingWrite; private initialized; constructor(config?: Partial<TaskPersistenceConfig>); /** * Initialize persistence - create cache directory if needed */ initialize(): Promise<void>; /** * Get the path to the tasks file */ private getTasksFilePath; /** * Load persisted tasks from disk */ load(): Promise<{ tasks: Map<string, AdrTask>; progress: Map<string, number>; }>; /** * Save tasks to disk (debounced) */ save(tasks: Map<string, AdrTask>, progress: Map<string, number>): Promise<void>; /** * Force immediate save (for shutdown) */ saveImmediate(tasks: Map<string, AdrTask>, progress: Map<string, number>): Promise<void>; /** * Write data to file */ private writeToFile; /** * Delete persisted task data */ clear(): Promise<void>; /** * Cleanup old task files */ cleanup(): Promise<number>; /** * Shutdown persistence - flush pending writes */ shutdown(): Promise<void>; /** * Check if persistence is enabled */ isEnabled(): boolean; } export declare function createTaskPersistence(config?: Partial<TaskPersistenceConfig>): TaskPersistence; //# sourceMappingURL=task-persistence.d.ts.map