diff --git a/scripts/ai-setup.sh b/scripts/ai-setup.sh index 8c8d94c..d16f875 100755 --- a/scripts/ai-setup.sh +++ b/scripts/ai-setup.sh @@ -94,8 +94,19 @@ fi # ── 1. Node.js ─────────────────────────────────────────────── info "Проверяю Node.js..." -if ! command -v node &>/dev/null; then - info "Пытаюсь установить Node.js..." +# Хуки (claude-notifier и др.) используют optional chaining (?.) и nullish +# coalescing (??) — нужен Node >=18. Проверяем не только наличие node, но и +# мажорную версию, иначе системный v12 (Ubuntu 22.04) проходит проверку, а хуки падают. +node_major=0 +if command -v node &>/dev/null; then + node_major="$(node -p 'process.versions.node.split(".")[0]' 2>/dev/null || echo 0)" +fi +if [ "${node_major:-0}" -lt 18 ]; then + if [ "${node_major:-0}" -gt 0 ]; then + info "Найден Node.js v${node_major}, нужен >=18. Обновляю..." + else + info "Пытаюсь установить Node.js..." + fi if command -v brew &>/dev/null; then brew install node elif command -v apt-get &>/dev/null; then