## 机制 - nodeagentd 常驻进程监听 UDS($TMPDIR/nodeagentd.sock),持有与被控端的 长连接池(autoReconnect,每设备一条,LRU 上限 8,空闲 5min 释放) - CLI withClient 检测 socket 存活 → 经 daemon JSON-lines 转发 invoke(虚拟 client); daemon 自身错误静默回退直连,业务错误原样透传 —— 零行为变化,纯加速层 - CLI 新命令: nodeagent daemon start|stop|status;打包新增 nodeagentd 产物 ## 实测(真机) - 轻调用(info): 752ms -> 527ms(省 TLS+hello/challenge/auth,约 30%) - 轻调用 5 连发(clip.get): 2.58s -> 2.41s - 重调用(ps 远端 CPU 采样 1.4s)提速不显著 —— 瓶颈在远端执行而非握手,符合预期 - unit 26/26、e2e 21/21 全绿
69 lines
2.1 KiB
Bash
69 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
||
#
|
||
# 把 nodeagent 控制端安装到 ~/.local/bin(通常已在 PATH 中)。
|
||
#
|
||
# 用法:
|
||
# pnpm pack:mac && bash scripts/install-macos.sh
|
||
# NODEAGENT_BIN_DIR=/usr/local/bin bash scripts/install-macos.sh
|
||
#
|
||
set -euo pipefail
|
||
|
||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||
SRC="$ROOT/release/nodeagent-macos"
|
||
BIN_DIR="${NODEAGENT_BIN_DIR:-$HOME/.local/bin}"
|
||
|
||
# 1. 检查 Node.js(Mac 作为控制端需要本机 Node;不像 Windows 被控端可自带运行时)
|
||
if ! command -v node >/dev/null 2>&1; then
|
||
echo "✗ 未找到 Node.js。请先安装 Node.js 22+(推荐: brew install node)" >&2
|
||
exit 1
|
||
fi
|
||
VER="$(node --version | tr -d 'v')"
|
||
MAJOR="${VER%%.*}"
|
||
if [ "$MAJOR" -lt 22 ]; then
|
||
echo "✗ 需要 Node.js 22+,当前 v$VER" >&2
|
||
exit 1
|
||
fi
|
||
echo "✓ Node.js v$VER"
|
||
|
||
# 2. 检查构建产物
|
||
if [ ! -f "$SRC/nodeagent" ] || [ ! -f "$SRC/nodeagent-mcp" ] || [ ! -f "$SRC/nodeagentd" ]; then
|
||
echo "✗ 未找到构建产物:$SRC" >&2
|
||
echo " 请先在项目目录运行: pnpm pack:mac" >&2
|
||
exit 1
|
||
fi
|
||
|
||
# 3. 安装(install 会设置 755 权限)
|
||
mkdir -p "$BIN_DIR"
|
||
install -m 755 "$SRC/nodeagent" "$BIN_DIR/nodeagent"
|
||
install -m 755 "$SRC/nodeagentd" "$BIN_DIR/nodeagentd"
|
||
install -m 755 "$SRC/nodeagent-mcp" "$BIN_DIR/nodeagent-mcp"
|
||
echo "✓ 已安装到 $BIN_DIR"
|
||
echo " - nodeagent 控制端 CLI"
|
||
echo " - nodeagentd 常驻连接池 daemon(nodeagent daemon start 拉起)"
|
||
echo " - nodeagent-mcp MCP server(供 WorkBuddy 调用)"
|
||
|
||
# 4. PATH 检查
|
||
case ":$PATH:" in
|
||
*":$BIN_DIR:"*) ;;
|
||
*)
|
||
echo "⚠️ $BIN_DIR 不在 PATH 中,请追加到 ~/.zshrc:"
|
||
echo " export PATH=\"$BIN_DIR:\$PATH\""
|
||
;;
|
||
esac
|
||
|
||
# 5. 打印 MCP 配置片段
|
||
cat <<EOF
|
||
|
||
── 把下面这段加入 ~/.workbuddy/mcp.json ─────────────────────────
|
||
{
|
||
"mcpServers": {
|
||
"nodeagent": {
|
||
"command": "$BIN_DIR/nodeagent-mcp"
|
||
}
|
||
}
|
||
}
|
||
────────────────────────────────────────────────────────────────
|
||
|
||
验证: nodeagent --help
|
||
EOF
|