"""
🧠 neurotron_config.py
NFDOS — Núcleo de parâmetros vitais estáticos do Neurotron

Este módulo define apenas:
- parâmetros cognitivos estáticos
- thresholds
- limites
- caminhos locais relativos ao package (ex: DATA_DIR interno)
Ele NÃO define:
- diretórios de runtime (/var/neurotron, /tmp)
- diretórios de logs dinâmicos
- configurações voláteis
Essas pertencem ao runtime e são avaliadas no __main__.
"""

from pathlib import Path

# ============================================================================
# 📁 Diretórios internos do package (não confundir com runtime!)
# ============================================================================

THIS_FILE = Path(__file__).resolve()
SRC_DIR = THIS_FILE.parent                    # .../neurotron/src/neurotron
BASE_DIR = SRC_DIR.parent                     # .../neurotron/src

# Diretórios que fazem parte da instalação do package
DATA_DIR = BASE_DIR / "data"
CONFIG_DIR = DATA_DIR / "configs"
PACKAGE_LOG_DIR = DATA_DIR / "logs"   # logs do próprio package (não runtime!)

# ============================================================================
# ⚙️ Parâmetros Cognitivos
# ============================================================================

NEUROTRON_TICK = 1.0
NEUROTRON_VERBOSITY = 1
NEUROTRON_MODE = "diagnostic"

NEUROTRON_HOMEOSTASIS = 85.0

HOMEOSTASIS_CPU_WARN = 70.0
HOMEOSTASIS_CPU_ALERT = 85.0
HOMEOSTASIS_MEM_WARN = 75.0
HOMEOSTASIS_MEM_ALERT = 90.0
HOMEOSTASIS_LOAD_WARN = 1.5
HOMEOSTASIS_LOAD_ALERT = 3.0

NEUROTRON_DIAG_EVERY_TICKS = 5
NEUROTRON_TICK_MIN = 0.5
NEUROTRON_TICK_MAX = 3.0
NEUROTRON_TICK_STEP = 0.25

NEUROTRON_SEED = 42
NEUROTRON_MEMORY_SIZE = 256  # KB

# ============================================================================
# 🔌 Subsistemas
# ============================================================================

CORTEX_MAX_THREADS = 1
CORTEX_LOOP_DELAY = 0.1

HIPPOCAMPUS_LOG_RETENTION = 100
HIPPOCAMPUS_AUTOSAVE = True

MOTOR_OUTPUT_DEVICE = "console"
MOTOR_SHOW_SYMBOLS = True

PERCEPTION_CPU_SOURCE = "/proc/stat"
PERCEPTION_MEM_SOURCE = "/proc/meminfo"
PERCEPTION_UPDATE_INTERVAL = 2.0

# ============================================================================
# 📊 Telemetria e diagnóstico
# ============================================================================

NEUROTRON_EXPANSION_MODE = "none"
NEUROTRON_DATASET_PATH = DATA_DIR
NEUROTRON_HISTORY_KEEP = 8
NEUROTRON_DIAG_SCHEMA = "v4"

HEARTBEAT_ENABLED = True
HEARTBEAT_STYLE = "compact"

NEUROTRON_THRESHOLDS = {
    "cpu_high": 85.0,
    "mem_high": 90.0,
    "load1_high": 2.0,
}

TELEMETRY_MAXLEN = 64
TELEMETRY_FLUSH_EVERY_TICKS = 5
