RFTSystems's picture
Update app.py
4f7778d verified
# app.py
# Author: Liam Grinstead
# Purpose: Run agent simulations, mutations, falsifiability checks, and validation stages with automatic logging
from modules.agent_spawner import spawn_agent
from modules.mutation_engine import mutate_agent
from modules.field_visualizer import render_fields
from modules.falsifiability_bench import run_falsifiability
from modules.codex_logger import log_artifact
from modules.codex_viewer import load_codex
import gradio as gr
import stage1 # later add stage2, stage3, etc.
def run_simulation(agent_id, mutation_profile):
"""
Run a full simulation cycle:
1. Spawn agent
2. Apply mutation profile
3. Render fields (optional)
4. Run falsifiability bench
5. Log artifact with SHA-512 seal
"""
agent = spawn_agent(agent_id)
mutated = mutate_agent(agent, mutation_profile)
try:
render_fields(mutated)
except Exception:
pass
score, hash_val = run_falsifiability(mutated)
log_artifact(mutated, score, hash_val)
return mutated, hash_val
# ---------------- Validation Stage Wrapper ----------------
def run_stage(stage_name, mode, steps_or_epochs, batch, lr):
if stage_name == "Stage 1 — CIFAR-10 Baseline":
stage1.train(
mode=mode,
epochs=int(steps_or_epochs),
batch=int(batch),
lr=float(lr),
log_path="stage1_cifar10_log.jsonl"
)
return f"Stage 1 complete.\nMode: {mode}\nEpochs: {steps_or_epochs}\nBatch: {batch}\nLR: {lr}\nTelemetry saved to stage1_cifar10_log.jsonl"
else:
return "Stage not yet implemented."
# ---------------- Gradio Interface ----------------
iface = gr.Interface(
fn=run_stage,
inputs=[
gr.Dropdown(["Stage 1 — CIFAR-10 Baseline"], label="Select Stage"),
gr.Dropdown(["RFT", "BASE"], label="Mode"),
gr.Number(label="Epochs", value=5),
gr.Number(label="Batch Size", value=256),
gr.Number(label="Learning Rate", value=5e-4),
],
outputs="text",
title="RFTSystems — Symbolic Mutations & Validation",
description="Run agent simulations or validation stages of Rendered Frame Theory (RFT)."
)
if __name__ == "__main__":
iface.launch()