Spaces:
Sleeping
Sleeping
Update codex/formulas.py
Browse files- codex/formulas.py +16 -5
codex/formulas.py
CHANGED
|
@@ -8,16 +8,17 @@ class Formula:
|
|
| 8 |
self.expression = expression
|
| 9 |
|
| 10 |
def evaluate(self, agent: dict) -> float:
|
| 11 |
-
overlay = agent.get("collapse_overlay", {})
|
| 12 |
tau_eff = overlay.get("tau_eff", 1.0)
|
| 13 |
beta = overlay.get("beta_band", 0.5)
|
| 14 |
-
weights = overlay.get("operator_weights", {})
|
| 15 |
tier = agent.get("tier", "Tier_1")
|
| 16 |
tier_level = int(tier.split("_")[1]) if "_" in tier else 1
|
| 17 |
resonance = 1.2 if agent.get("emotional_resonance") else 1.0
|
| 18 |
|
| 19 |
-
coupling_sum = sum(weights.values())
|
| 20 |
-
|
|
|
|
| 21 |
|
| 22 |
drift_penalty = 0.18 * tier_level
|
| 23 |
drift_resilience = 1.0 + 0.05 * (tier_level - 1)
|
|
@@ -34,6 +35,16 @@ GVU_FORMULAS = {
|
|
| 34 |
}
|
| 35 |
|
| 36 |
def rft_invariants(agent: dict) -> dict:
|
| 37 |
-
|
|
|
|
|
|
|
|
|
|
| 38 |
tier = agent.get("tier", "Tier_1")
|
| 39 |
tier_level = int(tier.split("_")[1]) if "_" in tier else 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
self.expression = expression
|
| 9 |
|
| 10 |
def evaluate(self, agent: dict) -> float:
|
| 11 |
+
overlay = agent.get("collapse_overlay", {}) or {}
|
| 12 |
tau_eff = overlay.get("tau_eff", 1.0)
|
| 13 |
beta = overlay.get("beta_band", 0.5)
|
| 14 |
+
weights = overlay.get("operator_weights", {}) or {}
|
| 15 |
tier = agent.get("tier", "Tier_1")
|
| 16 |
tier_level = int(tier.split("_")[1]) if "_" in tier else 1
|
| 17 |
resonance = 1.2 if agent.get("emotional_resonance") else 1.0
|
| 18 |
|
| 19 |
+
coupling_sum = sum(v for v in weights.values() if isinstance(v, (int, float)))
|
| 20 |
+
weight_count = max(1, len(weights))
|
| 21 |
+
coupling = coupling_sum / (1.0 + 0.25 * weight_count)
|
| 22 |
|
| 23 |
drift_penalty = 0.18 * tier_level
|
| 24 |
drift_resilience = 1.0 + 0.05 * (tier_level - 1)
|
|
|
|
| 35 |
}
|
| 36 |
|
| 37 |
def rft_invariants(agent: dict) -> dict:
|
| 38 |
+
"""
|
| 39 |
+
Always returns a dict; never None. Uses safe defaults if data is missing.
|
| 40 |
+
"""
|
| 41 |
+
overlay = agent.get("collapse_overlay", {}) or {}
|
| 42 |
tier = agent.get("tier", "Tier_1")
|
| 43 |
tier_level = int(tier.split("_")[1]) if "_" in tier else 1
|
| 44 |
+
operators = agent.get("symbolic_operators", []) or []
|
| 45 |
+
return {
|
| 46 |
+
"tau_eff": overlay.get("tau_eff", 1.0),
|
| 47 |
+
"beta_band": overlay.get("beta_band", 0.5),
|
| 48 |
+
"operator_count": len(operators),
|
| 49 |
+
"tier_level": tier_level,
|
| 50 |
+
}
|