File size: 18,640 Bytes
ef33ffa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
<!DOCTYPE html>

<html class="dark" lang="en"><head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>Mission Control - Diagnostics &amp; Logs</title>
<script src="https://cdn.tailwindcss.com?plugins=forms,container-queries"></script>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&amp;family=Manrope:wght@300;400;500;600;700;800&amp;display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&amp;display=swap" rel="stylesheet"/>
<script id="tailwind-config">
      tailwind.config = {
        darkMode: "class",
        theme: {
          extend: {
            colors: {
              "inverse-primary": "#006a70",
              "primary-container": "#00f1fe",
              "inverse-on-surface": "#51555d",
              "tertiary-dim": "#ecaa00",
              "on-surface-variant": "#a8abb4",
              "tertiary-container": "#feb700",
              "surface-container": "#151a21",
              "on-tertiary-fixed": "#392700",
              "tertiary": "#ffc965",
              "on-tertiary-container": "#533a00",
              "on-tertiary": "#5f4200",
              "on-primary": "#005f64",
              "surface-container-lowest": "#000000",
              "secondary-fixed": "#37ee9b",
              "secondary-fixed-dim": "#19df8f",
              "outline-variant": "#44484f",
              "inverse-surface": "#f8f9ff",
              "error-container": "#9f0519",
              "secondary-dim": "#19df8f",
              "on-primary-fixed": "#004145",
              "on-primary-fixed-variant": "#006065",
              "on-background": "#f1f3fd",
              "primary-dim": "#00e2ee",
              "on-tertiary-fixed-variant": "#5f4200",
              "error": "#ff716c",
              "primary-fixed-dim": "#00e2ee",
              "on-secondary-container": "#e2ffe9",
              "error-dim": "#d7383b",
              "tertiary-fixed": "#feb700",
              "primary": "#99f7ff",
              "surface-bright": "#262c36",
              "on-secondary": "#005331",
              "on-surface": "#f1f3fd",
              "surface": "#0a0e14",
              "secondary-container": "#006d42",
              "on-secondary-fixed-variant": "#005d38",
              "surface-container-high": "#1b2028",
              "primary-fixed": "#00f1fe",
              "surface-variant": "#20262f",
              "surface-tint": "#99f7ff",
              "outline": "#72757d",
              "on-primary-container": "#00555a",
              "surface-container-low": "#0f141a",
              "on-error-container": "#ffa8a3",
              "secondary": "#37ee9b",
              "on-secondary-fixed": "#003d23",
              "surface-container-highest": "#20262f",
              "on-error": "#490006",
              "background": "#0a0e14",
              "surface-dim": "#0a0e14",
              "tertiary-fixed-dim": "#ecaa00"
            },
            fontFamily: {
              "headline": ["Space Grotesk"],
              "body": ["Manrope"],
              "label": ["Space Grotesk"]
            },
            borderRadius: {"DEFAULT": "0.125rem", "lg": "0.25rem", "xl": "0.5rem", "full": "0.75rem"},
          },
        },
      }
    </script>
<style>
      .material-symbols-outlined {
        font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
      }
      ::-webkit-scrollbar { width: 2px; }
      ::-webkit-scrollbar-track { background: transparent; }
      ::-webkit-scrollbar-thumb { background: #00e2ee; }
      .glow-primary { box-shadow: 0 0 15px rgba(0, 241, 254, 0.2); }
      .terminal-cursor { animation: blink 1s step-end infinite; }
      @keyframes blink { 50% { opacity: 0; } }
    </style>
</head>
<body class="bg-surface text-on-surface font-body selection:bg-primary-container selection:text-on-primary-fixed">
<!-- Top Navigation Shell -->
<header class="fixed top-0 w-full z-50 flex justify-between items-center px-6 h-16 bg-[#0a0e14]/80 backdrop-blur-xl border-b border-[#44484f]/20">
<div class="flex items-center gap-8">
<span class="text-2xl font-bold tracking-tighter text-[#00f2ff] drop-shadow-[0_0_8px_rgba(0,242,255,0.4)] font-headline">MISSION CONTROL</span>
<nav class="hidden md:flex gap-6 font-headline tracking-tight text-sm uppercase">
<a class="text-[#f1f3fd]/60 hover:text-[#00f2ff] hover:bg-[#20262f]/50 transition-all duration-300 px-2 py-1" href="#">Dashboard</a>
<a class="text-[#f1f3fd]/60 hover:text-[#00f2ff] hover:bg-[#20262f]/50 transition-all duration-300 px-2 py-1" href="#">Agents</a>
<a class="text-[#00f2ff] border-b-2 border-[#00f2ff] pb-1" href="#">Diagnostics</a>
</nav>
</div>
<div class="flex items-center gap-4">
<div class="flex items-center gap-2 bg-surface-container-highest px-3 py-1 rounded-lg border border-outline-variant/20">
<span class="material-symbols-outlined text-secondary text-xs" style="font-variation-settings: 'FILL' 1;">fiber_manual_record</span>
<span class="text-[10px] font-label font-bold tracking-widest text-secondary">TELEMETRY: LIVE</span>
</div>
<div class="flex gap-2">
<button class="p-2 text-[#f1f3fd]/60 hover:text-[#00f2ff] transition-all"><span class="material-symbols-outlined">notifications</span></button>
<button class="p-2 text-[#f1f3fd]/60 hover:text-[#00f2ff] transition-all"><span class="material-symbols-outlined">settings</span></button>
<button class="p-2 text-[#f1f3fd]/60 hover:text-[#00f2ff] transition-all"><span class="material-symbols-outlined">account_circle</span></button>
</div>
</div>
</header>
<!-- Side Navigation Shell -->
<aside class="fixed left-0 top-0 h-full flex flex-col pt-20 pb-6 w-64 z-40 bg-[#0f141a] border-r border-[#44484f]/20">
<div class="px-6 mb-8">
<div class="flex items-center gap-3">
<div class="w-10 h-10 rounded-full bg-primary-container/20 flex items-center justify-center border border-primary/30">
<span class="material-symbols-outlined text-primary">psychology</span>
</div>
<div>
<h3 class="text-lg font-black text-[#f1f3fd] font-headline">NEURAL ARCHITECT</h3>
<p class="text-[10px] font-label text-secondary tracking-widest">SYSTEM: OPTIMAL</p>
</div>
</div>
</div>
<nav class="flex-1 flex flex-col font-label text-xs tracking-widest uppercase">
<a class="flex items-center gap-4 px-6 py-4 text-[#f1f3fd]/40 hover:text-[#f1f3fd]/80 hover:bg-[#20262f] transition-colors duration-200" href="#">
<span class="material-symbols-outlined">dashboard</span> Mission Overview
            </a>
<a class="flex items-center gap-4 px-6 py-4 text-[#f1f3fd]/40 hover:text-[#f1f3fd]/80 hover:bg-[#20262f] transition-colors duration-200" href="#">
<span class="material-symbols-outlined">admin_panel_settings</span> Manager View
            </a>
<a class="flex items-center gap-4 px-6 py-4 text-[#f1f3fd]/40 hover:text-[#f1f3fd]/80 hover:bg-[#20262f] transition-colors duration-200" href="#">
<span class="material-symbols-outlined">smart_toy</span> Agent Monitor
            </a>
<a class="flex items-center gap-4 px-6 py-4 text-[#f1f3fd]/40 hover:text-[#f1f3fd]/80 hover:bg-[#20262f] transition-colors duration-200" href="#">
<span class="material-symbols-outlined">history</span> History
            </a>
<div class="mt-auto pt-4 border-t border-outline-variant/10">
<a class="flex items-center gap-4 px-6 py-4 bg-[#00f2ff]/10 text-[#00f2ff] border-r-4 border-[#00f2ff] shadow-[inset_-10px_0_15px_-10px_rgba(0,242,255,0.3)]" href="#">
<span class="material-symbols-outlined">biotech</span> Diagnostics
                </a>
<a class="flex items-center gap-4 px-6 py-4 text-[#f1f3fd]/40 hover:text-[#f1f3fd]/80 hover:bg-[#20262f] transition-colors duration-200" href="#">
<span class="material-symbols-outlined">terminal</span> Logs
                </a>
</div>
</nav>
</aside>
<!-- Main Content Canvas -->
<main class="pl-64 pt-16 h-screen flex flex-col bg-surface overflow-hidden">
<!-- Dashboard Header / Micro-Metrics -->
<div class="grid grid-cols-4 gap-0 border-b border-outline-variant/20 bg-surface-container-low">
<div class="p-6 border-r border-outline-variant/10">
<p class="text-[10px] font-label text-on-surface-variant tracking-widest uppercase mb-1">DB Connection</p>
<div class="flex items-end gap-2">
<span class="text-xl font-headline font-bold text-on-surface">missions.db</span>
<span class="text-xs font-label text-secondary mb-1">CONNECTED</span>
</div>
</div>
<div class="p-6 border-r border-outline-variant/10">
<p class="text-[10px] font-label text-on-surface-variant tracking-widest uppercase mb-1">API Health</p>
<div class="flex items-end gap-2">
<span class="text-xl font-headline font-bold text-on-surface">99.98%</span>
<span class="text-xs font-label text-secondary mb-1">STABLE</span>
</div>
</div>
<div class="p-6 border-r border-outline-variant/10">
<p class="text-[10px] font-label text-on-surface-variant tracking-widest uppercase mb-1">FastAPI Latency</p>
<div class="flex items-end gap-2">
<span class="text-xl font-headline font-bold text-on-surface">12ms</span>
<span class="text-xs font-label text-primary mb-1">OPTIMAL</span>
</div>
</div>
<div class="p-6">
<p class="text-[10px] font-label text-on-surface-variant tracking-widest uppercase mb-1">Active Agents</p>
<div class="flex items-end gap-2">
<span class="text-xl font-headline font-bold text-on-surface">14/14</span>
<div class="w-16 h-1.5 bg-surface-container-highest rounded-full mb-2 overflow-hidden">
<div class="h-full bg-primary-container w-[100%]"></div>
</div>
</div>
</div>
</div>
<!-- Split Screen View -->
<div class="flex flex-1 overflow-hidden">
<!-- Left: Event Stream -->
<section class="w-1/3 border-r border-outline-variant/20 flex flex-col bg-surface-container-lowest">
<div class="p-4 border-b border-outline-variant/10 flex justify-between items-center bg-surface-container-low">
<h2 class="text-xs font-label font-bold tracking-widest uppercase text-on-surface">System Events</h2>
<span class="text-[10px] font-mono text-primary/60">LIVE_TICK: 450ms</span>
</div>
<div class="flex-1 overflow-y-auto">
<!-- Event Item -->
<div class="p-4 border-b border-outline-variant/10 hover:bg-surface-container-high transition-colors cursor-pointer group">
<div class="flex justify-between mb-1">
<span class="text-[10px] font-mono text-on-surface-variant">14:02:44.129</span>
<span class="text-[10px] font-label font-bold tracking-tighter text-secondary px-1.5 py-0.5 bg-secondary/10 rounded">INFO</span>
</div>
<p class="text-sm font-medium text-on-surface group-hover:text-primary transition-colors">Agent-04 Handshake Verified</p>
<p class="text-xs text-on-surface-variant mt-1 font-mono">auth_token: [REDACTED]</p>
</div>
<!-- Event Item (Warning) -->
<div class="p-4 border-b border-outline-variant/10 bg-tertiary/5 hover:bg-tertiary/10 transition-colors cursor-pointer group">
<div class="flex justify-between mb-1">
<span class="text-[10px] font-mono text-on-surface-variant">14:01:12.004</span>
<span class="text-[10px] font-label font-bold tracking-tighter text-tertiary px-1.5 py-0.5 bg-tertiary/10 rounded">WARN</span>
</div>
<p class="text-sm font-medium text-tertiary group-hover:underline">High Memory Usage: Node_Sigma</p>
<p class="text-xs text-on-surface-variant mt-1 font-mono">utilization: 88.4%</p>
</div>
<!-- Event Item (Error) -->
<div class="p-4 border-b border-outline-variant/10 bg-error/5 hover:bg-error/10 transition-colors cursor-pointer group">
<div class="flex justify-between mb-1">
<span class="text-[10px] font-mono text-on-surface-variant">13:58:30.992</span>
<span class="text-[10px] font-label font-bold tracking-tighter text-error px-1.5 py-0.5 bg-error/10 rounded">ERROR</span>
</div>
<p class="text-sm font-medium text-error">Database Query Timeout</p>
<p class="text-xs text-on-surface-variant mt-1 font-mono">source: missions.db/active_threads</p>
</div>
<!-- Event Item -->
<div class="p-4 border-b border-outline-variant/10 hover:bg-surface-container-high transition-colors cursor-pointer group">
<div class="flex justify-between mb-1">
<span class="text-[10px] font-mono text-on-surface-variant">13:55:01.440</span>
<span class="text-[10px] font-label font-bold tracking-tighter text-secondary px-1.5 py-0.5 bg-secondary/10 rounded">INFO</span>
</div>
<p class="text-sm font-medium text-on-surface">Neural Weights Sync Complete</p>
<p class="text-xs text-on-surface-variant mt-1 font-mono">delta_hash: 8f92-a1b2</p>
</div>
<!-- Repeated Item for Scrolling -->
<div class="p-4 border-b border-outline-variant/10 hover:bg-surface-container-high transition-colors cursor-pointer group">
<div class="flex justify-between mb-1">
<span class="text-[10px] font-mono text-on-surface-variant">13:52:10.118</span>
<span class="text-[10px] font-label font-bold tracking-tighter text-secondary px-1.5 py-0.5 bg-secondary/10 rounded">INFO</span>
</div>
<p class="text-sm font-medium text-on-surface">System Diagnostic Sweep</p>
<p class="text-xs text-on-surface-variant mt-1 font-mono">result: all_clear</p>
</div>
</div>
</section>
<!-- Right: Raw Terminal Logs -->
<section class="flex-1 flex flex-col bg-surface-container-lowest">
<div class="p-4 border-b border-outline-variant/10 flex justify-between items-center bg-surface-container-low">
<div class="flex gap-4">
<button class="text-xs font-label font-bold tracking-widest uppercase text-primary border-b border-primary">FastAPI_Stdout</button>
<button class="text-xs font-label font-bold tracking-widest uppercase text-on-surface-variant hover:text-on-surface transition-colors">Neural_Engine</button>
<button class="text-xs font-label font-bold tracking-widest uppercase text-on-surface-variant hover:text-on-surface transition-colors">Postgres_Logs</button>
</div>
<div class="flex gap-3">
<button class="flex items-center gap-1 text-[10px] font-label font-bold tracking-widest text-on-surface-variant hover:text-on-surface">
<span class="material-symbols-outlined text-sm">download</span> EXPORT
                        </button>
<button class="flex items-center gap-1 text-[10px] font-label font-bold tracking-widest text-on-surface-variant hover:text-on-surface">
<span class="material-symbols-outlined text-sm">delete</span> CLEAR
                        </button>
</div>
</div>
<!-- Terminal Interface -->
<div class="flex-1 p-6 font-mono text-xs overflow-y-auto leading-relaxed bg-black/40">
<div class="space-y-1">
<p class="text-on-surface-variant opacity-50">[INFO] [2023-11-24T14:00:00Z] Starting FastAPI application...</p>
<p class="text-on-surface-variant opacity-50">[INFO] [2023-11-24T14:00:01Z] Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)</p>
<p class="text-secondary">[DEBUG] Initializing Database Connection: sqlite:///missions.db</p>
<p class="text-secondary">[DEBUG] Database models loaded: Agent, Mission, LogEntry, DiagnosticReport</p>
<p class="text-primary">[INFO] Loading neural architecture: Version 4.2.0-STABLE</p>
<p class="text-on-surface-variant opacity-80">--- SYSTEM READY ---</p>
<br/>
<p class="text-on-surface">14:01:05 GET /v1/status HTTP/1.1 200 OK (0.4ms)</p>
<p class="text-on-surface">14:01:08 POST /v1/agent/sync HTTP/1.1 201 Created (12.2ms)</p>
<p class="text-tertiary">[WARN] Worker thread 4 blocked for 45ms. Threshold exceeded.</p>
<p class="text-on-surface">14:02:12 GET /v1/telemetry/live HTTP/1.1 200 OK (1.1ms)</p>
<p class="text-on-surface">14:02:15 GET /v1/telemetry/live HTTP/1.1 200 OK (0.9ms)</p>
<p class="text-on-surface">14:02:18 GET /v1/telemetry/live HTTP/1.1 200 OK (0.9ms)</p>
<p class="text-error">[CRITICAL] SQLAlchemy ConnectionError: Timeout waiting for pool</p>
<p class="text-error-dim">Traceback (most recent call last):</p>
<p class="text-error-dim ml-4">File "/app/main.py", line 42, in get_db_status</p>
<p class="text-error-dim ml-4">File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 520, in connect</p>
<p class="text-error-dim">TimeoutError: [Errno 110] Connection timed out</p>
<p class="text-secondary">[AUTO-RECOVERY] Re-establishing database pool connection...</p>
<p class="text-secondary">[AUTO-RECOVERY] Pool re-initialized. Active connections: 2</p>
<p class="text-on-surface">14:02:44 GET /v1/health HTTP/1.1 200 OK (2.2ms)</p>
<p class="text-on-surface">14:02:45 GET /v1/telemetry/live HTTP/1.1 200 OK (1.0ms)</p>
<div class="flex items-center gap-1">
<span class="text-primary-container font-bold">root@mission-control:~$</span>
<span class="text-on-surface">tail -f /var/log/neural_engine.log</span>
<span class="w-2 h-4 bg-primary-container terminal-cursor"></span>
</div>
</div>
</div>
<!-- Terminal Bottom Bar -->
<div class="p-4 bg-surface-container-high border-t border-outline-variant/20 flex gap-4">
<div class="flex-1 bg-surface-container-lowest border-b border-primary/30 px-3 py-2 flex items-center">
<span class="material-symbols-outlined text-primary text-sm mr-2">chevron_right</span>
<input class="bg-transparent border-none focus:ring-0 text-xs font-mono w-full text-on-surface placeholder:text-on-surface-variant/30 uppercase tracking-widest" placeholder="EXECUTE_COMMAND..." type="text"/>
</div>
<button class="bg-primary-container text-on-primary-fixed px-6 py-2 font-label font-bold text-[10px] tracking-widest uppercase hover:shadow-[0_0_15px_rgba(0,241,254,0.4)] transition-all active:scale-95">Execute</button>
</div>
</section>
</div>
</main>
<!-- Contextual Details Panel (Hidden Overlay Example) -->
<div class="fixed right-6 bottom-6 w-80 bg-surface-variant/60 backdrop-blur-xl border border-outline-variant/20 p-6 z-50">
<h3 class="text-xs font-label font-bold tracking-widest uppercase text-primary mb-4">Neural Health Monitor</h3>
<div class="space-y-4">
<div>
<div class="flex justify-between text-[10px] font-label text-on-surface-variant mb-1 uppercase">
<span>CPU Entropy</span>
<span>14%</span>
</div>
<div class="h-1 bg-surface-container-highest rounded-full">
<div class="h-full bg-secondary w-[14%]"></div>
</div>
</div>
<div>
<div class="flex justify-between text-[10px] font-label text-on-surface-variant mb-1 uppercase">
<span>Log Velocity</span>
<span>High (2.4k/s)</span>
</div>
<div class="h-1 bg-surface-container-highest rounded-full">
<div class="h-full bg-primary w-[78%]"></div>
</div>
</div>
<div class="pt-2">
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full bg-secondary shadow-[0_0_8px_#37ee9b]"></div>
<span class="text-[10px] font-label text-on-surface tracking-widest uppercase">Encryption Active (AES-256)</span>
</div>
</div>
</div>
</div>
</body></html>