summaryrefslogtreecommitdiff
path: root/api/static/index.html
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>