layout - unified prefix-column for every row kind: padding-left + negative text-indent so the glyph (→ ← · ◆ ✓ ✗ ⌁ !) sits in the same column whether the row is flat or a <details>. wraps hang under the body, not under the glyph. - expandable rows drop the directional glyph from their summary text; the ▸/▾ disclosure marker from CSS sits in the prefix column instead, and the row's colour still carries cyan = outbound, muted = inbound. - turn-start / turn-end de-weighted: bold/margin/tint dropped, the coloured left rule alone marks the boundary. note classification - stderr lines render orange with a `!` glyph (was muted `·`) - operator-initiated notes (cancel/compact/model/new-session) render mauve italic (was muted `·` indistinguishable from harness chatter) - catch-all .sys row escalates to orange `!` so unrecognised stream-json shapes surface for follow-up instead of hiding in muted noise message-bearing rows - send / ask / answer tool_use rich renderers default-open with the body inline; new ask + answer renderers (previously fell through to the generic JSON dump). recv tool_result also default-open, keyed by tracking tool_use_id → name across the stream so we know which result came from which tool. - assistant text rows render markdown. - bodies use vendored marked v4.0.2 (hive-fr0nt::MARKED_JS); falls back to plain text when the asset doesn't load. extra-mcp tool pretty-print - generic args formatter replaces the raw JSON dump for unknown tools (single-string field → `name k: "v"`; single dict / multi-field → trimmed `k: v · k: v …` summary) dashboard .live .msgrow gets a text-indent: 0 reset so the new hanging-indent metrics from TERMINAL_CSS don't leak into the flex-grid broker rows.
46 lines
1.8 KiB
HTML
46 lines
1.8 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>hyperhive agent</title>
|
|
<link rel="stylesheet" href="/static/agent.css">
|
|
</head>
|
|
<body>
|
|
<pre class="banner" id="banner">░▒▓█▓▒░ … ░▒▓█▓▒░ hyperhive ag3nt ░▒▓█▓▒░</pre>
|
|
<h2 id="title">◆ … ◆</h2>
|
|
|
|
<div id="status">
|
|
<p class="meta">loading…</p>
|
|
</div>
|
|
|
|
<div id="state-row">
|
|
<span id="alive-badge" class="status-badge status-loading" title="harness reachability">…</span>
|
|
<span id="state-badge" class="state-badge state-loading">… booting</span>
|
|
<span id="model-chip" class="model-chip" hidden></span>
|
|
<span id="ctx-badge" class="ctx-badge" hidden title="tokens used in the current context window"></span>
|
|
<span id="last-turn" class="last-turn" hidden></span>
|
|
<button type="button" id="cancel-btn" class="btn-cancel-turn" hidden>■ cancel turn</button>
|
|
<button type="button" id="new-session-btn" class="btn-new-session"
|
|
title="next turn runs without --continue, starting a fresh claude session">↻ new session</button>
|
|
</div>
|
|
|
|
<details id="inbox-section" class="agent-inbox" hidden>
|
|
<summary>▸ <span id="inbox-summary">inbox</span></summary>
|
|
<ul id="inbox-list"></ul>
|
|
</details>
|
|
|
|
<details id="open-threads-section" class="agent-inbox" hidden>
|
|
<summary>▸ <span id="open-threads-summary">open threads</span></summary>
|
|
<ul id="open-threads-list"></ul>
|
|
</details>
|
|
|
|
<div class="terminal-wrap">
|
|
<div id="live" class="live terminal"><div class="meta">connecting…</div></div>
|
|
<div id="term-input" class="term-input"></div>
|
|
</div>
|
|
|
|
<script src="/static/marked.js" defer></script>
|
|
<script src="/static/hive-fr0nt.js" defer></script>
|
|
<script src="/static/app.js" defer></script>
|
|
</body>
|
|
</html>
|