UNPKG

mcp-adr-analysis-server

Version:

MCP server for analyzing Architectural Decision Records and project architecture

77 lines 2.67 kB
/** * 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