Feat: Add System Control (Standby Mode) and Resource Monitor

This commit is contained in:
cawcenter
2025-12-14 19:50:05 -05:00
parent f7997cdd88
commit 88d3157cd9
8 changed files with 274 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
---
import AdminLayout from '../../layouts/AdminLayout.astro';
import SystemMonitor from '../../components/admin/dashboard/SystemMonitor';
import SystemControl from '../../components/admin/SystemControl';
---
<AdminLayout title="Mission Control">
@@ -9,6 +10,10 @@ import SystemMonitor from '../../components/admin/dashboard/SystemMonitor';
<h1 class="text-3xl font-bold text-white mb-2">Command Station</h1>
<p class="text-slate-400">System Monitoring, Sub-Station Status, and Content Integrity.</p>
</div>
<div class="mb-8">
<SystemControl client:load />
</div>
<SystemMonitor client:load />
</div>

View File

@@ -0,0 +1,33 @@
import type { APIRoute } from 'astro';
import { system } from '@/lib/system/SystemController';
// GET: Retrieve current metrics and state
export const GET: APIRoute = async () => {
const metrics = await system.getMetrics();
return new Response(JSON.stringify(metrics), {
status: 200,
headers: { 'Content-Type': 'application/json' }
});
};
// POST: Toggle state
export const POST: APIRoute = async ({ request }) => {
try {
const body = await request.json();
if (body.action === 'toggle') {
const newState = system.toggle();
return new Response(JSON.stringify({
success: true,
state: newState,
message: `System is now ${newState.toUpperCase()}`
}));
}
return new Response(JSON.stringify({ error: 'Invalid action' }), { status: 400 });
} catch (e: any) {
return new Response(JSON.stringify({ error: e.message }), { status: 500 });
}
};