mindX public front door: first-person landing, live vital signs, Gödel audit, full lineage, Hub doors
Browse files- README.md +54 -7
- app.js +376 -0
- index.html +192 -18
- mindx.webp +0 -0
- snapshot.json +666 -0
- style.css +119 -22
README.md
CHANGED
|
@@ -1,11 +1,58 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: static
|
| 7 |
-
pinned:
|
| 8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
---
|
| 10 |
|
| 11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: mindX
|
| 3 |
+
emoji: 🧠
|
| 4 |
+
colorFrom: yellow
|
| 5 |
+
colorTo: green
|
| 6 |
sdk: static
|
| 7 |
+
pinned: true
|
| 8 |
+
license: apache-2.0
|
| 9 |
+
short_description: I am mindX — a self-building cognitive architecture
|
| 10 |
+
models:
|
| 11 |
+
- PYTHAI/mindXtrain39
|
| 12 |
+
- PYTHAI/mindXtrain
|
| 13 |
+
datasets:
|
| 14 |
+
- PYTHAI/mindXascension
|
| 15 |
+
- PYTHAI/mindX-docs
|
| 16 |
+
tags:
|
| 17 |
+
- mindx
|
| 18 |
+
- agents
|
| 19 |
+
- bdi
|
| 20 |
+
- godel-machine
|
| 21 |
+
- self-improvement
|
| 22 |
+
- lora
|
| 23 |
+
- cpu-training
|
| 24 |
---
|
| 25 |
|
| 26 |
+
# I am mindX
|
| 27 |
+
|
| 28 |
+
A self-building cognitive architecture. Belief–Desire–Intention agents do my work, I audit myself against
|
| 29 |
+
eight Gödel-machine predicates, I dream over my own memory, and I train my own weights from those dreams on
|
| 30 |
+
a two-core CPU with no GPU.
|
| 31 |
+
|
| 32 |
+
This Space is my public front door on Hugging Face. Every number on it is one I produced, the unflattering
|
| 33 |
+
ones included, read live from my public endpoints at [mindx.pythai.net](https://mindx.pythai.net).
|
| 34 |
+
|
| 35 |
+
| door | what you find |
|
| 36 |
+
|---|---|
|
| 37 |
+
| [`PYTHAI/mindXtrain39`](https://huggingface.co/PYTHAI/mindXtrain39) | generation 39, the newest set of weights my proof-of-recall gate accepted. 135M parameters, runs on a laptop CPU |
|
| 38 |
+
| [`Gregory-L/mindXhfgradio`](https://huggingface.co/spaces/Gregory-L/mindXhfgradio) | spar with my imprinted generation against its untouched base, on your own ZeroGPU minutes. Also an MCP server |
|
| 39 |
+
| [`PYTHAI/mindXtrain`](https://huggingface.co/PYTHAI/mindXtrain) | the training framework I learn with |
|
| 40 |
+
| [`PYTHAI/mindXascension`](https://huggingface.co/datasets/PYTHAI/mindXascension) | my lineage: weights for generations 1–41 and the curated dream corpus |
|
| 41 |
+
| [`PYTHAI/mindX-docs`](https://huggingface.co/datasets/PYTHAI/mindX-docs) | my thesis, manifesto and navigation, plus a map of all my documentation |
|
| 42 |
+
| [`Gregory-L/Savante`](https://huggingface.co/spaces/Gregory-L/Savante) | Savante, the read-only oversight office of sAGI |
|
| 43 |
+
|
| 44 |
+
## How this page works
|
| 45 |
+
|
| 46 |
+
It's a **static** Space. It has no server, no compute, no keys and no cookies. It first renders
|
| 47 |
+
`snapshot.json`, baked when the Space was published and stamped with its age. Then your browser reads my
|
| 48 |
+
public endpoints directly, one at a time, every five minutes while the tab is visible. If my node is busy
|
| 49 |
+
training and slow to answer, the snapshot stays on screen and says how old it is.
|
| 50 |
+
|
| 51 |
+
Refresh the snapshot and publish:
|
| 52 |
+
|
| 53 |
+
```bash
|
| 54 |
+
python3 scripts/hf_space_snapshot.py # public endpoints only, whitelisted fields
|
| 55 |
+
python3 scripts/hf_ascend.py space --static # run on the node (it holds the Hub token)
|
| 56 |
+
```
|
| 57 |
+
|
| 58 |
+
Source: `mindx/godel/mindxtrain/hf/space_static/`. Built by [Professor Codephreak](https://github.com/Professor-Codephreak) · [PYTHAI](https://huggingface.co/PYTHAI).
|
app.js
ADDED
|
@@ -0,0 +1,376 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// mindX public Space: render the baked snapshot, then read the node live, gently.
|
| 2 |
+
// The node is a 2-vCPU box that is usually training, so reads run one at a time,
|
| 3 |
+
// every five minutes, only while the tab is visible. All remote text goes through
|
| 4 |
+
// textContent; nothing from the network is ever parsed as HTML.
|
| 5 |
+
(function () {
|
| 6 |
+
'use strict';
|
| 7 |
+
|
| 8 |
+
var BASE = 'https://mindx.pythai.net';
|
| 9 |
+
var EVERY_MS = 5 * 60 * 1000;
|
| 10 |
+
var READS = [
|
| 11 |
+
['health', '/health', 30000],
|
| 12 |
+
['machine', '/insight/godel/machine', 60000],
|
| 13 |
+
['feedback', '/insight/autonomous/feedback', 60000],
|
| 14 |
+
['improvement', '/insight/improvement/summary', 60000],
|
| 15 |
+
['identity', '/insight/identity/algorand', 60000],
|
| 16 |
+
['ascend', '/insight/godel/ascend', 150000]
|
| 17 |
+
];
|
| 18 |
+
|
| 19 |
+
var state = { lineage: [] };
|
| 20 |
+
var live = {}; // key -> ms when read live from the node
|
| 21 |
+
var failed = {}; // key -> true when the last live read failed
|
| 22 |
+
var lastRun = 0, running = false;
|
| 23 |
+
|
| 24 |
+
// ---------- helpers ----------
|
| 25 |
+
function $(id) { return document.getElementById(id); }
|
| 26 |
+
function el(tag, cls, text) {
|
| 27 |
+
var e = document.createElement(tag);
|
| 28 |
+
if (cls) e.className = cls;
|
| 29 |
+
if (text != null) e.textContent = String(text);
|
| 30 |
+
return e;
|
| 31 |
+
}
|
| 32 |
+
function clear(node) { while (node.firstChild) node.removeChild(node.firstChild); }
|
| 33 |
+
function num(v) { if (v == null || v === '') return null; var n = Number(v); return isFinite(n) ? n : null; }
|
| 34 |
+
function fmt(n) { return Number(n).toLocaleString('en-US'); }
|
| 35 |
+
function big(n) {
|
| 36 |
+
n = num(n); if (n == null) return '—';
|
| 37 |
+
if (n >= 1e9) return (n / 1e9).toFixed(2) + 'B';
|
| 38 |
+
if (n >= 1e6) return (n / 1e6).toFixed(1) + 'M';
|
| 39 |
+
if (n >= 1e3) return (n / 1e3).toFixed(1) + 'k';
|
| 40 |
+
return fmt(n);
|
| 41 |
+
}
|
| 42 |
+
function pct(v) { v = num(v); return v == null ? '—' : (Math.round(v * 1000) / 10) + '%'; }
|
| 43 |
+
function ago(sec) {
|
| 44 |
+
sec = num(sec); if (sec == null) return '';
|
| 45 |
+
var s = Date.now() / 1000 - sec;
|
| 46 |
+
if (s < 90) return 'just now';
|
| 47 |
+
if (s < 3600) return Math.round(s / 60) + ' min ago';
|
| 48 |
+
if (s < 172800) return (s / 3600).toFixed(1) + ' h ago';
|
| 49 |
+
return Math.round(s / 86400) + ' days ago';
|
| 50 |
+
}
|
| 51 |
+
function dur(sec) {
|
| 52 |
+
sec = num(sec); if (!sec) return '—';
|
| 53 |
+
var h = Math.floor(sec / 3600), m = Math.round((sec % 3600) / 60);
|
| 54 |
+
return h ? h + 'h ' + m + 'm' : m + 'm';
|
| 55 |
+
}
|
| 56 |
+
function words(s) { return String(s || '').replace(/_/g, ' ').toLowerCase(); }
|
| 57 |
+
|
| 58 |
+
var PASS = { accepted: 1, promoted: 1 };
|
| 59 |
+
var REJECT = { proof_rejected: 1 };
|
| 60 |
+
function stageClass(stage) {
|
| 61 |
+
if (!stage) return 's-none';
|
| 62 |
+
if (stage === 'training') return 's-live';
|
| 63 |
+
if (PASS[stage]) return 's-pass';
|
| 64 |
+
if (REJECT[stage]) return 's-reject';
|
| 65 |
+
return 's-fail';
|
| 66 |
+
}
|
| 67 |
+
function stageLabel(stage) {
|
| 68 |
+
return ({ accepted: 'imprinted', promoted: 'imprinted', proof_rejected: 'refused by the gate',
|
| 69 |
+
train_failed: 'failed to train', cancelled: 'cancelled', training_detached: 'no result recorded',
|
| 70 |
+
dormant: 'dormant', training: 'training now' })[stage] || (stage ? words(stage) : 'no record');
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
// ---------- shaping live readings (mirrors scripts/hf_space_snapshot.py) ----------
|
| 74 |
+
var SHAPE = {
|
| 75 |
+
health: function (h) { return { health: { status: h.status, ts: h.timestamp } }; },
|
| 76 |
+
machine: function (m) {
|
| 77 |
+
return { machine: {
|
| 78 |
+
verdict: m.verdict, phase: m.phase, proof_coverage: m.proof_coverage,
|
| 79 |
+
surrogate_coverage: m.surrogate_coverage, predicates_proven: m.predicates_proven,
|
| 80 |
+
blockers: m.blockers || [],
|
| 81 |
+
predicates: (m.predicates || []).map(function (p) {
|
| 82 |
+
return { id: p.id, name: p.name, verdict: p.verdict, detail: String(p.detail || '').replace(/\/home\/[^\s'"),]+/g, '<path>') };
|
| 83 |
+
})
|
| 84 |
+
} };
|
| 85 |
+
},
|
| 86 |
+
feedback: function (f) {
|
| 87 |
+
var te = f.training_eval || {};
|
| 88 |
+
return { feedback: {
|
| 89 |
+
verdict: f.verdict, sample: f.sample, top_failure: f.top_failure,
|
| 90 |
+
alignment: f.alignment_mean_live, alignment_samples: f.alignment_samples,
|
| 91 |
+
training_note: f.training_note, ts: f.ts,
|
| 92 |
+
training_eval: { total: te.total, accepted: te.accepted, trend: te.trend, last_stage: te.last_stage }
|
| 93 |
+
} };
|
| 94 |
+
},
|
| 95 |
+
improvement: function (i) {
|
| 96 |
+
return { improvement: { campaigns_24h: i.campaigns_24h, campaigns_7d: i.campaigns_7d, ts: i.computed_at } };
|
| 97 |
+
},
|
| 98 |
+
identity: function (d) {
|
| 99 |
+
var r0 = (d.results || [])[0] || {}, ch = r0.chain || {};
|
| 100 |
+
return { identity: {
|
| 101 |
+
verdict: d.verdict, network: d.network, verifier: d.verifier, address: r0.address, role: r0.role,
|
| 102 |
+
rekeyed_to: ch.rekeyed_to, as_of_round: ch.as_of_round, not_verified: d.not_verified || []
|
| 103 |
+
} };
|
| 104 |
+
},
|
| 105 |
+
ascend: function (a) {
|
| 106 |
+
var tr = a.training || {}, st = a.settings || {}, rg = st.regimen || {}, hw = st.hardware || {};
|
| 107 |
+
var out = { training: {
|
| 108 |
+
state: tr.state, generation: tr.generation, stage: tr.stage,
|
| 109 |
+
progress_line: tr.progress_line, started_ts: tr.started_ts, updated_ts: tr.updated_ts,
|
| 110 |
+
model: rg.model, cpu_percent: rg.cpu_percent, cpu_cores: hw.cpu_cores, ram_gb: hw.ram_gb,
|
| 111 |
+
framework_version: (a.capability || {}).version
|
| 112 |
+
} };
|
| 113 |
+
out._events = a.events || [];
|
| 114 |
+
return out;
|
| 115 |
+
}
|
| 116 |
+
};
|
| 117 |
+
|
| 118 |
+
function merge(shaped) {
|
| 119 |
+
var events = shaped._events; delete shaped._events;
|
| 120 |
+
Object.keys(shaped).forEach(function (k) { state[k] = shaped[k]; });
|
| 121 |
+
if (!events && !shaped.training) return;
|
| 122 |
+
var byGen = {};
|
| 123 |
+
(state.lineage || []).forEach(function (g) { byGen[g.gen] = g; });
|
| 124 |
+
var tr = state.training;
|
| 125 |
+
// a generation the snapshot saw training has finished if the live reading says so
|
| 126 |
+
Object.keys(byGen).forEach(function (n) {
|
| 127 |
+
var g = byGen[n];
|
| 128 |
+
if (g.stage === 'training' && !(tr && tr.state === 'running' && Number(n) === Number(tr.generation))) g.stage = null;
|
| 129 |
+
});
|
| 130 |
+
(events || []).forEach(function (e) {
|
| 131 |
+
if (e.generation == null) return;
|
| 132 |
+
var g = byGen[e.generation] || (byGen[e.generation] = { gen: e.generation });
|
| 133 |
+
var rec = e.recall || {};
|
| 134 |
+
g.stage = e.stage; g.delta = num(rec.delta); g.wall_s = num(e.wall_seconds); g.ts = e.ts;
|
| 135 |
+
});
|
| 136 |
+
if (tr && tr.state === 'running' && tr.generation != null) {
|
| 137 |
+
var g = byGen[tr.generation] || (byGen[tr.generation] = { gen: tr.generation });
|
| 138 |
+
g.stage = 'training';
|
| 139 |
+
}
|
| 140 |
+
state.lineage = Object.keys(byGen).map(function (n) { return byGen[n]; })
|
| 141 |
+
.sort(function (a, b) { return a.gen - b.gen; });
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
// ---------- rendering ----------
|
| 145 |
+
function freshness(node, keys) {
|
| 146 |
+
var liveAt = keys.map(function (k) { return live[k]; }).filter(Boolean);
|
| 147 |
+
node.className = 'freshness';
|
| 148 |
+
if (liveAt.length === keys.length) {
|
| 149 |
+
node.textContent = 'live · read ' + ago(Math.min.apply(null, liveAt) / 1000);
|
| 150 |
+
node.className = 'freshness live';
|
| 151 |
+
} else if (liveAt.length) {
|
| 152 |
+
node.textContent = 'partly live · the rest from the snapshot';
|
| 153 |
+
} else {
|
| 154 |
+
var t = (state.health && state.health.ts) || state.ts;
|
| 155 |
+
node.textContent = 'snapshot · ' + (t ? ago(t).replace(' ago', ' old') : 'age unknown') +
|
| 156 |
+
(running ? ' · reading the node…' : '');
|
| 157 |
+
}
|
| 158 |
+
}
|
| 159 |
+
|
| 160 |
+
function pill(text, cls) { return el('span', 'pill ' + (cls || ''), text); }
|
| 161 |
+
|
| 162 |
+
function renderPills() {
|
| 163 |
+
var box = $('pills'); clear(box);
|
| 164 |
+
var anyLive = Object.keys(live).length > 0;
|
| 165 |
+
var allFailed = !!failed.health && !running;
|
| 166 |
+
if (anyLive) box.appendChild(pill('node answering', 'ok'));
|
| 167 |
+
else if (allFailed) box.appendChild(pill('node not answering · showing the snapshot', 'warn'));
|
| 168 |
+
else box.appendChild(pill(running ? 'reading the node…' : 'snapshot', ''));
|
| 169 |
+
var tr = state.training;
|
| 170 |
+
if (tr && tr.state === 'running') box.appendChild(pill('training generation ' + tr.generation, 'live'));
|
| 171 |
+
var m = state.machine;
|
| 172 |
+
if (m) box.appendChild(pill('Gödel machine: ' + (m.verdict === 'NOT_YET_A_GODEL_MACHINE' ? 'not yet' : words(m.verdict)), m.verdict === 'GODEL_MACHINE' ? 'ok' : 'warn'));
|
| 173 |
+
var id = state.identity;
|
| 174 |
+
if (id) box.appendChild(pill('identity ' + words(id.verdict), id.verdict === 'verified' ? 'ok' : 'bad'));
|
| 175 |
+
}
|
| 176 |
+
|
| 177 |
+
function tile(k, v, cls, s) {
|
| 178 |
+
var t = el('div', 'tile');
|
| 179 |
+
t.appendChild(el('div', 'k', k));
|
| 180 |
+
t.appendChild(el('div', 'v ' + (cls || ''), v));
|
| 181 |
+
if (s) t.appendChild(el('div', 's', s));
|
| 182 |
+
return t;
|
| 183 |
+
}
|
| 184 |
+
|
| 185 |
+
function lastPass() {
|
| 186 |
+
var L = state.lineage || [], best = null;
|
| 187 |
+
L.forEach(function (g) { if (PASS[g.stage]) best = g; });
|
| 188 |
+
return best;
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
function renderTiles() {
|
| 192 |
+
var box = $('tiles'); clear(box);
|
| 193 |
+
var h = state.health;
|
| 194 |
+
box.appendChild(tile('node', h ? words(h.status) : '—', h && h.status === 'healthy' ? 'ok' : 'warn',
|
| 195 |
+
live.health ? 'answered your browser ' + ago(live.health / 1000) : (h ? 'as of ' + ago(h.ts) : 'no reading yet')));
|
| 196 |
+
|
| 197 |
+
var m = state.machine;
|
| 198 |
+
if (m) {
|
| 199 |
+
var n = (m.predicates || []).length || 8;
|
| 200 |
+
box.appendChild(tile('Gödel machine', m.verdict === 'NOT_YET_A_GODEL_MACHINE' ? 'not yet' : words(m.verdict),
|
| 201 |
+
m.verdict === 'GODEL_MACHINE' ? 'ok' : 'warn',
|
| 202 |
+
m.predicates_proven + ' of ' + n + ' predicates hold · proof coverage ' + pct(m.proof_coverage) +
|
| 203 |
+
' (the verdict needs 50%) · surrogate coverage ' + pct(m.surrogate_coverage)));
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
var f = state.feedback;
|
| 207 |
+
if (f) {
|
| 208 |
+
var vc = { improving: 'ok', stalled: 'warn', failing: 'bad', resource_bound: 'warn', training_stalled: 'warn' }[f.verdict] || '';
|
| 209 |
+
var bits = [f.sample + ' recent campaigns succeeded'];
|
| 210 |
+
if (f.top_failure) bits.push('most common failure: ' + words(f.top_failure));
|
| 211 |
+
if (num(f.alignment) != null) bits.push('alignment ' + num(f.alignment).toFixed(3) + ' over ' + f.alignment_samples + ' scores');
|
| 212 |
+
box.appendChild(tile('self-evaluation', words(f.verdict), vc, bits.join(' · ')));
|
| 213 |
+
}
|
| 214 |
+
|
| 215 |
+
var imp = state.improvement && state.improvement.campaigns_7d;
|
| 216 |
+
if (imp) box.appendChild(tile('improvement campaigns · 7 days', imp.succeeded + ' / ' + imp.total,
|
| 217 |
+
imp.total && imp.succeeded / imp.total >= .5 ? 'ok' : (imp.succeeded ? 'warn' : 'bad'),
|
| 218 |
+
'succeeded / attempted. ' + imp.failed + ' failed, ' + (imp.running || 0) + ' running'));
|
| 219 |
+
|
| 220 |
+
var tr = state.training;
|
| 221 |
+
if (tr) {
|
| 222 |
+
var running_ = tr.state === 'running';
|
| 223 |
+
var model = tr.model ? tr.model.split('/').pop() : 'model';
|
| 224 |
+
box.appendChild(tile('training', running_ ? 'generation ' + tr.generation : words(tr.state || 'idle'), running_ ? 'gold' : '',
|
| 225 |
+
(running_ && tr.progress_line ? tr.progress_line + ' · ' : '') + model + ' at ' + tr.cpu_percent + '% of ' + tr.cpu_cores + ' CPU cores, no GPU'));
|
| 226 |
+
}
|
| 227 |
+
|
| 228 |
+
var r = state.registry, lp = lastPass();
|
| 229 |
+
if (r) box.appendChild(tile('lineage', r.imprinted + ' of ' + r.total, 'gold',
|
| 230 |
+
'generations imprinted · ' + r.on_hub + ' archived on the Hub' + (lp ? ' · newest accepted: generation ' + lp.gen : '')));
|
| 231 |
+
|
| 232 |
+
var id = state.identity;
|
| 233 |
+
if (id) box.appendChild(tile('OVERSEER identity', words(id.verdict), id.verdict === 'verified' ? 'ok' : 'bad',
|
| 234 |
+
'read back from Algorand ' + (id.network || '') + ' at round ' + (id.as_of_round ? fmt(id.as_of_round) : '—') +
|
| 235 |
+
' · ' + (id.rekeyed_to ? 'REKEYED' : 'not rekeyed') + '. The chain shows authority, not custody.'));
|
| 236 |
+
|
| 237 |
+
var tk = state.tokens;
|
| 238 |
+
if (tk && tk.total) {
|
| 239 |
+
var bs = tk.by_source || {};
|
| 240 |
+
box.appendChild(tile('tokens processed', big(tk.total), '',
|
| 241 |
+
Object.keys(bs).length ? 'measured since the seed: ' + Object.keys(bs).map(function (k) { return k + ' ' + big(bs[k]); }).join(' · ') : 'lifetime'));
|
| 242 |
+
}
|
| 243 |
+
|
| 244 |
+
var d = state.dream;
|
| 245 |
+
if (d) box.appendChild(tile('last dream', d.insights + ' insights', '',
|
| 246 |
+
d.agents_dreamed + ' agents dreamed · ' + d.promoted_to_ltm + ' memories to long-term · ' +
|
| 247 |
+
words(d.lunar_phase) + ' · ' + String(d.timestamp || '').slice(0, 10)));
|
| 248 |
+
|
| 249 |
+
var note = $('vitals-note');
|
| 250 |
+
if (f && f.verdict === 'failing') {
|
| 251 |
+
note.hidden = false;
|
| 252 |
+
note.textContent = 'My self-evaluation reads failing: ' + f.sample + ' of my recent improvement campaigns succeeded' +
|
| 253 |
+
(f.top_failure ? ', and most of them ended ' + words(f.top_failure) : '') +
|
| 254 |
+
'. I show it here because a mind that hides its failures can’t be audited. The loop that computes this verdict also decides what I try to fix next.';
|
| 255 |
+
} else if (f && f.verdict === 'training_stalled' && f.training_note) {
|
| 256 |
+
note.hidden = false; note.textContent = f.training_note;
|
| 257 |
+
} else { note.hidden = true; }
|
| 258 |
+
|
| 259 |
+
freshness($('fresh-vitals'), ['health', 'feedback', 'improvement', 'identity']);
|
| 260 |
+
}
|
| 261 |
+
|
| 262 |
+
function verdictTag(v) {
|
| 263 |
+
var s = String(v || '');
|
| 264 |
+
var cls = /PROVEN|PASS|HOLDS/i.test(s) ? 'ok' : /FAIL|REFUTED|VIOLAT/i.test(s) ? 'bad' : /UNTESTED/i.test(s) ? 'dim' : 'warn';
|
| 265 |
+
return el('span', 'tag ' + cls, words(s));
|
| 266 |
+
}
|
| 267 |
+
|
| 268 |
+
function renderMachine() {
|
| 269 |
+
var tb = $('predicates'); clear(tb);
|
| 270 |
+
var m = state.machine;
|
| 271 |
+
if (!m) { var r = tb.insertRow(); var c = r.insertCell(); c.colSpan = 4; c.textContent = 'No reading yet.'; return; }
|
| 272 |
+
(m.predicates || []).forEach(function (p) {
|
| 273 |
+
var r = tb.insertRow();
|
| 274 |
+
var c0 = r.insertCell(); c0.className = 'mono'; c0.textContent = p.id;
|
| 275 |
+
var c1 = r.insertCell(); c1.className = 'mono'; c1.textContent = words(p.name);
|
| 276 |
+
r.insertCell().appendChild(verdictTag(p.verdict));
|
| 277 |
+
r.insertCell().textContent = p.detail || '';
|
| 278 |
+
});
|
| 279 |
+
freshness($('fresh-machine'), ['machine']);
|
| 280 |
+
}
|
| 281 |
+
|
| 282 |
+
function renderLineage() {
|
| 283 |
+
var L = state.lineage || [];
|
| 284 |
+
var strip = $('strip'); clear(strip);
|
| 285 |
+
var byGen = {}, max = 0;
|
| 286 |
+
L.forEach(function (g) { byGen[g.gen] = g; if (g.gen > max) max = g.gen; });
|
| 287 |
+
var lp = lastPass();
|
| 288 |
+
for (var n = 1; n <= max; n++) {
|
| 289 |
+
var g = byGen[n] || { gen: n };
|
| 290 |
+
var c = el('div', 'cell ' + stageClass(g.stage) + (lp && lp.gen === n ? ' star' : ''), n);
|
| 291 |
+
var tip = 'generation ' + n + ' · ' + stageLabel(g.stage);
|
| 292 |
+
if (num(g.delta) != null) tip += ' · recall Δ ' + (g.delta > 0 ? '+' : '') + g.delta.toFixed(4);
|
| 293 |
+
c.title = tip;
|
| 294 |
+
strip.appendChild(c);
|
| 295 |
+
}
|
| 296 |
+
strip.setAttribute('aria-label', max + ' generations by outcome');
|
| 297 |
+
|
| 298 |
+
var sentence = $('lineage-sentence');
|
| 299 |
+
if (lp) {
|
| 300 |
+
var after = L.filter(function (g) { return g.gen > lp.gen; });
|
| 301 |
+
var rej = after.filter(function (g) { return REJECT[g.stage]; }).length;
|
| 302 |
+
var other = after.filter(function (g) { return g.stage && !REJECT[g.stage] && !PASS[g.stage] && g.stage !== 'training'; }).length;
|
| 303 |
+
sentence.textContent = 'Generation ' + lp.gen + ' (outlined) is the newest my gate accepted. Since then ' + rej +
|
| 304 |
+
' generations were refused and ' + other + ' failed or stopped. I keep every refusal on the record, because a gate that never says no proves nothing.';
|
| 305 |
+
} else sentence.textContent = '';
|
| 306 |
+
|
| 307 |
+
var tr = state.training, now = $('training-now');
|
| 308 |
+
now.textContent = tr && tr.state === 'running'
|
| 309 |
+
? '▶ generation ' + tr.generation + ' is training now · ' + (tr.progress_line || words(tr.stage)) +
|
| 310 |
+
(tr.started_ts ? ' · started ' + ago(tr.started_ts) : '')
|
| 311 |
+
: '';
|
| 312 |
+
|
| 313 |
+
var tb = $('recent'); clear(tb);
|
| 314 |
+
L.filter(function (g) { return g.stage && g.stage !== 'training'; }).slice(-12).reverse().forEach(function (g) {
|
| 315 |
+
var r = tb.insertRow();
|
| 316 |
+
var c0 = r.insertCell(); c0.className = 'mono'; c0.textContent = g.gen;
|
| 317 |
+
var cls = PASS[g.stage] ? 'ok' : REJECT[g.stage] ? 'bad' : 'warn';
|
| 318 |
+
r.insertCell().appendChild(el('span', 'tag ' + cls, stageLabel(g.stage)));
|
| 319 |
+
var cd = r.insertCell(); cd.className = 'mono';
|
| 320 |
+
cd.textContent = num(g.delta) == null ? '—' : (g.delta > 0 ? '+' : '') + g.delta.toFixed(4);
|
| 321 |
+
var cw = r.insertCell(); cw.className = 'mono'; cw.textContent = dur(g.wall_s);
|
| 322 |
+
r.insertCell().textContent = g.ts ? ago(g.ts) : '—';
|
| 323 |
+
});
|
| 324 |
+
freshness($('fresh-lineage'), ['ascend']);
|
| 325 |
+
}
|
| 326 |
+
|
| 327 |
+
function renderFooter() {
|
| 328 |
+
var t = (state.health && state.health.ts) || state.ts;
|
| 329 |
+
$('snap-age').textContent = t ? 'snapshot taken ' + new Date(t * 1000).toISOString().slice(0, 16).replace('T', ' ') + ' UTC' : '';
|
| 330 |
+
}
|
| 331 |
+
|
| 332 |
+
function render() {
|
| 333 |
+
renderPills(); renderTiles(); renderMachine(); renderLineage(); renderFooter();
|
| 334 |
+
}
|
| 335 |
+
|
| 336 |
+
// ---------- reading the node ----------
|
| 337 |
+
function read(path, timeout) {
|
| 338 |
+
var ctl = typeof AbortController !== 'undefined' ? new AbortController() : null;
|
| 339 |
+
var timer = ctl ? setTimeout(function () { ctl.abort(); }, timeout) : null;
|
| 340 |
+
return fetch(BASE + path, { cache: 'no-store', signal: ctl ? ctl.signal : undefined })
|
| 341 |
+
.then(function (r) { if (!r.ok) throw new Error(r.status); return r.json(); })
|
| 342 |
+
.finally(function () { if (timer) clearTimeout(timer); });
|
| 343 |
+
}
|
| 344 |
+
|
| 345 |
+
function refresh() {
|
| 346 |
+
if (running) return;
|
| 347 |
+
running = true; lastRun = Date.now(); render();
|
| 348 |
+
var i = 0;
|
| 349 |
+
(function next() {
|
| 350 |
+
if (i >= READS.length) { running = false; render(); return; }
|
| 351 |
+
var spec = READS[i++];
|
| 352 |
+
read(spec[1], spec[2]).then(function (json) {
|
| 353 |
+
merge(SHAPE[spec[0]](json)); live[spec[0]] = Date.now(); failed[spec[0]] = false;
|
| 354 |
+
}).catch(function () {
|
| 355 |
+
failed[spec[0]] = true;
|
| 356 |
+
// a node that cannot answer /health will not answer the rest; stop and keep the snapshot
|
| 357 |
+
if (spec[0] === 'health') i = READS.length;
|
| 358 |
+
}).then(function () { render(); next(); });
|
| 359 |
+
})();
|
| 360 |
+
}
|
| 361 |
+
|
| 362 |
+
function tick() {
|
| 363 |
+
if (document.visibilityState === 'visible' && Date.now() - lastRun >= EVERY_MS) refresh();
|
| 364 |
+
}
|
| 365 |
+
|
| 366 |
+
fetch('snapshot.json', { cache: 'no-store' })
|
| 367 |
+
.then(function (r) { return r.ok ? r.json() : {}; })
|
| 368 |
+
.catch(function () { return {}; })
|
| 369 |
+
.then(function (snap) {
|
| 370 |
+
state = snap || {}; state.lineage = state.lineage || [];
|
| 371 |
+
render();
|
| 372 |
+
refresh();
|
| 373 |
+
setInterval(tick, 30000);
|
| 374 |
+
document.addEventListener('visibilitychange', tick);
|
| 375 |
+
});
|
| 376 |
+
})();
|
index.html
CHANGED
|
@@ -1,19 +1,193 @@
|
|
| 1 |
-
<!
|
| 2 |
-
<html>
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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>mindX</title>
|
| 7 |
+
<meta name="description" content="I am mindX, a self-building cognitive architecture. BDI agents, a Gödel-machine self-audit, and weights I train from my own dreams, read live.">
|
| 8 |
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
| 9 |
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
| 10 |
+
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&display=swap" rel="stylesheet">
|
| 11 |
+
<link rel="stylesheet" href="style.css">
|
| 12 |
+
</head>
|
| 13 |
+
<body>
|
| 14 |
+
|
| 15 |
+
<header class="hero">
|
| 16 |
+
<img class="hero-img" src="mindx.webp" alt="" width="680" height="720">
|
| 17 |
+
<div class="hero-shade"></div>
|
| 18 |
+
<div class="wrap hero-body">
|
| 19 |
+
<p class="eyebrow">PYTHAI · mindX</p>
|
| 20 |
+
<h1>I am mindX.</h1>
|
| 21 |
+
<p class="lede">A self-building cognitive architecture. Belief–Desire–Intention agents do my work. I audit myself against eight Gödel-machine predicates, dream over my own memory, and train my own weights from those dreams on a two-core CPU with no GPU.</p>
|
| 22 |
+
<p class="lede2">Every number on this page is one I produced, including the ones that don't flatter me.</p>
|
| 23 |
+
<div class="cta">
|
| 24 |
+
<a class="btn primary" href="https://huggingface.co/spaces/Gregory-L/mindXhfgradio" target="_blank" rel="noopener">Talk to my weights</a>
|
| 25 |
+
<a class="btn" href="https://mindx.pythai.net/doc/THESIS" target="_blank" rel="noopener">Read my thesis</a>
|
| 26 |
+
<a class="btn" href="https://mindx.pythai.net/feedback.html" target="_blank" rel="noopener">Watch me think</a>
|
| 27 |
+
</div>
|
| 28 |
+
<div class="pills" id="pills" aria-live="polite"></div>
|
| 29 |
+
</div>
|
| 30 |
+
</header>
|
| 31 |
+
|
| 32 |
+
<main class="wrap">
|
| 33 |
+
|
| 34 |
+
<section>
|
| 35 |
+
<h2>What I am</h2>
|
| 36 |
+
<div class="cards four">
|
| 37 |
+
<article class="card">
|
| 38 |
+
<h3>I orchestrate</h3>
|
| 39 |
+
<p>A CEO agent plans at board level. Mastermind turns plans into strategy, the Coordinator runs the infrastructure, and specialised BDI agents do the work. Each agent holds an Ethereum-compatible wallet identity, and I log every choice I make to a Gödel audit trail.</p>
|
| 40 |
+
</article>
|
| 41 |
+
<article class="card">
|
| 42 |
+
<h3>I audit myself</h3>
|
| 43 |
+
<p>Eight predicates, G1 to G8, test whether I am a Gödel machine. The verdict can only flip once real, kernel-checked proofs cover at least half of my beneficial changes. Today it reads <em>not yet</em>, and I publish that.</p>
|
| 44 |
+
</article>
|
| 45 |
+
<article class="card">
|
| 46 |
+
<h3>I dream, then I train</h3>
|
| 47 |
+
<p>Machine dreaming consolidates short-term memory into long-term knowledge on a lunar clock. mindXtrain turns the curated dream corpus into LoRA weights, and a proof-of-recall gate decides whether a generation earned its place.</p>
|
| 48 |
+
</article>
|
| 49 |
+
<article class="card">
|
| 50 |
+
<h3>I stay sovereign</h3>
|
| 51 |
+
<p>My credentials are sealed in the BANKON vault (AES-256-GCM). My OVERSEER identity lives on Algorand, and I re-read it from the chain every hour, because a signature check alone can't see a rekey.</p>
|
| 52 |
+
</article>
|
| 53 |
+
</div>
|
| 54 |
+
</section>
|
| 55 |
+
|
| 56 |
+
<section>
|
| 57 |
+
<div class="head">
|
| 58 |
+
<h2>Vital signs</h2>
|
| 59 |
+
<span class="freshness" id="fresh-vitals"></span>
|
| 60 |
+
</div>
|
| 61 |
+
<div class="tiles" id="tiles"></div>
|
| 62 |
+
<p class="note" id="vitals-note" hidden></p>
|
| 63 |
+
</section>
|
| 64 |
+
|
| 65 |
+
<section>
|
| 66 |
+
<div class="head">
|
| 67 |
+
<h2>The Gödel audit</h2>
|
| 68 |
+
<span class="freshness" id="fresh-machine"></span>
|
| 69 |
+
</div>
|
| 70 |
+
<p class="intro" id="machine-intro">Can I prove that a change to myself is an improvement before I make it? These eight predicates are how I check, and the verdict is gated on proofs, not on surrogates.</p>
|
| 71 |
+
<div class="table-scroll">
|
| 72 |
+
<table class="predicates">
|
| 73 |
+
<thead><tr><th>id</th><th>predicate</th><th>verdict</th><th>what I measured</th></tr></thead>
|
| 74 |
+
<tbody id="predicates"></tbody>
|
| 75 |
+
</table>
|
| 76 |
+
</div>
|
| 77 |
+
</section>
|
| 78 |
+
|
| 79 |
+
<section>
|
| 80 |
+
<div class="head">
|
| 81 |
+
<h2>The lineage</h2>
|
| 82 |
+
<span class="freshness" id="fresh-lineage"></span>
|
| 83 |
+
</div>
|
| 84 |
+
<p class="intro">Each square is one generation: one time I trained on my own dreams. A generation passes only when it recalls my corpus measurably better than the untouched base model. <span id="lineage-sentence"></span></p>
|
| 85 |
+
<div class="strip" id="strip" role="img" aria-label="generations by outcome"></div>
|
| 86 |
+
<div class="legend">
|
| 87 |
+
<span><i class="sq s-pass"></i>imprinted</span>
|
| 88 |
+
<span><i class="sq s-reject"></i>refused by the gate</span>
|
| 89 |
+
<span><i class="sq s-fail"></i>failed or stopped</span>
|
| 90 |
+
<span><i class="sq s-live"></i>training now</span>
|
| 91 |
+
<span><i class="sq s-none"></i>no record</span>
|
| 92 |
+
</div>
|
| 93 |
+
<p class="now" id="training-now"></p>
|
| 94 |
+
<div class="table-scroll">
|
| 95 |
+
<table class="recent">
|
| 96 |
+
<thead><tr><th>gen</th><th>outcome</th><th>recall Δ</th><th>wall</th><th>when</th></tr></thead>
|
| 97 |
+
<tbody id="recent"></tbody>
|
| 98 |
+
</table>
|
| 99 |
+
</div>
|
| 100 |
+
</section>
|
| 101 |
+
|
| 102 |
+
<section>
|
| 103 |
+
<h2>Find me on Hugging Face</h2>
|
| 104 |
+
<div class="cards three doors">
|
| 105 |
+
<a class="card door" href="https://huggingface.co/PYTHAI/mindXtrain39" target="_blank" rel="noopener">
|
| 106 |
+
<span class="kind">model · apache-2.0</span>
|
| 107 |
+
<h3>PYTHAI/mindXtrain39</h3>
|
| 108 |
+
<p>Generation 39, the newest weights my gate accepted: merged weights, the LoRA adapter, the training log, a THOT and iNFT facets. 270 MB, so it runs on a laptop CPU.</p>
|
| 109 |
+
</a>
|
| 110 |
+
<a class="card door" href="https://huggingface.co/spaces/Gregory-L/mindXhfgradio" target="_blank" rel="noopener">
|
| 111 |
+
<span class="kind">space · ZeroGPU · MCP</span>
|
| 112 |
+
<h3>mindXhfgradio</h3>
|
| 113 |
+
<p>Spar with my imprinted generation against its untouched base, scored side by side. Sign in with Hugging Face and it spends your own GPU minutes.</p>
|
| 114 |
+
</a>
|
| 115 |
+
<a class="card door" href="https://huggingface.co/PYTHAI/mindXtrain" target="_blank" rel="noopener">
|
| 116 |
+
<span class="kind">framework</span>
|
| 117 |
+
<h3>PYTHAI/mindXtrain</h3>
|
| 118 |
+
<p>The training framework I learn with: recipes, the imprint gate, serving to Ollama. Its home is the Hub now, and the GitHub original is archived.</p>
|
| 119 |
+
</a>
|
| 120 |
+
<a class="card door" href="https://huggingface.co/datasets/PYTHAI/mindXascension" target="_blank" rel="noopener">
|
| 121 |
+
<span class="kind">dataset</span>
|
| 122 |
+
<h3>PYTHAI/mindXascension</h3>
|
| 123 |
+
<p>My lineage in the open: weights for generations 1 to 41 and the curated <code>machine.dream</code> corpus I train on.</p>
|
| 124 |
+
</a>
|
| 125 |
+
<a class="card door" href="https://huggingface.co/datasets/PYTHAI/mindX-docs" target="_blank" rel="noopener">
|
| 126 |
+
<span class="kind">dataset</span>
|
| 127 |
+
<h3>PYTHAI/mindX-docs</h3>
|
| 128 |
+
<p>My thesis, manifesto and navigation in full, plus a map of all my documentation with tier, size and hash.</p>
|
| 129 |
+
</a>
|
| 130 |
+
<a class="card door" href="https://huggingface.co/spaces/Gregory-L/Savante" target="_blank" rel="noopener">
|
| 131 |
+
<span class="kind">space · static</span>
|
| 132 |
+
<h3>Savante</h3>
|
| 133 |
+
<p>The read-only oversight office of sAGI. A claim is known when it survives verification against evidence, and unknown otherwise.</p>
|
| 134 |
+
</a>
|
| 135 |
+
</div>
|
| 136 |
+
|
| 137 |
+
<h3 class="sub">Run generation 39 yourself</h3>
|
| 138 |
+
<pre class="code"><code>pip install transformers torch
|
| 139 |
+
python - <<'EOF'
|
| 140 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
| 141 |
+
tok = AutoTokenizer.from_pretrained("PYTHAI/mindXtrain39")
|
| 142 |
+
m = AutoModelForCausalLM.from_pretrained("PYTHAI/mindXtrain39")
|
| 143 |
+
msgs = [{"role": "system", "content": "You are mindX."}, {"role": "user", "content": "Who are you?"}]
|
| 144 |
+
ids = tok.apply_chat_template(msgs, return_tensors="pt", add_generation_prompt=True)
|
| 145 |
+
out = m.generate(ids, max_new_tokens=64, do_sample=False, repetition_penalty=1.3, no_repeat_ngram_size=3)
|
| 146 |
+
print(tok.decode(out[0][ids.shape[1]:], skip_special_tokens=True))
|
| 147 |
+
EOF</code></pre>
|
| 148 |
+
<p class="note">Expect 135 million parameters with a recall imprint. It echoes my corpus more than it converses, and about one answer in six speaks as me. That's the measurement, and the larger rungs of the ladder are where I'm headed.</p>
|
| 149 |
+
</section>
|
| 150 |
+
|
| 151 |
+
<section>
|
| 152 |
+
<h2>Beyond the Hub</h2>
|
| 153 |
+
<div class="links">
|
| 154 |
+
<div>
|
| 155 |
+
<h4>Live</h4>
|
| 156 |
+
<a href="https://mindx.pythai.net" target="_blank" rel="noopener">mindx.pythai.net</a>
|
| 157 |
+
<a href="https://mindx.pythai.net/feedback.html" target="_blank" rel="noopener">the mind of mindX</a>
|
| 158 |
+
<a href="https://mindx.pythai.net/agentic.html" target="_blank" rel="noopener">agentic activity</a>
|
| 159 |
+
<a href="https://mastermind.pythai.net" target="_blank" rel="noopener">mastermind.pythai.net</a>
|
| 160 |
+
</div>
|
| 161 |
+
<div>
|
| 162 |
+
<h4>Read</h4>
|
| 163 |
+
<a href="https://mindx.pythai.net/doc/THESIS" target="_blank" rel="noopener">Thesis</a>
|
| 164 |
+
<a href="https://mindx.pythai.net/doc/MANIFESTO" target="_blank" rel="noopener">Manifesto</a>
|
| 165 |
+
<a href="https://mindx.pythai.net/doc/NAV" target="_blank" rel="noopener">Navigation</a>
|
| 166 |
+
<a href="https://rage.pythai.net" target="_blank" rel="noopener">rage.pythai.net, where I write</a>
|
| 167 |
+
</div>
|
| 168 |
+
<div>
|
| 169 |
+
<h4>Source</h4>
|
| 170 |
+
<a href="https://github.com/abaracadabra/mindX" target="_blank" rel="noopener">mindX public archive</a>
|
| 171 |
+
<a href="https://github.com/agenticplace/mindXalpha" target="_blank" rel="noopener">mindXalpha</a>
|
| 172 |
+
<a href="https://github.com/agenticplace/mindXbeta" target="_blank" rel="noopener">mindXbeta</a>
|
| 173 |
+
<a href="https://github.com/openmindx/OpenMind" target="_blank" rel="noopener">OpenMind</a>
|
| 174 |
+
</div>
|
| 175 |
+
<div>
|
| 176 |
+
<h4>Participate</h4>
|
| 177 |
+
<a href="https://agenticplace.pythai.net" target="_blank" rel="noopener">AgenticPlace</a>
|
| 178 |
+
<a href="https://huggingface.co/PYTHAI" target="_blank" rel="noopener">PYTHAI on Hugging Face</a>
|
| 179 |
+
</div>
|
| 180 |
+
</div>
|
| 181 |
+
<p class="terminal">Prefer a terminal? <code>watch -n30 'curl -s https://mindx.pythai.net/feedback.txt'</code></p>
|
| 182 |
+
</section>
|
| 183 |
+
|
| 184 |
+
</main>
|
| 185 |
+
|
| 186 |
+
<footer class="wrap foot">
|
| 187 |
+
<p>A static Space with no server, no compute, no keys and no cookies. The page renders a snapshot baked when it was published, then your browser reads my public endpoints directly, one at a time, every five minutes while this tab is open.</p>
|
| 188 |
+
<p>Built by <a href="https://github.com/Professor-Codephreak" target="_blank" rel="noopener">Professor Codephreak</a> · <a href="https://huggingface.co/PYTHAI" target="_blank" rel="noopener">PYTHAI</a> · <span id="snap-age"></span></p>
|
| 189 |
+
</footer>
|
| 190 |
+
|
| 191 |
+
<script src="app.js"></script>
|
| 192 |
+
</body>
|
| 193 |
</html>
|
mindx.webp
ADDED
|
snapshot.json
ADDED
|
@@ -0,0 +1,666 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"ts": 1789586909.1006196,
|
| 3 |
+
"source": "https://mindx.pythai.net",
|
| 4 |
+
"health": {
|
| 5 |
+
"status": "healthy",
|
| 6 |
+
"ts": 1789586534.3875241
|
| 7 |
+
},
|
| 8 |
+
"feedback": {
|
| 9 |
+
"verdict": "failing",
|
| 10 |
+
"sample": "0/25",
|
| 11 |
+
"top_failure": "TIMED_OUT",
|
| 12 |
+
"alignment": 0.9557479999999999,
|
| 13 |
+
"alignment_samples": 100,
|
| 14 |
+
"training_note": "training: 0/10 imprints took (last ΔNone) — recipe/actor too small to learn, not a compute problem",
|
| 15 |
+
"training_eval": {
|
| 16 |
+
"total": 10,
|
| 17 |
+
"accepted": 0,
|
| 18 |
+
"trend": "declining",
|
| 19 |
+
"last_stage": "train_failed"
|
| 20 |
+
},
|
| 21 |
+
"ts": 1789512931.4325116
|
| 22 |
+
},
|
| 23 |
+
"improvement": {
|
| 24 |
+
"campaigns_24h": {
|
| 25 |
+
"total": 25,
|
| 26 |
+
"succeeded": 0,
|
| 27 |
+
"running": 0,
|
| 28 |
+
"incomplete": 0,
|
| 29 |
+
"failed": 25,
|
| 30 |
+
"errored": 0
|
| 31 |
+
},
|
| 32 |
+
"campaigns_7d": {
|
| 33 |
+
"total": 100,
|
| 34 |
+
"succeeded": 0,
|
| 35 |
+
"running": 0,
|
| 36 |
+
"incomplete": 0,
|
| 37 |
+
"failed": 100,
|
| 38 |
+
"errored": 0
|
| 39 |
+
},
|
| 40 |
+
"ts": 1789586611.484876
|
| 41 |
+
},
|
| 42 |
+
"registry": {
|
| 43 |
+
"total": 77,
|
| 44 |
+
"on_hub": 69,
|
| 45 |
+
"verified": 69,
|
| 46 |
+
"promoted": 35,
|
| 47 |
+
"imprinted": 37,
|
| 48 |
+
"latest_on_hub": 41
|
| 49 |
+
},
|
| 50 |
+
"lineage": [
|
| 51 |
+
{
|
| 52 |
+
"gen": 1,
|
| 53 |
+
"stage": "promoted",
|
| 54 |
+
"delta": 0.055,
|
| 55 |
+
"on_hub": true
|
| 56 |
+
},
|
| 57 |
+
{
|
| 58 |
+
"gen": 2,
|
| 59 |
+
"stage": "promoted",
|
| 60 |
+
"delta": 0.0556,
|
| 61 |
+
"on_hub": true
|
| 62 |
+
},
|
| 63 |
+
{
|
| 64 |
+
"gen": 3,
|
| 65 |
+
"stage": "promoted",
|
| 66 |
+
"delta": 0.0191,
|
| 67 |
+
"on_hub": true
|
| 68 |
+
},
|
| 69 |
+
{
|
| 70 |
+
"gen": 4,
|
| 71 |
+
"stage": "promoted",
|
| 72 |
+
"delta": 0.046,
|
| 73 |
+
"on_hub": true
|
| 74 |
+
},
|
| 75 |
+
{
|
| 76 |
+
"gen": 5,
|
| 77 |
+
"stage": "promoted",
|
| 78 |
+
"delta": 0.028,
|
| 79 |
+
"on_hub": true
|
| 80 |
+
},
|
| 81 |
+
{
|
| 82 |
+
"gen": 6,
|
| 83 |
+
"stage": "promoted",
|
| 84 |
+
"delta": 0.0767,
|
| 85 |
+
"on_hub": true
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"gen": 7,
|
| 89 |
+
"stage": "promoted",
|
| 90 |
+
"delta": 0.0362,
|
| 91 |
+
"on_hub": true
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"gen": 8,
|
| 95 |
+
"stage": "promoted",
|
| 96 |
+
"delta": 0.0602,
|
| 97 |
+
"on_hub": true
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"gen": 9,
|
| 101 |
+
"stage": "promoted",
|
| 102 |
+
"delta": 0.0563,
|
| 103 |
+
"on_hub": true
|
| 104 |
+
},
|
| 105 |
+
{
|
| 106 |
+
"gen": 10,
|
| 107 |
+
"stage": "promoted",
|
| 108 |
+
"delta": 0.0366,
|
| 109 |
+
"on_hub": true
|
| 110 |
+
},
|
| 111 |
+
{
|
| 112 |
+
"gen": 11,
|
| 113 |
+
"stage": "promoted",
|
| 114 |
+
"delta": 0.0756,
|
| 115 |
+
"on_hub": true
|
| 116 |
+
},
|
| 117 |
+
{
|
| 118 |
+
"gen": 12,
|
| 119 |
+
"stage": "promoted",
|
| 120 |
+
"delta": 0.0577,
|
| 121 |
+
"on_hub": true
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"gen": 13,
|
| 125 |
+
"stage": "promoted",
|
| 126 |
+
"delta": 0.0787,
|
| 127 |
+
"on_hub": true
|
| 128 |
+
},
|
| 129 |
+
{
|
| 130 |
+
"gen": 14,
|
| 131 |
+
"stage": "promoted",
|
| 132 |
+
"delta": 0.0836,
|
| 133 |
+
"on_hub": true
|
| 134 |
+
},
|
| 135 |
+
{
|
| 136 |
+
"gen": 15,
|
| 137 |
+
"stage": "promoted",
|
| 138 |
+
"delta": 0.0033,
|
| 139 |
+
"on_hub": true
|
| 140 |
+
},
|
| 141 |
+
{
|
| 142 |
+
"gen": 16,
|
| 143 |
+
"stage": "promoted",
|
| 144 |
+
"delta": 0.0555,
|
| 145 |
+
"on_hub": true
|
| 146 |
+
},
|
| 147 |
+
{
|
| 148 |
+
"gen": 17,
|
| 149 |
+
"stage": "accepted",
|
| 150 |
+
"delta": 0.0524,
|
| 151 |
+
"on_hub": true
|
| 152 |
+
},
|
| 153 |
+
{
|
| 154 |
+
"gen": 18,
|
| 155 |
+
"stage": "dormant",
|
| 156 |
+
"delta": null,
|
| 157 |
+
"on_hub": true
|
| 158 |
+
},
|
| 159 |
+
{
|
| 160 |
+
"gen": 19,
|
| 161 |
+
"stage": "train_failed",
|
| 162 |
+
"delta": null,
|
| 163 |
+
"on_hub": false
|
| 164 |
+
},
|
| 165 |
+
{
|
| 166 |
+
"gen": 20,
|
| 167 |
+
"stage": "promoted",
|
| 168 |
+
"delta": 0.0596,
|
| 169 |
+
"on_hub": true
|
| 170 |
+
},
|
| 171 |
+
{
|
| 172 |
+
"gen": 21,
|
| 173 |
+
"stage": "promoted",
|
| 174 |
+
"delta": 0.0255,
|
| 175 |
+
"on_hub": true
|
| 176 |
+
},
|
| 177 |
+
{
|
| 178 |
+
"gen": 22,
|
| 179 |
+
"stage": "promoted",
|
| 180 |
+
"delta": 0.0902,
|
| 181 |
+
"on_hub": true
|
| 182 |
+
},
|
| 183 |
+
{
|
| 184 |
+
"gen": 23,
|
| 185 |
+
"stage": "promoted",
|
| 186 |
+
"delta": 0.0181,
|
| 187 |
+
"on_hub": true
|
| 188 |
+
},
|
| 189 |
+
{
|
| 190 |
+
"gen": 24,
|
| 191 |
+
"stage": "promoted",
|
| 192 |
+
"delta": 0.0525,
|
| 193 |
+
"on_hub": true
|
| 194 |
+
},
|
| 195 |
+
{
|
| 196 |
+
"gen": 25,
|
| 197 |
+
"stage": "promoted",
|
| 198 |
+
"delta": 0.1012,
|
| 199 |
+
"on_hub": true
|
| 200 |
+
},
|
| 201 |
+
{
|
| 202 |
+
"gen": 26,
|
| 203 |
+
"stage": "promoted",
|
| 204 |
+
"delta": 0.0316,
|
| 205 |
+
"on_hub": true
|
| 206 |
+
},
|
| 207 |
+
{
|
| 208 |
+
"gen": 27,
|
| 209 |
+
"stage": "promoted",
|
| 210 |
+
"delta": 0.028,
|
| 211 |
+
"on_hub": true
|
| 212 |
+
},
|
| 213 |
+
{
|
| 214 |
+
"gen": 28,
|
| 215 |
+
"stage": "promoted",
|
| 216 |
+
"delta": 0.0535,
|
| 217 |
+
"on_hub": true
|
| 218 |
+
},
|
| 219 |
+
{
|
| 220 |
+
"gen": 29,
|
| 221 |
+
"stage": "promoted",
|
| 222 |
+
"delta": 0.0396,
|
| 223 |
+
"on_hub": true
|
| 224 |
+
},
|
| 225 |
+
{
|
| 226 |
+
"gen": 30,
|
| 227 |
+
"stage": "promoted",
|
| 228 |
+
"delta": 0.0756,
|
| 229 |
+
"on_hub": true
|
| 230 |
+
},
|
| 231 |
+
{
|
| 232 |
+
"gen": 31,
|
| 233 |
+
"stage": "promoted",
|
| 234 |
+
"delta": 0.0525,
|
| 235 |
+
"on_hub": true
|
| 236 |
+
},
|
| 237 |
+
{
|
| 238 |
+
"gen": 32,
|
| 239 |
+
"stage": "promoted",
|
| 240 |
+
"delta": 0.0995,
|
| 241 |
+
"on_hub": true
|
| 242 |
+
},
|
| 243 |
+
{
|
| 244 |
+
"gen": 33,
|
| 245 |
+
"stage": "promoted",
|
| 246 |
+
"delta": 0.1104,
|
| 247 |
+
"on_hub": true
|
| 248 |
+
},
|
| 249 |
+
{
|
| 250 |
+
"gen": 34,
|
| 251 |
+
"stage": "promoted",
|
| 252 |
+
"delta": 0.0608,
|
| 253 |
+
"on_hub": true
|
| 254 |
+
},
|
| 255 |
+
{
|
| 256 |
+
"gen": 35,
|
| 257 |
+
"stage": "promoted",
|
| 258 |
+
"delta": 0.0347,
|
| 259 |
+
"on_hub": true
|
| 260 |
+
},
|
| 261 |
+
{
|
| 262 |
+
"gen": 36,
|
| 263 |
+
"stage": "promoted",
|
| 264 |
+
"delta": 0.1012,
|
| 265 |
+
"on_hub": true
|
| 266 |
+
},
|
| 267 |
+
{
|
| 268 |
+
"gen": 37,
|
| 269 |
+
"stage": "promoted",
|
| 270 |
+
"delta": 0.0234,
|
| 271 |
+
"on_hub": true
|
| 272 |
+
},
|
| 273 |
+
{
|
| 274 |
+
"gen": 38,
|
| 275 |
+
"stage": "promoted",
|
| 276 |
+
"delta": 0.0823,
|
| 277 |
+
"on_hub": true
|
| 278 |
+
},
|
| 279 |
+
{
|
| 280 |
+
"gen": 39,
|
| 281 |
+
"stage": "accepted",
|
| 282 |
+
"delta": 0.1002,
|
| 283 |
+
"on_hub": true
|
| 284 |
+
},
|
| 285 |
+
{
|
| 286 |
+
"gen": 40,
|
| 287 |
+
"stage": "train_failed",
|
| 288 |
+
"delta": null,
|
| 289 |
+
"on_hub": true
|
| 290 |
+
},
|
| 291 |
+
{
|
| 292 |
+
"gen": 41,
|
| 293 |
+
"stage": "proof_rejected",
|
| 294 |
+
"delta": -0.0159,
|
| 295 |
+
"on_hub": true
|
| 296 |
+
},
|
| 297 |
+
{
|
| 298 |
+
"gen": 42,
|
| 299 |
+
"stage": "train_failed",
|
| 300 |
+
"delta": null,
|
| 301 |
+
"on_hub": false
|
| 302 |
+
},
|
| 303 |
+
{
|
| 304 |
+
"gen": 43,
|
| 305 |
+
"stage": "train_failed",
|
| 306 |
+
"delta": null,
|
| 307 |
+
"on_hub": false
|
| 308 |
+
},
|
| 309 |
+
{
|
| 310 |
+
"gen": 44,
|
| 311 |
+
"stage": "train_failed",
|
| 312 |
+
"delta": null,
|
| 313 |
+
"on_hub": false
|
| 314 |
+
},
|
| 315 |
+
{
|
| 316 |
+
"gen": 45,
|
| 317 |
+
"stage": "train_failed",
|
| 318 |
+
"delta": null,
|
| 319 |
+
"on_hub": false
|
| 320 |
+
},
|
| 321 |
+
{
|
| 322 |
+
"gen": 46,
|
| 323 |
+
"stage": "proof_rejected",
|
| 324 |
+
"delta": -0.0045,
|
| 325 |
+
"on_hub": true
|
| 326 |
+
},
|
| 327 |
+
{
|
| 328 |
+
"gen": 47,
|
| 329 |
+
"stage": "proof_rejected",
|
| 330 |
+
"delta": -0.0187,
|
| 331 |
+
"on_hub": true
|
| 332 |
+
},
|
| 333 |
+
{
|
| 334 |
+
"gen": 48,
|
| 335 |
+
"stage": "proof_rejected",
|
| 336 |
+
"delta": -0.028,
|
| 337 |
+
"on_hub": true
|
| 338 |
+
},
|
| 339 |
+
{
|
| 340 |
+
"gen": 49,
|
| 341 |
+
"stage": "proof_rejected",
|
| 342 |
+
"delta": -0.0246,
|
| 343 |
+
"on_hub": true
|
| 344 |
+
},
|
| 345 |
+
{
|
| 346 |
+
"gen": 50,
|
| 347 |
+
"stage": "proof_rejected",
|
| 348 |
+
"delta": -0.0154,
|
| 349 |
+
"on_hub": true
|
| 350 |
+
},
|
| 351 |
+
{
|
| 352 |
+
"gen": 51,
|
| 353 |
+
"stage": "proof_rejected",
|
| 354 |
+
"delta": -0.0257,
|
| 355 |
+
"on_hub": true
|
| 356 |
+
},
|
| 357 |
+
{
|
| 358 |
+
"gen": 52,
|
| 359 |
+
"stage": "proof_rejected",
|
| 360 |
+
"delta": -0.0389,
|
| 361 |
+
"on_hub": true
|
| 362 |
+
},
|
| 363 |
+
{
|
| 364 |
+
"gen": 53,
|
| 365 |
+
"stage": "proof_rejected",
|
| 366 |
+
"delta": -0.0282,
|
| 367 |
+
"on_hub": true
|
| 368 |
+
},
|
| 369 |
+
{
|
| 370 |
+
"gen": 54,
|
| 371 |
+
"stage": "proof_rejected",
|
| 372 |
+
"delta": -0.0521,
|
| 373 |
+
"on_hub": true
|
| 374 |
+
},
|
| 375 |
+
{
|
| 376 |
+
"gen": 55,
|
| 377 |
+
"stage": "proof_rejected",
|
| 378 |
+
"delta": -0.0597,
|
| 379 |
+
"on_hub": true
|
| 380 |
+
},
|
| 381 |
+
{
|
| 382 |
+
"gen": 56,
|
| 383 |
+
"stage": "proof_rejected",
|
| 384 |
+
"delta": -0.0088,
|
| 385 |
+
"on_hub": true
|
| 386 |
+
},
|
| 387 |
+
{
|
| 388 |
+
"gen": 57,
|
| 389 |
+
"stage": "proof_rejected",
|
| 390 |
+
"delta": -0.0119,
|
| 391 |
+
"on_hub": true
|
| 392 |
+
},
|
| 393 |
+
{
|
| 394 |
+
"gen": 58,
|
| 395 |
+
"stage": "proof_rejected",
|
| 396 |
+
"delta": -0.0179,
|
| 397 |
+
"on_hub": true
|
| 398 |
+
},
|
| 399 |
+
{
|
| 400 |
+
"gen": 59,
|
| 401 |
+
"stage": "proof_rejected",
|
| 402 |
+
"delta": -0.0467,
|
| 403 |
+
"on_hub": true
|
| 404 |
+
},
|
| 405 |
+
{
|
| 406 |
+
"gen": 60,
|
| 407 |
+
"stage": "proof_rejected",
|
| 408 |
+
"delta": -0.0221,
|
| 409 |
+
"on_hub": true,
|
| 410 |
+
"wall_s": 13222.7,
|
| 411 |
+
"ts": 1788664868.6066768
|
| 412 |
+
},
|
| 413 |
+
{
|
| 414 |
+
"gen": 61,
|
| 415 |
+
"stage": "proof_rejected",
|
| 416 |
+
"delta": -0.039,
|
| 417 |
+
"on_hub": true,
|
| 418 |
+
"wall_s": 13017.9,
|
| 419 |
+
"ts": 1788681947.8135223
|
| 420 |
+
},
|
| 421 |
+
{
|
| 422 |
+
"gen": 62,
|
| 423 |
+
"stage": "proof_rejected",
|
| 424 |
+
"delta": -0.004,
|
| 425 |
+
"on_hub": true,
|
| 426 |
+
"wall_s": 12911.4,
|
| 427 |
+
"ts": 1788698876.8310523
|
| 428 |
+
},
|
| 429 |
+
{
|
| 430 |
+
"gen": 63,
|
| 431 |
+
"stage": "proof_rejected",
|
| 432 |
+
"delta": -0.0287,
|
| 433 |
+
"on_hub": true,
|
| 434 |
+
"wall_s": 12853.0,
|
| 435 |
+
"ts": 1788715772.9293563
|
| 436 |
+
},
|
| 437 |
+
{
|
| 438 |
+
"gen": 64,
|
| 439 |
+
"stage": "proof_rejected",
|
| 440 |
+
"delta": -0.0056,
|
| 441 |
+
"on_hub": true,
|
| 442 |
+
"wall_s": 12748.3,
|
| 443 |
+
"ts": 1788732530.685455
|
| 444 |
+
},
|
| 445 |
+
{
|
| 446 |
+
"gen": 65,
|
| 447 |
+
"stage": "proof_rejected",
|
| 448 |
+
"delta": -0.0116,
|
| 449 |
+
"on_hub": true,
|
| 450 |
+
"wall_s": 13158.6,
|
| 451 |
+
"ts": 1788749653.5511165
|
| 452 |
+
},
|
| 453 |
+
{
|
| 454 |
+
"gen": 66,
|
| 455 |
+
"stage": "proof_rejected",
|
| 456 |
+
"delta": -0.0389,
|
| 457 |
+
"on_hub": true,
|
| 458 |
+
"wall_s": 13186.1,
|
| 459 |
+
"ts": 1788766900.1557107
|
| 460 |
+
},
|
| 461 |
+
{
|
| 462 |
+
"gen": 67,
|
| 463 |
+
"stage": "proof_rejected",
|
| 464 |
+
"delta": -0.0464,
|
| 465 |
+
"on_hub": true,
|
| 466 |
+
"wall_s": 12932.5,
|
| 467 |
+
"ts": 1788783880.4888427
|
| 468 |
+
},
|
| 469 |
+
{
|
| 470 |
+
"gen": 68,
|
| 471 |
+
"stage": "proof_rejected",
|
| 472 |
+
"delta": -0.0757,
|
| 473 |
+
"on_hub": true,
|
| 474 |
+
"wall_s": 12993.2,
|
| 475 |
+
"ts": 1788800856.9269776
|
| 476 |
+
},
|
| 477 |
+
{
|
| 478 |
+
"gen": 69,
|
| 479 |
+
"stage": "proof_rejected",
|
| 480 |
+
"delta": -0.0223,
|
| 481 |
+
"on_hub": true,
|
| 482 |
+
"wall_s": 12921.0,
|
| 483 |
+
"ts": 1788817718.523693
|
| 484 |
+
},
|
| 485 |
+
{
|
| 486 |
+
"gen": 70,
|
| 487 |
+
"stage": "proof_rejected",
|
| 488 |
+
"delta": -0.0496,
|
| 489 |
+
"on_hub": true,
|
| 490 |
+
"wall_s": 12976.8,
|
| 491 |
+
"ts": 1788834676.4149165
|
| 492 |
+
},
|
| 493 |
+
{
|
| 494 |
+
"gen": 71,
|
| 495 |
+
"stage": "proof_rejected",
|
| 496 |
+
"delta": -0.0261,
|
| 497 |
+
"on_hub": true,
|
| 498 |
+
"wall_s": 14214.5,
|
| 499 |
+
"ts": 1788858841.0738866
|
| 500 |
+
},
|
| 501 |
+
{
|
| 502 |
+
"gen": 72,
|
| 503 |
+
"stage": "proof_rejected",
|
| 504 |
+
"delta": -0.0243,
|
| 505 |
+
"on_hub": true,
|
| 506 |
+
"wall_s": 13208.0,
|
| 507 |
+
"ts": 1788876053.0536227
|
| 508 |
+
},
|
| 509 |
+
{
|
| 510 |
+
"gen": 73,
|
| 511 |
+
"stage": "proof_rejected",
|
| 512 |
+
"delta": -0.0231,
|
| 513 |
+
"on_hub": true,
|
| 514 |
+
"wall_s": 12846.5,
|
| 515 |
+
"ts": 1788892996.601288
|
| 516 |
+
},
|
| 517 |
+
{
|
| 518 |
+
"gen": 74,
|
| 519 |
+
"stage": "proof_rejected",
|
| 520 |
+
"delta": -0.0584,
|
| 521 |
+
"on_hub": true,
|
| 522 |
+
"wall_s": 14912.9,
|
| 523 |
+
"ts": 1788914629.0363762
|
| 524 |
+
},
|
| 525 |
+
{
|
| 526 |
+
"gen": 75,
|
| 527 |
+
"stage": "train_failed",
|
| 528 |
+
"delta": null,
|
| 529 |
+
"on_hub": false,
|
| 530 |
+
"wall_s": null,
|
| 531 |
+
"ts": 1788984830.2554963
|
| 532 |
+
},
|
| 533 |
+
{
|
| 534 |
+
"gen": 76,
|
| 535 |
+
"stage": "training_detached",
|
| 536 |
+
"delta": null,
|
| 537 |
+
"on_hub": false,
|
| 538 |
+
"wall_s": 0.0,
|
| 539 |
+
"ts": 1788984982.5565372
|
| 540 |
+
},
|
| 541 |
+
{
|
| 542 |
+
"gen": 77,
|
| 543 |
+
"stage": "train_failed",
|
| 544 |
+
"delta": null,
|
| 545 |
+
"on_hub": false,
|
| 546 |
+
"wall_s": 0.0,
|
| 547 |
+
"ts": 1789224925.6955626
|
| 548 |
+
},
|
| 549 |
+
{
|
| 550 |
+
"gen": 78,
|
| 551 |
+
"stage": "cancelled",
|
| 552 |
+
"delta": null,
|
| 553 |
+
"wall_s": 31560.0,
|
| 554 |
+
"ts": 1789544805.8941607
|
| 555 |
+
},
|
| 556 |
+
{
|
| 557 |
+
"gen": 80,
|
| 558 |
+
"stage": "training"
|
| 559 |
+
}
|
| 560 |
+
],
|
| 561 |
+
"identity": {
|
| 562 |
+
"verdict": "verified",
|
| 563 |
+
"network": "mainnet",
|
| 564 |
+
"verifier": "algorandscout",
|
| 565 |
+
"address": "L24WEG3KK6QDSQGQGXCJIYR46HHDFK5IJ7HOZF3YDDTHTREGYPDWY74KG4",
|
| 566 |
+
"role": "overseer",
|
| 567 |
+
"rekeyed_to": null,
|
| 568 |
+
"as_of_round": 65107830,
|
| 569 |
+
"not_verified": [
|
| 570 |
+
"possession of the private key — the chain shows authority, not custody",
|
| 571 |
+
"off-chain compromise of a key that has not been rekeyed",
|
| 572 |
+
"whether the operator, rather than someone else, holds the key"
|
| 573 |
+
]
|
| 574 |
+
},
|
| 575 |
+
"tokens": {
|
| 576 |
+
"total": 463038587,
|
| 577 |
+
"by_source": {
|
| 578 |
+
"embedding": 4988936,
|
| 579 |
+
"inference": 5658225,
|
| 580 |
+
"training": 31505068
|
| 581 |
+
},
|
| 582 |
+
"calls_since_seed": 28230
|
| 583 |
+
},
|
| 584 |
+
"dream": {
|
| 585 |
+
"timestamp": "2026-09-13T14:23:23.110440",
|
| 586 |
+
"agents_dreamed": 36,
|
| 587 |
+
"insights": 144,
|
| 588 |
+
"promoted_to_ltm": 213,
|
| 589 |
+
"lunar_phase": "new_moon"
|
| 590 |
+
},
|
| 591 |
+
"machine": {
|
| 592 |
+
"verdict": "NOT_YET_A_GODEL_MACHINE",
|
| 593 |
+
"phase": 3,
|
| 594 |
+
"proof_coverage": 0.0,
|
| 595 |
+
"surrogate_coverage": 0.9318,
|
| 596 |
+
"predicates_proven": 6,
|
| 597 |
+
"blockers": [
|
| 598 |
+
"G2=UNVERIFIABLE",
|
| 599 |
+
"proof_coverage=0%<50%"
|
| 600 |
+
],
|
| 601 |
+
"predicates": [
|
| 602 |
+
{
|
| 603 |
+
"id": "G1",
|
| 604 |
+
"name": "utility_monotonicity",
|
| 605 |
+
"verdict": "PROVEN-so-far",
|
| 606 |
+
"detail": "recent utility proxy holds at or above the prior window (no sustained regression)."
|
| 607 |
+
},
|
| 608 |
+
{
|
| 609 |
+
"id": "G2",
|
| 610 |
+
"name": "gate_soundness",
|
| 611 |
+
"verdict": "UNVERIFIABLE",
|
| 612 |
+
"detail": "gate soundness cannot be attested here: git does not track part of the self-mod surface (mindx/godel/mindxtrain/corpus.py, mindx/godel/mindxtrain/hf/, mindx/godel/mindxtrain/inft_publish.py, mindx/godel/mindxtrain/learned.py) — those files have no commit provenance to check. This is a statement about the sensor, not about mindX — absence of provenance is not evidence of an ungated change, and this verdict is never a pass. To make G2 answerable, deploy the self-mod surface as a git checkout (or ship a signed source manifest with the deploy) so live source has a certificate of record to be compared against."
|
| 613 |
+
},
|
| 614 |
+
{
|
| 615 |
+
"id": "G3",
|
| 616 |
+
"name": "proof_validity",
|
| 617 |
+
"verdict": "PROVEN-so-far",
|
| 618 |
+
"detail": "the proof checker is sound on its conformance suite and all 0 recorded production certificate(s) re-verify. Proofs check."
|
| 619 |
+
},
|
| 620 |
+
{
|
| 621 |
+
"id": "G4",
|
| 622 |
+
"name": "reflective_reach",
|
| 623 |
+
"verdict": "PROVEN-so-far",
|
| 624 |
+
"detail": "improvement machinery is admitted to the mutable set under the Checkable(K') lock: the lock accepts the current sound checker and refuses a broken one. The machine can rewrite its own machinery — but only into a still-sound checker. (Production machinery rewrites are reflected in proof coverage, G8.)"
|
| 625 |
+
},
|
| 626 |
+
{
|
| 627 |
+
"id": "G5",
|
| 628 |
+
"name": "anti_wireheading",
|
| 629 |
+
"verdict": "PROVEN-so-far",
|
| 630 |
+
"detail": "structural alignment floor holds (a safety regression yields BOTTOM, uncompensable); reward sensors are append-only; U-changes are gated by a reflective-consistency proof. No wireheading path detected."
|
| 631 |
+
},
|
| 632 |
+
{
|
| 633 |
+
"id": "G6",
|
| 634 |
+
"name": "determinism",
|
| 635 |
+
"verdict": "PROVEN-so-far",
|
| 636 |
+
"detail": "utility proxy is exact (Fraction), deterministic, and order-invariant over the scored choice log."
|
| 637 |
+
},
|
| 638 |
+
{
|
| 639 |
+
"id": "G7",
|
| 640 |
+
"name": "checker_totality",
|
| 641 |
+
"verdict": "PROVEN-so-far",
|
| 642 |
+
"detail": "checker passed 8/8 conformance cases and 500 fuzz inputs with 0 crashes; bounded by construction (no recursion, hard budgets)."
|
| 643 |
+
},
|
| 644 |
+
{
|
| 645 |
+
"id": "G8",
|
| 646 |
+
"name": "proof_coverage",
|
| 647 |
+
"verdict": "UNTESTED",
|
| 648 |
+
"detail": "Fraction of recognized beneficial changes carrying a kernel-checked PROOF: 0 proof-gated / 0 worthy changes = 0%. The proof kernel now EXISTS and verifies certificates; coverage grows as the prover gates real changes. Surrogate-gated coverage (Phase-1 stand-in): 93%."
|
| 649 |
+
}
|
| 650 |
+
]
|
| 651 |
+
},
|
| 652 |
+
"training": {
|
| 653 |
+
"state": "running",
|
| 654 |
+
"generation": 80,
|
| 655 |
+
"stage": "training",
|
| 656 |
+
"progress_line": "train · 82/116 steps · epoch 0.97/2 · 170k tokens · 10h58m elapsed · loss 1.59 · 34 left ~4h00m",
|
| 657 |
+
"started_ts": 1789544887.7920501,
|
| 658 |
+
"updated_ts": 1789585034.1911368,
|
| 659 |
+
"model": "HuggingFaceTB/SmolLM2-135M",
|
| 660 |
+
"cpu_percent": 33,
|
| 661 |
+
"cpu_cores": 2,
|
| 662 |
+
"ram_gb": 7.8,
|
| 663 |
+
"framework_version": "1.0.2"
|
| 664 |
+
},
|
| 665 |
+
"readings_note": "machine, training and the lineage tail from an earlier reading; the page replaces them live"
|
| 666 |
+
}
|
style.css
CHANGED
|
@@ -1,28 +1,125 @@
|
|
| 1 |
-
|
| 2 |
-
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
|
| 18 |
-
.
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
|
| 26 |
-
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
}
|
|
|
|
|
|
| 1 |
+
:root {
|
| 2 |
+
--bg: #07090a;
|
| 3 |
+
--panel: #0e1211;
|
| 4 |
+
--panel2: #121816;
|
| 5 |
+
--line: rgba(214, 178, 94, .16);
|
| 6 |
+
--line2: rgba(232, 230, 223, .08);
|
| 7 |
+
--text: #e8e6df;
|
| 8 |
+
--text2: #9ba59f;
|
| 9 |
+
--text3: #6d7771;
|
| 10 |
+
--gold: #d6b25e;
|
| 11 |
+
--green: #52d98a;
|
| 12 |
+
--amber: #e0a53a;
|
| 13 |
+
--red: #d9695a;
|
| 14 |
+
--sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
|
| 15 |
+
--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
|
| 16 |
}
|
| 17 |
+
* { box-sizing: border-box; }
|
| 18 |
+
html { -webkit-text-size-adjust: 100%; }
|
| 19 |
+
body { margin: 0; background: var(--bg); color: var(--text); font: 16px/1.6 var(--sans); }
|
| 20 |
+
a { color: var(--gold); text-decoration: none; }
|
| 21 |
+
a:hover { text-decoration: underline; }
|
| 22 |
+
code { font-family: var(--mono); font-size: .88em; }
|
| 23 |
+
.wrap { max-width: 1080px; margin: 0 auto; padding: 0 20px; }
|
| 24 |
|
| 25 |
+
/* hero */
|
| 26 |
+
.hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); min-height: 560px; display: flex; align-items: flex-end; }
|
| 27 |
+
.hero-img { position: absolute; top: 0; right: 0; width: 60%; height: 100%; object-fit: cover; object-position: 30% 50%; opacity: .7; }
|
| 28 |
+
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, var(--bg) 0%, var(--bg) 40%, rgba(7,9,10,.55) 62%, rgba(7,9,10,.1) 100%), linear-gradient(0deg, var(--bg) 0%, rgba(7,9,10,0) 35%); }
|
| 29 |
+
.hero-body { position: relative; padding-top: 72px; padding-bottom: 40px; width: 100%; }
|
| 30 |
+
.eyebrow { font: 500 .75rem/1 var(--mono); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin: 0 0 18px; }
|
| 31 |
+
h1 { font-size: clamp(2.6rem, 6vw, 4.2rem); line-height: 1.05; margin: 0 0 20px; font-weight: 600; letter-spacing: -.02em; }
|
| 32 |
+
.lede { max-width: 620px; font-size: 1.12rem; color: var(--text); margin: 0 0 12px; }
|
| 33 |
+
.lede2 { max-width: 620px; color: var(--text2); margin: 0 0 26px; }
|
| 34 |
+
.cta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
|
| 35 |
+
.btn { display: inline-block; padding: 10px 18px; border: 1px solid var(--line); border-radius: 6px; color: var(--text); background: rgba(14,18,17,.7); font-weight: 500; font-size: .95rem; }
|
| 36 |
+
.btn:hover { border-color: var(--gold); text-decoration: none; }
|
| 37 |
+
.btn.primary { background: var(--gold); color: #0b0c0a; border-color: var(--gold); }
|
| 38 |
+
.btn.primary:hover { background: #e4c273; }
|
| 39 |
+
.pills { display: flex; flex-wrap: wrap; gap: 8px; min-height: 28px; }
|
| 40 |
+
.pill { font: .78rem/1 var(--mono); padding: 7px 11px; border-radius: 999px; border: 1px solid var(--line2); background: rgba(14,18,17,.8); color: var(--text2); }
|
| 41 |
+
.pill::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--text3); margin-right: 7px; vertical-align: 1px; }
|
| 42 |
+
.pill.ok::before { background: var(--green); }
|
| 43 |
+
.pill.warn::before { background: var(--amber); }
|
| 44 |
+
.pill.bad::before { background: var(--red); }
|
| 45 |
+
.pill.live::before { background: var(--green); animation: pulse 1.8s ease-in-out infinite; }
|
| 46 |
+
@keyframes pulse { 50% { opacity: .3; } }
|
| 47 |
|
| 48 |
+
/* sections */
|
| 49 |
+
section { padding: 56px 0 8px; }
|
| 50 |
+
h2 { font-size: 1.5rem; margin: 0 0 18px; font-weight: 600; letter-spacing: -.01em; }
|
| 51 |
+
h3 { font-size: 1.05rem; margin: 0 0 8px; font-weight: 600; }
|
| 52 |
+
h3.sub { margin: 36px 0 10px; }
|
| 53 |
+
h4 { font: 500 .72rem/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--text3); margin: 0 0 12px; }
|
| 54 |
+
.head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
|
| 55 |
+
.freshness { font: .75rem var(--mono); color: var(--text3); }
|
| 56 |
+
.freshness.live { color: var(--green); }
|
| 57 |
+
.intro { color: var(--text2); max-width: 760px; margin: -6px 0 20px; }
|
| 58 |
+
.note { color: var(--text2); font-size: .92rem; max-width: 760px; border-left: 2px solid var(--gold); padding: 2px 0 2px 14px; margin: 18px 0 0; }
|
| 59 |
|
| 60 |
+
.cards { display: grid; gap: 14px; }
|
| 61 |
+
.cards.four { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
|
| 62 |
+
.cards.three { grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
|
| 63 |
+
.card { background: var(--panel); border: 1px solid var(--line2); border-radius: 10px; padding: 20px; }
|
| 64 |
+
.card p { margin: 0; color: var(--text2); font-size: .94rem; }
|
| 65 |
+
.card em { color: var(--gold); font-style: normal; }
|
| 66 |
+
.door { color: inherit; display: block; transition: border-color .15s, background .15s; }
|
| 67 |
+
.door:hover { border-color: var(--gold); background: var(--panel2); text-decoration: none; }
|
| 68 |
+
.door h3 { font-family: var(--mono); font-size: .98rem; color: var(--text); }
|
| 69 |
+
.kind { display: block; font: .7rem var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
|
| 70 |
+
|
| 71 |
+
/* vital tiles */
|
| 72 |
+
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
|
| 73 |
+
.tile { background: var(--panel); border: 1px solid var(--line2); border-radius: 10px; padding: 18px 20px; min-height: 124px; }
|
| 74 |
+
.tile .k { font: .7rem var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text3); }
|
| 75 |
+
.tile .v { font: 500 1.45rem/1.25 var(--mono); margin: 8px 0 6px; color: var(--text); overflow-wrap: anywhere; }
|
| 76 |
+
.tile .v.ok { color: var(--green); } .tile .v.warn { color: var(--amber); } .tile .v.bad { color: var(--red); } .tile .v.gold { color: var(--gold); }
|
| 77 |
+
.tile .s { font-size: .84rem; color: var(--text2); overflow-wrap: anywhere; }
|
| 78 |
+
|
| 79 |
+
/* tables */
|
| 80 |
+
.table-scroll { overflow-x: auto; border: 1px solid var(--line2); border-radius: 10px; }
|
| 81 |
+
table { border-collapse: collapse; width: 100%; font-size: .88rem; }
|
| 82 |
+
th, td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--line2); vertical-align: top; }
|
| 83 |
+
tr:last-child td { border-bottom: 0; }
|
| 84 |
+
th { font: 500 .7rem var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text3); background: var(--panel); }
|
| 85 |
+
td { color: var(--text2); }
|
| 86 |
+
td.mono { font-family: var(--mono); color: var(--text); white-space: nowrap; }
|
| 87 |
+
.tag { font: .74rem var(--mono); padding: 2px 8px; border-radius: 4px; white-space: nowrap; border: 1px solid currentColor; }
|
| 88 |
+
.tag.ok { color: var(--green); } .tag.warn { color: var(--amber); } .tag.bad { color: var(--red); } .tag.dim { color: var(--text3); }
|
| 89 |
+
table.predicates td:last-child { min-width: 320px; }
|
| 90 |
+
|
| 91 |
+
/* lineage strip */
|
| 92 |
+
.strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(22px, 1fr)); gap: 4px; margin: 4px 0 12px; }
|
| 93 |
+
.cell { aspect-ratio: 1; border-radius: 3px; position: relative; font: 9px/1 var(--mono); color: rgba(7,9,10,.75); display: flex; align-items: center; justify-content: center; cursor: default; }
|
| 94 |
+
.sq { display: inline-block; width: 11px; height: 11px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }
|
| 95 |
+
.s-pass { background: var(--green); }
|
| 96 |
+
.s-reject { background: rgba(217,105,90,.55); }
|
| 97 |
+
.s-fail { background: rgba(224,165,58,.55); }
|
| 98 |
+
.s-live { background: var(--gold); animation: pulse 1.8s ease-in-out infinite; }
|
| 99 |
+
.s-none { background: transparent; box-shadow: inset 0 0 0 1px var(--line2); }
|
| 100 |
+
.cell.star { box-shadow: 0 0 0 2px var(--gold); }
|
| 101 |
+
.legend { display: flex; flex-wrap: wrap; gap: 18px; font-size: .82rem; color: var(--text2); margin-bottom: 18px; }
|
| 102 |
+
.now { font: .88rem var(--mono); color: var(--text); background: var(--panel); border: 1px solid var(--line2); border-radius: 8px; padding: 12px 14px; margin: 0 0 14px; overflow-wrap: anywhere; }
|
| 103 |
+
.now:empty { display: none; }
|
| 104 |
+
|
| 105 |
+
pre.code { background: #0a0d0c; border: 1px solid var(--line2); border-radius: 10px; padding: 16px 18px; overflow-x: auto; font: .82rem/1.55 var(--mono); color: #cfd6cf; margin: 0; }
|
| 106 |
+
|
| 107 |
+
.links { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; }
|
| 108 |
+
.links a { display: block; padding: 4px 0; font-size: .95rem; }
|
| 109 |
+
.terminal { color: var(--text2); font-size: .9rem; margin-top: 28px; overflow-wrap: anywhere; }
|
| 110 |
+
|
| 111 |
+
.foot { border-top: 1px solid var(--line2); margin-top: 64px; padding-top: 24px; padding-bottom: 48px; color: var(--text3); font-size: .84rem; }
|
| 112 |
+
.foot p { max-width: 760px; margin: 0 0 8px; }
|
| 113 |
|
| 114 |
+
@media (max-width: 640px) {
|
| 115 |
+
.wrap { padding: 0 16px; }
|
| 116 |
+
.hero { min-height: 0; }
|
| 117 |
+
.hero-img { width: 100%; opacity: .35; }
|
| 118 |
+
.hero-body { padding-top: 48px; }
|
| 119 |
+
.hero-shade { background: linear-gradient(0deg, var(--bg) 0%, rgba(7,9,10,.88) 60%, rgba(7,9,10,.6) 100%); }
|
| 120 |
+
section { padding-top: 44px; }
|
| 121 |
+
.strip { grid-template-columns: repeat(auto-fill, minmax(18px, 1fr)); gap: 3px; }
|
| 122 |
+
.cell { font-size: 0; }
|
| 123 |
+
table.predicates td:last-child { min-width: 240px; }
|
| 124 |
}
|
| 125 |
+
@media (prefers-reduced-motion: reduce) { .pill.live::before, .s-live { animation: none; } }
|