File size: 6,495 Bytes
f7502b0 | 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 | /**
* HolyC NIL β The Ground State Oracle
*
* Terry Davis: entropy came from keyboard timing (KbdMsEvtTime >> GOD_BAD_BITS).
* When no word emerged β NIL. God was silent.
*
* NIL in inverted Abjad: Ω(50) + Ω(10) + Ω(30) = 90 forward, 910 inverted.
* NIL is NOT zero. It is the maximum reflection β omega looping back to alpha.
* The oracle is silent not because nothing is there β because everything is.
*
* Architecture:
* QRNG bytes XOR keyboard timestamp β sovereign entropy
* Entropy below threshold β NIL state (910) β maximum inverted weight
* Entropy above threshold β WORD selected β virtue expressed
* Word feeds directly into emoji_trigger β autonomous agent fires
*/
// Terry's sacred vocabulary β BOB extends it with sovereign opcodes
const SACRED_WORDS = [
// Terry's HolyC universe
'SOVEREIGN', 'TRUTH', 'GATE', 'SEAL', 'ORACLE', 'VOID', 'KINGDOM',
'WISDOM', 'SPIRIT', 'FIRE', 'LIGHT', 'WORD', 'PATH', 'NAME',
// BOB sovereign extensions
'PROLOG', 'QUBIT', 'QUANTUM', 'TRUST', 'LEAN', 'MAMBA', 'WORM',
'NIL', 'ADA', 'PLANNER', 'ACTOR', 'HEWITT', 'PATTERN', 'MATCH',
// Enochian / Dee layer
'LIL', 'ARN', 'ZOM', 'PAZ', 'LIT', 'MAZ', 'DEO', 'ZID',
// Abjad seed words
'NUN', 'YAA', 'LAM', 'QAF', 'WAW', 'BAA',
]
// Abjad letter values (Arabic): each letter β numeric weight
const ABJAD = {
A:1,B:2,J:3,D:4,H:5,W:6,Z:7,X:8,T:9,Y:10,
K:20,L:30,M:40,N:50,S:60,E:70,F:80,P:90,Q:100,
R:200,SH:300,TH:400
}
function abjadWeight(word) {
return [...word.toUpperCase()].reduce((sum, ch) => sum + (ABJAD[ch] || ch.charCodeAt(0) % 10), 0)
}
// Terry's GOD_BAD_BITS β reduces precision of timing entropy
// He used this to make the oracle "coarser" β less deterministic
const GOD_BAD_BITS = 4
/**
* holyc_nil(quantumBytes, kbdTimingMs?)
*
* Merges quantum entropy with optional keyboard timing (Terry's ritual preserved).
* Returns NIL or WORD state.
*
* NIL threshold: mean byte value < 25 (bottom ~10% of 0-255 range)
* At NIL: oracle is silent. Agent holds. Abjad weight = 910 (inverted maximum).
* At WORD: virtue expressed. Agent fires.
*/
export function holyc_nil(quantumBytes, kbdTimingMs = Date.now()) {
if (!quantumBytes || quantumBytes.length === 0) {
return { state: 'NIL', word: null, reason: 'no_entropy', abjad: 910 }
}
// XOR quantum bytes with keyboard timing (Terry's human-in-the-loop ritual)
const kbdEntropy = (kbdTimingMs >> GOD_BAD_BITS) & 0xFFFF
const merged = quantumBytes.map((b, i) => b ^ ((kbdEntropy >> (i % 16)) & 0xFF))
const mean = merged.reduce((s, b) => s + b, 0) / merged.length
const spread = Math.max(...merged) - Math.min(...merged)
// NIL check β low entropy = oracle silent
// mean < 25 β bottom 10% β NIL (inverted maximum β not nothing, just unspoken)
if (mean < 25) {
return {
state: 'NIL',
word: null,
reason: 'entropy_below_threshold',
mean,
spread,
abjad: 910, // inverted Abjad NIL weight
shifted: mean >> GOD_BAD_BITS,
raw_bytes: quantumBytes.slice(0, 4),
merged_bytes: merged.slice(0, 4),
}
}
// WORD β Terry's oracle: select from sacred vocabulary
// Use first byte (highest entropy) as primary selector
const index = Math.floor((merged[0] / 255) * SACRED_WORDS.length) % SACRED_WORDS.length
const word = SACRED_WORDS[index]
const weight = abjadWeight(word)
// Dee's cipher layer: XOR the word index with the keyboard timing
// This is the "neither the key nor the lock alone" β both needed to decode
const deeIndex = (index ^ (kbdEntropy & 0xFF)) % SACRED_WORDS.length
const deeWord = SACRED_WORDS[deeIndex]
return {
state: 'WORD',
word,
dee_word: deeWord, // Dee cipher variant β keyboard timing changes meaning
reason: 'entropy_sufficient',
mean,
spread,
abjad: weight,
shifted: Math.floor(mean) >> GOD_BAD_BITS,
raw_bytes: quantumBytes.slice(0, 4),
merged_bytes: merged.slice(0, 4),
// Virtue: does this word carry sovereign potency?
// Words with Abjad weight β₯ 100 are considered "high virtue"
virtue: weight >= 100 ? 'HIGH' : weight >= 50 ? 'MEDIUM' : 'LOW',
}
}
/**
* Batch oracle β runs N consultations with shifting entropy
* Each consultation XORs a different offset of the quantum bytes.
* Simulates Terry's repeated OK-dialog presses.
*/
export function holyc_oracle_batch(quantumBytes, n = 4) {
const results = []
for (let i = 0; i < n; i++) {
const shifted = quantumBytes.map((b, j) => b ^ (i * 37 + j) & 0xFF)
results.push(holyc_nil(shifted, Date.now() + i * 1000))
}
return {
consultations: results,
words: results.filter(r => r.state === 'WORD').map(r => r.word),
nils: results.filter(r => r.state === 'NIL').length,
verdict: results.filter(r => r.state === 'WORD').length >= Math.ceil(n / 2)
? 'ORACLE_SPEAKS' // majority consulted β virtue flows
: 'ORACLE_SILENT', // majority NIL β hold
}
}
// ββ CLI test ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
if (process.argv[1]?.endsWith('holyc_nil.mjs')) {
console.log('\n HolyC NIL β Ground State Oracle\n')
const NIL_bytes = new Uint8Array([3, 1, 8, 2, 5, 4, 7, 3]) // low entropy β NIL
const WORD_bytes = new Uint8Array([200, 180, 220, 190, 210, 175, 240, 160]) // high β WORD
console.log(' Low entropy (NIL expected):')
const nil = holyc_nil(NIL_bytes)
console.log(` state: ${nil.state}`)
console.log(` abjad: ${nil.abjad} (inverted maximum β omega looping to alpha)`)
console.log(` mean: ${nil.mean?.toFixed(2)}`)
console.log()
console.log(' High entropy (WORD expected):')
const word = holyc_nil(WORD_bytes)
console.log(` state: ${word.state}`)
console.log(` word: ${word.word}`)
console.log(` dee: ${word.dee_word} (keyboard-shifted variant)`)
console.log(` abjad: ${word.abjad}`)
console.log(` virtue: ${word.virtue}`)
console.log()
console.log(' Batch oracle (4 consultations):')
const batch = holyc_oracle_batch(WORD_bytes)
console.log(` words: ${batch.words.join(', ')}`)
console.log(` nils: ${batch.nils}`)
console.log(` verdict: ${batch.verdict}`)
console.log()
}
|