"""Live Realm Pulse โ€” surfaces what the simulation is doing right now.""" from __future__ import annotations from world.book_of_ages import get_entries from world.database import get_world_state from world.events import get_active_world_event, get_recent_interactions def render_realm_pulse(limit: int = 8) -> str: """Ticker of recent world activity โ€” encounters, events, arrivals.""" state = get_world_state() day = state.get("current_day", 1) items: list[tuple[str, str, str]] = [] # (kind, headline, detail) event = get_active_world_event() if event: items.append(( "event", event.get("title", "Something stirs"), event.get("description", "")[:160], )) for ix in get_recent_interactions(limit=4): a = ix.get("entity_a_name", "Someone") b = ix.get("entity_b_name", "someone else") loc = (ix.get("location_name") or "").replace("The ", "") items.append(( "encounter", f"{a} met {b}", ix.get("book_of_ages_entry") or ix.get("description", "")[:140], )) if loc: items[-1] = (items[-1][0], f"{items[-1][1]} ยท {loc}", items[-1][2]) for entry in get_entries(limit=3, entry_type="arrival"): items.append(("arrival", "A new soul arrived", entry.get("content", "")[:140])) if not items: return """
Realm Pulse

The world breathes quietly. Summon something โ€” the Garden will remember.

""" cards = [] for kind, headline, detail in items[:limit]: cards.append(f"""
{kind}

{headline}

{detail}

Day {day}
""") return f"""
Realm Pulse What happened while you were away
{"".join(cards)}
"""