leif3 -- predict * compare * allocate

prompt -- give it a start, it continues from what it expects

--
--
statusloading...
--
elapsed--
pass--

corpus

tokens read--
rate--
vocabulary--

stream corpus -- load binary corpus.bin into WASM

stream statusidle
streamed--

layer 1 -- structure (rewarded by surprise)

contexts--
nodes per token--
minted / refused--
point-estimate accuracy--

layer 2 -- expectation (rewarded by accuracy)

best guess right--
covered by top-K--
vs chance--
L2 predicts from whatever L1 has built. L1 only allocates where L2 still fails -- allocating on a single guess being wrong allocates on noise, because one guess is wrong ~90% of the time. Less structure, better prediction, is the loop working.

layer 3 -- ideas -- bridges rewarded by outcome

new sentences (unique+fluent)--
repeats of known sentences--
completed sentences rehearsed--
bridges learned / paid--
auto-dreams (self-prompted)--
ideas found / lost--
When the walker is stuck it seeks a bridge -- a remote context that can still close a sentence. A bridge is rewarded only after the crossing pays: +2 if it helped build a NEW fluent sentence, +0.5 for a novel idea that was weak, and minus for crossings that led nowhere or copied a known sentence. Repeating a known sentence does not count -- new ones are rehearsed back through the engine (reinforce, never mint).

senses induced -- nothing told it these were meanings

--

surfaced -- thoughts it had while reading, unprompted

--
Prompting works because a seed lands somewhere with thin expectations, which forces a crossing to another reading of the same word. So it does that to itself: every second it takes whatever it is currently reading as a seed, follows it, and keeps the result only if it crossed a bridge and did not stall. An idea is a thought that had to change its mind to finish.

recent splits -- where surprise happened

--
renderer--
--

tuning -- live allocation constraints

vigilance
patience
max depth
--