@cocorograph/hub-agent 0.6.75 → 0.6.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/scripts/install.sh +51 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocorograph/hub-agent",
3
- "version": "0.6.75",
3
+ "version": "0.6.77",
4
4
  "description": "Hub Hosted Cockpit のローカル常駐 agent。Hub と outbound WSS で接続し、ローカルの tmux/pty を中継する。",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -491,6 +491,52 @@ _install_node_lts_brew() {
491
491
  hash -r 2>/dev/null || true
492
492
  }
493
493
 
494
+ # Linux で Active LTS の node を導入する。
495
+ # Ubuntu の apt 素 nodejs は 24.04 でも v18 でポリシー (>=22) を満たせないため、
496
+ # NodeSource (setup_<major>.x) を使ってシステムワイドに最新 LTS を導入する。既存の
497
+ # apt 版 nodejs があっても apt-get install -y nodejs が NodeSource 版へ置き換える。
498
+ _install_node_lts_linux() {
499
+ local major="${NODE_DEFAULT_BREW_FORMULA##*@}" # "node@24" -> "24"
500
+ color_step "NodeSource 経由で Node ${major} (Active LTS) を install"
501
+ if present apt-get; then
502
+ retry 3 bash -c "curl -fsSL https://deb.nodesource.com/setup_${major}.x | sudo -E bash -"
503
+ retry 3 sudo apt-get install -y nodejs
504
+ elif present dnf; then
505
+ retry 3 bash -c "curl -fsSL https://rpm.nodesource.com/setup_${major}.x | sudo -E bash -"
506
+ retry 3 sudo dnf install -y nodejs
507
+ else
508
+ color_err "NodeSource 非対応の環境です。Node ${NODE_MIN_MAJOR}+ を手動で install してください (nvm 推奨)"
509
+ exit 1
510
+ fi
511
+ hash -r 2>/dev/null || true
512
+ color_ok "node $(node --version 2>/dev/null || echo '?') を導入"
513
+ }
514
+
515
+ # ネイティブアドオン (node-pty 等) のビルドに必要な make / g++ / python3 を導入する。
516
+ # node-pty は prebuild が無いと node-gyp rebuild にフォールバックするが、クリーンな
517
+ # Ubuntu には build-essential が無く `gyp ERR! not found: make` で失敗する
518
+ # (WSL クリーン Ubuntu で発覚)。macOS は Xcode CLT 前提なので何もしない。
519
+ ensure_build_tools() {
520
+ [[ "$(uname)" == "Darwin" ]] && return 0
521
+ if present make && present g++; then
522
+ color_ok "build tools (make / g++) already installed"
523
+ return 0
524
+ fi
525
+ color_step "ネイティブビルド依存 (build-essential / python3) を install"
526
+ if present apt-get; then
527
+ retry 3 sudo apt-get update -y
528
+ retry 3 sudo apt-get install -y build-essential python3
529
+ elif present dnf; then
530
+ retry 3 sudo dnf groupinstall -y "Development Tools"
531
+ retry 3 sudo dnf install -y python3
532
+ elif present pacman; then
533
+ retry 3 sudo pacman -S --noconfirm base-devel python
534
+ else
535
+ color_err "対応するパッケージマネージャが見つかりません。make / g++ / python3 を手動で install してください"
536
+ exit 1
537
+ fi
538
+ }
539
+
494
540
  # Node.js のサポート範囲ポリシー判定。
495
541
  # - 未インストール → LTS を install
496
542
  # - [MIN, MAX] 範囲内 → 現状維持(ユーザーの環境を尊重)
@@ -507,7 +553,7 @@ ensure_node_version() {
507
553
  if [[ "$(uname)" == "Darwin" ]]; then
508
554
  _install_node_lts_brew
509
555
  else
510
- ensure_pkg node node nodejs
556
+ _install_node_lts_linux
511
557
  fi
512
558
  return
513
559
  fi
@@ -525,8 +571,7 @@ ensure_node_version() {
525
571
  if [[ "$(uname)" == "Darwin" ]]; then
526
572
  _install_node_lts_brew
527
573
  else
528
- color_err "Node $NODE_MIN_MAJOR〜$NODE_MAX_MAJOR の LTS を手動で install してください (nvm 推奨)"
529
- exit 1
574
+ _install_node_lts_linux
530
575
  fi
531
576
  }
532
577
 
@@ -711,7 +756,7 @@ EOF
711
756
 
712
757
  main() {
713
758
  color_step "hub-agent ワンライナーセットアップを開始"
714
- STEP_TOTAL=10
759
+ STEP_TOTAL=11
715
760
  STEP_NUM=0
716
761
 
717
762
  step_header "Homebrew"
@@ -720,6 +765,8 @@ main() {
720
765
  ensure_pkg tmux tmux tmux
721
766
  step_header "Node.js (Active LTS)"
722
767
  ensure_node_version
768
+ step_header "Build tools (native addons)"
769
+ ensure_build_tools
723
770
  step_header "npm global prefix"
724
771
  ensure_npm_user_prefix
725
772
  # ensure_node_version 直後だと brew link でシェルの command hash がズレている