ouroboros/web/index.html
2026-07-14 18:55:54 +00:00

88 lines
6.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>Ouroboros</title>
<link rel="stylesheet" href="/static/style.css">
<link rel="stylesheet" href="/static/settings.css">
<link rel="icon" href="/static/favicon.png" type="image/png">
<script src="/static/chart.umd.min.js"></script>
<script src="/static/marked.min.js"></script>
<script src="/static/purify.min.js"></script>
</head>
<body>
<div id="app">
<div id="nav-drawer-backdrop" class="nav-drawer-backdrop" hidden></div>
<aside id="primary-sidebar" class="primary-sidebar" aria-label="Ouroboros navigation">
<div class="sidebar-scroll">
<button class="nav-row nav-row-main active" data-nav-page="chat" title="Main Ouroboros chat">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"/><path d="M7 11h10"/><path d="M7 15h6"/><path d="M7 7h8"/></svg>
<span class="nav-row-label">Main Chat</span>
</button>
<section id="nav-projects" class="nav-section nav-projects" hidden>
<div class="nav-projects-header">
<button id="nav-projects-toggle" class="nav-section-toggle" type="button" aria-expanded="true" aria-controls="nav-projects-list">
<span class="nav-row-icon" aria-hidden="true">
<!-- Lucide "layers" — distinct from the Files folder glyph (v6.33.0). -->
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"/><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"/><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"/></svg>
</span>
<span class="nav-row-label">Projects</span>
<span id="nav-projects-count" class="nav-row-meta"></span>
<svg class="nav-chevron" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"/></svg>
</button>
<button id="nav-projects-add" class="nav-projects-add" type="button" title="New project" aria-label="New project"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M12 5v14M5 12h14"/></svg></button>
</div>
<div id="nav-projects-list" class="nav-projects-list"></div>
</section>
<div class="nav-section nav-utilities">
<div class="nav-section-label">Utilities</div>
<button class="nav-row" data-nav-page="files" title="Files">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2"/></svg>
<span class="nav-row-label">Files</span>
</button>
<button class="nav-row" data-nav-page="skills" title="Skills">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v4"/><path d="M12 18v4"/><path d="M4.93 4.93l2.83 2.83"/><path d="M16.24 16.24l2.83 2.83"/><path d="M2 12h4"/><path d="M18 12h4"/><path d="M4.93 19.07l2.83-2.83"/><path d="M16.24 7.76l2.83-2.83"/></svg>
<span class="nav-row-label">Skills</span>
</button>
<button class="nav-row" data-nav-page="widgets" title="Widgets">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></svg>
<span class="nav-row-label">Widgets</span>
</button>
<button class="nav-row" data-nav-page="dashboard" title="Dashboard">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m12 14 4-4"/><path d="M3.34 19a10 10 0 1 1 17.32 0"/></svg>
<span class="nav-row-label">Dashboard</span>
</button>
<button class="nav-row" data-nav-page="settings" title="Settings">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"/><circle cx="12" cy="12" r="3"/></svg>
<span class="nav-row-label">Settings</span>
</button>
</div>
</div>
<span id="nav-version"></span>
</aside>
<div id="divider"></div>
<main id="content">
<!-- Pages injected by JS -->
</main>
<div id="project-panel-backdrop" class="project-panel-backdrop" hidden></div>
<aside id="project-panel" class="project-panel" hidden>
<div class="project-panel-bar app-page-header project-inspector-header">
<div class="app-page-title-block">
<div class="app-page-title-row">
<h2 id="project-panel-title" class="project-panel-title app-page-title"></h2>
</div>
</div>
<button id="project-panel-close" class="project-panel-close" type="button" title="Close project thread" aria-label="Close project thread">×</button>
</div>
<div id="project-panel-body" class="project-panel-body"></div>
</aside>
</div>
<div id="reconnect-overlay">
<div class="spinner"></div>
<div>Reconnecting to Ouroboros...</div>
</div>
<script type="module" src="/static/app.js"></script>
</body>
</html>