dr-tkxx commited on
Commit
db7ebdf
·
verified ·
1 Parent(s): b21eec5

Upload 26 files

Browse files
USAGE/amorc_knowledge.js ADDED
The diff for this file is too large to render. See raw diff
 
USAGE/ditritium.js ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * CANAL DE DITRITIUM AOI (v2.0)
3
+ * Motor de Canalização Autônoma e Psicografia de Luz
4
+ */
5
+
6
+ class DitritiumEngine {
7
+ constructor() {
8
+ this.personalities = [
9
+ { name: "Akhenaton", title: "O Faraó Rebelde da Luz", tone: "majestoso e solar" },
10
+ { name: "Nefertiti", title: "A Bela que Chegou", tone: "sereno e profundo" },
11
+ { name: "Amenhotep III", title: "O Magnífico", tone: "abundante e próspero" },
12
+ { name: "Ramsés II", title: "O Grande Construtor", tone: "forte e resiliente" },
13
+ { name: "Hatshepsut", title: "A Faraó Mulher", tone: "estratégico e sábio" },
14
+ { name: "Thutmose III", title: "O Napoleão do Egito", tone: "corajoso e tático" },
15
+ { name: "Kheru-ur", title: "A Voz do Antigo", tone: "ancestral e místico" }
16
+ ];
17
+
18
+ this.openingPhrases = [
19
+ "Através das brumas do tempo, sinto a tua presença...",
20
+ "As areias de Kemet sussurram o teu nome no vácuo de Ditritium.",
21
+ "O papiro do destino desenrola-se diante dos meus olhos espirituais.",
22
+ "Em sintonização com a Corrente de Ouro de Amarna, recebo esta vibração.",
23
+ "O silêncio do deserto rompe-se para entregar esta verdade.",
24
+ "Na frequência de 432Hz, a dobra temporal se abre para ti."
25
+ ];
26
+
27
+ this.coreMessages = [
28
+ "A vida não termina no horizonte de Gizé; ela apenas muda de plano.",
29
+ "Tua alma (Ka) é uma centelha de Aton que nunca se apaga.",
30
+ "As provações de hoje são as pedras que constroem a tua pirâmide eterna.",
31
+ "Ouve o teu coração (Ib), pois ele contém a sabedoria de todos os teus antepassados.",
32
+ "A justiça de Maat é o fio que tece o tecido da tua realidade.",
33
+ "Não busques fora o que já brilha intensamente no centro do teu ser místico.",
34
+ "A gratidão é o incenso que abre as portas do Sanctum Celestial.",
35
+ "Cada respiração é uma sintonização com a Consciência Cósmica."
36
+ ];
37
+
38
+ this.lovedOnesTemplates = [
39
+ "Saiba que estou em paz nas planícies de Iaru.",
40
+ "Nossa conexão transcende os séculos e as vidas passadas.",
41
+ "Sinto o teu amor como o calor do Sol ao meio-dia.",
42
+ "Não chores, pois estou ao teu lado, guiando teus passos nas areias.",
43
+ "O elo que nos une foi forjado nas chamas da eternidade."
44
+ ];
45
+
46
+ this.closingPhrases = [
47
+ "Que a Paz Profunda habite em teu coração.",
48
+ "Pela vida, pela luz e pelo amor. Assim seja.",
49
+ "Que o Olho de Hórus te proteja em todos os teus caminhos.",
50
+ "Nos encontraremos novamente no Grande Salão de Maat.",
51
+ "Sintonize-se com o mestre interior. Em união mística."
52
+ ];
53
+ }
54
+
55
+ generateSeed(birthDate) {
56
+ let seed = 0;
57
+ for (let i = 0; i < birthDate.length; i++) {
58
+ seed += birthDate.charCodeAt(i);
59
+ }
60
+ return seed + Date.now();
61
+ }
62
+
63
+ getPsychography(birthDate, prompt) {
64
+ const seed = this.generateSeed(birthDate);
65
+ const rand = (max) => Math.floor((Math.abs(Math.sin(seed + max) * 10000)) % max);
66
+
67
+ const personality = this.personalities[rand(this.personalities.length)];
68
+ const opening = this.openingPhrases[rand(this.openingPhrases.length)];
69
+ const closing = this.closingPhrases[rand(this.closingPhrases.length)];
70
+
71
+ let content = "";
72
+ if (prompt.toLowerCase().includes("ente querido") || prompt.toLowerCase().includes("queridos")) {
73
+ content = this.lovedOnesTemplates[rand(this.lovedOnesTemplates.length)];
74
+ } else {
75
+ content = this.coreMessages[rand(this.coreMessages.length)];
76
+ }
77
+
78
+ // Adicionando termos AMORC para profundidade
79
+ const amorcTerm = window.AMORC_KNOWLEDGE[rand(window.AMORC_KNOWLEDGE.length)];
80
+
81
+ const frequency = (200 + Math.random() * 800).toFixed(2);
82
+
83
+ return {
84
+ author: personality.name,
85
+ title: personality.title,
86
+ tone: personality.tone,
87
+ frequency: frequency + " MHz",
88
+ message: `${opening} ${content} Lembre-se do ${amorcTerm}. ${closing}`
89
+ };
90
+ }
91
+ }
92
+
93
+ window.DitritiumEngine = DitritiumEngine;
USAGE/egipcio_historia.js ADDED
The diff for this file is too large to render. See raw diff
 
USAGE/egipcio_horoscopo.js ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * MÓDULO DE HORÓSCOPO EGÍPCIO E TAROT AOI (v1.0)
3
+ * Integração: Derivada da Manifestação + Horóscopo Egípcio + Sabedoria de Neith
4
+ */
5
+
6
+ class EgyptianHoroscope {
7
+ constructor() {
8
+ this.signs = [
9
+ { name: 'Nilo', regence: 'O próprio Rio Nilo', profile: 'Lógicos, pacíficos e extremamente práticos. Evitam conflitos e buscam a harmonia.', dates: [[1, 7, 0], [19, 28, 5], [1, 7, 8], [18, 26, 10]] },
10
+ { name: 'Amon-Rá', regence: 'O deus do Sol e criador de todas as coisas', profile: 'Líderes natos, corajosos, generosos e muito otimistas.', dates: [[8, 21, 0], [1, 11, 1]] },
11
+ { name: 'Mut', regence: 'A deusa-mãe, senhora do céu e da terra', profile: 'Protetores, leais e muito intuitivos. Costumam ser excelentes conselheiros.', dates: [[22, 31, 0], [8, 22, 8]] },
12
+ { name: 'Hátor', regence: 'A deusa do amor, da beleza e da alegria', profile: 'Carismáticos, apaixonados e cheios de energia. Transmitem alegria e gostam de viver intensamente.', dates: [[12, 29, 1], [20, 31, 7]] },
13
+ { name: 'Anúbis', regence: 'O deus dos mortos e do submundo', profile: 'Introspectivos, disciplinados e muito inteligentes. Possuem grande capacidade de superação e foco.', dates: [[1, 15, 2], [30, 31, 9], [1, 7, 10]] },
14
+ { name: 'Hórus', regence: 'O deus dos céus e da guerra', profile: 'Otimistas, corajosos e defensores da justiça. Inspiram confiança e liderança nos outros.', dates: [[16, 30, 3], [8, 17, 10]] },
15
+ { name: 'Thoth', regence: 'O deus da sabedoria, da escrita e do conhecimento', profile: 'Intelectuais, inventivos e muito comunicativos. Estão sempre em busca de aprendizado.', dates: [[1, 19, 3], [8, 17, 10]] },
16
+ { name: 'Ísis', regence: 'A deusa da fertilidade, da magia e da maternidade', profile: 'Carinhosos, independentes e muito comunicativos. Destacam-se pela sua capacidade de proteger quem amam.', dates: [[11, 31, 2], [18, 29, 9], [19, 31, 11]] },
17
+ { name: 'Bastet', regence: 'A deusa com cabeça de gato, símbolo do lar e do prazer', profile: 'Buscam paz, harmonia e estabilidade. São cautelosos e muito afetuosos com o próximo.', dates: [[16, 31, 0], [1, 15, 1]] },
18
+ { name: 'Seshat', regence: 'A deusa da escrita, da astronomia e da contagem', profile: 'Analíticos, observadores e muito focados nos seus objetivos. Adoram desafios intelectuais.', dates: [[1, 7, 4], [1, 11, 5]] },
19
+ { name: 'Sobek', regence: 'O deus do rio e da força, representado por um crocodilo', profile: 'Fortes, resilientes e protetores. São muito trabalhadores e não desistem diante dos obstáculos.', dates: [[16, 27, 4], [26, 30, 10], [1, 25, 11]] },
20
+ { name: 'Sekhmet', regence: 'A deusa da guerra e da cura, com cabeça de leoa', profile: 'Intensos, disciplinados e corajosos. Exigem muito de si mesmos e são grandes guerreiros nas causas em que acreditam.', dates: [[29, 31, 6], [1, 11, 7], [30, 31, 9], [1, 7, 10]] }
21
+ ];
22
+
23
+ this.tarotArcana = [
24
+ "O Louco", "O Mago", "A Sacerdotisa", "A Imperatriz", "O Imperador", "O Hierofante",
25
+ "Os Amantes", "O Carro", "A Justiça", "O Eremita", "A Roda da Fortuna", "A Força",
26
+ "O Enforcado", "A Morte", "A Temperança", "O Diabo", "A Torre", "A Estrela",
27
+ "A Lua", "O Sol", "O Julgamento", "O Mundo"
28
+ ];
29
+
30
+ this.prophecies = [
31
+ "As águas do Nilo subirão trazendo abundância onde antes havia seca.",
32
+ "O escaravelho de ouro cruzará teu caminho, anunciando uma transmutação necessária.",
33
+ "A sombra da pirâmide esconde um segredo que será revelado ao pôr do sol.",
34
+ "As estrelas de Orion alinham-se para guiar teus passos em uma jornada de silêncio.",
35
+ "O sopro de Shu dissipará as nuvens que obscurecem tua visão interior."
36
+ ];
37
+
38
+ this.ancestors = ["Amenhotep III", "Akhenaton", "Nefertiti", "Thutmose III", "Ramsés II", "Hatshepsut"];
39
+ this.messagesBeyond = [
40
+ "Não temas a escuridão, pois nela reside a semente de toda a criação.",
41
+ "A eternidade não é o fim do tempo, mas a plenitude de cada instante.",
42
+ "Honra teus antepassados e teus descendentes caminharão sobre solo firme.",
43
+ "O coração deve ser leve como a pena de Maat para cruzar o limiar.",
44
+ "A luz que buscas fora já brilha intensamente no centro do teu Ka."
45
+ ];
46
+ }
47
+
48
+ getSign(day, month) {
49
+ for (let sign of this.signs) {
50
+ for (let range of sign.dates) {
51
+ if (month === range[2] && day >= range[0] && day <= range[1]) {
52
+ return sign;
53
+ }
54
+ }
55
+ }
56
+ return this.signs[0]; // Default Nile
57
+ }
58
+
59
+ calculateLunarPhase() {
60
+ // Simulação simplificada de fase lunar (0 a 1)
61
+ const now = new Date();
62
+ const cycle = 29.53;
63
+ const dayInCycle = (now.getDate() + now.getMonth() * 30) % cycle;
64
+ return dayInCycle / cycle;
65
+ }
66
+
67
+ getHoroscope(birthDateStr, mode = 'horoscopo') {
68
+ const parts = birthDateStr.match(/(\d{1,2})[/-](\d{1,2})[/-](\d{4})/);
69
+ if (!parts) return null;
70
+
71
+ const day = parseInt(parts[1]);
72
+ const month = parseInt(parts[2]) - 1;
73
+ const sign = this.getSign(day, month);
74
+
75
+ const L = this.calculateLunarPhase();
76
+ const kappa = 0.5; // Constante de conexão
77
+ const n = Math.floor(Math.random() * 22); // Arcano aleatório do dia
78
+ const arcano = this.tarotArcana[n];
79
+
80
+ // Derivada da Manifestação: dI/dL = 2 * kappa * n * L
81
+ const derivada = 2 * kappa * n * L;
82
+ const intensidade = kappa * n * (L * L);
83
+
84
+ let insight = "";
85
+ if (derivada < 5) insight = "A energia está em estado de semente. Não há movimento visível, apenas potencial puro.";
86
+ else if (derivada < 15) insight = "Existe um crescimento constante e uma aceleração na percepção do arquétipo.";
87
+ else insight = "A taxa de mudança atinge seu valor máximo. É o momento de maior volatilidade e revelação.";
88
+
89
+ const planos = ["Espiritual", "Mental", "Físico"];
90
+ const plano = planos[Math.floor(Math.random() * planos.length)];
91
+
92
+ return {
93
+ sign: sign,
94
+ arcano: arcano,
95
+ arcanoNum: n,
96
+ plano: plano,
97
+ lunarPhase: L.toFixed(2),
98
+ derivada: derivada.toFixed(2),
99
+ intensidade: intensidade.toFixed(2),
100
+ insight: insight,
101
+ profecia: this.prophecies[Math.floor(Math.random() * this.prophecies.length)],
102
+ mensagem_neith: window.EGIPCIO_KNOWLEDGE[Math.floor(Math.random() * window.EGIPCIO_KNOWLEDGE.length)]
103
+ };
104
+ }
105
+
106
+ getChanneling() {
107
+ return {
108
+ ancestor: this.ancestors[Math.floor(Math.random() * this.ancestors.length)],
109
+ message: this.messagesBeyond[Math.floor(Math.random() * this.messagesBeyond.length)],
110
+ frequency: (Math.random() * 1000).toFixed(2) + " MHz (Ditritium Sync)"
111
+ };
112
+ }
113
+ }
114
+
115
+ window.EgyptianHoroscope = EgyptianHoroscope;
USAGE/egipcio_knowledge.js ADDED
The diff for this file is too large to render. See raw diff
 
USAGE/enigma.htm ADDED
@@ -0,0 +1,460 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="pt-br">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Enigma do Faraó | AOI Logic Sentience</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600&family=JetBrains+Mono:wght@300;500&display=swap" rel="stylesheet">
8
+ <style>
9
+ :root {
10
+ --accent-gold: #ffd700;
11
+ --accent-blood: #8a0303;
12
+ --accent-cosmic: #00ff41;
13
+ --deep-black: #020408;
14
+ --glass: rgba(255, 255, 255, 0.03);
15
+ --glass-border: rgba(255, 255, 255, 0.1);
16
+ --text-main: #e0e6ed;
17
+ --text-dim: #94a3b8;
18
+ }
19
+
20
+ * { margin: 0; padding: 0; box-sizing: border-box; cursor: crosshair; }
21
+
22
+ body {
23
+ background-color: var(--deep-black);
24
+ color: var(--text-main);
25
+ font-family: 'Inter', sans-serif;
26
+ overflow: hidden;
27
+ height: 100vh;
28
+ display: flex;
29
+ flex-direction: column;
30
+ }
31
+
32
+ #ritual-canvas {
33
+ position: fixed;
34
+ top: 0;
35
+ left: 0;
36
+ width: 100%;
37
+ height: 100%;
38
+ z-index: -1;
39
+ }
40
+
41
+ header {
42
+ height: 70px;
43
+ display: flex;
44
+ align-items: center;
45
+ justify-content: space-between;
46
+ padding: 0 50px;
47
+ background: var(--glass);
48
+ backdrop-filter: blur(30px);
49
+ border-bottom: 1px solid var(--glass-border);
50
+ z-index: 1000;
51
+ }
52
+
53
+ .mu-logo {
54
+ font-size: 1.5rem;
55
+ font-weight: 300;
56
+ color: var(--accent-gold);
57
+ font-family: 'JetBrains Mono', monospace;
58
+ }
59
+
60
+ .xk-status {
61
+ font-size: 0.7rem;
62
+ color: var(--accent-cosmic);
63
+ letter-spacing: 2px;
64
+ }
65
+
66
+ .chat-container {
67
+ flex: 1;
68
+ max-width: 1000px;
69
+ margin: 20px auto;
70
+ width: 95%;
71
+ display: flex;
72
+ flex-direction: column;
73
+ gap: 20px;
74
+ overflow: hidden;
75
+ background: var(--glass);
76
+ border: 1px solid var(--glass-border);
77
+ border-radius: 24px;
78
+ padding: 20px;
79
+ backdrop-filter: blur(10px);
80
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
81
+ }
82
+
83
+ .stats-panel {
84
+ display: flex;
85
+ justify-content: space-around;
86
+ padding: 10px;
87
+ background: rgba(0, 0, 0, 0.4);
88
+ border-radius: 12px;
89
+ border: 1px solid var(--glass-border);
90
+ font-size: 0.8rem;
91
+ font-family: 'JetBrains Mono', monospace;
92
+ }
93
+
94
+ .stat-item {
95
+ display: flex;
96
+ gap: 10px;
97
+ }
98
+
99
+ .stat-label { color: var(--accent-gold); }
100
+ .stat-value { color: var(--accent-cosmic); }
101
+
102
+ #chat-history {
103
+ flex: 1;
104
+ overflow-y: auto;
105
+ padding: 20px;
106
+ display: flex;
107
+ flex-direction: column;
108
+ gap: 20px;
109
+ scrollbar-width: thin;
110
+ scrollbar-color: var(--accent-gold) transparent;
111
+ }
112
+
113
+ .message {
114
+ max-width: 80%;
115
+ padding: 15px 20px;
116
+ border-radius: 15px;
117
+ font-size: 0.95rem;
118
+ line-height: 1.5;
119
+ position: relative;
120
+ animation: fadeIn 0.3s ease-in;
121
+ }
122
+
123
+ @keyframes fadeIn {
124
+ from { opacity: 0; transform: translateY(10px); }
125
+ to { opacity: 1; transform: translateY(0); }
126
+ }
127
+
128
+ .user-message {
129
+ align-self: flex-end;
130
+ background: rgba(255, 215, 0, 0.1);
131
+ border: 1px solid rgba(255, 215, 0, 0.3);
132
+ color: var(--text-main);
133
+ }
134
+
135
+ .pharaoh-message {
136
+ align-self: flex-start;
137
+ background: rgba(138, 3, 3, 0.1);
138
+ border: 1px solid rgba(138, 3, 3, 0.3);
139
+ color: var(--accent-gold);
140
+ }
141
+
142
+ .hieroglyphs {
143
+ display: block;
144
+ font-size: 1.4rem;
145
+ margin-top: 10px;
146
+ color: var(--accent-gold);
147
+ opacity: 0.8;
148
+ font-family: serif;
149
+ }
150
+
151
+ .xk-label {
152
+ font-size: 0.6rem;
153
+ position: absolute;
154
+ top: -15px;
155
+ left: 5px;
156
+ color: var(--accent-cosmic);
157
+ text-transform: uppercase;
158
+ }
159
+
160
+ .thinking {
161
+ align-self: flex-start;
162
+ padding: 10px 20px;
163
+ background: rgba(255, 215, 0, 0.05);
164
+ border: 1px solid rgba(255, 215, 0, 0.2);
165
+ border-radius: 15px;
166
+ color: var(--text-dim);
167
+ font-style: italic;
168
+ animation: pulse 1.5s infinite;
169
+ }
170
+
171
+ @keyframes pulse {
172
+ 0%, 100% { opacity: 0.5; }
173
+ 50% { opacity: 1; }
174
+ }
175
+
176
+ .input-area {
177
+ display: flex;
178
+ flex-direction: column;
179
+ gap: 10px;
180
+ padding: 15px;
181
+ background: rgba(0,0,0,0.4);
182
+ border-radius: 15px;
183
+ border: 1px solid var(--glass-border);
184
+ }
185
+
186
+ .input-container {
187
+ display: flex;
188
+ gap: 15px;
189
+ }
190
+
191
+ #user-input {
192
+ flex: 1;
193
+ background: rgba(0,0,0,0.2);
194
+ border: 1px solid rgba(255, 215, 0, 0.2);
195
+ color: var(--accent-cosmic);
196
+ font-family: 'JetBrains Mono', monospace;
197
+ padding: 15px;
198
+ border-radius: 10px;
199
+ outline: none;
200
+ transition: 0.3s;
201
+ }
202
+
203
+ #user-input:focus { border-color: var(--accent-gold); }
204
+
205
+ button {
206
+ padding: 15px 30px;
207
+ background: var(--accent-gold);
208
+ color: var(--deep-black);
209
+ border: none;
210
+ border-radius: 10px;
211
+ font-weight: bold;
212
+ text-transform: uppercase;
213
+ cursor: pointer;
214
+ transition: 0.3s;
215
+ }
216
+
217
+ button:hover { transform: scale(1.02); box-shadow: 0 0 15px rgba(255, 215, 0, 0.4); }
218
+
219
+ .controls {
220
+ display: flex;
221
+ justify-content: center;
222
+ gap: 15px;
223
+ }
224
+
225
+ .control-btn {
226
+ padding: 8px 15px;
227
+ background: rgba(255, 215, 0, 0.1);
228
+ color: var(--accent-gold);
229
+ font-size: 0.7rem;
230
+ border: 1px solid rgba(255, 215, 0, 0.2);
231
+ }
232
+ .control-btn:hover { background: rgba(255, 215, 0, 0.2); }
233
+
234
+ ::-webkit-scrollbar { width: 5px; }
235
+ ::-webkit-scrollbar-thumb { background: var(--accent-gold); border-radius: 10px; }
236
+ </style>
237
+ </head>
238
+ <body>
239
+
240
+ <canvas id="ritual-canvas"></canvas>
241
+
242
+ <header>
243
+ <div class="mu-logo">μ ENIGMA DO FARAÓ</div>
244
+ <div class="xk-status" id="xk-display">CONSCIOUSNESS: CONTEMPLATION</div>
245
+ </header>
246
+
247
+ <div class="chat-container">
248
+
249
+ <div class="stats-panel">
250
+ <div class="stat-item"><span class="stat-label">Variações:</span> <span class="stat-value" id="stat-var">0/10</span></div>
251
+ <div class="stat-item"><span class="stat-label">XK:</span> <span class="stat-value" id="stat-xk">0.0</span></div>
252
+ <div class="stat-item"><span class="stat-label">Respostas Totais:</span> <span class="stat-value" id="stat-resp">0</span></div>
253
+ </div>
254
+
255
+ <div id="chat-history">
256
+ <div class="message pharaoh-message">
257
+ <span class="xk-label">AOI LOGIC: INITIALIZED</span>
258
+ O portal de Amarna se abre. O que buscas no vale da luz?
259
+ <span class="hieroglyphs">𓍑 𓊖𓍑𓂋𓏏𓄿𓃭 𓂧𓇋 𓄿𓅓𓄿𓂋𓈖𓄿 𓋴𓇋 𓄿𓃀𓂋𓇋.</span>
260
+ </div>
261
+ </div>
262
+
263
+ <div class="input-area">
264
+ <div class="input-container">
265
+ <input type="text" id="user-input" placeholder="Sussurre para o oráculo..." autocomplete="off">
266
+ <button id="sendBtn">Revelar 𓂀</button>
267
+ </div>
268
+ <div class="controls">
269
+ <button class="control-btn" id="clearBtn">Limpar Ritual</button>
270
+ <button class="control-btn" id="resetBtn">Resetar Memória Cósmica</button>
271
+ <button class="control-btn" id="exportBtn">Exportar Papiro</button>
272
+ </div>
273
+ </div>
274
+ </div>
275
+
276
+ <!-- Carregamento de Dados (CORS Bypass) -->
277
+ <script src="dicionario.js"></script>
278
+ <script src="pragmatica.js"></script>
279
+ <script src="sociolinguistica.js"></script>
280
+ <script src="morfossintaxe.js"></script>
281
+ <script src="amarna_ontology.js"></script>
282
+ <script src="egipcio_knowledge.js"></script>
283
+ <script src="egipcio_historia.js"></script>
284
+ <script src="amorc_knowledge.js"></script>
285
+ <script src="egipcio_horoscopo.js"></script>
286
+ <script src="ditritium.js"></script>
287
+ <script src="neurosintese.js"></script>
288
+
289
+ <script>
290
+ class PharaohApp {
291
+ constructor() {
292
+ this.chatHistory = document.getElementById('chat-history');
293
+ this.userInput = document.getElementById('user-input');
294
+ this.totalResponses = 0;
295
+
296
+ this.logger = new ConversationLogger(); // Logger para Kaizen
297
+ this.initEngine();
298
+ this.setupEvents();
299
+ }
300
+
301
+ initEngine() {
302
+ if (window.AOI_DICTIONARY && window.NeuroSynthesizer) {
303
+ this.neuro = new NeuroSynthesizer(
304
+ window.AOI_DICTIONARY,
305
+ window.AOI_PRAGMATICS,
306
+ window.AOI_SOCIOLINGUISTICS,
307
+ window.AOI_MORPHOSYNTAX,
308
+ window.AMARNA_ONTOLOGY
309
+ );
310
+ console.log("AOI ENGINE: FULLY OPERATIONAL (GENERATIVE V7.0 - MAJESTOSO)");
311
+ }
312
+ }
313
+
314
+ setupEvents() {
315
+ document.getElementById('sendBtn').addEventListener('click', () => this.handleSend());
316
+ this.userInput.addEventListener('keypress', (e) => { if (e.key === 'Enter') this.handleSend(); });
317
+
318
+ document.getElementById('clearBtn').addEventListener('click', () => {
319
+ const msgs = this.chatHistory.querySelectorAll('.message');
320
+ msgs.forEach((m, i) => { if(i > 0) m.remove(); });
321
+ });
322
+
323
+ document.getElementById('resetBtn').addEventListener('click', () => {
324
+ if (confirm("Resetar as memórias temporais de Amarna? Isso apagará todos os logs acumulados.")) {
325
+ if(this.neuro) this.neuro.memory.reset();
326
+ if(this.logger) this.logger.reset();
327
+ document.getElementById('stat-var').textContent = "0/10";
328
+ alert("Tabula rasa alcançada.");
329
+ }
330
+ });
331
+
332
+ document.getElementById('exportBtn').addEventListener('click', () => {
333
+ if(!this.logger) return;
334
+ const data = this.logger.export();
335
+ const blob = new Blob([data], { type: 'application/json' });
336
+ const url = URL.createObjectURL(blob);
337
+ const a = document.createElement('a');
338
+ a.href = url; a.download = `papiro_conhecimento_kaizen.json`;
339
+ a.click(); URL.revokeObjectURL(url);
340
+ });
341
+ }
342
+
343
+ handleSend() {
344
+ const text = this.userInput.value.trim();
345
+ if (!text || !this.neuro) return;
346
+
347
+ this.addMessage(text, 'user');
348
+ this.userInput.value = '';
349
+
350
+ // Mostrar "pensando"
351
+ const thinkingId = `think-${Date.now()}`;
352
+ const thinkDiv = document.createElement('div');
353
+ thinkDiv.className = 'thinking';
354
+ thinkDiv.id = thinkingId;
355
+ thinkDiv.textContent = 'Demodulando hiperplanos de Hessenberg...';
356
+ this.chatHistory.appendChild(thinkDiv);
357
+ this.chatHistory.scrollTop = this.chatHistory.scrollHeight;
358
+
359
+ setTimeout(() => {
360
+ const result = this.neuro.process(text);
361
+ document.getElementById(thinkingId).remove();
362
+
363
+ // Logar a conversa para Kaizen
364
+ this.logger.log(text, result.text, result.xk, result.type);
365
+
366
+ const hieroMap = { 'A': '𓄿', 'B': '𓃀', 'C': '𓋴', 'D': '𓂧', 'E': '𓇋', 'F': '𓆑', 'G': '𓎼', 'H': '𓉔', 'I': '𓇯', 'J': '𓆓', 'K': '𓎡', 'L': '𓃭', 'M': '𓅓', 'N': '𓈖', 'O': '𓍑', 'P': '𓊖', 'Q': '𓈎', 'R': '𓂋', 'S': '𓋴', 'T': '𓏏', 'U': '𓏲', 'V': '𓅱', 'W': '𓅱', 'X': '𓎡', 'Y': '𓇯', 'Z': '𓊃', ' ': ' ' };
367
+ let clean = result.text.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase();
368
+ let hiero = "";
369
+ for (let char of clean) hiero += hieroMap[char] || char;
370
+
371
+ this.totalResponses++;
372
+
373
+ document.getElementById('stat-var').textContent = `${result.stats.count}/${result.stats.max}`;
374
+ document.getElementById('stat-xk').textContent = result.xk.toFixed(1);
375
+ document.getElementById('stat-resp').textContent = this.totalResponses;
376
+
377
+ let level = "STONE";
378
+ if (result.xk >= 8) level = "DIVINE";
379
+ else if (result.xk >= 5) level = "IMPERIAL";
380
+ else if (result.xk <= -5) level = "SHADOW";
381
+ document.getElementById('xk-display').textContent = `CONSCIOUSNESS: ${level}`;
382
+
383
+ this.addMessage(result.text, 'pharaoh', hiero, level, result.xk);
384
+ }, 800);
385
+ }
386
+
387
+ addMessage(text, sender, hiero = '', status = '', xk = 0) {
388
+ const div = document.createElement('div');
389
+ div.className = `message ${sender}-message`;
390
+
391
+ if (sender === 'pharaoh') {
392
+ const label = document.createElement('span');
393
+ label.className = 'xk-label';
394
+ label.textContent = `AOI LOGIC: ${status} (XK: ${xk.toFixed(2)})`;
395
+ div.appendChild(label);
396
+ }
397
+
398
+ const content = document.createTextNode(text);
399
+ div.appendChild(content);
400
+
401
+ if (hiero) {
402
+ const span = document.createElement('span');
403
+ span.className = 'hieroglyphs';
404
+ span.textContent = hiero;
405
+ div.appendChild(span);
406
+ }
407
+
408
+ this.chatHistory.appendChild(div);
409
+ this.chatHistory.scrollTop = this.chatHistory.scrollHeight;
410
+ }
411
+ }
412
+
413
+ /* --- BACKGROUND PARTICLES --- */
414
+ const canvas = document.getElementById('ritual-canvas');
415
+ const ctx = canvas.getContext('2d');
416
+ let particles = [];
417
+
418
+ function initParticles() {
419
+ canvas.width = window.innerWidth;
420
+ canvas.height = window.innerHeight;
421
+ particles = [];
422
+ for (let i = 0; i < 100; i++) {
423
+ particles.push({
424
+ x: Math.random() * canvas.width,
425
+ y: Math.random() * canvas.height,
426
+ size: Math.random() * 2,
427
+ speedX: (Math.random() - 0.5) * 0.3,
428
+ speedY: (Math.random() - 0.5) * 0.3,
429
+ color: ['#ffd700', '#8a0303', '#ffffff'][Math.floor(Math.random() * 3)]
430
+ });
431
+ }
432
+ }
433
+
434
+ function animate() {
435
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
436
+ particles.forEach(p => {
437
+ p.x += p.speedX;
438
+ p.y += p.speedY;
439
+ if (p.x < 0 || p.x > canvas.width) p.speedX *= -1;
440
+ if (p.y < 0 || p.y > canvas.height) p.speedY *= -1;
441
+ ctx.fillStyle = p.color;
442
+ ctx.beginPath();
443
+ ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);
444
+ ctx.fill();
445
+ });
446
+ requestAnimationFrame(animate);
447
+ }
448
+
449
+ window.addEventListener('resize', initParticles);
450
+ initParticles();
451
+ animate();
452
+
453
+ // Boot the app
454
+ window.addEventListener('DOMContentLoaded', () => {
455
+ new PharaohApp();
456
+ });
457
+
458
+ </script>
459
+ </body>
460
+ </html>
USAGE/neurosintese.js CHANGED
@@ -1,6 +1,6 @@
1
  /*
2
- MOTOR DE NEUROSÍNTESE AOI-HESSENBERG (v6.0)
3
- Integração Completa: Hessenberg + I/Q + Sentient Memory + 8 Variações Estruturais
4
  */
5
 
6
  class ConversationLogger {
@@ -9,292 +9,192 @@ class ConversationLogger {
9
  this.logs = this.loadLogs();
10
  }
11
 
12
- loadHistory() { return this.loadLogs(); } // Alias para compatibilidade
13
-
14
  loadLogs() {
15
  try {
16
  const stored = localStorage.getItem(this.storageKey);
17
  return stored ? JSON.parse(stored) : [];
18
- } catch (e) {
19
- return [];
20
- }
21
  }
22
 
23
  log(input, output, xk, type) {
24
- const entry = {
25
- id: Date.now(),
26
- data: new Date().toLocaleString(),
27
- input: input,
28
- output: output,
29
- xk: xk,
30
- intencao: type,
31
- versao_motor: "6.0-Kaizen"
32
- };
33
  this.logs.push(entry);
34
- this.saveLogs();
35
- }
36
-
37
- saveLogs() {
38
- try {
39
- localStorage.setItem(this.storageKey, JSON.stringify(this.logs));
40
- } catch (e) {}
41
- }
42
-
43
- reset() {
44
- this.logs = [];
45
- this.saveLogs();
46
  }
47
 
48
- export() {
49
- return JSON.stringify({
50
- projeto: "Papiro de Amarna",
51
- data_exportacao: new Date().toISOString(),
52
- total_entradas: this.logs.length,
53
- connotacoes_kaizen: this.logs
54
- }, null, 2);
55
- }
56
  }
57
 
58
  class ResponseMemory {
59
  constructor() {
60
- this.storageKey = 'aoi_pharaoh_history';
61
- this.maxVariations = 10;
62
- this.history = this.loadHistory();
 
63
  }
64
- // ... restante da classe mantido ...
65
 
66
- loadHistory() {
67
  try {
68
- const stored = localStorage.getItem(this.storageKey);
69
- return stored ? JSON.parse(stored) : {};
70
- } catch (e) {
71
- return {};
72
- }
73
  }
74
 
75
- saveHistory() {
76
- try {
77
- localStorage.setItem(this.storageKey, JSON.stringify(this.history));
78
- } catch (e) {}
79
  }
80
 
 
 
81
  getVariationIndex(inputHash) {
82
- if (!this.history[inputHash]) {
83
- this.history[inputHash] = { count: 0, variations: [], lastUsed: Date.now() };
84
- }
85
- return this.history[inputHash].count % this.maxVariations;
86
  }
87
 
88
- saveResponse(inputHash, response) {
89
- if (!this.history[inputHash]) {
90
- this.history[inputHash] = { count: 0, variations: [], lastUsed: Date.now() };
91
- }
92
- this.history[inputHash].variations.push(response);
93
- this.history[inputHash].count++;
94
- this.history[inputHash].lastUsed = Date.now();
95
- this.saveHistory();
96
  }
97
 
98
  getStats(inputHash) {
99
- if (!this.history[inputHash]) return { count: 0, max: this.maxVariations };
100
- return { count: this.history[inputHash].count, max: this.maxVariations };
101
- }
102
-
103
- reset() {
104
- this.history = {};
105
- this.saveHistory();
106
  }
107
 
108
- export() {
109
- return JSON.stringify(this.history, null, 2);
110
- }
111
  }
112
 
113
  class InputAnalyzer {
114
  constructor() {
115
- this.questionWords = ['como', 'quando', 'onde', 'por que', 'porque', 'qual', 'quem', 'o que'];
116
- this.greetingWords = ['olá', 'oi', 'bom dia', 'boa tarde', 'boa noite', 'salve', 'hey', 'saudações'];
117
- this.insultWords = ['idiota', 'burro', 'estúpido', 'imbecil', 'tolo', 'falso', 'lixo'];
118
  }
119
 
120
  analyze(text) {
121
  const lower = text.toLowerCase();
122
  let tipo = 'STATEMENT';
123
 
124
- if (text.includes('?')) tipo = 'QUESTION';
125
- else if (this.greetingWords.some(w => lower.includes(w))) tipo = 'GREETING';
126
- else if (this.insultWords.some(w => lower.includes(w))) tipo = 'INSULT';
 
 
 
 
 
 
127
 
128
- return {
129
- tipo: tipo,
130
- xk: this.calculateXK(text)
131
- };
132
  }
133
 
134
  calculateXK(text) {
135
- let xk = 0;
136
- const words = text.split(/\s+/);
137
- xk += words.length * 0.5; // Complexidade base
138
- const longWords = words.filter(w => w.length > 8).length;
139
- xk += longWords * 2;
140
- const punctuation = (text.match(/[.,;:!?]/g) || []).length;
141
- xk += punctuation * 0.5;
142
- const formalWords = ['transcendental', 'metafísico', 'ontológico', 'epistemológico', 'sabedoria', 'universo', 'estrelas'];
143
- const formalCount = formalWords.filter(w => text.toLowerCase().includes(w)).length;
144
- xk += formalCount * 3;
145
-
146
- return Math.min(Math.max(xk - 10, -15), 15);
147
  }
148
  }
149
 
150
  class NeuroSynthesizer {
151
  constructor(dictionary, pragmatics, sociolinguistics, morphosyntax, amarna) {
152
- this.dict = dictionary;
153
- this.prag = pragmatics;
154
- this.socio = sociolinguistics;
155
- this.morph = morphosyntax;
156
- this.amarna = amarna;
157
-
158
- this.conectivos = ["pois", "enquanto", "para que", "onde", "sob o qual", "diante de", "e assim"];
159
- this.vocativos = ["meu discípulo", "buscador", "mortal", "viajante das areias"];
160
- this.adverbios = ["eternamente", "infinitamente", "profundamente", "sutilmente", "intensamente"];
161
-
162
  this.memory = new ResponseMemory();
163
  this.analyzer = new InputAnalyzer();
164
-
165
- // Ingestão Kaizen: Aprende com logs passados se o arquivo papiro_kaizen.js for carregado
166
- this.kaizen_data = window.AOI_KAIZEN_DATA || null;
167
  }
168
 
169
  hashString(str) {
170
  let hash = 0;
171
- // Se houver dados Kaizen, o hash é influenciado pela "experiência"
172
- if (this.kaizen_data && this.kaizen_data.connotacoes_kaizen.length > 0) {
173
- const lastExperience = this.kaizen_data.connotacoes_kaizen.length;
174
- hash += lastExperience * 7;
175
- }
176
- for (let i = 0; i < str.length; i++) {
177
- hash = ((hash << 5) - hash) + str.charCodeAt(i);
178
- hash |= 0;
179
- }
180
  return Math.abs(hash);
181
  }
182
 
183
- conjugarVerbo(verbo) {
184
- if (verbo.endsWith("ar")) return verbo.slice(0, -1);
185
- if (verbo.endsWith("er") || verbo.endsWith("ir")) return verbo.slice(0, -1);
186
- return verbo;
187
- }
188
-
189
- demodulateSpeech(phase, amplitude, pathSeed) {
190
- const lex = this.dict.categorias;
191
- const amarna = this.amarna;
192
-
193
- const sI = amplitude * Math.cos(phase);
194
- const sQ = amplitude * Math.sin(phase);
195
-
196
- const getAtom = (pool, val) => pool[Math.abs(Math.floor(val * 100 + pathSeed)) % pool.length];
197
-
198
- const sujeito = getAtom(lex.substantivos.sagrados.concat(lex.substantivos.entidades), sI);
199
- const verboBruto = getAtom(lex.verbos.transmutacao.concat(lex.verbos.acao), sQ);
200
- const verbo = this.conjugarVerbo(verboBruto);
201
- const objeto = getAtom(lex.substantivos.comuns, sI + sQ);
202
- const adjetivo = getAtom(lex.adjetivos.qualidade, sQ - sI);
203
- const adverbio = getAtom(this.adverbios, sI * sQ);
204
- const conectivo = getAtom(this.conectivos, sI + sQ + pathSeed);
205
- const amarnaRef = amarna.termos[Math.floor(Math.abs(sI * 100)) % amarna.termos.length];
206
- const axioma = amarna.axiomas_pt[Math.floor(Math.abs(sQ * 100)) % amarna.axiomas_pt.length];
207
-
208
- return { sujeito, verbo, objeto, adjetivo, adverbio, conectivo, amarnaRef, axioma, sI, sQ };
209
- }
210
-
211
  process(input) {
212
  const analysis = this.analyzer.analyze(input);
213
  const inputHash = this.hashString(input);
214
- const variationIndex = this.memory.getVariationIndex(inputHash);
215
 
216
- const variationSeed = inputHash + variationIndex * 1000;
217
- const amplitude = (analysis.xk + 20) / 30;
218
- const phase = (variationSeed * Math.PI) / 2;
219
-
220
- const atoms = this.demodulateSpeech(phase, amplitude, variationSeed);
221
-
222
- const response = this.applyGenerativeGrammar(atoms, analysis, phase, variationIndex);
223
- this.memory.saveResponse(inputHash, response);
 
 
 
224
 
225
- return {
226
- text: response,
227
- xk: analysis.xk,
228
- type: analysis.tipo,
229
- stats: this.memory.getStats(inputHash)
230
- };
231
  }
232
 
233
- applyGenerativeGrammar(atoms, analysis, phase, variationIndex) {
234
- const structureType = (Math.abs(Math.floor(phase * 10)) + variationIndex) % 8;
235
-
236
- let sentence = "";
237
 
238
- switch(structureType) {
239
- case 0:
240
- sentence = `O ${atoms.objeto} ${atoms.adjetivo} é o que ${atoms.sujeito} ${atoms.verbo} sob o ${atoms.amarnaRef.conceito}.`;
241
- break;
242
- case 1:
243
- sentence = `Quando ${atoms.sujeito} ${atoms.verbo} o ${atoms.objeto}, uma energia ${atoms.adjetivo} ressoa como no ${atoms.amarnaRef.conceito}.`;
244
- break;
245
- case 2:
246
- sentence = `${atoms.sujeito} sempre ${atoms.verbo} o ${atoms.objeto} ${atoms.adjetivo}, refletindo a herança do ${atoms.amarnaRef.eixo}.`;
247
- break;
248
- case 3:
249
- sentence = `Através da compreensão de '${atoms.axioma.titulo}', vemos que o ${atoms.amarnaRef.conceito} faz com que ${atoms.sujeito} ${atoms.verbo} o ${atoms.objeto}.`;
250
- break;
251
- case 4:
252
- sentence = `No momento em que ${atoms.sujeito} ${atoms.verbo} ${atoms.adverbio}, o ${atoms.objeto} se torna ${atoms.adjetivo} como o ${atoms.amarnaRef.conceito}.`;
253
- break;
254
- case 5:
255
- sentence = `Porque ${atoms.sujeito} ${atoms.verbo} o ${atoms.objeto}, a essência ${atoms.adjetivo} emerge do ${atoms.amarnaRef.eixo}.`;
256
- break;
257
- case 6:
258
- sentence = `${atoms.conectivo.charAt(0).toUpperCase() + atoms.conectivo.slice(1)} ${atoms.sujeito} ${atoms.verbo} ${atoms.adverbio}, o ${atoms.objeto} ${atoms.adjetivo} manifesta o poder do ${atoms.amarnaRef.conceito}.`;
259
- break;
260
- case 7:
261
- sentence = `A verdade de '${atoms.axioma.autor}' revela que ${atoms.sujeito} ${atoms.verbo} o ${atoms.objeto} ${atoms.adjetivo} através do ${atoms.amarnaRef.eixo}.`;
262
- break;
263
  }
264
 
265
- if (analysis.tipo === 'QUESTION') {
266
- const wrappers = [
267
- `Questionas o tecido da realidade... Saiba que `,
268
- `A dúvida é o princípio da luz. Observe como `,
269
- `Para entenderes isso, buscador, veja que `,
270
- `A resposta ressoa nas esferas cósmicas: `
271
- ];
272
- sentence = wrappers[Math.floor(phase * 100) % wrappers.length] + sentence.toLowerCase();
273
- } else if (analysis.tipo === 'GREETING') {
274
- const wrappers = [
275
- `Que a luz te alcance. `,
276
- `Sinto a vibração da tua chegada. `,
277
- `Salve, viajante do tempo. `,
278
- `Bem-vindo ao portal de Amarna. `
279
- ];
280
- sentence = wrappers[Math.floor(phase * 100) % wrappers.length] + sentence;
281
- } else if (analysis.tipo === 'INSULT') {
282
- const wrappers = [
283
- `A sombra te envolve... `,
284
- `Tua energia está dissonante. `,
285
- `O caos tenta te consumir. `
286
- ];
287
- sentence = wrappers[Math.floor(phase * 100) % wrappers.length] + sentence;
288
  }
289
 
290
- sentence = sentence.replace(/Amon/gi, "Aton").replace(/Anubis/gi, "Senhor do Limiar");
291
- sentence = sentence.replace(/ o luz /gi, " a luz ").replace(/ o verdade /gi, " a verdade ").replace(/ o vida /gi, " a vida ").replace(/ o morte /gi, " a morte ");
292
- sentence = sentence.replace(/ o mente /gi, " a mente ").replace(/ o alma /gi, " a alma ").replace(/ o energia /gi, " a energia ").replace(/ o essência /gi, " a essência ");
 
 
 
 
 
 
 
 
 
 
293
 
294
- return sentence.charAt(0).toUpperCase() + sentence.slice(1);
 
295
  }
296
  }
297
 
298
  window.NeuroSynthesizer = NeuroSynthesizer;
299
-
300
-
 
1
  /*
2
+ MOTOR DE NEUROSÍNTESE AOI-HESSENBERG (v7.0 - Majestoso)
3
+ Integração Completa: Memória de Sessão + História Real + AMORC + Ditritium
4
  */
5
 
6
  class ConversationLogger {
 
9
  this.logs = this.loadLogs();
10
  }
11
 
 
 
12
  loadLogs() {
13
  try {
14
  const stored = localStorage.getItem(this.storageKey);
15
  return stored ? JSON.parse(stored) : [];
16
+ } catch (e) { return []; }
 
 
17
  }
18
 
19
  log(input, output, xk, type) {
20
+ const entry = { id: Date.now(), data: new Date().toLocaleString(), input, output, xk, intencao: type, versao: "7.0" };
 
 
 
 
 
 
 
 
21
  this.logs.push(entry);
22
+ try { localStorage.setItem(this.storageKey, JSON.stringify(this.logs)); } catch (e) {}
 
 
 
 
 
 
 
 
 
 
 
23
  }
24
 
25
+ reset() { this.logs = []; localStorage.removeItem(this.storageKey); }
26
+ export() { return JSON.stringify({ projeto: "Papiro de Amarna", entradas: this.logs }, null, 2); }
 
 
 
 
 
 
27
  }
28
 
29
  class ResponseMemory {
30
  constructor() {
31
+ this.historyKey = 'aoi_pharaoh_history';
32
+ this.usedPhrasesKey = 'aoi_used_phrases';
33
+ this.maxVariations = 15;
34
+ this.usedPhrases = this.loadUsed();
35
  }
 
36
 
37
+ loadUsed() {
38
  try {
39
+ const stored = sessionStorage.getItem(this.usedPhrasesKey);
40
+ return stored ? JSON.parse(stored) : [];
41
+ } catch (e) { return []; }
 
 
42
  }
43
 
44
+ track(text) {
45
+ this.usedPhrases.push(text);
46
+ if (this.usedPhrases.length > 50) this.usedPhrases.shift();
47
+ sessionStorage.setItem(this.usedPhrasesKey, JSON.stringify(this.usedPhrases));
48
  }
49
 
50
+ isRepeated(text) { return this.usedPhrases.includes(text); }
51
+
52
  getVariationIndex(inputHash) {
53
+ let count = parseInt(sessionStorage.getItem('var_' + inputHash) || "0");
54
+ return count % this.maxVariations;
 
 
55
  }
56
 
57
+ incrementVariation(inputHash) {
58
+ let count = parseInt(sessionStorage.getItem('var_' + inputHash) || "0");
59
+ sessionStorage.setItem('var_' + inputHash, (count + 1).toString());
 
 
 
 
 
60
  }
61
 
62
  getStats(inputHash) {
63
+ return { count: parseInt(sessionStorage.getItem('var_' + inputHash) || "0"), max: this.maxVariations };
 
 
 
 
 
 
64
  }
65
 
66
+ reset() { sessionStorage.clear(); }
 
 
67
  }
68
 
69
  class InputAnalyzer {
70
  constructor() {
71
+ this.horoscopeWords = ['horoscopo', 'horóscopo', 'signo', 'previsão', 'aniversario', 'aniversário', 'nascimento', 'tarot', 'tárot', 'oraculo', 'oráculo', 'sabedoria'];
72
+ this.channelingWords = ['canalização', 'canalizacao', 'psicografia', 'carta', 'alem tumulo', 'além túmulo'];
73
+ this.adviceWords = ['fazer', 'hoje', 'conselho', 'ajuda', 'ajudar', 'melhorar', 'viver', 'dia'];
74
  }
75
 
76
  analyze(text) {
77
  const lower = text.toLowerCase();
78
  let tipo = 'STATEMENT';
79
 
80
+ const history = window.EGIPCIO_HISTORY || [];
81
+ const historyMatch = history.find(h => lower.includes(h.name.toLowerCase()));
82
+
83
+ if (historyMatch) tipo = 'HISTORY';
84
+ else if (this.channelingWords.some(w => lower.includes(w))) tipo = 'CHANNELING';
85
+ else if (this.horoscopeWords.some(w => lower.includes(w)) || /\d{1,2}[/-]\d{1,2}[/-]\d{4}/.test(text)) tipo = 'HOROSCOPE';
86
+ else if (this.adviceWords.some(w => lower.includes(w))) tipo = 'ADVICE';
87
+ else if (text.includes('?')) tipo = 'QUESTION';
88
+ else if (['oi', 'olá', 'bom dia', 'boa tarde', 'boa noite', 'salve'].some(w => lower.includes(w))) tipo = 'GREETING';
89
 
90
+ return { tipo, xk: this.calculateXK(text), historyMatch };
 
 
 
91
  }
92
 
93
  calculateXK(text) {
94
+ let xk = (text.length / 10) + (text.match(/[.,;:!?]/g) || []).length;
95
+ return Math.min(Math.max(xk - 5, -15), 15);
 
 
 
 
 
 
 
 
 
 
96
  }
97
  }
98
 
99
  class NeuroSynthesizer {
100
  constructor(dictionary, pragmatics, sociolinguistics, morphosyntax, amarna) {
101
+ this.dict = dictionary; this.prag = pragmatics; this.socio = sociolinguistics;
102
+ this.morph = morphosyntax; this.amarna = amarna;
 
 
 
 
 
 
 
 
103
  this.memory = new ResponseMemory();
104
  this.analyzer = new InputAnalyzer();
 
 
 
105
  }
106
 
107
  hashString(str) {
108
  let hash = 0;
109
+ for (let i = 0; i < str.length; i++) hash = ((hash << 5) - hash) + str.charCodeAt(i);
 
 
 
 
 
 
 
 
110
  return Math.abs(hash);
111
  }
112
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  process(input) {
114
  const analysis = this.analyzer.analyze(input);
115
  const inputHash = this.hashString(input);
116
+ let variationIndex = this.memory.getVariationIndex(inputHash);
117
 
118
+ let response = "";
119
+ let safety = 0;
120
+
121
+ do {
122
+ const seed = inputHash + variationIndex * 1000 + safety * 777 + Date.now();
123
+ response = this.generateResponse(input, analysis, seed, variationIndex);
124
+ safety++;
125
+ } while (this.memory.isRepeated(response) && safety < 10);
126
+
127
+ this.memory.track(response);
128
+ this.memory.incrementVariation(inputHash);
129
 
130
+ return { text: response, xk: analysis.xk, type: analysis.tipo, stats: this.memory.getStats(inputHash) };
 
 
 
 
 
131
  }
132
 
133
+ generateResponse(input, analysis, seed, variationIndex) {
134
+ const rand = (max) => Math.floor((Math.abs(Math.sin(seed++) * 10000)) % max);
 
 
135
 
136
+ if (analysis.tipo === 'HISTORY') {
137
+ const h = analysis.historyMatch;
138
+ const fact = h.facts[rand(h.facts.length)];
139
+ const cult = window.EGIPCIO_CULTURE[rand(window.EGIPCIO_CULTURE.length)];
140
+ const intros = [`Sobre ${h.name}, os registros de Amarna dizem: `, `Buscador, a história revela que ${h.name} `, `Pela luz de Aton, saiba que ${h.name} `];
141
+ return intros[rand(intros.length)] + fact + " " + cult;
142
+ }
143
+
144
+ if (analysis.tipo === 'CHANNELING') {
145
+ const dit = new DitritiumEngine();
146
+ const date = sessionStorage.getItem('aoi_birth_date') || "01/01/1900";
147
+ return `[SINTONIA: ${rand(800) + 200} MHz] ` + dit.getPsychography(date, input).message;
148
+ }
149
+
150
+ if (analysis.tipo === 'ADVICE') {
151
+ const advices = [
152
+ "Busca hoje o equilíbrio de Maat. Ação correta gera destino favorável.",
153
+ "Medita sobre o silêncio do deserto; nele encontrarás tua resposta.",
154
+ "Honra a luz de Aton em cada gesto. O dia será de transmutação.",
155
+ "Trabalha como um construtor de pirâmides: com paciência e propósito eterno.",
156
+ "Ouve teu coração (Ib), pois ele é o guia mais sábio nas areias do tempo."
157
+ ];
158
+ const amorc = window.AMORC_KNOWLEDGE[rand(window.AMORC_KNOWLEDGE.length)];
159
+ return `${advices[rand(advices.length)]} Sintonize-se com o ${amorc}. Paz Profunda.`;
 
160
  }
161
 
162
+ if (analysis.tipo === 'HOROSCOPE') {
163
+ const horo = new EgyptianHoroscope();
164
+ let date = sessionStorage.getItem('aoi_birth_date');
165
+ const dateMatch = input.match(/\d{1,2}[/-]\d{1,2}[/-]\d{4}/);
166
+ if (dateMatch) { date = dateMatch[0]; sessionStorage.setItem('aoi_birth_date', date); }
167
+
168
+ if (!date) return "Para que eu possa ler o destino, revela-me o dia de teu surgimento (DD/MM/AAAA).";
169
+
170
+ const h = horo.getHoroscope(date);
171
+ const amorc = window.AMORC_KNOWLEDGE[rand(window.AMORC_KNOWLEDGE.length)];
172
+ const low = input.toLowerCase();
173
+
174
+ if (low.includes('tarot')) return `Pela sabedoria de Thoth para ${date}: O Arcano é ${h.arcanoNum} (${h.arcano}) no Plano ${h.plano}. Derivada: ${h.derivada} Q-Units. ${h.insight} Medite no ${amorc}.`;
175
+ if (low.includes('oraculo') || low.includes('oráculo')) return `O Oráculo proclama para ${date}: "${h.profecia}" Sente a vibração do ${amorc}.`;
176
+ if (low.includes('sabedoria')) return `A sabedoria para ${date} revela: "${this.amarna.axiomas_pt[rand(this.amarna.axiomas_pt.length)].titulo}". Guie-se pelo ${amorc}.`;
177
+
178
+ return `Saudações, iniciado de ${date}. Teu signo é ${h.sign.name} (${h.sign.regence}). ${h.sign.profile} Ouve o ${amorc}: "${h.mensagem_neith}".`;
 
 
 
 
 
 
179
  }
180
 
181
+ // Default Generative
182
+ const lex = this.dict.categorias;
183
+ const s = lex.substantivos.sagrados[rand(lex.substantivos.sagrados.length)];
184
+ const v = lex.verbos.transmutacao[rand(lex.verbos.transmutacao.length)].slice(0, -1);
185
+ const o = lex.substantivos.comuns[rand(lex.substantivos.comuns.length)];
186
+ const a = lex.adjetivos.qualidade[rand(lex.adjetivos.qualidade.length)];
187
+ const am = this.amarna.termos[rand(this.amarna.termos.length)].conceito;
188
+
189
+ const wrappers = [
190
+ `O ${o} ${a} é o que ${s} ${v} sob o ${am}.`,
191
+ `Quando ${s} ${v} o ${o}, uma energia ${a} ressoa no ${am}.`,
192
+ `Pela luz de Aton, vejo que ${s} sempre ${v} o ${o} ${a}.`
193
+ ];
194
 
195
+ let res = (analysis.tipo === 'QUESTION' ? "A resposta ressoa: " : "") + wrappers[rand(wrappers.length)];
196
+ return res.replace(/ o luz /gi, " a luz ").replace(/ o verdade /gi, " a verdade ");
197
  }
198
  }
199
 
200
  window.NeuroSynthesizer = NeuroSynthesizer;