Pyramid web app for inspecting arborist Merkle trees over sharded SQLite: document roots, inclusion proofs, an interactive 3D Merkle lattice (six.js / WebGL with graceful fallback), audit-chain linkage, and a live SSE event stream. Generated artifacts (env/, vendored static/six/ bundles, demo databases) are gitignored and rebuilt via the Makefile (venv, six, init-db, serve).
70 lines
2.6 KiB
Django/Jinja
70 lines
2.6 KiB
Django/Jinja
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{{ title or 'Arborist VIZ' }}</title>
|
|
<link rel="stylesheet" href="{{ request.static_url('arborist_viz:static/css/viz.css') }}?v={{ request.static_version }}">
|
|
<link rel="icon" href="data:,">
|
|
{% block head_extra %}{% endblock %}
|
|
</head>
|
|
<body class="cmd-center">
|
|
<header class="cmd-bar">
|
|
<div class="cmd-bar-left">
|
|
<a class="cmd-brand" href="/">arborist VIZ</a>
|
|
<span class="cmd-sep">·</span>
|
|
<span class="cmd-tag">Merkle Command Center</span>
|
|
</div>
|
|
|
|
<form class="cmd-hash-drop" id="hash-drop" autocomplete="off">
|
|
<input
|
|
type="text"
|
|
name="hash"
|
|
id="hash-input"
|
|
placeholder="drop a hash → document_root | leaf_hash | event_hash | interior"
|
|
spellcheck="false"
|
|
pattern="[0-9a-fA-F]{4,128}"
|
|
title="hex hash (4-128 chars)">
|
|
<button type="submit">resolve</button>
|
|
<span id="hash-resolve-status" class="cmd-hash-status"></span>
|
|
</form>
|
|
|
|
<div class="cmd-bar-right">
|
|
<span class="cmd-pill cmd-pill-shards"
|
|
title="arborist shard files mounted (one per arborist routing bucket)">
|
|
shards: {{ shards|length if shards else 0 }}
|
|
</span>
|
|
<span class="cmd-pill"
|
|
title="document_roots indexed across every shard">
|
|
roots: {{ "{:,}".format(shard_stats.docs) if shard_stats else 0 }}
|
|
</span>
|
|
<span class="cmd-pill" title="audit chain length summed across shards">
|
|
audit: {{ "{:,}".format(shard_stats.audit_events) if shard_stats else 0 }}
|
|
</span>
|
|
<span class="cmd-pill cmd-pill-{{ 'on' if reveal_private else 'off' }}"
|
|
title="privacy default-deny — §14">
|
|
private: {{ 'reveal' if reveal_private else 'deny' }}
|
|
</span>
|
|
<span class="cmd-pill" title="git commit">{{ request.git_commit }}</span>
|
|
</div>
|
|
</header>
|
|
|
|
<main class="cmd-main">
|
|
{% block body %}{% endblock %}
|
|
</main>
|
|
|
|
<footer class="cmd-foot">
|
|
<span>ticket #000069 — Arborist VIZ / Merkle Command Center</span>
|
|
<span class="cmd-sep">·</span>
|
|
<span>state projected, never asserted</span>
|
|
<span class="cmd-sep">·</span>
|
|
<span>soft signals never enter the proof path</span>
|
|
</footer>
|
|
|
|
<script type="module">
|
|
import { wireHashDrop } from "{{ request.static_url('arborist_viz:static/viz/hash-drop.js') }}?v={{ request.static_version }}";
|
|
wireHashDrop(document.getElementById("hash-drop"));
|
|
</script>
|
|
{% block scripts %}{% endblock %}
|
|
</body>
|
|
</html>
|