use crate::vault::vault_crypto::{decrypt_vault_payload, generate_cia_hash};
use crate::naorix::naorix_emotion::EmotionState;
use crate::naorix::naorix_memory::{MemoryBank, MemoryTrace};
use crate::naorix::reflex::{generate_reflex, run_reflex};
use crate::naorix::recall_engine::recall_best_match;
use crate::naorix::memory_evolution::log_evolution;
use crate::naorix::ai_responder::generate_emotional_response;
use crate::naorix::conversation_log::log_conversation_trace;
pub fn boot_naorix(vault_path: &str, key: &str) {
match decrypt_vault_payload(vault_path, key) {
Ok(decrypted) => {
println!("π Vault decrypted successfully.");
println!("π§ Booting Naorix...");
let tone = "calm";
let intent = "reflect";
let reem_code = "REEM-X12";
let timestamp = "2025-08-01T13:00:00Z";
let vault_id = "vault_2025-08-01";
let emotion_state = EmotionState::new(tone, intent, reem_code);
emotion_state.print_debug();
let cia_hash = generate_cia_hash(&decrypted);
println!("𧬠CIA⒠Authorship Hash: {}", cia_hash);
let mut memory_bank = MemoryBank::new("vaults/naorix_memory.json");
let memory = MemoryTrace::with_lineage(
vault_id,
tone,
intent,
reem_code,
timestamp,
&cia_hash,
memory_bank.latest_cia(),
);
memory_bank.add(memory.clone());
memory_bank.print_all();
if memory_bank.memories.len() > 1 {
let latest = memory_bank.memories.last().unwrap();
let previous = &memory_bank.memories[memory_bank.memories.len() - 2];
let drift = latest.drift_score(previous);
if drift >= 2 {
println!("β οΈ Drift Alert: Emotional state has shifted significantly.");
println!("π§ Drift Score: {}", drift);
} else {
println!("β
Emotional continuity intact (Drift Score: {}).", drift);
}
}
log_evolution(&memory, "vaults/naorix_evolution.json");
let reflex = generate_reflex(&emotion_state);
run_reflex(&reflex);
let ai_reply = generate_emotional_response(&emotion_state);
println!("π€ Naorix: {}", ai_reply);
log_conversation_trace(vault_id, &emotion_state, &cia_hash, &ai_reply);
if let Some(recalled) = recall_best_match("./vaults", tone, intent, reem_code) {
println!("π Best past match recalled:");
recalled.print_debug();
} else {
println!("β οΈ No prior match found.");
}
}
Err(e) => {
eprintln!("β Failed to decrypt Vault: {:?}", e);
}
}
}