Sync cezen-portal/ from live working copy (V1.0 GA polish + search-icon ordering fix)
Brings the ISO-packaged portal copy current with the live cezen-portal/ working directory, which had drifted across the entire V1.0 GA polish initiative (Phases 1-10) plus this session's topnav icon-order bugfix. - 52 existing files updated, 2 new pages added (about.html, health.html) - cgit/cezen-portal/ is now byte-identical to cezen-portal/ - Backend files (rag_ingest.py, cezen_license.py) already in sync; main.py intentionally left as-is (cgit is ahead there with workstation-category commercial-fit logic not yet backported to the live working copy) Next: rebuild the ISO (bash autoinstall/build-iso.sh) to bake this in.
This commit is contained in:
1 parent
7540da04a8
commit
b3eec34158
57 files changed
+2832
-1354
No files matched your search
+12
-11
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Model Benchmark — Nexus One AI</title>
|
||||
<link rel="stylesheet" href="style.css?v=4">
|
||||
<link rel="stylesheet" href="style.css?v=12">
|
||||
<style>
|
||||
.bm-card { background:var(--navy2); border:1px solid var(--bdr); border-radius:14px; padding:28px; margin-bottom:24px; }
|
||||
.bm-card-title { font-size:16px; font-weight:700; color:var(--ink); margin-bottom:4px; }
|
||||
@@ -101,6 +101,7 @@
|
||||
<a href="dashboard.html">Dashboard</a>
|
||||
<a href="analytics.html">Usage Analytics</a>
|
||||
<a href="audit.html">Governance & Audit</a>
|
||||
<a href="health.html">Health Center</a>
|
||||
<a href="feedback.html">Feedback & Ratings</a>
|
||||
<span class="nav-drop-cat">MANAGE /</span>
|
||||
<a href="users.html">Users</a>
|
||||
@@ -140,7 +141,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<a href="notifications.html" style="position:relative">🔔</a>
|
||||
<a href="notifications.html" class="nav-icon-btn" style="position:relative" aria-label="Notifications"><span class="icon-svg icon-sm" aria-hidden="true"><svg viewBox="0 0 24 24"><path d="M15 17h5l-1.4-1.4A2 2 0 0 1 18 14.2V11a6 6 0 1 0-12 0v3.2a2 2 0 0 1-.6 1.4L4 17h5"/><path d="M10 17a2 2 0 0 0 4 0"/></svg></span></a>
|
||||
<span class="badge" data-brand="tier">Basic Tier</span>
|
||||
<div id="nav-org-logo" class="nav-org-logo"></div>
|
||||
</header>
|
||||
@@ -155,7 +156,7 @@
|
||||
|
||||
<!-- Tier gate -->
|
||||
<div class="tier-gate" id="tier-gate" style="display:none">
|
||||
<h3>📊 Pro Tier & Above</h3>
|
||||
<h3>Pro Tier & Above</h3>
|
||||
<p>Model benchmarking requires the hardware throughput of Mid or Advanced tier to produce meaningful latency comparisons.</p>
|
||||
</div>
|
||||
|
||||
@@ -163,7 +164,7 @@
|
||||
|
||||
<!-- Model selection -->
|
||||
<div class="bm-card">
|
||||
<div class="bm-card-title">🤖 Select Models</div>
|
||||
<div class="bm-card-title">Select Models</div>
|
||||
<div class="bm-card-sub">Choose up to 5 models to compare. Models must be loaded in Ollama.</div>
|
||||
<div class="bm-model-row" id="selected-models"></div>
|
||||
<div class="bm-add-row">
|
||||
@@ -176,12 +177,12 @@
|
||||
|
||||
<!-- Prompt configuration -->
|
||||
<div class="bm-card">
|
||||
<div class="bm-card-title">💬 Test Prompts</div>
|
||||
<div class="bm-card-title">Test Prompts</div>
|
||||
<div class="bm-card-sub">Add prompts to run against each model. Up to 10 prompts.</div>
|
||||
<div class="bm-prompt-list" id="prompt-list"></div>
|
||||
<div style="display:flex;gap:8px;align-items:center;flex-wrap:wrap">
|
||||
<button class="bm-btn ghost" onclick="addPrompt('')">+ Add prompt</button>
|
||||
<button class="bm-btn ghost" onclick="loadPresets()">📋 Load presets</button>
|
||||
<button class="bm-btn ghost" onclick="loadPresets()">Load presets</button>
|
||||
<label style="font-size:12px;color:var(--lt);margin-left:8px">Max tokens:
|
||||
<input type="number" id="max-tokens" value="256" min="64" max="2048"
|
||||
style="width:70px;padding:4px 8px;border:1px solid var(--bdr);border-radius:6px;font-size:12px;margin-left:4px">
|
||||
@@ -191,7 +192,7 @@
|
||||
|
||||
<!-- Run button -->
|
||||
<div style="display:flex;gap:10px;align-items:center;margin-bottom:28px">
|
||||
<button class="bm-btn primary" id="run-btn" onclick="runBenchmark()" style="padding:11px 28px;font-size:14px">▶ Run Benchmark</button>
|
||||
<button class="bm-btn primary" id="run-btn" onclick="runBenchmark()" style="padding:11px 28px;font-size:14px">Run Benchmark</button>
|
||||
<span style="font-size:12px;color:var(--lt)" id="run-hint"></span>
|
||||
</div>
|
||||
|
||||
@@ -277,7 +278,7 @@ function addPrompt(text) {
|
||||
div.className = 'bm-prompt-item';
|
||||
div.innerHTML = `
|
||||
<textarea placeholder="Enter a test prompt…">${escHtml(text)}</textarea>
|
||||
<button onclick="this.parentElement.remove(); updateHint()">🗑</button>
|
||||
<button onclick="this.parentElement.remove(); updateHint()">Remove</button>
|
||||
`;
|
||||
list.appendChild(div);
|
||||
updateHint();
|
||||
@@ -334,7 +335,7 @@ async function runBenchmark() {
|
||||
|
||||
function renderResults(data) {
|
||||
const el = document.getElementById('bm-results');
|
||||
if (!data.results?.length) { el.innerHTML = '<div style="color:var(--lt)">No results</div>'; return; }
|
||||
if (!data.results?.length) { el.innerHTML = '<div class="cezen-list-empty">No results yet — select at least one model above and <a onclick="runBenchmark()">run the benchmark</a>.</div>'; return; }
|
||||
|
||||
// Find max tokens/sec across all for speed bar scaling
|
||||
const allTps = data.results.flatMap(r => data.models.map(m => r.responses[m]?.tokens_per_sec || 0));
|
||||
@@ -364,7 +365,7 @@ function renderResults(data) {
|
||||
<div class="bm-metric"><strong>${r.completion_tokens || '—'}</strong>Output tokens</div>
|
||||
</div>
|
||||
${r.error
|
||||
? `<div class="bm-error">⚠ ${escHtml(r.error)}</div>`
|
||||
? `<div class="bm-error">Warning: ${escHtml(r.error)}</div>`
|
||||
: `<div class="bm-response-text">${escHtml(r.text || '(empty response)')}</div>`
|
||||
}
|
||||
</div>`;
|
||||
@@ -398,6 +399,6 @@ document.addEventListener('cezenAuthReady', function() {
|
||||
setTimeout(checkTier, 200);
|
||||
});
|
||||
</script>
|
||||
<script src="branding.js"></script>
|
||||
<script src="branding.js?v=3"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user