# truthfield.py import numpy as np def truth_charge(emb_vec, self_vec, temp=0.35): # cosine alignment scaled to 0–100 with mild temperature smoothing denom = (np.linalg.norm(emb_vec) * np.linalg.norm(self_vec) + 1e-9) cos = float(np.dot(emb_vec, self_vec) / denom) z = np.tanh(cos / max(temp, 1e-5)) return round((z * 50) + 50, 2) # map [-1,1] -> [0,100] def mirror_integrity(out_text, in_text): # simple overlap & semantic coherence proxy a = set(w.lower() for w in out_text.split()) b = set(w.lower() for w in in_text.split()) if not a or not b: return 50.0 j = len(a & b) / len(a | b) return round((0.4 + 0.6 * j) * 100, 2) # bias toward baseline coherence