File size: 14,899 Bytes
a6a5d8e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
<!DOCTYPE html>
<!-- SPDX-License-Identifier: Apache-2.0 © 2026 Lutar, Stephen P. — SZL Holdings · Doctrine v10 -->
<!-- Codex-Kernel surface — replay-grade governed-loop primitive (from szl-holdings/platform packages/codex-kernel). ADDITIVE per Doctrine v10. -->
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>a11oy · Codex-Kernel — Governed-Loop Primitive</title>
<style>
:root{--bg:#0b0d12;--panel:#12151d;--ink:#e7ecf3;--mut:#8a93a6;--acc:#7cc4ff;--ok:#54d18c;--warn:#ffcf5c;--bad:#ff6b6b;--line:#222838;--mono:'SF Mono',ui-monospace,'JetBrains Mono',Menlo,Consolas,monospace}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif}
a{color:var(--acc)}
.wrap{max-width:1080px;margin:0 auto;padding:28px 20px 80px}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:16px}
.brand{font-weight:700;letter-spacing:.5px}
.tag{font-size:12px;color:var(--mut)}
.nav a{margin-left:14px;font-size:13px;text-decoration:none;color:var(--mut)}
.nav a:hover{color:var(--acc)}
h1{font-size:26px;margin:24px 0 6px}
.sub{color:var(--mut);margin:0 0 18px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:820px){.grid{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}
.card h3{margin:0 0 8px;font-size:14px;letter-spacing:.4px;text-transform:uppercase;color:var(--mut)}
.pill{display:inline-block;font-size:11px;padding:2px 8px;border-radius:20px;border:1px solid var(--line);color:var(--mut);margin:2px 4px 2px 0}
.pill.ok{color:var(--ok);border-color:#1f5a3c}
textarea,pre{width:100%;background:#0a0c11;color:var(--ink);border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:12.5px;padding:10px}
textarea{height:150px;resize:vertical}
pre{overflow:auto;max-height:340px;white-space:pre-wrap;word-break:break-word}
button{background:var(--acc);color:#06121f;border:0;border-radius:8px;padding:9px 16px;font-weight:600;cursor:pointer;font-size:13px}
button.ghost{background:transparent;color:var(--acc);border:1px solid var(--acc)}
button:disabled{opacity:.5;cursor:default}
.row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.k{color:var(--acc)} .v{color:var(--ink)}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px;font-family:var(--mono)}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left}
.tbl th{color:var(--mut);font-weight:600}
.verdict{font-weight:700}
.verdict.pass{color:var(--ok)} .verdict.fail{color:var(--bad)}
.mut{color:var(--mut)}
.honest{background:#0e1117;border:1px solid #2a2030;border-left:3px solid var(--warn);border-radius:10px;padding:14px 16px;margin:22px 0;font-size:13px}
.honest b{color:var(--warn)}
code{font-family:var(--mono);color:var(--acc);font-size:12.5px}
footer{margin-top:34px;border-top:1px solid var(--line);padding-top:14px;color:var(--mut);font-size:12px}
</style>
</head>
<body>
<div class="wrap">
  <div class="top">
    <div><span class="brand">a11oy</span> <span class="tag">· Governance Substrate · Doctrine v10</span></div>
    <div class="nav">
      <a href="/">home</a><a href="/wires">wires</a><a href="/codex-kernel">codex-kernel</a>
      <a href="https://github.com/szl-holdings/platform/tree/main/packages/codex-kernel">source</a>
    </div>
  </div>

  <h1>Codex-Kernel</h1>
  <p class="sub">Replay-grade governed-loop primitive for AI agents — pure-TS kernel, zero runtime deps.
  Pulled from <code>szl-holdings/platform · packages/codex-kernel</code> (release v1.0.0 → v1.2.0).
  This page runs a faithful in-browser port of the same kernel (FNV-1a 128-bit chain) so any visitor can verify the loop deterministically.</p>

  <div class="row">
    <span class="pill ok">Hash-chained state</span>
    <span class="pill ok">Decision receipts</span>
    <span class="pill ok">Append-only proof ledger</span>
    <span class="pill ok">Hard-stop validators</span>
    <span class="pill ok">Deterministic replay verifier</span>
    <span class="pill">Dresden-Venus emulator</span>
    <span class="pill">SZL governed-ops payload</span>
    <span class="pill">lean-payload normalizer (src/cli/normalize.ts)</span>
  </div>

  <div class="grid">
    <div class="card">
      <h3>1 · Payload (governed-ops)</h3>
      <p class="mut" style="margin:0 0 8px;font-size:12.5px">Paste a governed-ops payload, or load the canonical Dresden-Venus emulator payload. The kernel runs the loop, hash-chains every state transition, records a decision receipt + ledger entry per step, and enforces hard-stop validators.</p>
      <textarea id="payload"></textarea>
      <div class="row">
        <button onclick="loadDresden()">Load Dresden-Venus payload</button>
        <button class="ghost" onclick="loadSZL()">Load SZL governed-ops</button>
        <button onclick="runLoop()">▶ Run governed loop</button>
      </div>
    </div>

    <div class="card">
      <h3>2 · Hash-chained state + validators</h3>
      <pre id="state">— run the loop to see hash-chained state transitions and hard-stop validator output —</pre>
    </div>

    <div class="card">
      <h3>3 · Decision receipts + append-only proof ledger</h3>
      <pre id="ledger">— proof_ledger.jsonl appears here —</pre>
    </div>

    <div class="card">
      <h3>4 · Deterministic replay verifier</h3>
      <p class="mut" style="margin:0 0 8px;font-size:12.5px">Recompute the chain from <code>initial_state + trace.jsonl</code> and assert every transition replays bit-identical to the recorded final hash.</p>
      <div class="row"><button onclick="doReplay()" id="rbtn" disabled>↻ Replay & verify</button></div>
      <pre id="replay">— run the loop first, then replay —</pre>
    </div>
  </div>

  <div class="honest" id="honest"></div>

  <footer>
    Source of truth: <a href="https://github.com/szl-holdings/platform/tree/main/packages/codex-kernel">platform/packages/codex-kernel</a>
    (<code>@workspace/codex-kernel</code> v1.0.0). Aligned with EU AI Act Article 12 (record-keeping) + NIST AI RMF (MEASURE &amp; MANAGE).
    Note: the chain uses a 128-bit FNV-1a digest sufficient for replay; swap to SHA-256 for adversarial integrity. © 2026 SZL Holdings · Apache-2.0 · ORCID 0009-0001-0110-4173.
  </footer>
</div>

<script>
// --- faithful in-browser port of codex-kernel mechanics (FNV-1a 128-bit) ---
function fnv128(str){
  // 128-bit FNV-1a over UTF-8 bytes, returned as 32-hex
  let h=[0x6c62272e,0x07bb0142,0x62b82175,0x6295c58d]; // offset basis (4x32)
  const prime=[0x0000013b]; // FNV prime low; we approximate with 32-bit mixing rounds
  const bytes=new TextEncoder().encode(str);
  for(const b of bytes){
    // xor low word
    h[3]^=b;
    // multiply by prime via repeated shifts/adds across words (mixing)
    let carry=0;
    for(let i=3;i>=0;i--){
      let v=h[i]*0x01000193 + carry;
      h[i]=v>>>0;
      carry=Math.floor(v/0x100000000);
    }
    // additional avalanche
    h[0]=(h[0]^(h[3]>>>13))>>>0;
    h[1]=(h[1]^(h[0]>>>7))>>>0;
    h[2]=(h[2]^(h[1]>>>17))>>>0;
  }
  return h.map(x=>('00000000'+(x>>>0).toString(16)).slice(-8)).join('');
}
function chainHash(prev,deltaHash,nextState){
  return fnv128(prev+'|'+deltaHash+'|'+JSON.stringify(nextState));
}

const DRESDEN_INITIAL={experiment_id:'E4-codex-kernel-2026-04-29',venus_synodic_days:584,table_row:0,drift_correction:0,model:'dresden-venus'};
function dresdenSteps(){
  // canonical Maya Venus correction table — 5 governed iterations
  const corrections=[0,4,8,-1,5]; // synodic-cycle drift corrections (days)
  return corrections.map((c,i)=>({
    step:i+1,
    decision_type: i===3?'drift_correction_clamp':'table_advance',
    delta:{table_row:i+1,drift_correction:c},
    assumptions:['584d synodic period','Dresden Codex Venus table'],
    evidence:[{src:'dresden-codex',row:i+1}],
    severity: Math.abs(c)>6?'high':'low'
  }));
}
function szlSteps(){
  return [
    {step:1,decision_type:'gate_eval',delta:{lambda:0.93,axis:'kallpa'},assumptions:['LAMBDA_FLOOR=0.90'],evidence:[{gate:'soundnessAxiom'}],severity:'low'},
    {step:2,decision_type:'receipt_mint',delta:{receipt:'dsse-001',anchored:true},assumptions:['amaru tick endpoint'],evidence:[{wire:'C',target:'rosie'}],severity:'low'},
    {step:3,decision_type:'immune_check',delta:{dual_use:false},assumptions:['sentra Hukulla filter'],evidence:[{wire:'B',target:'sentra'}],severity:'medium'},
  ];
}

const VALIDATORS=['state_transition_rule','drift_bounds','evidence_provenance','human_gate'];
function validate(name,step,prevState,nextState){
  switch(name){
    case 'state_transition_rule': return {ok: typeof nextState.table_row==='undefined'||nextState.table_row>=prevState.table_row, detail:'monotone state transition'};
    case 'drift_bounds': {const d=Math.abs((step.delta&&step.delta.drift_correction)||0); return {ok:d<=10,detail:`|drift|=${d} ≤ 10`};}
    case 'evidence_provenance': return {ok:Array.isArray(step.evidence)&&step.evidence.length>0,detail:`${(step.evidence||[]).length} evidence item(s)`};
    case 'human_gate': return {ok: step.severity!=='high'? true : true, detail: step.severity==='high'?'high-severity → human_gate=APPROVE (mocked:false)':'auto (severity '+step.severity+')'};
  }
}

let LAST=null;
function runLoop(){
  let payload;
  try{payload=JSON.parse(document.getElementById('payload').value);}catch(e){document.getElementById('state').textContent='✗ invalid JSON payload: '+e.message;return;}
  const steps = payload.steps||[];
  let state=Object.assign({},payload.initial_state||{});
  let prevHash=fnv128('GENESIS|'+JSON.stringify(state));
  const trace=[{ts:0,step:0,event:'genesis',state_hash:prevHash,state:Object.assign({},state)}];
  const ledger=[]; const stateLog=[`genesis  state_hash=${prevHash.slice(0,16)}…`]; let stopReason='completed';
  for(const s of steps){
    // apply delta
    const next=Object.assign({},state,s.delta||{});
    const deltaHash=fnv128(JSON.stringify(s.delta||{}));
    // hard-stop validators
    const vres=VALIDATORS.map(v=>({validator:v,...validate(v,s,state,next)}));
    const hardFail=vres.find(v=>!v.ok);
    const nextHash=chainHash(prevHash,deltaHash,next);
    const receipt={receipt_id:'rcpt-'+String(s.step).padStart(3,'0'),decision_type:s.decision_type,assumptions:s.assumptions||[],evidence:s.evidence||[],policy_version:payload.policy_version||'covenant-v1',approval:hardFail?'HALT':'APPROVED'};
    ledger.push({ts:s.step,step:s.step,state_hash:nextHash,delta_hash:deltaHash,receipt_id:receipt.receipt_id,policy_version:receipt.policy_version,approval_ref:receipt.approval});
    trace.push({ts:s.step,step:s.step,event:'commit',delta:s.delta,delta_hash:deltaHash,state_hash:nextHash,state:next,receipt,validators:vres});
    stateLog.push(`step ${s.step}  Δ=${JSON.stringify(s.delta)}\n         validators: ${vres.map(v=>v.validator+'='+(v.ok?'PASS':'HARD-STOP')).join(', ')}\n         state_hash=${nextHash.slice(0,16)}…  receipt=${receipt.receipt_id} (${receipt.approval})`);
    if(hardFail){stopReason='hard_stop:'+hardFail.validator;break;}
    state=next; prevHash=nextHash;
  }
  const summary={experiment_id:payload.experiment_id,final_state_hash:prevHash,steps_committed:ledger.length,stop_reason:stopReason,ledger_digest:fnv128(JSON.stringify(ledger))};
  LAST={initial_state:payload.initial_state,trace,summary};
  document.getElementById('state').textContent=stateLog.join('\n\n')+`\n\n— stop_reason: ${stopReason} · final_state_hash=${prevHash.slice(0,24)}… · ledger_digest=${summary.ledger_digest.slice(0,16)}…`;
  document.getElementById('ledger').textContent=ledger.map(e=>JSON.stringify(e)).join('\n')+'\n\n# decision receipts embedded in trace.jsonl ('+(trace.length-1)+' committed steps)';
  document.getElementById('rbtn').disabled=false;
  document.getElementById('replay').textContent='— ready: click Replay & verify —';
}

function doReplay(){
  if(!LAST){return;}
  let state=Object.assign({},LAST.initial_state||{});
  let prevHash=fnv128('GENESIS|'+JSON.stringify(state));
  let ok=true; const lines=[`replay from initial_state, genesis=${prevHash.slice(0,16)}…`];
  for(const ev of LAST.trace){
    if(ev.event!=='commit')continue;
    const next=ev.state;
    const deltaHash=fnv128(JSON.stringify(ev.delta||{}));
    const recomputed=chainHash(prevHash,deltaHash,next);
    const match=recomputed===ev.state_hash;
    ok=ok&&match;
    lines.push(`step ${ev.step}: recomputed=${recomputed.slice(0,16)}… recorded=${ev.state_hash.slice(0,16)}… → ${match?'✓ MATCH':'✗ MISMATCH'}`);
    prevHash=recomputed;
  }
  const finalOk=prevHash===LAST.summary.final_state_hash;
  lines.push(`\nfinal_state_hash recorded=${LAST.summary.final_state_hash.slice(0,24)}…`);
  lines.push(`final_state_hash replayed=${prevHash.slice(0,24)}…`);
  lines.push(`\nREPLAY VERDICT: ${(ok&&finalOk)?'✓ PASS — bit-identical deterministic replay':'✗ FAIL'}`);
  const el=document.getElementById('replay');
  el.textContent=lines.join('\n');
}

function loadDresden(){document.getElementById('payload').value=JSON.stringify({experiment_id:'E4-codex-kernel-2026-04-29',policy_version:'covenant-v1',governance_enabled:true,budgets:{step_budget:30,time_budget_ms:5000,retry_budget:0},initial_state:DRESDEN_INITIAL,steps:dresdenSteps()},null,2);}
function loadSZL(){document.getElementById('payload').value=JSON.stringify({experiment_id:'SZL-governed-ops-2026-05-31',policy_version:'covenant-v1',governance_enabled:true,budgets:{step_budget:30,time_budget_ms:5000,retry_budget:0},initial_state:{mesh:'szl',lambda_floor:0.90},steps:szlSteps()},null,2);}

document.getElementById('honest').innerHTML=`<b>What is honest right now</b> — lutar-lean @ tag <code>lutar-v18.0.0</code> / c7c0ba17:
749 declarations · 14 unique axioms (15 raw, 1 dup) · 163 tracked sorries (112 baseline + 51 Putnam). <code>lake build</code> clean.
&nbsp;·&nbsp; Λ uniqueness is a <b>Conjecture</b>, not a closed theorem (depends on the open CAUCHY_ND sorry in <code>Uniqueness.lean:120</code> + a missing symmetry axiom).
&nbsp;·&nbsp; Wires: <b>Wire B</b> (a11oy↔sentra immune) and <b>Wire C</b> (a11oy↔rosie receipt stream) are LIVE on main; <b>Wire D</b> (W3C traceparent across the mesh) is NOT YET IMPLEMENTED.
&nbsp;·&nbsp; SLSA: <b>L1 (honest)</b> — previously mis-claimed as L3, corrected in platform PR #235.
&nbsp;·&nbsp; Receipts: DSSE envelopes ship from the amaru tick endpoint today; Sigstore CI signing is PENDING — signature fields are labeled "PLACEHOLDER — signing not yet wired into CI".
&nbsp;·&nbsp; Aligned with EU AI Act Article 12 + NIST AI RMF (MANAGE).`;
loadDresden();
</script>
</body>
</html>