feat(phase7): complete page audit, add missing admin pages - command station, logs, substations, deployments

This commit is contained in:
cawcenter
2025-12-15 02:03:25 -05:00
parent 80236e4d56
commit 135de6de52
8 changed files with 942 additions and 1 deletions

View File

@@ -0,0 +1,212 @@
---
import AdminLayout from '../../layouts/AdminLayout.astro';
---
<AdminLayout title="Sub-Station Status">
<div class="space-y-8">
<div>
<h1 class="text-4xl font-bold text-gold-500 mb-2">🎛️ Sub-Station Status</h1>
<p class="text-gray-400">Monitor all system sub-stations and services</p>
</div>
<!-- Status Overview -->
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
<!-- Intelligence Station -->
<div class="bg-titanium border border-edge-normal rounded-xl p-6">
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<div class="text-3xl">🧠</div>
<h3 class="text-xl font-bold text-gold-500">Intelligence Station</h3>
</div>
<span class="px-3 py-1 bg-green-500/20 text-green-400 rounded-full text-sm font-semibold">ACTIVE</span>
</div>
<div class="space-y-3">
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Avatar Engine</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">12 avatars loaded</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Geo Intelligence</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">5,234 locations indexed</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Pattern Analyzer</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">28 active patterns</div>
</div>
</div>
</div>
<!-- Production Station -->
<div class="bg-titanium border border-edge-normal rounded-xl p-6">
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<div class="text-3xl">⚡</div>
<h3 class="text-xl font-bold text-gold-500">Production Station</h3>
</div>
<span class="px-3 py-1 bg-green-500/20 text-green-400 rounded-full text-sm font-semibold">ACTIVE</span>
</div>
<div class="space-y-3">
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Content Generator</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">Worker idle, ready</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">BullMQ Worker</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">0 jobs in queue</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Spintax Engine</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Online</span>
</div>
</div>
<div class="text-xs text-gray-500">Ready for processing</div>
</div>
</div>
</div>
<!-- WordPress Ignition -->
<div class="bg-titanium border border-edge-normal rounded-xl p-6">
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<div class="text-3xl">🔌</div>
<h3 class="text-xl font-bold text-gold-500">WordPress Ignition</h3>
</div>
<span class="px-3 py-1 bg-yellow-500/20 text-yellow-400 rounded-full text-sm font-semibold">STANDBY</span>
</div>
<div class="space-y-3">
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">WP Connection</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-xs text-green-400">Ready</span>
</div>
</div>
<div class="text-xs text-gray-500">Not configured</div>
</div>
<div class="bg-obsidian rounded-lg p-3 border border-edge-subtle">
<div class="flex items-center justify-between mb-2">
<span class="text-sm text-gray-400">Sync Engine</span>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-gray-500"></div>
<span class="text-xs text-gray-500">Idle</span>
</div>
</div>
<div class="text-xs text-gray-500">No active syncs</div>
</div>
</div>
</div>
</div>
<!-- Core Services -->
<div class="bg-titanium border border-edge-normal rounded-xl p-6">
<h2 class="text-2xl font-bold text-gold-500 mb-6">🔧 Core Services</h2>
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
<div class="bg-obsidian rounded-lg p-4 border border-edge-subtle">
<div class="text-sm text-gray-400 mb-2">Core API</div>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-green-400 font-semibold">Online</span>
</div>
</div>
<div class="bg-obsidian rounded-lg p-4 border border-edge-subtle">
<div class="text-sm text-gray-400 mb-2">Database</div>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-green-400 font-semibold">Connected</span>
</div>
</div>
<div class="bg-obsidian rounded-lg p-4 border border-edge-subtle">
<div class="text-sm text-gray-400 mb-2">Redis Queue</div>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-green-400 font-semibold">Active</span>
</div>
</div>
<div class="bg-obsidian rounded-lg p-4 border border-edge-subtle">
<div class="text-sm text-gray-400 mb-2">Astro Server</div>
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-green-400"></div>
<span class="text-green-400 font-semibold">Running</span>
</div>
</div>
</div>
</div>
<!-- Implementation Note -->
<div class="bg-blue-500/10 border border-blue-500/30 rounded-xl p-6">
<div class="flex items-start gap-4">
<div class="text-2xl"></div>
<div>
<h3 class="font-semibold text-blue-400 mb-2">Real-Time Status API Required</h3>
<p class="text-sm text-gray-400 mb-3">
This page requires health check endpoints for each service.
</p>
<p class="text-sm text-gray-400">
<strong>API Endpoints:</strong>
</p>
<ul class="text-sm text-gray-400 space-y-1 list-disc list-inside mt-2">
<li><code class="px-2 py-1 bg-obsidian rounded text-gold-500">GET /api/health/intelligence</code></li>
<li><code class="px-2 py-1 bg-obsidian rounded text-gold-500">GET /api/health/production</code></li>
<li><code class="px-2 py-1 bg-obsidian rounded text-gold-500">GET /api/health/wordpress</code></li>
<li><code class="px-2 py-1 bg-obsidian rounded text-gold-500">GET /api/health/core</code></li>
</ul>
</div>
</div>
</div>
</div>
</AdminLayout>
<script>
// Placeholder for health check polling
async function pollHealthStatus() {
// Will poll health endpoints every 5 seconds
console.log('Health check polling placeholder');
}
setInterval(pollHealthStatus, 5000);
</script>