Files
homelab/scripts/sync-agy-session.sh

40 lines
2.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# ==============================================================================
# sync-agy-session.sh
# 用途:将本机 (MacBook Air) 当前的 AGY 会话上下文与 GEMINI.md 永久记忆同步至
# Mac mini 云端工作台 (https://agy.961504.xyz),实现网页端无缝接力
# ==============================================================================
set -euo pipefail
SESSION_ID="${1:-6293ebb4-df60-4db6-bf5d-df33433ba106}"
MINI_HOST="${MINI_HOST:-mini}"
AGY_DIR="$HOME/.gemini/antigravity-cli"
echo "==> [1/4] 同步全局永久记忆文件 GEMINI.md 至本机与 Mac mini..."
cp /Users/ixvii0iv/homelab/GEMINI.md "$HOME/GEMINI.md"
ssh "$MINI_HOST" "mkdir -p ~/homelab ~/workspace ~/.gemini/antigravity-cli/conversations ~/.gemini/antigravity-cli/brain"
rsync -az /Users/ixvii0iv/homelab/GEMINI.md "$MINI_HOST:~/GEMINI.md"
rsync -az /Users/ixvii0iv/homelab/GEMINI.md "$MINI_HOST:~/homelab/GEMINI.md"
rsync -az /Users/ixvii0iv/homelab/GEMINI.md "$MINI_HOST:~/workspace/GEMINI.md"
echo "==> [2/4] 同步会话索引库与历史记录 (conversation_summaries.db / history.jsonl)..."
for f in conversation_summaries.db conversation_summaries.db-wal conversation_summaries.db-shm jetbox_summaries_proto.pb history.jsonl; do
if [ -f "$AGY_DIR/$f" ]; then
rsync -az "$AGY_DIR/$f" "$MINI_HOST:~/.gemini/antigravity-cli/$f"
fi
done
echo "==> [3/4] 同步当前会话数据库与 Brain 上下文 ($SESSION_ID)..."
rsync -az "$AGY_DIR/conversations/${SESSION_ID}".db* "$MINI_HOST:~/.gemini/antigravity-cli/conversations/"
if [ -d "$AGY_DIR/brain/${SESSION_ID}" ]; then
rsync -az "$AGY_DIR/brain/${SESSION_ID}/" "$MINI_HOST:~/.gemini/antigravity-cli/brain/${SESSION_ID}/"
fi
echo "==> [4/4] 在 Mac mini 的 tmux (agy) 会话中配置一键恢复别名..."
ssh "$MINI_HOST" "grep -q 'alias agy-resume=' ~/.zshrc 2>/dev/null || echo \"alias agy-resume='agy --conversation ${SESSION_ID}'\" >> ~/.zshrc"
echo "✅ 同步完成!"
echo " • 网页端工作台地址: https://agy.961504.xyz (或在中控台右上角点击 [>_ AGY 终端])"
echo " • 恢复当前完整会话: agy --conversation ${SESSION_ID} (或直接输入: agy-resume / agy -c)"
echo " • 开启新会话(自带完整架构记忆): agy"