153 lines
8.7 KiB
HTML
153 lines
8.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/console.css">
|
|
</head>
|
|
<body>
|
|
<div class="grain" aria-hidden="true"></div>
|
|
|
|
<main id="login-view" class="login-shell">
|
|
<section class="login-panel" aria-labelledby="login-title">
|
|
<div class="brand-mark" aria-hidden="true">Д</div>
|
|
<p class="eyebrow">защищённый вход · creator</p>
|
|
<h1 id="login-title">Домовой</h1>
|
|
<p class="login-copy">Личная операторская консоль. Ключ используется только для выпуска ограниченной сессии и не сохраняется браузером.</p>
|
|
<form id="login-form" class="login-form">
|
|
<label for="bootstrap-token">Ключ создателя</label>
|
|
<div class="secret-row">
|
|
<input id="bootstrap-token" name="token" type="password" autocomplete="current-password" required autofocus>
|
|
<button class="icon-button" id="toggle-secret" type="button" aria-label="Показать ключ" title="Показать ключ">
|
|
<span aria-hidden="true">◉</span>
|
|
</button>
|
|
</div>
|
|
<button id="login-button" class="primary-button" type="submit">
|
|
<span>Открыть консоль</span><span aria-hidden="true">→</span>
|
|
</button>
|
|
<p id="login-error" class="form-error" role="alert"></p>
|
|
</form>
|
|
<div class="trust-line"><span></span>Сессия действует 8 часов<span></span></div>
|
|
</section>
|
|
</main>
|
|
|
|
<div id="console-view" class="console" hidden>
|
|
<header class="topbar">
|
|
<a class="wordmark" href="/" aria-label="Домовой, главная">
|
|
<span class="wordmark-symbol">Д</span>
|
|
<span><strong>Домовой</strong><small>консоль создателя</small></span>
|
|
</a>
|
|
<div class="topbar-actions">
|
|
<span id="connection-state" class="connection"><i></i>система доступна</span>
|
|
<button id="refresh-all" class="text-button" type="button">Обновить</button>
|
|
<button id="logout" class="icon-button" type="button" aria-label="Завершить сессию" title="Выйти">↗</button>
|
|
</div>
|
|
</header>
|
|
|
|
<aside class="context-rail">
|
|
<div>
|
|
<p class="rail-index">01 / КОНТЕКСТ</p>
|
|
<h2>Точка внимания</h2>
|
|
<p class="rail-copy">Укажите рабочий контекст. Он сохраняется только в этом браузере и не даёт дополнительных полномочий.</p>
|
|
</div>
|
|
<form id="context-form" class="context-form">
|
|
<label for="session-id">Идентификатор сессии</label>
|
|
<input id="session-id" autocomplete="off" placeholder="session-id">
|
|
<label for="workspace-id">Рабочая область</label>
|
|
<input id="workspace-id" autocomplete="off" placeholder="workspace-id">
|
|
<label for="task-id">Задача</label>
|
|
<input id="task-id" autocomplete="off" placeholder="task-id">
|
|
<label for="prospective-id">Ожидание</label>
|
|
<input id="prospective-id" autocomplete="off" placeholder="prospective-item-id">
|
|
<label for="capability-id">Возможность</label>
|
|
<input id="capability-id" autocomplete="off" value="cognitive-proposal">
|
|
<button class="secondary-button" type="submit">Загрузить контекст</button>
|
|
</form>
|
|
<div class="session-stamp">
|
|
<span>ACTOR</span>
|
|
<strong id="session-actor">—</strong>
|
|
<span>СЕССИЯ ДО</span>
|
|
<strong id="session-expiry">—</strong>
|
|
</div>
|
|
</aside>
|
|
|
|
<main class="workspace">
|
|
<section class="workspace-head">
|
|
<div>
|
|
<p class="eyebrow">операционная картина</p>
|
|
<h1>Состояние сейчас</h1>
|
|
</div>
|
|
<p id="last-update" class="last-update">Данные ещё не запрошены</p>
|
|
</section>
|
|
|
|
<section class="signal-strip" aria-label="Сводка состояния">
|
|
<div><span>ФОКУС</span><strong id="focus-signal" data-state="idle">ожидает</strong></div>
|
|
<div><span>ЗАДАЧА</span><strong id="task-signal" data-state="idle">ожидает</strong></div>
|
|
<div><span>CONTINUITY</span><strong id="prospective-signal" data-state="idle">ожидает</strong></div>
|
|
<div><span>ВОЗМОЖНОСТЬ</span><strong id="capability-signal" data-state="idle">ожидает</strong></div>
|
|
</section>
|
|
|
|
<section class="data-grid">
|
|
<article class="data-card focus-card">
|
|
<header><span class="card-number">01</span><div><p>Situation</p><h2>Активный фокус</h2></div><span id="focus-badge" class="status-badge neutral">НЕ ЗАГРУЖЕН</span></header>
|
|
<dl>
|
|
<div><dt>Проект</dt><dd id="focus-project">—</dd></div>
|
|
<div><dt>Цель</dt><dd id="focus-goal">—</dd></div>
|
|
<div><dt>Область</dt><dd id="focus-scope">—</dd></div>
|
|
<div><dt>Привязка</dt><dd id="focus-binding">—</dd></div>
|
|
</dl>
|
|
<p id="focus-message" class="card-message">Введите идентификаторы сессии и рабочей области.</p>
|
|
</article>
|
|
|
|
<article class="data-card task-card">
|
|
<header><span class="card-number">02</span><div><p>Work</p><h2>Задача в фокусе</h2></div><span id="task-badge" class="status-badge neutral">НЕ ЗАГРУЖЕНА</span></header>
|
|
<dl>
|
|
<div><dt>Задача</dt><dd id="task-value">—</dd></div>
|
|
<div><dt>Цель</dt><dd id="task-goal">—</dd></div>
|
|
<div><dt>Область</dt><dd id="task-scope">—</dd></div>
|
|
<div><dt>Ревизия</dt><dd id="task-revision">—</dd></div>
|
|
</dl>
|
|
<p id="task-message" class="card-message">Укажите задачу для проверки относительно активного фокуса.</p>
|
|
</article>
|
|
|
|
<article class="data-card prospective-card">
|
|
<header><span class="card-number">03</span><div><p>Continuity</p><h2>Будущая значимость</h2></div><span id="prospective-badge" class="status-badge neutral">НЕ ЗАГРУЖЕНА</span></header>
|
|
<div class="prospective-core">
|
|
<div><span>СОСТОЯНИЕ</span><strong id="prospective-state">—</strong></div>
|
|
<div class="time-marker"><i aria-hidden="true"></i><span>СРАБОТАЕТ</span><time id="prospective-trigger">—</time></div>
|
|
</div>
|
|
<dl class="compact-list">
|
|
<div><dt>Ожидание</dt><dd id="prospective-value">—</dd></div>
|
|
<div><dt>Обязательство</dt><dd id="prospective-commitment">—</dd></div>
|
|
<div><dt>Цель</dt><dd id="prospective-goal">—</dd></div>
|
|
<div><dt>Область</dt><dd id="prospective-scope">—</dd></div>
|
|
<div><dt>Principal</dt><dd id="prospective-owner">—</dd></div>
|
|
<div><dt>Ревизия</dt><dd id="prospective-revision">—</dd></div>
|
|
</dl>
|
|
<p id="prospective-message" class="card-message">Укажите идентификатор ProspectiveItem для проверки владельца и состояния.</p>
|
|
</article>
|
|
|
|
<article class="data-card capability-card">
|
|
<header><span class="card-number">04</span><div><p>Capability</p><h2>Готовность</h2></div><span id="capability-badge" class="status-badge neutral">НЕИЗВЕСТНО</span></header>
|
|
<div class="capability-core">
|
|
<div class="radar" aria-hidden="true"><span></span><i></i></div>
|
|
<div><span>ТЕКУЩЕЕ СОСТОЯНИЕ</span><strong id="capability-state">—</strong><small id="capability-reason">Причина не получена</small></div>
|
|
</div>
|
|
<dl class="compact-list">
|
|
<div><dt>Возможность</dt><dd id="capability-value">—</dd></div>
|
|
<div><dt>Ревизия</dt><dd id="capability-revision">—</dd></div>
|
|
<div><dt>Наблюдалось</dt><dd id="capability-observed">—</dd></div>
|
|
</dl>
|
|
</article>
|
|
</section>
|
|
</main>
|
|
</div>
|
|
|
|
<div id="toast" class="toast" role="status" aria-live="polite" hidden></div>
|
|
<script src="/assets/console.js" defer></script>
|
|
</body>
|
|
</html>
|