blob: b012128b00aac784202cb9775466bb6ffddc81bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#!/bin/bash
# 极简 cron:只负责唤醒闲置的 Claude session
# 有 pending 任务就发一个 "check",hook 会处理剩下的一切
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
if [ -f "$SCRIPT_DIR/.env" ]; then
set -a; source "$SCRIPT_DIR/.env"; set +a
fi
export BROKER_URL API_SECRET
for SESSION in claude claude2 claude3; do
tmux has-session -t "$SESSION" 2>/dev/null || continue
# 问 broker 这个 session 有没有 pending 任务
COUNT=$(curl -sf -H "Authorization: Bearer $API_SECRET" \
"$BROKER_URL/tasks/pending?target=$SESSION" 2>/dev/null \
| python3 -c "import sys,json; print(len(json.load(sys.stdin).get('tasks',[])))" 2>/dev/null \
|| echo "0")
if [ "$COUNT" -gt 0 ]; then
# 只发一个简短提示,不带任何 content
tmux send-keys -t "$SESSION" "请检查新任务" Enter
echo "$(date): poked $SESSION ($COUNT pending)"
fi
done
|