RFTSystems commited on
Commit
df03a22
·
verified ·
1 Parent(s): b1be7f5

Update interface.py

Browse files
Files changed (1) hide show
  1. interface.py +50 -8
interface.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import gradio as gr
2
  from app import run_simulation
3
  from registry_utils import append_to_registry
@@ -7,18 +8,41 @@ from lineage_tracker import register_lineage
7
  from lineage_visualizer import render_lineage_tree
8
  from waveform_renderer import render_waveform
9
  from leaderboard import generate_leaderboard
10
-
11
- # Import restored GVU_FORMULAS and invariants from codex/formulas
12
  from codex.formulas import GVU_FORMULAS, rft_invariants
13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  # --- Simulation ---
15
  def simulate(agent_id, collapse_torque, emotional_resonance, tier_drift):
16
  mutation_profile = build_mutation(agent_id, collapse_torque, tier_drift, emotional_resonance)
17
- agent, sha512 = run_simulation(agent_id, mutation_profile) # run_simulation must return (agent, hash)
 
18
 
19
- # Use GVU_FORMULAS for scoring
20
- score = GVU_FORMULAS["Formula_20"].evaluate(agent)
21
- invariants = rft_invariants(agent)
 
 
 
 
22
 
23
  fields = {
24
  "Φᵢ": f"<div><b>Φᵢ Awareness</b><br>Tier={agent.get('tier')} τ_eff={invariants['tau_eff']}</div>",
@@ -34,12 +58,19 @@ def simulate(agent_id, collapse_torque, emotional_resonance, tier_drift):
34
  f"|K|={invariants['operator_count']}, tier={invariants['tier_level']}<br>"
35
  f"🔐 <b>SHA-512:</b> <code>{sha512}</code>"
36
  )
37
- return fields["Φᵢ"], fields["Kᵢⱼ"], fields["Φ_col"], render_waveform(agent, score), summary
 
 
 
 
 
 
38
 
39
  # --- Forge ---
40
  def forge_agent(parent_id, new_id, collapse_torque, emotional_resonance, tier_drift, max_depth):
41
  mutation_profile = build_mutation(new_id, collapse_torque, tier_drift, emotional_resonance)
42
  agent, _ = run_simulation(new_id, mutation_profile)
 
43
  register_lineage(parent_id, new_id, {
44
  "tier_drift": tier_drift,
45
  "collapse_torque": collapse_torque,
@@ -52,6 +83,15 @@ with gr.Blocks() as demo:
52
  gr.Markdown("# 🧠 RFT Codex Sovereign")
53
  gr.Markdown("Rendered Frame Theory simulation, lineage, and GVU sealing. Author: Liam Grinstead.")
54
 
 
 
 
 
 
 
 
 
 
55
  # Simulation Tab
56
  with gr.Tab("Simulate Agent"):
57
  with gr.Row():
@@ -61,9 +101,11 @@ with gr.Blocks() as demo:
61
  tier_drift = gr.Dropdown(["Tier_1","Tier_2","Tier_6"], label="Tier Drift")
62
  simulate_btn = gr.Button("Run Simulation")
63
 
 
64
  with gr.Row():
65
  phi_i = gr.HTML(label="Φᵢ Awareness Field")
66
  k_ij = gr.HTML(label="Kᵢⱼ Correlation Kernel")
 
67
  phi_col = gr.HTML(label="Φ_col Coherence Field")
68
  waveform = gr.HTML(label="Collapse Torque Waveform")
69
 
@@ -103,4 +145,4 @@ with gr.Blocks() as demo:
103
  refresh_leaderboard = gr.Button("Refresh Leaderboard")
104
  refresh_leaderboard.click(generate_leaderboard, outputs=leaderboard_output)
105
 
106
- demo.launch()
 
1
+ # interface.py (hotfix)
2
  import gradio as gr
3
  from app import run_simulation
4
  from registry_utils import append_to_registry
 
8
  from lineage_visualizer import render_lineage_tree
9
  from waveform_renderer import render_waveform
10
  from leaderboard import generate_leaderboard
 
 
11
  from codex.formulas import GVU_FORMULAS, rft_invariants
12
 
13
+ # --- Safety guard to ensure agent has required keys ---
14
+ def ensure_agent_shape(agent: dict, mutation_profile: dict) -> dict:
15
+ if not isinstance(agent, dict):
16
+ agent = {}
17
+
18
+ agent.setdefault("id", mutation_profile.get("agent_id", "Agent_Unknown"))
19
+ agent.setdefault("tier", mutation_profile.get("tier_drift", "Tier_1"))
20
+ agent.setdefault("symbolic_operators", mutation_profile.get("symbolic_operators", ["R", "O", "T", "P"]))
21
+ agent.setdefault("emotional_resonance", mutation_profile.get("emotional_resonance", False))
22
+
23
+ overlay = agent.get("collapse_overlay", {})
24
+ if not isinstance(overlay, dict):
25
+ overlay = {}
26
+ overlay.setdefault("tau_eff", 1.8 if mutation_profile.get("collapse_torque") == "Gen6508_M5" else 1.2)
27
+ overlay.setdefault("beta_band", 0.65 if mutation_profile.get("collapse_torque") == "Gen6508_M5" else 0.4)
28
+ overlay.setdefault("operator_weights", {("R","O"): 0.9, ("T","P"): 0.7})
29
+ agent["collapse_overlay"] = overlay
30
+
31
+ return agent
32
+
33
  # --- Simulation ---
34
  def simulate(agent_id, collapse_torque, emotional_resonance, tier_drift):
35
  mutation_profile = build_mutation(agent_id, collapse_torque, tier_drift, emotional_resonance)
36
+ agent, sha512 = run_simulation(agent_id, mutation_profile)
37
+ agent = ensure_agent_shape(agent, mutation_profile)
38
 
39
+ # Try scoring and rendering safely
40
+ try:
41
+ score = GVU_FORMULAS["Formula_20"].evaluate(agent)
42
+ invariants = rft_invariants(agent)
43
+ except Exception as e:
44
+ err = f"<div style='color:#c0392b'><b>Error scoring agent:</b> {e}</div>"
45
+ return err, err, err, err, err
46
 
47
  fields = {
48
  "Φᵢ": f"<div><b>Φᵢ Awareness</b><br>Tier={agent.get('tier')} τ_eff={invariants['tau_eff']}</div>",
 
58
  f"|K|={invariants['operator_count']}, tier={invariants['tier_level']}<br>"
59
  f"🔐 <b>SHA-512:</b> <code>{sha512}</code>"
60
  )
61
+ # Safe waveform render
62
+ try:
63
+ wf = render_waveform(agent, score)
64
+ except Exception as e:
65
+ wf = f"<div style='color:#c0392b'><b>Error rendering waveform:</b> {e}</div>"
66
+
67
+ return fields["Φᵢ"], fields["Kᵢⱼ"], fields["Φ_col"], wf, summary
68
 
69
  # --- Forge ---
70
  def forge_agent(parent_id, new_id, collapse_torque, emotional_resonance, tier_drift, max_depth):
71
  mutation_profile = build_mutation(new_id, collapse_torque, tier_drift, emotional_resonance)
72
  agent, _ = run_simulation(new_id, mutation_profile)
73
+ agent = ensure_agent_shape(agent, mutation_profile)
74
  register_lineage(parent_id, new_id, {
75
  "tier_drift": tier_drift,
76
  "collapse_torque": collapse_torque,
 
83
  gr.Markdown("# 🧠 RFT Codex Sovereign")
84
  gr.Markdown("Rendered Frame Theory simulation, lineage, and GVU sealing. Author: Liam Grinstead.")
85
 
86
+ # Compact CSS to prevent clipping
87
+ gr.Markdown("""
88
+ <style>
89
+ .gr-column { gap: 8px; }
90
+ .gradio-container { padding-bottom: 24px; }
91
+ .output-grid .wrap { max-height: 200px; overflow-y: auto; }
92
+ </style>
93
+ """)
94
+
95
  # Simulation Tab
96
  with gr.Tab("Simulate Agent"):
97
  with gr.Row():
 
101
  tier_drift = gr.Dropdown(["Tier_1","Tier_2","Tier_6"], label="Tier Drift")
102
  simulate_btn = gr.Button("Run Simulation")
103
 
104
+ # Split outputs into two rows to avoid overflow
105
  with gr.Row():
106
  phi_i = gr.HTML(label="Φᵢ Awareness Field")
107
  k_ij = gr.HTML(label="Kᵢⱼ Correlation Kernel")
108
+ with gr.Row():
109
  phi_col = gr.HTML(label="Φ_col Coherence Field")
110
  waveform = gr.HTML(label="Collapse Torque Waveform")
111
 
 
145
  refresh_leaderboard = gr.Button("Refresh Leaderboard")
146
  refresh_leaderboard.click(generate_leaderboard, outputs=leaderboard_output)
147
 
148
+ demo.launch()