@cocorograph/hub-agent 0.5.23 → 0.5.24

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 +52 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocorograph/hub-agent",
3
- "version": "0.5.23",
3
+ "version": "0.5.24",
4
4
  "description": "Hub Hosted Cockpit のローカル常駐 agent。Hub と outbound WSS で接続し、ローカルの tmux/pty を中継する。",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -21,7 +21,17 @@
21
21
 
22
22
  set -euo pipefail
23
23
 
24
- NODE_MIN_MAJOR=20
24
+ # Node.js のサポート範囲ポリシー(Active LTS のみ)。
25
+ # - 既存 node のメジャーが [MIN, MAX] に収まっていれば現状維持
26
+ # - 範囲外なら NODE_DEFAULT_BREW_FORMULA (最新 Active LTS) にアップ / ダウングレード
27
+ # 2026-05 時点の LTS スケジュール:
28
+ # - node 22: Active LTS → 2027/04 EoL
29
+ # - node 24: Active LTS → 2028/04 EoL(最新、サポート期間最長)
30
+ # - node 26: current(LTS ではない、SSL/CA 周りの問題報告あり)
31
+ NODE_MIN_MAJOR=22
32
+ NODE_MAX_MAJOR=24
33
+ NODE_DEFAULT_BREW_FORMULA="node@24"
34
+
25
35
  PACKAGE_NAME="@cocorograph/hub-agent"
26
36
  CLAUDE_CODE_PACKAGE="@anthropic-ai/claude-code"
27
37
 
@@ -225,23 +235,55 @@ ensure_pkg() {
225
235
  fi
226
236
  }
227
237
 
238
+ # macOS で brew 経由で Active LTS の node (NODE_DEFAULT_BREW_FORMULA) を導入/切替する。
239
+ # 既存の無印 node が link されていれば unlink してから新 formula を link --overwrite --force。
240
+ _install_node_lts_brew() {
241
+ local formula="$NODE_DEFAULT_BREW_FORMULA"
242
+ color_step "$formula (Active LTS) を install"
243
+ brew install "$formula"
244
+ # 既存無印 node が link されていれば外す(v26 current 等を退かす)
245
+ if brew list node >/dev/null 2>&1; then
246
+ color_step "既存 'node' formula を unlink ($formula を優先するため)"
247
+ brew unlink node 2>/dev/null || true
248
+ fi
249
+ color_step "$formula を link --overwrite --force"
250
+ brew link --overwrite --force "$formula"
251
+ hash -r 2>/dev/null || true
252
+ }
253
+
254
+ # Node.js のサポート範囲ポリシー判定。
255
+ # - 未インストール → LTS を install
256
+ # - [MIN, MAX] 範囲内 → 現状維持(ユーザーの環境を尊重)
257
+ # - 範囲未満 → LTS にアップグレード
258
+ # - 範囲超過(current 系等) → LTS にダウングレード
228
259
  ensure_node_version() {
229
260
  local v
230
261
  v=$(node --version 2>/dev/null | sed 's/^v//' | cut -d. -f1)
231
262
  if [[ -z "$v" ]]; then
232
- ensure_pkg node node nodejs
233
- return
234
- fi
235
- if (( v < NODE_MIN_MAJOR )); then
236
- color_warn "node $v は古いです (>=${NODE_MIN_MAJOR} 必須)。brew で更新を試みます"
263
+ color_step "node が未インストール → $NODE_DEFAULT_BREW_FORMULA (Active LTS) を install"
237
264
  if [[ "$(uname)" == "Darwin" ]]; then
238
- brew upgrade node || brew install node
265
+ _install_node_lts_brew
239
266
  else
240
- color_err "Node ${NODE_MIN_MAJOR}+ を手動で install してください (nvm 推奨)"
241
- exit 1
267
+ ensure_pkg node node nodejs
242
268
  fi
269
+ return
270
+ fi
271
+
272
+ if (( v >= NODE_MIN_MAJOR && v <= NODE_MAX_MAJOR )); then
273
+ color_ok "node v$v は動作保証範囲 (${NODE_MIN_MAJOR} ≤ v ≤ ${NODE_MAX_MAJOR}) 内。現状維持"
274
+ return
275
+ fi
276
+
277
+ if (( v < NODE_MIN_MAJOR )); then
278
+ color_warn "node v$v は古い (>=${NODE_MIN_MAJOR} 必須) → $NODE_DEFAULT_BREW_FORMULA にアップグレード"
243
279
  else
244
- color_ok "node $v"
280
+ color_warn "node v$v は新しすぎ (current 系) → 安定動作のため $NODE_DEFAULT_BREW_FORMULA (LTS) にダウングレード"
281
+ fi
282
+ if [[ "$(uname)" == "Darwin" ]]; then
283
+ _install_node_lts_brew
284
+ else
285
+ color_err "Node $NODE_MIN_MAJOR〜$NODE_MAX_MAJOR の LTS を手動で install してください (nvm 推奨)"
286
+ exit 1
245
287
  fi
246
288
  }
247
289