blob: 4903c06e06e763d2235083f5f8b4da3ae32e77cc (
plain)
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
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI Agent Evaluation Dashboard</title>
<!-- CSS Modules -->
<link rel="stylesheet" href="/static/css/base.css">
<link rel="stylesheet" href="/static/css/layout.css">
<link rel="stylesheet" href="/static/css/components.css">
<link rel="stylesheet" href="/static/css/results.css">
<!-- Google Fonts - Inter -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<!-- Chart.js -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
<div class="dashboard-root">
<!-- Sidebar: Data Filters -->
<aside class="sidebar">
<div class="logo-area">
<h1>AI Dashboard</h1>
</div>
<nav class="config-panel">
<div class="form-group">
<label class="form-label">Data Source (CSV)</label>
<select id="csv-file-select" class="input-field">
<option value="">Loading...</option>
</select>
</div>
<div class="form-group" style="margin-top: var(--space-lg);">
<label class="form-label">Global Filters</label>
<div style="font-size: 0.8rem; color: var(--color-text-muted); margin-bottom: var(--space-sm);">Filter active charts by attributes:</div>
<label class="form-label" style="font-size: 0.65rem;">Model</label>
<select id="filter-model" class="input-field">
<option value="all">All Models</option>
</select>
<label class="form-label" style="font-size: 0.65rem; margin-top: 8px;">Scenario</label>
<select id="filter-scenario" class="input-field">
<option value="all">All Scenarios</option>
</select>
<label class="form-label" style="font-size: 0.65rem; margin-top: 8px;">Oversight</label>
<select id="filter-oversight" class="input-field">
<option value="all">All Levels</option>
</select>
</div>
<div class="sidebar-actions" style="margin-top: auto;">
<button id="refresh-btn" class="btn btn-primary" style="width: 100%;">Apply Filters</button>
</div>
</nav>
</aside>
<!-- Main Viewport: Results & Analytics -->
<main class="main-viewport">
<header class="app-header">
<div class="tab-nav" style="border-bottom: none; background: none; padding: 0;">
<button class="tab-trigger active" data-tab="images">Visual Analytics</button>
<button class="tab-trigger" data-tab="csv">Raw Dataset</button>
<button class="tab-trigger" data-tab="judge">Judge Reports</button>
</div>
</header>
<div class="viewport-content">
<div id="tab-images" class="tab-panel active">
<div class="results-controls">
<h2 style="font-size: 1.1rem; color: var(--color-text-primary); margin: 0;">Interactive Dashboard</h2>
<span id="data-stats" style="margin-left: auto; font-size: 0.8rem; font-weight: 600; color: var(--color-accent);"></span>
</div>
<div id="interactive-charts" class="image-grid" style="margin-top: var(--space-md);">
<div class="empty-state" style="grid-column: 1 / -1;">Select a CSV to generate visuals.</div>
</div>
<h3 style="margin: var(--space-xl) var(--space-lg) var(--space-sm); font-size: 0.8rem; text-transform: uppercase; color: var(--color-text-muted); border-bottom: 1px solid var(--color-bg-3); padding-bottom: 8px;">Static Visualizations (viz/)</h3>
<div id="image-results" class="image-grid">
<div class="empty-state" style="grid-column: 1 / -1;">No visualizations generated.</div>
</div>
</div>
<div id="tab-csv" class="tab-panel">
<div id="csv-results" class="results-container">
<div class="empty-state">No active data.</div>
</div>
</div>
<div id="tab-judge" class="tab-panel">
<div class="results-controls">
<label class="form-label">Select Report:</label>
<select id="judge-file-select" class="input-field" style="max-width: 400px; display: inline-block; margin-left: var(--space-sm);">
<option value="">Loading...</option>
</select>
</div>
<div id="judge-results" class="results-container">
<div class="empty-state">No judge reports.</div>
</div>
</div>
</div>
</main>
</div>
<!-- Main Entry Point -->
<script type="module" src="/static/js/main.js"></script>
</body>
</html>
|