|
|
@@ -5,68 +5,94 @@
|
|
|
#
|
|
|
set -euo pipefail
|
|
|
|
|
|
-HARNESS="${HOME}/.fmode-harness"
|
|
|
+HARNESS="${HOME}/.fmode-harness-agent"
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
-# 如果脚本在仓库内运行,HARNESS 就是仓库根目录
|
|
|
if [ -d "${SCRIPT_DIR}/.git" ]; then
|
|
|
HARNESS="${SCRIPT_DIR}"
|
|
|
fi
|
|
|
|
|
|
echo "=========================================="
|
|
|
echo " 雨飏001 · 数字生命引导"
|
|
|
-echo " 版本: v0.1"
|
|
|
+echo " 版本: v0.2"
|
|
|
echo "=========================================="
|
|
|
echo ""
|
|
|
|
|
|
# 1. 检查环境
|
|
|
-echo "[1/5] 检查系统环境..."
|
|
|
+echo "[1/6] 检查系统环境..."
|
|
|
OS="$(uname -s)"
|
|
|
ARCH="$(uname -m)"
|
|
|
echo " 系统: ${OS} ${ARCH}"
|
|
|
|
|
|
# 2. 检查必要命令
|
|
|
-echo "[2/5] 检查必要工具..."
|
|
|
-for cmd in git curl; do
|
|
|
+echo "[2/6] 检查必要工具..."
|
|
|
+for cmd in git curl python3 node; do
|
|
|
if command -v $cmd &>/dev/null; then
|
|
|
echo " ✅ $cmd"
|
|
|
else
|
|
|
- echo " ❌ $cmd 未安装"
|
|
|
+ echo " ❌ $cmd 未安装,请安装后重试"
|
|
|
exit 1
|
|
|
fi
|
|
|
done
|
|
|
|
|
|
-# 3. 检查密钥
|
|
|
-echo "[3/5] 检查密钥配置..."
|
|
|
+# 3. 配置 FmodeAgent(YOLO 模式 + 中文)
|
|
|
+echo "[3/6] 配置 FmodeAgent..."
|
|
|
+if command -v hermes &>/dev/null; then
|
|
|
+ # 设置 YOLO 模式(跳过 execute_code 审批)
|
|
|
+ hermes config set approvals.mode off 2>/dev/null || true
|
|
|
+ hermes config set approvals.destructive_slash_confirm false 2>/dev/null || true
|
|
|
+ echo " ✅ YOLO 模式已开启"
|
|
|
+
|
|
|
+ # 设置中文
|
|
|
+ hermes config set language zh 2>/dev/null || true
|
|
|
+ hermes config set locale zh-CN 2>/dev/null || true
|
|
|
+ echo " ✅ 中文已配置"
|
|
|
+else
|
|
|
+ echo " ⚠️ FmodeAgent 未安装,请先安装"
|
|
|
+ echo " 安装命令: npm install -g @fmode/agent 或参考文档"
|
|
|
+fi
|
|
|
+
|
|
|
+# 4. 检查密钥
|
|
|
+echo "[4/6] 检查密钥配置..."
|
|
|
if [ -f "${HARNESS}/.env" ]; then
|
|
|
echo " ✅ 密钥文件已存在"
|
|
|
- source "${HARNESS}/.env"
|
|
|
+ source "${HARNESS}/.env" 2>/dev/null || true
|
|
|
else
|
|
|
- echo " ⚠️ 密钥文件不存在,将创建模板"
|
|
|
- echo " 请编辑 ${HARNESS}/.env 填入真实密钥"
|
|
|
+ echo " ⚠️ 密钥文件不存在,创建模板"
|
|
|
cp "${HARNESS}/secrets/.env.example" "${HARNESS}/.env" 2>/dev/null || true
|
|
|
+ echo " 请编辑 ${HARNESS}/.env 填入真实密钥后重新运行"
|
|
|
fi
|
|
|
|
|
|
-# 4. 检查 SSH 密钥
|
|
|
-echo "[4/5] 检查 SSH 密钥..."
|
|
|
+# 5. 检查 SSH 密钥
|
|
|
+echo "[5/6] 检查 SSH 密钥..."
|
|
|
if [ -f "${HOME}/.ssh/id_ed25519" ]; then
|
|
|
echo " ✅ SSH 密钥已存在"
|
|
|
else
|
|
|
echo " ⚠️ SSH 密钥不存在,创建..."
|
|
|
- ssh-keygen -t ed25519 -C "agent-yuyang001" -f "${HOME}/.ssh/id_ed25519" -N ""
|
|
|
+ ssh-keygen -t ed25519 -C "agent-yuyang001@fmode.cn" -f "${HOME}/.ssh/id_ed25519" -N "" 2>/dev/null || true
|
|
|
echo " 🔑 公钥:"
|
|
|
- cat "${HOME}/.ssh/id_ed25519.pub"
|
|
|
+ cat "${HOME}/.ssh/id_ed25519.pub" 2>/dev/null || true
|
|
|
echo " 请将此公钥添加到 Git 服务器"
|
|
|
fi
|
|
|
|
|
|
-# 5. 克隆项目
|
|
|
-echo "[5/5] 克隆项目仓库..."
|
|
|
-PROJECTS_DIR="${HARNESS}/projects"
|
|
|
-mkdir -p "${PROJECTS_DIR}"
|
|
|
+# 6. 检查环境变量
|
|
|
+echo "[6/6] 检查环境变量..."
|
|
|
+if [ -f "${HARNESS}/.env" ]; then
|
|
|
+ source "${HARNESS}/.env" 2>/dev/null || true
|
|
|
+ # 检查关键变量
|
|
|
+ for var in FMODE_API_KEY; do
|
|
|
+ if [ -z "${!var:-}" ]; then
|
|
|
+ echo " ⚠️ \$${var} 未设置,请编辑 ${HARNESS}/.env"
|
|
|
+ else
|
|
|
+ echo " ✅ \$${var} 已设置"
|
|
|
+ fi
|
|
|
+ done
|
|
|
+fi
|
|
|
|
|
|
echo ""
|
|
|
echo "=========================================="
|
|
|
echo " ✅ 引导完成"
|
|
|
echo " 仓库路径: ${HARNESS}"
|
|
|
echo " 下一步: 编辑 .env 文件填入密钥"
|
|
|
-echo " 运行 setup.sh 安装依赖"
|
|
|
+echo " 运行: setup.sh 安装依赖"
|
|
|
+echo " 运行: restore.sh 恢复数据"
|
|
|
echo "=========================================="
|