- 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>
24 lines
949 B
Bash
24 lines
949 B
Bash
# Se rulează cu `source` la intrarea în sandbox (din sbt).
|
|
# Reinstalează statusline-ul în ~/.claude/settings.json — necesar pentru că
|
|
# /home/agent stă pe overlay-ul efemer al sandbox-ului, în timp ce
|
|
# /home/workspace e virtiofs persistent.
|
|
# Idempotent, silențios, nu strică settings.json existent.
|
|
|
|
_sl_script="/home/workspace/.agent/statusline.sh"
|
|
_sl_cfg="$HOME/.claude/settings.json"
|
|
|
|
if [ -x "$_sl_script" ] && command -v jq >/dev/null 2>&1; then
|
|
[ -f "$_sl_cfg" ] || printf '{}\n' > "$_sl_cfg"
|
|
if [ "$(jq -r '.statusLine.command // ""' "$_sl_cfg" 2>/dev/null)" != "$_sl_script" ]; then
|
|
_sl_tmp=$(mktemp) || _sl_tmp=""
|
|
if [ -n "$_sl_tmp" ] && jq --arg c "$_sl_script" \
|
|
'.statusLine = {type: "command", command: $c}' "$_sl_cfg" > "$_sl_tmp" 2>/dev/null; then
|
|
mv "$_sl_tmp" "$_sl_cfg"
|
|
else
|
|
rm -f "$_sl_tmp"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
unset _sl_script _sl_cfg _sl_tmp
|