SNAPKITTYWEST's picture
push from SNAPKITTYWEST/apple-ii-universal-machine
e870690 verified
Raw History Blame Contribute Delete
2.67 kB
<div class="page">
<div class="nav">
<span style="color:#0f0;font-size:12px;letter-spacing:2px">APPLE II UNIVERSAL MACHINE</span>
<div>
<a href="?page=debate" style="color:#555;text-decoration:none;font-size:11px;margin-left:12px">debate</a>
<a href="?" style="color:#0f0;text-decoration:none;font-size:11px;margin-left:12px">holy</a>
</div>
</div>
<div style="padding:40px 20px;text-align:center">
<pre class="pre" id="holy-ascii"></pre>
<h1 style="color:#0f0;font-size:16px;margin:20px 0 8px">HOLY PAGE / RESCUE KERNEL</h1>
<p style="color:#888;font-size:12px;margin-bottom:8px">This is the mandatory fallback. If anything breaks, you end up here.</p>
<p style="color:#555;font-size:11px;margin-bottom:24px">WOZ VAULT: LOCAL-FIRST · No data leaves this browser.</p>
<div>
<button class="btn" onclick="AppleII.navigate('debate')">Boot Debate Agent</button>
<button class="btn" id="audit-btn">View Audit Log</button>
<button class="btn danger" onclick="if(confirm('Clear all Woz Vault data?'))AppleII.clearVault()">Clear Woz Vault</button>
</div>
<div style="margin-top:32px">
<pre class="pre" id="vault-status"></pre>
</div>
<div id="audit-panel" style="display:none;margin-top:24px;text-align:left">
<h2 style="color:#0f0;font-size:14px;margin-bottom:8px">AUDIT LOG</h2>
<div class="log" id="audit-log"></div>
</div>
</div>
</div>
<script>
document.getElementById('holy-ascii').textContent = AsciiRegistry.renderAscii('verified');
var events = WozVault.readAuditLog();
document.getElementById('vault-status').textContent =
'WOZ VAULT: ' + events.length + ' events logged\n' +
AsciiRegistry.trustDensityArt(events.length > 0 ? 1 : 0);
document.getElementById('audit-btn').addEventListener('click', function() {
var panel = document.getElementById('audit-panel');
var logEl = document.getElementById('audit-log');
if (panel.style.display === 'none') {
panel.style.display = 'block';
logEl.innerHTML = '';
var evts = WozVault.readAuditLog();
if (evts.length === 0) {
logEl.innerHTML = '<div class="entry info">No audit events yet.</div>';
} else {
for (var i = 0; i < evts.length; i++) {
var e = evts[i];
var div = document.createElement('div');
div.className = 'entry';
div.textContent = '[' + (e.timestamp || '??') + '] ' + e.type + (e.agent ? ' · ' + e.agent : '');
if (e.seal) div.className += ' seal';
logEl.appendChild(div);
}
}
} else {
panel.style.display = 'none';
}
});
</script>