mcp-chain-of-draft-server
Version:
A Model Context Protocol server which provides Chain of Draft style thinking
43 lines (42 loc) • 1.44 kB
TypeScript
export interface SessionMetadata {
created: Date;
lastAccessed: Date;
size: number;
version: number;
}
export interface SessionData<T> {
data: T;
metadata: SessionMetadata;
}
export interface SessionStorageProvider<T> {
get(sessionId: string): Promise<SessionData<T> | null>;
set(sessionId: string, data: SessionData<T>): Promise<void>;
delete(sessionId: string): Promise<void>;
cleanup(maxAge: number): Promise<void>;
}
export declare class InMemorySessionStorage<T> implements SessionStorageProvider<T> {
private sessions;
get(sessionId: string): Promise<SessionData<T> | null>;
set(sessionId: string, data: SessionData<T>): Promise<void>;
delete(sessionId: string): Promise<void>;
cleanup(maxAge: number): Promise<void>;
}
export declare class SessionManager<T> {
private storage;
private readonly maxSessionAge;
private readonly maxSessionSize;
private cleanupInterval;
constructor(storage: SessionStorageProvider<T>, options?: {
maxSessionAge?: number;
maxSessionSize?: number;
cleanupIntervalMs?: number;
});
private startCleanupInterval;
getSession(sessionId: string): Promise<SessionData<T>>;
private createSession;
updateSession(sessionId: string, data: T): Promise<void>;
deleteSession(sessionId: string): Promise<void>;
cleanup(): Promise<void>;
private calculateSize;
destroy(): void;
}