feat(lxc102): script tmux sbt pentru sandbox + statusline Claude Code
- sbt: sesiuni tmux (sbx1..3) care intră în sandbox și lansează agentul (claude/opencode/orice binar); tmux rulează pe host, panes prin sbx exec - statusline.sh + bootstrap-statusline.sh pe /home/workspace/.agent (virtiofs persistent), reinstalat la fiecare intrare fiindcă /home/agent din sandbox e overlay efemer - fix printf "--" -> printf -- "--" (eroare de usage când API-ul de cote nu răspunde) - copii versionate ale scripturilor agents/sb + documentație README Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
39
proxmox/lxc102-docker/scripts/agents
Executable file
39
proxmox/lxc102-docker/scripts/agents
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# Se asigură doar că sandbox-ul e pornit și RĂMÂNE pornit.
|
||||
# Nu lansează niciun agent — agentul îl pornești tu, manual.
|
||||
#
|
||||
# agents pornește sandbox-ul + keepalive (idempotent)
|
||||
# agents status arată starea
|
||||
# agents stop oprește keepalive-ul și sandbox-ul
|
||||
set -euo pipefail
|
||||
|
||||
SANDBOX="${SANDBOX:-claude-workspace}"
|
||||
PIDFILE="$HOME/.cache/agents-keepalive-$SANDBOX.pid"
|
||||
mkdir -p "$(dirname "$PIDFILE")"
|
||||
|
||||
running() { [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; }
|
||||
|
||||
case "${1:-up}" in
|
||||
status)
|
||||
running && echo "keepalive: activ (pid $(cat "$PIDFILE"))" || echo "keepalive: oprit"
|
||||
sbx ls 2>/dev/null | grep -E "^(SANDBOX|$SANDBOX)" || true
|
||||
;;
|
||||
stop)
|
||||
running && { kill "$(cat "$PIDFILE")" 2>/dev/null || true; rm -f "$PIDFILE"; echo "keepalive oprit"; }
|
||||
sbx stop "$SANDBOX" 2>&1 | tail -1
|
||||
;;
|
||||
up)
|
||||
sbx ls >/dev/null 2>&1 || true # repornește daemonul dacă e picat
|
||||
sbx exec "$SANDBOX" true >/dev/null
|
||||
if running; then
|
||||
echo "sandbox '$SANDBOX' pornit; keepalive deja activ (pid $(cat "$PIDFILE"))"
|
||||
else
|
||||
nohup bash -c "while true; do sbx exec $SANDBOX sleep 86400 >/dev/null 2>&1; sleep 5; done" \
|
||||
>/dev/null 2>&1 &
|
||||
echo $! > "$PIDFILE"
|
||||
echo "sandbox '$SANDBOX' pornit; keepalive activ (pid $!)"
|
||||
fi
|
||||
echo "intră cu: sb [proiect]"
|
||||
;;
|
||||
*) echo "utilizare: agents [up|status|stop]"; exit 1 ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user