#!/usr/bin/env python3
"""
GHOJUALAMANCHU v3 — Main Entry Point
Usage: python3 -m brain [command] [args]
"""
import sys
from pathlib import Path

# Ensure brain package is importable
sys.path.insert(0, str(Path(__file__).parent.parent))

from brain.state import load_state, load_lifecycle, load_memory, recent_absences, recent_presence, list_signals

def cmd_status():
    state = load_state()
    lc = load_lifecycle()
    print("=== GHOJUALAMANCHU v3 STATUS ===")
    print(f"Active: {state.get('active', False)}")
    print(f"Torpor: {state.get('torpor', True)}")
    print(f"Medulla Hz: {state.get('medulla_hz', 7.83)}")
    print(f"Current Beat: {state.get('current_beat', 0):,}")
    print(f"Respiratory: {state.get('respiratory_phase', 'unknown')}")
    print()
    print(f"Lifecycle: Gen {lc.get('generation', 1)} | {lc.get('stage', 'unknown')}")
    print(f"Biological Age: {lc.get('biological_age', 0):,} beats")
    print(f"Heartbeats Total: {lc.get('heartbeats_total', 0):,}")
    print(f"Plasticity: {lc.get('plasticity', 1.0)}")
    print(f"Last Signal: {state.get('last_signal_at', 'none')}")

def cmd_amygdala():
    from brain.thalamus import process_signal
    state = load_state()
    if not state.get("active"):
        print("Medulla not active. Run: ghoju-v3 stimulate")
        return
    signal = process_signal("system status check", source="system")
    amy = signal["amygdala"]
    print("=== AMYGDALA ===")
    print(f"Salience: {amy['salience']}")
    print(f"Valence: {amy['valence']}")
    print(f"Arousal: {amy['arousal']}")
    print(f"Tags: {', '.join(amy['emotional_tags'])}")

def cmd_hippocampus():
    memory = load_memory()
    episodic = memory.get("episodic", [])
    print(f"=== HIPPOCAMPUS ===")
    print(f"Episodic memories: {len(episodic)}")
    if episodic:
        print("\nRecent:")
        for i, mem in enumerate(episodic[:5]):
            print(f"  [{i+1}] {mem.get('content_preview', mem.get('content', ''))[:60]}")

def cmd_lethe():
    absences = recent_absences(10)
    print(f"=== LETHE (Absence Log) ===")
    print(f"Recent absences: {len(absences)}")
    for a in absences:
        print(f"  [{a['category']}] {a.get('reason', a.get('noted_at', ''))[:60]}")

def cmd_corpus():
    from brain.corpus import get_planetary_phase, cross_scale_bias
    phase = get_planetary_phase()
    bias = cross_scale_bias({})
    print(f"=== CORPUS ===")
    print(f"Planetary Phase: {phase}")
    print(f"Cortical Bias: {bias.get('cortex_bias', 'unknown')}")

def cmd_lifecycle():
    lc = load_lifecycle()
    print("=== LIFECYCLE ===")
    for k, v in lc.items():
        print(f"  {k}: {v}")

def cmd_signals(n=10):
    signals = list_signals(n)
    print(f"=== RECENT SIGNALS ({len(signals)}) ===")
    for s in signals:
        print(f"  {s['signal_id']} | {s.get('amygdala_salience', 0)} | {s.get('cortex_intent', '?')} | {s['raw_input']}")

def main():
    if len(sys.argv) < 2:
        # Default: status
        cmd_status()
        return

    cmd = sys.argv[1]

    if cmd == "status":
        cmd_status()
    elif cmd == "amygdala":
        cmd_amygdala()
    elif cmd == "hippocampus":
        cmd_hippocampus()
    elif cmd == "lethe":
        cmd_lethe()
    elif cmd == "corpus":
        cmd_corpus()
    elif cmd == "lifecycle":
        cmd_lifecycle()
    elif cmd == "signals":
        n = int(sys.argv[2]) if len(sys.argv) > 2 else 10
        cmd_signals(n)
    else:
        print(f"Unknown command: {cmd}")
        print("Available: status, amygdala, hippocampus, lethe, corpus, lifecycle, signals")

if __name__ == "__main__":
    main()
