97 lines
6.7 KiB
HTML
97 lines
6.7 KiB
HTML
<!doctype html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="color-scheme" content="dark">
|
|
<meta name="theme-color" content="#101714">
|
|
<title>Домовой - чат</title>
|
|
<link rel="stylesheet" href="/assets/chat.css">
|
|
</head>
|
|
<body>
|
|
<main class="chat-shell">
|
|
<section id="login-view" class="login-panel">
|
|
<div class="brand-mark" aria-hidden="true">Д</div>
|
|
<h1>Домовой</h1>
|
|
<form id="login-form" class="login-form">
|
|
<label for="username">Логин</label>
|
|
<input id="username" autocomplete="username" required autofocus>
|
|
<label for="password">Пароль</label>
|
|
<input id="password" type="password" autocomplete="current-password" required>
|
|
<button type="submit">Войти</button>
|
|
<p id="login-error" role="alert"></p>
|
|
</form>
|
|
</section>
|
|
|
|
<section id="chat-view" class="chat-view" hidden>
|
|
<header class="chat-header">
|
|
<a href="/" aria-label="Домовой">Домовой</a>
|
|
<button id="cognitive-status" class="cognitive-status" data-state="checking" type="button" role="status" aria-live="polite" title="Проверить канал ещё раз">проверяю канал мышления</button>
|
|
<a id="cognitive-console-link" class="cognitive-console-link" href="/admin" hidden>настроить в консоли</a>
|
|
<div class="build-meta" aria-label="Версия и время обновления">
|
|
<span>версия __ASSISTANT_BUILD_REVISION__</span>
|
|
<time datetime="__ASSISTANT_BUILD_DATETIME__">обновлено __ASSISTANT_BUILD_TIME__</time>
|
|
</div>
|
|
<a href="/admin" class="operator-link">Консоль</a>
|
|
<button id="logout" type="button" aria-label="Выйти">↗</button>
|
|
</header>
|
|
<div class="chat-layout">
|
|
<aside class="chat-side chat-left" aria-label="Навигация и текущий фокус">
|
|
<div class="side-intro">
|
|
<p class="side-index">01 / РАЗГОВОР</p>
|
|
<h1>Домовой рядом</h1>
|
|
<p>Пишите обычными словами. Настройки и сведения можно передать прямо в текущий разговор.</p>
|
|
</div>
|
|
<div class="side-focus">
|
|
<span>ТЕКУЩИЙ ФОКУС</span>
|
|
<strong id="active-focus">не выбран</strong>
|
|
</div>
|
|
<nav class="human-nav" aria-label="Разделы Домового">
|
|
<button class="nav-tab active" data-tab="chat-panel" type="button"><b>01</b><span>Чат</span><small>живой разговор</small></button>
|
|
<button class="nav-tab" data-tab="today-panel" type="button"><b>02</b><span>Сегодня</span><small>что требует внимания</small></button>
|
|
<button class="nav-tab" data-tab="history-panel" type="button"><b>03</b><span>История</span><small>это окно разговора</small></button>
|
|
</nav>
|
|
<div class="side-note"><span>СЕССИЯ</span><strong id="session-state">активна</strong><small>Сведения сохраняются в текущем разговоре.</small></div>
|
|
</aside>
|
|
<main class="chat-main">
|
|
<section id="chat-panel" class="surface-panel active-panel">
|
|
<div id="messages" class="messages" aria-live="polite"></div>
|
|
<form id="chat-form" class="composer">
|
|
<textarea id="message" rows="3" maxlength="16384" placeholder="Напишите Домовому обычное сообщение..." required></textarea>
|
|
<button id="send" type="submit">Отправить</button>
|
|
</form>
|
|
<div class="conversation-starters" aria-label="Частые вопросы">
|
|
<span>Можно начать так:</span>
|
|
<button type="button" data-starter="Проверь локальный канал мышления">Проверь канал</button>
|
|
<button type="button" data-starter="Что сейчас доступно?">Что доступно?</button>
|
|
<button type="button" data-starter="Хочу изменить настройку локальной модели">Изменить настройку</button>
|
|
</div>
|
|
</section>
|
|
<section id="today-panel" class="surface-panel attention-surface" hidden>
|
|
<div class="surface-heading"><p>Сегодня / внимание</p><button id="refresh-today" type="button">Обновить</button></div>
|
|
<div id="today-list" class="attention-list"></div>
|
|
</section>
|
|
<section id="history-panel" class="surface-panel history-surface" hidden>
|
|
<div class="surface-heading"><p>История</p><span>Последние сообщения текущего окна</span></div>
|
|
<div id="history-list" class="history-list"></div>
|
|
</section>
|
|
</main>
|
|
<aside class="chat-side chat-right" aria-label="Состояние и сведения об ИИ">
|
|
<div class="side-intro"><p class="side-index">02 / ИНФОРМАЦИЯ</p><h2>Канал мышления</h2><p>Домовой видит подтверждённое состояние канала. Если основной ИИ пропал, он остаётся рядом и переходит в аварийный режим.</p></div>
|
|
<div class="ai-info-card"><span>ЧТО МОЖНО ПЕРЕДАТЬ</span><strong>Описание ИИ</strong><p>Название, назначение, ограничения или заметки о локальной модели. Не вставляйте пароли, токены и ключи.</p></div>
|
|
<form id="ai-data-form" class="ai-data-form">
|
|
<label for="ai-data">Данные для текущего разговора</label>
|
|
<textarea id="ai-data" rows="8" maxlength="12000" placeholder="Например: локальная модель нужна для коротких ответов на русском; контекст ограничен; внешняя сеть запрещена."></textarea>
|
|
<button type="submit">Передать Домовому</button>
|
|
<p id="ai-data-error" class="ai-data-error" role="alert" hidden></p>
|
|
<small>Это отправится как обычное сообщение в чат.</small>
|
|
</form>
|
|
<a class="side-console-link" href="/admin">Открыть консоль настройки <span>→</span></a>
|
|
</aside>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
<script src="/assets/chat.js"></script>
|
|
</body>
|
|
</html>
|