#!/bin/bash
set -euo pipefail
ZARYA_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
source "${ZARYA_DIR}/lib/common.sh"

SUBCMD="${1:-help}"
shift || true

case "${SUBCMD}" in
    p|pod|pods)       exec "${ZARYA_DIR}/cmd/pods.sh" "$@" ;;
    e|err|errors)     exec "${ZARYA_DIR}/cmd/errors.sh" "$@" ;;
    l|log|logs)       exec "${ZARYA_DIR}/cmd/logs.sh" "$@" ;;
    n|net)            exec "${ZARYA_DIR}/cmd/net.sh" "$@" ;;
    d|df|disks)       exec "${ZARYA_DIR}/cmd/disks.sh" "$@" ;;
    unseal)           exec "${ZARYA_DIR}/cmd/unseal.sh" "$@" ;;
    login|start)      exec "${ZARYA_DIR}/cmd/session.sh" "start" "$@" ;;
    logout|clean)     exec "${ZARYA_DIR}/cmd/session.sh" "clean" "$@" ;;
    up)               exec "${ZARYA_DIR}/cmd/up.sh" "$@" ;;
    run)              exec "${ZARYA_DIR}/cmd/run.sh" "$@" ;;
    a|apply)          exec "${ZARYA_DIR}/cmd/a.sh" "$@" ;;
    snap)             exec "${ZARYA_DIR}/cmd/snap.sh" "$@" ;;
    pack)             exec "${ZARYA_DIR}/cmd/pack.sh" "$@" ;;
    reset|nuke)       exec "${ZARYA_DIR}/layers/reset.sh" "$@" ;;
    gc)               exec "${ZARYA_DIR}/layers/gc.sh" "$@" ;;
    help|--help|-h)
        cat <<EOF
Zarya C2 Operator Interface (z)
Команды диагностики:
  z pods [-w] [-n <ns>] [-s <query>] [-A]   Просмотр подов
  z errors                                  Мгновенный триаж сломанных сервисов
  z logs <service> [-f] [-t <N>]            Логи любого сервиса без ввода неймспейса
  z net                                     Сетевой радар доступности узлов (1 сек)
  z disks                                   Срез пулов astra/terra и ZVOL томов K8s
Управление и сессия:
  z login [TTL]                             Открытие смены (YubiKey + RAM)
  z logout                                  Мгновенная очистка RAM
  z unseal                                  Распечатывание OpenBao Vault
Деплой и IaC:
  z up [layer]                              Макро-слои (host, net, tier0, talos, apps, all)
  z run <selector>                          Плейбуки Ansible (01, 02)
  z a [-auto-approve]                       OpenTofu apply в RAM-изоляции
Телеметрия и LLM:
  z snap                                    Снятие полного .md аудита в snapshots/
  z pack [code|state|atlas]                 Сборка контекста Repomix
EOF
        ;;
    *)
        log_err "Неизвестная команда: ${SUBCMD}. Введите 'z help'."
        exit 1
        ;;
esac