#!/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
    git-credential)   exec "${ZARYA_DIR}/cmd/git-credential.sh" "$@" ;;
    exec)             exec "${ZARYA_DIR}/cmd/exec.sh" "$@" ;;
    p|pod|pods)       exec "${ZARYA_DIR}/cmd/pods.sh" "$@" ;;
    node|nodes)       exec "${ZARYA_DIR}/cmd/nodes.sh" "$@" ;;
    flux)             exec "${ZARYA_DIR}/cmd/flux.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" "$@" ;;
    srv-init|vps-init) exec "${ZARYA_DIR}/cmd/vps-init.sh" "$@" ;;
    help|--help|-h)
        cat <<EOF
ZARYA Operator Interface (z)
Диагностика и мониторинг:
  z pods [-w] [-n <ns>] [-s <query>] [-A]   Просмотр подов
  z nodes [-w]                              Статус нод, роли, зона и регион
  z errors                                  Мгновенный триаж сломанных сервисов
  z logs <service> [-f] [-t <N>]            Логи сервиса без ввода неймспейса
  z net                                     Сетевой радар доступности узлов (1 сек)
  z disks                                   Срез пулов astra/terra и томов K8s
GitOps и оркестрация:
  z flux [status|sync|logs]                 Управление GitOps-конвергенцией
  z exec <команда...>                       Вызов бинарников внутри RAM-изоляции
Сессия и доступы:
  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-изоляции
  z srv-init <IP> [ALIAS] [FLAGS]           Day-0 удаленный бутстрап ноды .srv в 1 клик
Телеметрия и LLM:
  z snap                                    Снятие аудита в state/snapshots/
  z pack [all|atlas|code|state]             Сборка контекстов Repomix для LLM
EOF
        ;;
    *)
        log_err "Неизвестная команда: ${SUBCMD}. Введите 'z help'."
        exit 1
        ;;
esac