VertRule commited on
Commit
49be56e
·
verified ·
1 Parent(s): 1c9a897

Initial publish: 4 research PDFs + Kimi explorer (manifest-driven)

Browse files
.gitattributes CHANGED
@@ -1,35 +1,2 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ * text=auto eol=lf
2
+ *.pdf binary
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md CHANGED
@@ -1,10 +1,40 @@
1
  ---
2
- title: Research
3
- emoji: 👀
4
- colorFrom: purple
5
  colorTo: green
6
  sdk: static
7
  pinned: false
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: VertRule Research
3
+ emoji: 🧾
4
+ colorFrom: gray
5
  colorTo: green
6
  sdk: static
7
  pinned: false
8
+ short_description: Local execution + bounded topology artifacts
9
  ---
10
 
11
+ # VertRule Research
12
+
13
+ **Reasoning. With Receipts.**
14
+
15
+ Public-safe research artifacts mirrored from
16
+ [vertrule.com/research](https://vertrule.com/research). Each entry records
17
+ what was measured, what was verified, and what remains outside scope.
18
+
19
+ ## What this Space is
20
+
21
+ - A static mirror of admitted research surfaces published on vertrule.com
22
+ - Each PDF is a frozen artifact with a BLAKE3 digest in `manifest.json`
23
+ - The Kimi K2.5 entry includes an interactive output-formation explorer
24
+
25
+ ## What this Space is not
26
+
27
+ - Not a model release
28
+ - Not a production security guarantee
29
+ - Not a complete index of internal work — only material cleared for public
30
+ distribution is included
31
+
32
+ ## Contents
33
+
34
+ See [`index.html`](./index.html) for the explorer surface, or
35
+ [`manifest.json`](./manifest.json) for the machine-readable artifact list.
36
+
37
+ ## Links
38
+
39
+ - [Website](https://vertrule.com)
40
+ - [Org landing Space](https://huggingface.co/spaces/VertRule-Org/README)
index.html CHANGED
@@ -1,19 +1,174 @@
1
  <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </html>
 
1
  <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>VertRule Research</title>
7
+ <meta
8
+ name="description"
9
+ content="Public-safe research artifacts: local execution and bounded topology captures with cryptographic receipts."
10
+ />
11
+ <link rel="stylesheet" href="./style.css" />
12
+ </head>
13
+ <body>
14
+ <header class="hero">
15
+ <div class="container">
16
+ <h1 class="hero-title">
17
+ <span class="bar" aria-hidden="true"></span>
18
+ <span>VertRule Research</span>
19
+ </h1>
20
+ <p class="hero-subtitle">
21
+ Admitted execution surfaces and canonical topology artifacts. Each
22
+ document records what was measured, what was verified, and what
23
+ remains outside scope. Mirrored from
24
+ <a href="https://vertrule.com/research" rel="noopener">
25
+ vertrule.com/research</a
26
+ >.
27
+ </p>
28
+ </div>
29
+ </header>
30
+
31
+ <section class="section section-charcoal">
32
+ <div class="container">
33
+ <p class="eyebrow">Technical Notes</p>
34
+ <div id="card-list" class="card-list">
35
+ <div class="empty">Loading manifest&hellip;</div>
36
+ </div>
37
+ </div>
38
+ </section>
39
+
40
+ <footer class="footer">
41
+ <div class="container">
42
+ <p>
43
+ Source of truth:
44
+ <a href="./manifest.json" class="mono">manifest.json</a>
45
+ &middot; Built from
46
+ <a href="https://vertrule.com" rel="noopener">vertrule.com</a>
47
+ &middot; Digests are BLAKE3
48
+ </p>
49
+ </div>
50
+ </footer>
51
+
52
+ <script>
53
+ (function () {
54
+ var listEl = document.getElementById("card-list");
55
+
56
+ function escapeHtml(s) {
57
+ return String(s).replace(/[&<>"']/g, function (c) {
58
+ return {
59
+ "&": "&amp;",
60
+ "<": "&lt;",
61
+ ">": "&gt;",
62
+ '"': "&quot;",
63
+ "'": "&#39;",
64
+ }[c];
65
+ });
66
+ }
67
+
68
+ function shortDigest(d) {
69
+ if (!d) return "";
70
+ return d.slice(0, 12) + "&hellip;";
71
+ }
72
+
73
+ function renderCard(item) {
74
+ var pdfHref = "./" + item.pdf;
75
+ var pdfBadge =
76
+ '<span class="badge badge-pdf">PDF</span>';
77
+ var explorerLink = item.explorer
78
+ ? ' &middot; <a href="./' +
79
+ escapeHtml(item.explorer) +
80
+ '">Explorer</a>'
81
+ : "";
82
+ var dataLink = item.data
83
+ ? ' &middot; <a href="./' +
84
+ escapeHtml(item.data) +
85
+ '">Data</a>'
86
+ : "";
87
+
88
+ var statusClass =
89
+ item.status === "experimental"
90
+ ? "badge-experimental"
91
+ : "badge-public";
92
+
93
+ return (
94
+ '<a class="card" href="' +
95
+ pdfHref +
96
+ '">' +
97
+ '<div class="card-head">' +
98
+ "<div>" +
99
+ '<h2 class="card-title">' +
100
+ escapeHtml(item.title) +
101
+ "</h2>" +
102
+ '<p class="card-subtitle">' +
103
+ escapeHtml(item.subtitle || "") +
104
+ "</p>" +
105
+ "</div>" +
106
+ '<div style="display:flex;gap:8px;flex-shrink:0;">' +
107
+ '<span class="badge ' +
108
+ statusClass +
109
+ '">' +
110
+ escapeHtml(item.status) +
111
+ "</span>" +
112
+ pdfBadge +
113
+ "</div>" +
114
+ "</div>" +
115
+ '<p class="card-desc">' +
116
+ escapeHtml(item.description) +
117
+ "</p>" +
118
+ '<div class="card-meta">' +
119
+ '<a href="' +
120
+ pdfHref +
121
+ '">PDF</a>' +
122
+ explorerLink +
123
+ dataLink +
124
+ ' &middot; <span class="digest" title="' +
125
+ escapeHtml(item.pdf_blake3 || "") +
126
+ '">blake3:' +
127
+ shortDigest(item.pdf_blake3) +
128
+ "</span>" +
129
+ "</div>" +
130
+ "</a>"
131
+ );
132
+ }
133
+
134
+ function render(items) {
135
+ var publishable = items.filter(function (i) {
136
+ return i.publish === true;
137
+ });
138
+ publishable.sort(function (a, b) {
139
+ return (a.order || 0) - (b.order || 0);
140
+ });
141
+
142
+ if (publishable.length === 0) {
143
+ listEl.innerHTML =
144
+ '<div class="empty">No public artifacts available.</div>';
145
+ return;
146
+ }
147
+ listEl.innerHTML = publishable.map(renderCard).join("");
148
+ }
149
+
150
+ function fail(msg) {
151
+ listEl.innerHTML =
152
+ '<div class="empty">Failed to load manifest: ' +
153
+ escapeHtml(msg) +
154
+ "</div>";
155
+ }
156
+
157
+ fetch("./manifest.json", { cache: "no-store" })
158
+ .then(function (r) {
159
+ if (!r.ok) throw new Error("HTTP " + r.status);
160
+ return r.json();
161
+ })
162
+ .then(function (m) {
163
+ if (!m || !Array.isArray(m.items)) {
164
+ throw new Error("manifest missing items array");
165
+ }
166
+ render(m.items);
167
+ })
168
+ .catch(function (e) {
169
+ fail(e.message || String(e));
170
+ });
171
+ })();
172
+ </script>
173
+ </body>
174
  </html>
kimi/explorer.html ADDED
@@ -0,0 +1,213 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Kimi K2.5 Output Formation Ledger Explorer</title>
7
+ <style>
8
+ :root {
9
+ --bg: #0d1117; --surface: #161b22; --border: #30363d;
10
+ --text: #c9d1d9; --text-dim: #8b949e; --accent: #58a6ff;
11
+ --green: #3fb950; --orange: #d29922; --red: #f85149;
12
+ --measured: #3fb950; --derived: #58a6ff;
13
+ --mono: 'SF Mono','Cascadia Code','Fira Code',monospace;
14
+ }
15
+ * { margin:0; padding:0; box-sizing:border-box; }
16
+ body { font-family:var(--mono); font-size:13px; background:var(--bg); color:var(--text); line-height:1.5; }
17
+ .header { border-bottom:1px solid var(--border); padding:16px 24px; }
18
+ .header h1 { font-size:16px; font-weight:600; margin-bottom:4px; }
19
+ .header .meta { color:var(--text-dim); font-size:11px; }
20
+ .signpost-bar { background:var(--surface); border-bottom:1px solid var(--border); padding:8px 24px; font-size:11px; color:var(--text-dim); display:flex; gap:16px; flex-wrap:wrap; }
21
+ .signpost-bar .tag { display:inline-flex; align-items:center; gap:4px; }
22
+ .dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
23
+ .dot-m { background:var(--measured); } .dot-d { background:var(--derived); }
24
+ .main { display:grid; grid-template-columns:280px 1fr; height:calc(100vh - 110px); }
25
+ .sidebar { border-right:1px solid var(--border); overflow-y:auto; padding:16px; }
26
+ .sidebar h2 { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-dim); margin-bottom:12px; margin-top:16px; }
27
+ .sidebar h2:first-child { margin-top:0; }
28
+ .token-timeline { display:flex; flex-direction:column; gap:4px; margin-bottom:12px; }
29
+ .token-step { display:flex; justify-content:space-between; align-items:center; padding:6px 8px; border:1px solid var(--border); border-radius:4px; cursor:pointer; font-size:11px; }
30
+ .token-step:hover { background:var(--surface); }
31
+ .token-step.selected { background:#1c2333; border-color:var(--accent); }
32
+ .token-step .tok-id { color:var(--accent); font-weight:600; }
33
+ .token-step .tok-logit { color:var(--text-dim); }
34
+ .summary-box { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:12px; margin-bottom:16px; }
35
+ .summary-box .row { display:flex; justify-content:space-between; margin-bottom:4px; font-size:11px; }
36
+ .summary-box .label { color:var(--text-dim); }
37
+ .summary-box .value { color:var(--text); font-weight:600; }
38
+ .provenance-legend .item { display:flex; align-items:center; gap:6px; margin-bottom:4px; font-size:11px; }
39
+ .content { overflow-y:auto; padding:16px 24px; }
40
+ .content h2 { font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-dim); margin-bottom:12px; margin-top:24px; }
41
+ .content h2:first-child { margin-top:0; }
42
+ .norm-chart { display:flex; align-items:flex-end; gap:2px; height:120px; padding:8px 0; border-bottom:1px solid var(--border); margin-bottom:8px; }
43
+ .norm-bar { flex:1; background:var(--accent); min-width:2px; border-radius:1px 1px 0 0; cursor:pointer; transition:opacity .15s; }
44
+ .norm-bar:hover { opacity:.8; } .norm-bar.selected { background:var(--green); } .norm-bar.dense { background:var(--orange); }
45
+ .norm-labels { display:flex; justify-content:space-between; font-size:10px; color:var(--text-dim); margin-bottom:16px; }
46
+ .layer-table { width:100%; border-collapse:collapse; font-size:11px; }
47
+ .layer-table th { text-align:left; padding:6px 8px; border-bottom:2px solid var(--border); color:var(--text-dim); font-weight:500; position:sticky; top:0; background:var(--bg); }
48
+ .layer-table td { padding:4px 8px; border-bottom:1px solid var(--border); }
49
+ .layer-table tr:hover { background:var(--surface); } .layer-table tr.selected { background:#1c2333; }
50
+ .prov { width:8px; height:8px; border-radius:50%; display:inline-block; margin-right:4px; }
51
+ .routing-cell { max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; color:var(--text-dim); }
52
+ .detail-panel { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:16px; margin-top:16px; }
53
+ .detail-panel h3 { font-size:12px; margin-bottom:8px; color:var(--accent); }
54
+ .detail-row { display:flex; justify-content:space-between; padding:2px 0; font-size:11px; }
55
+ .detail-row .label { color:var(--text-dim); } .detail-row .value { color:var(--text); }
56
+ .routing-detail { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; margin-top:8px; }
57
+ .expert-chip { background:var(--bg); border:1px solid var(--border); border-radius:4px; padding:4px 6px; font-size:10px; text-align:center; }
58
+ .expert-chip .id { color:var(--accent); font-weight:600; } .expert-chip .wt { color:var(--text-dim); }
59
+ .byte-footer { border-top:1px solid var(--border); padding:8px 24px; font-size:11px; color:var(--text-dim); display:flex; justify-content:space-between; position:fixed; bottom:0; left:0; right:0; background:var(--surface); }
60
+ .error-banner { background:#2d1214; border:1px solid var(--red); color:var(--red); padding:12px 24px; text-align:center; }
61
+ .top-k-list .entry { display:flex; justify-content:space-between; padding:2px 0; border-bottom:1px solid var(--border); font-size:11px; }
62
+ .top-k-list .winner { color:var(--green); font-weight:600; }
63
+ </style>
64
+ </head>
65
+ <body>
66
+ <div id="app"><div class="error-banner" id="error" style="display:none"></div></div>
67
+ <script>
68
+ // Kimi K2.5 Output Formation Ledger Explorer v2
69
+ // Multi-token timeline + per-token layer detail.
70
+ // All displayed values carry provenance tags (M/D).
71
+ // No interpretive content.
72
+
73
+ const URLS = ['ledger_multi_5tok.json'];
74
+
75
+ async function main() {
76
+ const app = document.getElementById('app');
77
+ const error = document.getElementById('error');
78
+ let ledger, src;
79
+ for (const u of URLS) {
80
+ try { const r = await fetch(u); if (r.ok) { ledger = await r.json(); src = u; break; } } catch(_) {}
81
+ }
82
+ if (!ledger) { error.style.display='block'; error.textContent='No ledger found. Serve with: python3 -m http.server'; return; }
83
+
84
+ const sp = ledger.signpost;
85
+ let selTok = 0, selLayer = 0;
86
+
87
+ function fmtB(b) { return b>=1e9?(b/1e9).toFixed(2)+' GB':b>=1e6?(b/1e6).toFixed(1)+' MB':b+' B'; }
88
+
89
+ function render() {
90
+ const tok = ledger.generated_tokens[selTok];
91
+ const maxNorm = Math.max(...tok.layers.map(l=>l.residual_norm_out));
92
+ const multi = ledger.generated_tokens.length > 1;
93
+
94
+ const timeline = multi ? ledger.generated_tokens.map((t,i) =>
95
+ `<div class="token-step ${i===selTok?'selected':''}" data-step="${i}">
96
+ <span>Step ${i} <span class="dot dot-m"></span></span>
97
+ <span class="tok-id">${t.output_token_id}</span>
98
+ <span class="tok-logit">${t.output_logit.toFixed(1)}</span>
99
+ </div>`
100
+ ).join('') : '';
101
+
102
+ const topK = tok.top_k_tokens.slice(0,10).map((t,i) =>
103
+ `<div class="entry${i===0?' winner':''}"><span>tok ${t[0]}</span><span>${t[1].toFixed(3)}</span></div>`
104
+ ).join('');
105
+
106
+ const bars = tok.layers.map((l,i) => {
107
+ const h = (l.residual_norm_out/maxNorm)*100;
108
+ const cls = [l.layer_kind==='dense'?'dense':'',i===selLayer?'selected':''].filter(Boolean).join(' ');
109
+ return `<div class="norm-bar ${cls}" style="height:${Math.max(h,1)}%" data-idx="${i}" title="L${i}: ${l.residual_norm_out.toFixed(1)}"></div>`;
110
+ }).join('');
111
+
112
+ const rows = tok.layers.map((l,i) => {
113
+ const experts = l.expert_indices ? l.expert_indices.join(', ') : '\u2014';
114
+ return `<tr class="${i===selLayer?'selected':''}" data-idx="${i}">
115
+ <td>${l.layer_idx}</td><td>${l.layer_kind}</td>
116
+ <td><span class="prov dot-m"></span>${l.residual_norm_in.toFixed(2)}</td>
117
+ <td><span class="prov dot-m"></span>${l.residual_norm_out.toFixed(2)}</td>
118
+ <td class="routing-cell"><span class="prov dot-m"></span>${experts}</td>
119
+ <td><span class="prov dot-m"></span>${fmtB(l.bytes_streamed)}</td>
120
+ </tr>`;
121
+ }).join('');
122
+
123
+ const dl = tok.layers[selLayer];
124
+ let detail = '';
125
+ if (dl) {
126
+ let routing = '';
127
+ if (dl.expert_indices && dl.routing_weights) {
128
+ const chips = dl.expert_indices.map((id,j) =>
129
+ `<div class="expert-chip"><div class="id">${id}</div><div class="wt">${(dl.routing_weights[j]*100).toFixed(1)}%</div></div>`
130
+ ).join('');
131
+ routing = `<h3>Expert Routing <span class="prov dot-m"></span> + <span class="prov dot-d"></span></h3><div class="routing-detail">${chips}</div>`;
132
+ }
133
+ detail = `<div class="detail-panel">
134
+ <h3>Layer ${dl.layer_idx} (${dl.layer_kind})</h3>
135
+ <div class="detail-row"><span class="label"><span class="prov dot-m"></span> norm_in</span><span class="value">${dl.residual_norm_in.toFixed(6)}</span></div>
136
+ <div class="detail-row"><span class="label"><span class="prov dot-m"></span> norm_out</span><span class="value">${dl.residual_norm_out.toFixed(6)}</span></div>
137
+ <div class="detail-row"><span class="label"><span class="prov dot-m"></span> bytes</span><span class="value">${fmtB(dl.bytes_streamed)}</span></div>
138
+ ${routing}
139
+ </div>`;
140
+ }
141
+
142
+ const provTags = sp.provenance.map(p => {
143
+ const c = p==='Measured'?'m':p==='Derived'?'d':'i';
144
+ return `<span class="tag"><span class="dot dot-${c}"></span>${p[0]}</span>`;
145
+ }).join('');
146
+
147
+ app.innerHTML = `
148
+ <div class="header">
149
+ <h1>Kimi K2.5 Output Formation Ledger</h1>
150
+ <div class="meta">${ledger.model_id} | ${ledger.schema} | ${src} | ${ledger.generated_tokens.length} token${ledger.generated_tokens.length>1?'s':''}</div>
151
+ </div>
152
+ <div class="signpost-bar">
153
+ ${provTags}
154
+ <span class="tag">${sp.governance}</span>
155
+ <span class="tag">${sp.admission}</span>
156
+ <span class="tag">${sp.contracts.join('+')}</span>
157
+ <span class="tag">${sp.synthetic_audit}</span>
158
+ <span class="tag">${sp.perturbation}</span>
159
+ <span class="tag">${sp.scope}</span>
160
+ </div>
161
+ <div class="main">
162
+ <div class="sidebar">
163
+ ${multi ? '<h2>Token Timeline</h2><div class="token-timeline">'+timeline+'</div>' : ''}
164
+ <h2>Token Step ${selTok}</h2>
165
+ <div class="summary-box">
166
+ <div class="row"><span class="label">Output <span class="prov dot-m"></span></span><span class="value">${tok.output_token_id}</span></div>
167
+ <div class="row"><span class="label">Logit <span class="prov dot-m"></span></span><span class="value">${tok.output_logit.toFixed(3)}</span></div>
168
+ <div class="row"><span class="label">Entropy <span class="prov dot-d"></span></span><span class="value">${tok.entropy.toFixed(6)}</span></div>
169
+ <div class="row"><span class="label">Margin <span class="prov dot-d"></span></span><span class="value">${tok.margin.toFixed(3)}</span></div>
170
+ <div class="row"><span class="label">Bytes <span class="prov dot-m"></span></span><span class="value">${fmtB(tok.bytes_streamed)}</span></div>
171
+ <div class="row"><span class="label">Layers</span><span class="value">${tok.layers.length}</span></div>
172
+ </div>
173
+ <h2>Provenance</h2>
174
+ <div class="provenance-legend">
175
+ <div class="item"><span class="dot dot-m"></span> Measured</div>
176
+ <div class="item"><span class="dot dot-d"></span> Derived</div>
177
+ </div>
178
+ <h2>Top-10 Logits <span class="prov dot-d"></span></h2>
179
+ <div class="top-k-list">${topK}</div>
180
+ <h2 style="margin-top:16px">Digests <span class="prov dot-d"></span></h2>
181
+ <div style="font-size:10px;word-break:break-all;color:var(--text-dim)">
182
+ <div style="margin-bottom:4px"><strong>Hidden:</strong> ${tok.hidden_digest}</div>
183
+ <div><strong>Logits:</strong> ${tok.logits_digest}</div>
184
+ </div>
185
+ </div>
186
+ <div class="content">
187
+ <h2>Norm Trajectory (residual_norm_out) <span class="prov dot-m"></span></h2>
188
+ <div class="norm-chart">${bars}</div>
189
+ <div class="norm-labels"><span>L0 (dense)</span><span>L30</span><span>L60</span></div>
190
+ <h2>Layer Detail</h2>
191
+ <table class="layer-table">
192
+ <thead><tr><th>Layer</th><th>Kind</th><th>Norm In</th><th>Norm Out</th><th>Expert Routing</th><th>Bytes</th></tr></thead>
193
+ <tbody>${rows}</tbody>
194
+ </table>
195
+ ${detail}
196
+ </div>
197
+ </div>
198
+ <div class="byte-footer">
199
+ <span>Total: ${fmtB(ledger.total_bytes_streamed)} streamed</span>
200
+ <span>${ledger.model_id}</span>
201
+ <span>${sp.scope}</span>
202
+ </div>`;
203
+
204
+ document.querySelectorAll('.token-step').forEach(el => el.addEventListener('click', () => { selTok=+el.dataset.step; selLayer=0; render(); }));
205
+ document.querySelectorAll('.norm-bar').forEach(el => el.addEventListener('click', () => { selLayer=+el.dataset.idx; render(); }));
206
+ document.querySelectorAll('.layer-table tbody tr').forEach(el => el.addEventListener('click', () => { selLayer=+el.dataset.idx; render(); }));
207
+ }
208
+ render();
209
+ }
210
+ main();
211
+ </script>
212
+ </body>
213
+ </html>
kimi/ledger_multi_5tok.json ADDED
The diff for this file is too large to render. See raw diff
 
manifest.json ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "vr.space.manifest@0.1",
3
+ "space": "VertRule-Org/research",
4
+ "generated_at_local_date": "2026-04-13",
5
+ "source_of_truth": "vertrule.com/research",
6
+ "items": [
7
+ {
8
+ "id": "kimi-output-formation-ledger",
9
+ "title": "Kimi K2.5",
10
+ "subtitle": "Output Formation Ledger",
11
+ "description": "Full-weight, full-layer local execution and output formation ledger for a 595 GB MoE model streamed from network-attached storage. 5-token continuity, frozen anchor, non-perturbing capture, adversarially certified.",
12
+ "category": "topology-capture",
13
+ "status": "public",
14
+ "publish": true,
15
+ "pdf": "pdfs/kimi-output-formation-ledger.pdf",
16
+ "pdf_blake3": "fc07763643d6da590ff1018300c76ee74f1162f211eb1177014dc809a320db08",
17
+ "explorer": "kimi/explorer.html",
18
+ "data": "kimi/ledger_multi_5tok.json",
19
+ "data_blake3": "e89675ddb23b570e7c9da5f3a84292138e7ff477ca8eaa6c8e725a46585148dd",
20
+ "explorer_blake3": "81156e697705322b4a1027053f267a0ea9c5377360bad19dbb999f1482124424",
21
+ "order": 1
22
+ },
23
+ {
24
+ "id": "grok1-nas-bounded-topology",
25
+ "title": "Grok-1 314B",
26
+ "subtitle": "NAS-Bounded Topology",
27
+ "description": "NAS-backed local execution and bounded mixed-edge topology for a 314B-parameter MoE model. 8 bounded edges (expert-routing + attention), ratified under a page-cache-purge storage contract, with adversarial verification.",
28
+ "category": "topology-capture",
29
+ "status": "public",
30
+ "publish": true,
31
+ "pdf": "pdfs/grok1-nas-bounded-topology.pdf",
32
+ "pdf_blake3": "dfb99ebd51757db714b0fef05bc45cd5da25d36c266db69623b435ba3992d3f1",
33
+ "order": 2
34
+ },
35
+ {
36
+ "id": "nemotron-local-hybrid-topology",
37
+ "title": "Nemotron-3 Super-120B",
38
+ "subtitle": "Local Hybrid Topology",
39
+ "description": "Local execution and canonical mixed-edge topology for a 120B-parameter hybrid model. 896 bounded edges (expert-routing + attention), determinism-gated admission, and a bounded routing observation.",
40
+ "category": "topology-capture",
41
+ "status": "public",
42
+ "publish": true,
43
+ "pdf": "pdfs/nemotron-local-hybrid-topology.pdf",
44
+ "pdf_blake3": "2a28db010ad07590e1214dd9e4edde767cba942e8ba924971f67254b7ac7e2d0",
45
+ "order": 3
46
+ },
47
+ {
48
+ "id": "gemma4-local-topology-capture",
49
+ "title": "Gemma 4 31B-IT",
50
+ "subtitle": "Local Topology Capture",
51
+ "description": "Deterministic local topology capture on a bounded CPU surface. Frozen anchors, non-perturbing capture, canonical topology emission, and one bounded observation from the attention-edge artifact.",
52
+ "category": "topology-capture",
53
+ "status": "public",
54
+ "publish": true,
55
+ "pdf": "pdfs/gemma4-local-topology-capture.pdf",
56
+ "pdf_blake3": "f688c7bff18ab279b4169e0f27a57ec46137c6b5a49eecb2a721a25d04a4cc80",
57
+ "order": 4
58
+ }
59
+ ]
60
+ }
pdfs/gemma4-local-topology-capture.pdf ADDED
Binary file (42.6 kB). View file
 
pdfs/grok1-nas-bounded-topology.pdf ADDED
Binary file (38.9 kB). View file
 
pdfs/kimi-output-formation-ledger.pdf ADDED
Binary file (54.5 kB). View file
 
pdfs/nemotron-local-hybrid-topology.pdf ADDED
Binary file (36.4 kB). View file
 
style.css CHANGED
@@ -1,28 +1,222 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  }
17
 
18
  .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
28
  }
 
1
+ /* VertRule Research Space — minimal, dark-first, brand-aligned */
2
+
3
+ :root {
4
+ --charcoal: #1a1a1a;
5
+ --deep-slate: #0f1419;
6
+ --surface: #f5f5f5;
7
+ --surface-dim: rgba(245, 245, 245, 0.4);
8
+ --surface-faint: rgba(245, 245, 245, 0.06);
9
+ --border: rgba(255, 255, 255, 0.1);
10
+ --border-strong: rgba(255, 255, 255, 0.18);
11
+ --lime: #b4f00d;
12
+ --lime-dim: #9bd00b;
13
+ --bar-width: 7px;
14
+ }
15
+
16
+ * {
17
+ box-sizing: border-box;
18
+ }
19
+
20
+ html, body {
21
+ margin: 0;
22
+ padding: 0;
23
+ background: var(--deep-slate);
24
+ color: var(--surface);
25
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, sans-serif;
26
+ font-size: 14px;
27
+ line-height: 1.5;
28
+ -webkit-font-smoothing: antialiased;
29
+ }
30
+
31
+ a {
32
+ color: var(--lime);
33
+ text-decoration: none;
34
  }
35
 
36
+ a:hover {
37
+ color: var(--lime-dim);
 
38
  }
39
 
40
+ code, .mono {
41
+ font-family: "Fira Code", "JetBrains Mono", ui-monospace, monospace;
42
+ font-size: 0.85em;
43
+ }
44
+
45
+ .container {
46
+ max-width: 880px;
47
+ margin: 0 auto;
48
+ padding: 0 24px;
49
+ }
50
+
51
+ /* Hero */
52
+ .hero {
53
+ background: var(--deep-slate);
54
+ padding: 64px 0 40px;
55
+ border-bottom: 1px solid var(--border);
56
+ }
57
+
58
+ .hero-title {
59
+ display: flex;
60
+ align-items: center;
61
+ gap: 14px;
62
+ margin: 0 0 16px;
63
+ font-size: 32px;
64
+ font-weight: 700;
65
+ letter-spacing: -0.02em;
66
+ }
67
+
68
+ .bar {
69
+ display: inline-block;
70
+ width: var(--bar-width);
71
+ height: 32px;
72
+ background: var(--lime);
73
+ }
74
+
75
+ .hero-subtitle {
76
+ color: var(--surface-dim);
77
+ max-width: 560px;
78
+ font-size: 14px;
79
+ }
80
+
81
+ /* Section headers */
82
+ .section {
83
+ padding: 40px 0;
84
+ border-bottom: 1px solid var(--border);
85
+ }
86
+
87
+ .section-charcoal {
88
+ background: var(--charcoal);
89
+ }
90
+
91
+ .eyebrow {
92
+ color: var(--surface-dim);
93
+ font-family: "Fira Code", ui-monospace, monospace;
94
+ font-size: 11px;
95
+ letter-spacing: 0.18em;
96
+ text-transform: uppercase;
97
+ margin: 0 0 20px;
98
+ }
99
+
100
+ /* Cards */
101
+ .card-list {
102
+ display: flex;
103
+ flex-direction: column;
104
+ gap: 16px;
105
  }
106
 
107
  .card {
108
+ display: block;
109
+ padding: 20px 24px;
110
+ border: 1px solid var(--border);
111
+ background: var(--surface-faint);
112
+ border-radius: 8px;
113
+ color: inherit;
114
+ transition: background-color 0.15s ease, border-color 0.15s ease;
115
+ }
116
+
117
+ .card:hover {
118
+ background: rgba(255, 255, 255, 0.05);
119
+ border-color: var(--border-strong);
120
+ }
121
+
122
+ .card-head {
123
+ display: flex;
124
+ align-items: flex-start;
125
+ justify-content: space-between;
126
+ gap: 16px;
127
+ margin-bottom: 6px;
128
+ }
129
+
130
+ .card-title {
131
+ margin: 0;
132
+ font-size: 18px;
133
+ font-weight: 700;
134
+ }
135
+
136
+ .card-subtitle {
137
+ color: var(--surface-dim);
138
+ font-size: 13px;
139
+ margin: 0 0 8px;
140
+ }
141
+
142
+ .card-desc {
143
+ color: var(--surface-dim);
144
+ font-size: 13px;
145
+ margin: 0;
146
+ line-height: 1.6;
147
+ }
148
+
149
+ .card-meta {
150
+ display: flex;
151
+ align-items: center;
152
+ gap: 12px;
153
+ margin-top: 14px;
154
+ padding-top: 14px;
155
+ border-top: 1px solid var(--border);
156
+ font-family: "Fira Code", ui-monospace, monospace;
157
+ font-size: 11px;
158
+ color: var(--surface-dim);
159
+ flex-wrap: wrap;
160
+ }
161
+
162
+ .card-meta a {
163
+ color: var(--lime);
164
+ }
165
+
166
+ .digest {
167
+ font-family: "Fira Code", ui-monospace, monospace;
168
+ font-size: 10px;
169
+ color: var(--surface-dim);
170
+ word-break: break-all;
171
+ }
172
+
173
+ /* Status badges */
174
+ .badge {
175
+ display: inline-block;
176
+ padding: 2px 8px;
177
+ font-family: "Fira Code", ui-monospace, monospace;
178
+ font-size: 10px;
179
+ letter-spacing: 0.08em;
180
+ text-transform: uppercase;
181
+ border-radius: 3px;
182
+ border: 1px solid;
183
+ white-space: nowrap;
184
+ }
185
+
186
+ .badge-public {
187
+ color: var(--lime);
188
+ border-color: var(--lime);
189
+ background: rgba(180, 240, 13, 0.06);
190
+ }
191
+
192
+ .badge-experimental {
193
+ color: #f0a020;
194
+ border-color: #f0a020;
195
+ background: rgba(240, 160, 32, 0.06);
196
+ }
197
+
198
+ .badge-pdf {
199
+ color: var(--surface-dim);
200
+ border-color: var(--border-strong);
201
+ }
202
+
203
+ /* Empty state */
204
+ .empty {
205
+ padding: 40px 24px;
206
+ text-align: center;
207
+ color: var(--surface-dim);
208
+ border: 1px dashed var(--border);
209
+ border-radius: 8px;
210
+ }
211
+
212
+ /* Footer */
213
+ .footer {
214
+ padding: 32px 0 64px;
215
+ color: var(--surface-dim);
216
+ font-size: 12px;
217
+ text-align: center;
218
  }
219
 
220
+ .footer a {
221
+ color: var(--lime);
222
  }