squabble-mcp
Version:
Engineer-driven development with critical-thinking PM collaboration - MCP server for Claude
65 lines • 1.78 kB
TypeScript
import { PMActivityEvent } from '../pm/streaming-session-manager.js';
/**
* Non-blocking activity logger for persistent storage
* Writes events to JSONL file with streaming writes
*/
export declare class ActivityLogger {
private workspaceRoot;
private writeStream?;
private humanWriteStream?;
private readonly activityFile;
private readonly humanReadableFile;
private isInitialized;
private readonly MAX_FILE_SIZE;
private readonly MAX_SESSIONS_TO_KEEP;
constructor(workspaceRoot: string);
/**
* Initialize write streams
*/
initialize(): Promise<void>;
/**
* Log an event asynchronously
*/
logEvent(event: PMActivityEvent): Promise<void>;
/**
* Log human-readable format (async, best-effort)
*/
logHumanReadable(message: string): Promise<void>;
/**
* Format and log event in human-readable form
*/
logEventHumanReadable(event: PMActivityEvent): Promise<void>;
/**
* Flush any pending writes
*/
flush(): Promise<void>;
/**
* Close the logger
*/
close(): Promise<void>;
/**
* Read recent events from file (for initial load)
*/
readRecentEvents(limit?: number): Promise<PMActivityEvent[]>;
/**
* Check if log rotation is needed based on file size
*/
private rotateLogsIfNeeded;
/**
* Rotate logs by keeping only the most recent sessions
*/
private rotateLogs;
/**
* Parse sessions from the JSONL file
*/
private parseSessionsFromFile;
/**
* Write sessions to new files
*/
private writeSessionsToFile;
/**
* Format an event for the human-readable log
*/
private formatEventForHumanLog;
}
//# sourceMappingURL=activity-logger.d.ts.map