UNPKG

agentic-qe

Version:

Agentic Quality Engineering Fleet System - AI-driven quality management platform

74 lines 2.62 kB
"use strict"; /** * Memory Stats Command * Display comprehensive memory statistics */ Object.defineProperty(exports, "__esModule", { value: true }); exports.stats = void 0; const Logger_1 = require("../../../utils/Logger"); async function stats(options) { const logger = Logger_1.Logger.getInstance(); try { // Get memory manager stats const memStats = options.memoryManager.getStats(); // Calculate total size const totalSizeMB = memStats.totalSize / (1024 * 1024); // Get namespace breakdown const byNamespace = {}; for (const namespace of memStats.namespaces) { const keys = await options.memoryManager.list(namespace); let sizeMB = 0; let ttlKeys = 0; let persistentKeys = 0; for (const key of keys) { const value = await options.memoryManager.retrieve(key, namespace); if (value) { sizeMB += JSON.stringify(value).length / (1024 * 1024); } const ttl = await options.memoryManager.getTTL(key, namespace); if (ttl === -1) { persistentKeys++; } else { ttlKeys++; } } byNamespace[namespace] = { keys: keys.length, sizeMB: parseFloat(sizeMB.toFixed(4)), ttlKeys, persistentKeys }; } // Get disk storage stats let diskKeys = 0; try { const result = await options.database.get('SELECT COUNT(*) as count FROM memory_store'); diskKeys = result?.count || 0; } catch (error) { logger.warn('Could not get disk key count'); } // Calculate fragmentation const fragmentation = memStats.expiredKeys > 0 ? (memStats.expiredKeys / memStats.totalKeys) * 100 : 0; return { totalKeys: memStats.totalKeys, totalSizeMB: parseFloat(totalSizeMB.toFixed(2)), namespaces: memStats.namespaces, byNamespace, memoryKeys: memStats.totalKeys, diskKeys, expiringKeys: memStats.totalKeys - memStats.persistentKeys, persistentKeys: memStats.persistentKeys, fragmentation: parseFloat(fragmentation.toFixed(2)) }; } catch (error) { logger.error('Failed to get memory stats:', error); throw error; } } exports.stats = stats; //# sourceMappingURL=stats.js.map