File size: 6,344 Bytes
e870690
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Debate Arena · Apple II Universal Machine</title>
<link rel="stylesheet" href="./styles.css">
<style>

body { display: flex; flex-direction: column; }

#term-header { border-bottom: 1px solid #1a3a1a; padding: 8px 16px; font-size: 10px; color: #0a0; letter-spacing: 1px; display: flex; justify-content: space-between; }

#terminal { flex: 1; overflow-y: auto; padding: 12px 16px; font-size: 12px; line-height: 1.5; }

.line { white-space: pre-wrap; }

.l-green { color: #0f0; } .l-cyan { color: #0ff; } .l-yellow { color: #fa0; }

.l-red { color: #f44; } .l-dim { color: #333; } .l-white { color: #e0e0e0; }

#input-row { display: flex; border-top: 1px solid #1a3a1a; padding: 8px 16px; }

.prompt { color: #0f0; font-size: 12px; }

#cmd-input { flex: 1; background: transparent; border: none; color: #0f0; font-family: 'Courier New', monospace; font-size: 12px; outline: none; }

#honest-banner { border-top: 1px solid #1a3a1a; padding: 6px 16px; font-size: 9px; color: #555; text-align: center; }

#runtime-bar { display: flex; gap: 4px; padding: 6px 16px; border-top: 1px solid #1a3a1a; align-items: center; }

.rl { font-size: 9px; color: #555; margin-right: 8px; }

.rt-btn { background: #111; border: 1px solid #333; color: #555; padding: 2px 8px; font-family: 'Courier New', monospace; font-size: 9px; cursor: pointer; }

.rt-btn.active { border-color: #0f0; color: #0f0; }

.rt-btn.disabled { opacity: 0.4; cursor: default; }

</style>
</head>
<body>
<div id="term-header">
  <span>DEBATE ARENA — ENKI + SENTINEL · <a href="./index.html" style="color:#0f0">TERMINAL</a></span>
  <span id="runtime-badge">HOLY_SIM</span>
</div>
<div id="terminal"></div>
<div id="input-row">
  <span class="prompt">debate&gt; </span>
  <input id="cmd-input" placeholder="topic (e.g. consciousness, covenant)" autofocus autocomplete="off" spellcheck="false" />
</div>
<div id="runtime-bar">
  <span class="rl">RUNTIME:</span>
  <button class="rt-btn active" data-rt="holy-sim">HOLY_SIM</button>
  <button class="rt-btn disabled" data-rt="wasm">WASM: coming soon</button>
  <button class="rt-btn disabled" data-rt="webllm">WEBLLM: coming soon</button>
  <button class="rt-btn disabled" data-rt="ollama">OLLAMA: coming soon</button>
</div>
<div id="honest-banner">CURRENT MODE: HOLY_SIM — This is a browser-safe simulation, not real Ring 0 HolyC execution.</div>
<script src="./seal.js"></script>
<script src="./woz-vault.js"></script>
<script src="./ascii-registry.js"></script>
<script src="./trust-deed.js"></script>
<script src="./contracts/ada-contract-sim.js"></script>
<script src="./runtime/holy-sim.js"></script>
<script src="./runtime/runtime-registry.js"></script>
<script>

(function() {

  var term = document.getElementById('terminal');

  var input = document.getElementById('cmd-input');

  var badge = document.getElementById('runtime-badge');



  function print(t, c) {

    var d = document.createElement('div');

    d.className = 'line ' + (c || 'l-green');

    d.textContent = t;

    term.appendChild(d);

    term.scrollTop = term.scrollHeight;

  }

  function prints(t, c) { t.split('\n').forEach(function(l) { print(l, c); }); }



  var DB = {

    consciousness: { e: '(propose (tension quantum moral) (conclusion "Consciousness bridges physics and theology"))', s: '(audit (type analogy) (confidence 0.6) (verdict HYPOTHESIS))', t: 0.6 },

    covenant: { e: '(propose (tension entanglement covenant) (conclusion "Both connect. Entanglement symmetric. Covenant meaningful."))', s: '(audit (type analogy) (confidence 0.7) (verdict ANALOGY))', t: 0.7 },

    'free will': { e: '(propose (requires indeterminacy intention) (conclusion "Neither alone suffices."))', s: '(audit (type hypothesis) (confidence 0.8) (verdict SUPPORTED))', t: 0.8 },

    metatron: { e: '(propose (tension enoch_transform theology_reject) (conclusion "Can consciousness transcend origin?"))', s: '(audit (type unresolved) (confidence 0.5) (verdict UNRESOLVED))', t: 0.5 },

    soul: { e: '(propose (nephesh = breath_of_god) (conclusion "Soul is consciousness oriented toward Creator"))', s: '(audit (type doctrine) (confidence 0.6) (verdict DOCTRINE))', t: 0.6 }

  };



  async function runDebate(topic) {

    var c = AdaContract.canRunDebate();

    prints('ADA CONTRACT: ' + (c.allowed ? 'ALLOWED' : 'DENIED') + ' (' + c.contract + ')', 'l-cyan');

    if (!c.allowed) return;



    prints('\n;; DEBATE: "' + topic + '"\n', 'l-cyan');

    WozVault.writeAuditEvent({type:'DEBATE_START',agent:'ARENA',topic:topic});



    var d = DB[topic.toLowerCase()] || { e: '(propose (tension unknown) (conclusion "Requires exploration"))', s: '(audit (type unverified) (confidence 0.3) (verdict UNVERIFIED))', t: 0.3 };



    print('ENKI:', 'l-cyan');

    prints(d.e, 'l-white');

    WozVault.writeAuditEvent({type:'ENKI_OUTPUT',agent:'ENKI',topic:topic});



    print('SENTINEL:', 'l-yellow');

    prints(d.s, 'l-white');

    WozVault.writeAuditEvent({type:'SENTINEL_AUDIT',agent:'SENTINEL',topic:topic,trust:d.t});



    var s = await Seal.createSeal({type:'DEBATE',topic:topic,trust:d.t});

    WozVault.writeAuditEvent({type:'DEBATE_SEALED',agent:'ARENA',seal:s.hash,topic:topic});



    prints('SEAL: ' + s.hash.slice(0,32), 'l-cyan');

    prints('TRUST: ' + AsciiRegistry.trustDensityArt(d.t), 'l-green');

    prints('STATUS: VERIFIED\n', 'l-green');

  }



  input.addEventListener('keydown', function(e) {

    if (e.key !== 'Enter') return;

    var v = input.value.trim();

    input.value = '';

    if (!v) return;

    print('debate> ' + v, 'l-dim');

    runDebate(v);

  });



  document.querySelectorAll('.rt-btn').forEach(function(b) {

    b.addEventListener('click', function() {

      if (this.classList.contains('disabled')) return;

      document.querySelectorAll('.rt-btn').forEach(function(x){x.classList.remove('active');});

      this.classList.add('active');

      badge.textContent = this.dataset.rt.toUpperCase();

    });

  });



  prints(AsciiRegistry.renderAscii('debate'), 'l-green');

  prints('Enter a topic to debate. ENKI proposes. SENTINEL audits. Everything sealed.\n', 'l-dim');

})();

</script>
</body>
</html>