// server/services/system.ts import os from "node:os"; import type { SystemMetrics, SystemStatus } from "@shared/types.js"; const APP_VERSION = "0.1.0"; const MB = 1024 * 1024; function round2(value: number): number { return Math.round(value * 100) / 100; } export function getSystemStatus(now = new Date()): SystemStatus { return { app: "system_update", version: APP_VERSION, apiVersion: "1", serverTime: now.toISOString(), uptimeSeconds: Math.round(process.uptime()), }; } export function getSystemMetrics(now = new Date()): SystemMetrics { const memory = process.memoryUsage(); const load = os.loadavg(); return { collectedAt: now.toISOString(), process: { uptimeSeconds: Math.round(process.uptime()), rssMb: round2(memory.rss / MB), heapUsedMb: round2(memory.heapUsed / MB), heapTotalMb: round2(memory.heapTotal / MB), }, host: { loadAverage1m: round2(load[0] ?? 0), loadAverage5m: round2(load[1] ?? 0), loadAverage15m: round2(load[2] ?? 0), totalMemoryMb: round2(os.totalmem() / MB), freeMemoryMb: round2(os.freemem() / MB), }, }; } export const systemInternals = { round2 };