mcp-adr-analysis-server
Version:
MCP server for analyzing Architectural Decision Records and project architecture
77 lines • 2.67 kB
TypeScript
/**
* Memory Stats Resource - Conversation memory statistics
* URI Pattern: adr://memory/stats
*/
import { URLSearchParams } from 'url';
import { ResourceGenerationResult } from './index.js';
import type { ConversationMemoryManager } from '../utils/conversation-memory-manager.js';
import type { ConversationMemoryStats } from '../types/conversation-memory.js';
export interface MemoryStatsData extends ConversationMemoryStats {
timestamp: string;
storageSizeKB: number;
}
/**
* Generate memory statistics resource showing conversation memory metrics.
*
* Returns comprehensive statistics about stored conversation memory:
* - Total and active session counts
* - Turn counts and averages
* - Expandable content tracking
* - Storage size metrics
*
* **URI Pattern:** `adr://memory/stats`
*
* **Query Parameters:** (none)
*
* @param params - URL path parameters (none for this resource)
* @param searchParams - URL query parameters (none used)
* @param memoryManager - ConversationMemoryManager instance (injected by MCP server)
*
* @returns Promise resolving to resource generation result containing:
* - data: Memory statistics with all metrics
* - contentType: "application/json"
* - lastModified: ISO timestamp of generation
* - cacheKey: Unique identifier "memory-stats"
* - ttl: Cache duration (30 seconds)
* - etag: Entity tag for cache validation
*
* @throws {McpAdrError} When:
* - RESOURCE_GENERATION_ERROR: Memory manager not provided or stats retrieval fails
*
* @example
* ```typescript
* // Get memory statistics
* const stats = await generateMemoryStatsResource(
* {},
* new URLSearchParams(),
* memoryManager
* );
*
* console.log(`Total Sessions: ${stats.data.totalSessions}`);
* console.log(`Active Sessions: ${stats.data.activeSessions}`);
* console.log(`Storage Size: ${stats.data.storageSizeKB} KB`);
*
* // Expected output structure:
* {
* data: {
* totalSessions: 15,
* activeSessions: 3,
* archivedSessions: 12,
* totalTurns: 147,
* totalExpandableContent: 28,
* avgTurnsPerSession: 9.8,
* totalStorageBytes: 524288,
* storageSizeKB: 512,
* timestamp: "2025-12-16T04:30:00.000Z"
* },
* contentType: "application/json",
* cacheKey: "memory-stats",
* ttl: 30
* }
* ```
*
* @since v2.2.0
* @see {@link ConversationMemoryManager.getStats} for stats calculation logic
*/
export declare function generateMemoryStatsResource(_params: Record<string, string>, _searchParams: URLSearchParams, memoryManager?: ConversationMemoryManager): Promise<ResourceGenerationResult>;
//# sourceMappingURL=memory-stats-resource.d.ts.map