Added comprehensive improvements to ClawdBox for better LLM agent experience: - Tools: Added tree, tmux, htop, strace, file, less for enhanced debugging - Python packages: httpie, pyyaml, requests, black, ipython pre-installed - Persistent caching: pip/npm caches now survive container restarts - Git config persistence: .gitconfig auto-links from /data volume - Shell improvements: colored prompt, aliases (ll, k, dc), 10k line history - Helper scripts: ConfigMap with disk-usage, health-check, clean-workspace, install-tools - Environment variables: TERM, TZ, DEBIAN_FRONTEND for better compatibility - Makefile: Common operations (build, deploy, logs, shell, health-check) - Documentation: Comprehensive README with troubleshooting and workflows Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
190 lines
4.7 KiB
YAML
190 lines
4.7 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: clawdbox-scripts
|
|
namespace: clawdbox
|
|
labels:
|
|
app: clawdbox
|
|
data:
|
|
disk-usage.sh: |
|
|
#!/bin/bash
|
|
# Quick disk usage report for /data volume
|
|
|
|
echo "=== Data Volume Usage ==="
|
|
df -h /data
|
|
|
|
echo -e "\n=== Top 10 Largest Directories ==="
|
|
du -h /data 2>/dev/null | sort -rh | head -10
|
|
|
|
echo -e "\n=== Cache Sizes ==="
|
|
if [ -d /data/.cache/pip ]; then
|
|
echo "pip cache: $(du -sh /data/.cache/pip 2>/dev/null | cut -f1)"
|
|
fi
|
|
if [ -d /data/.cache/npm ]; then
|
|
echo "npm cache: $(du -sh /data/.cache/npm 2>/dev/null | cut -f1)"
|
|
fi
|
|
|
|
health-check.sh: |
|
|
#!/bin/bash
|
|
# Comprehensive health diagnostics for troubleshooting
|
|
|
|
echo "=== ClawdBox Health Check ==="
|
|
echo "Timestamp: $(date)"
|
|
echo ""
|
|
|
|
echo "=== SSH Daemon Status ==="
|
|
if ps aux | grep -v grep | grep sshd > /dev/null; then
|
|
echo "✓ SSH daemon is running"
|
|
ps aux | grep sshd | grep -v grep
|
|
else
|
|
echo "✗ SSH daemon is NOT running"
|
|
fi
|
|
echo ""
|
|
|
|
echo "=== Disk Space ==="
|
|
df -h /data
|
|
echo ""
|
|
|
|
echo "=== Memory Usage ==="
|
|
free -h
|
|
echo ""
|
|
|
|
echo "=== Network Connectivity ==="
|
|
if ping -c 1 8.8.8.8 > /dev/null 2>&1; then
|
|
echo "✓ Internet connectivity OK"
|
|
else
|
|
echo "✗ No internet connectivity"
|
|
fi
|
|
echo ""
|
|
|
|
echo "=== Environment Variables ==="
|
|
echo "PIP_CACHE_DIR: $PIP_CACHE_DIR"
|
|
echo "npm_config_cache: $npm_config_cache"
|
|
echo "HISTFILE: $HISTFILE"
|
|
echo ""
|
|
|
|
echo "=== Persistent Directories ==="
|
|
ls -lah /data/.cache/ 2>/dev/null || echo "No .cache directory"
|
|
echo ""
|
|
|
|
echo "=== Current Working Directory ==="
|
|
pwd
|
|
echo ""
|
|
|
|
echo "=== User Information ==="
|
|
whoami
|
|
id
|
|
|
|
clean-workspace.sh: |
|
|
#!/bin/bash
|
|
# Interactive workspace cleanup helper
|
|
|
|
echo "=== ClawdBox Workspace Cleanup ==="
|
|
echo ""
|
|
|
|
# Show current usage
|
|
echo "Current disk usage:"
|
|
df -h /data
|
|
echo ""
|
|
|
|
# Offer cleanup options
|
|
echo "What would you like to clean?"
|
|
echo "1) Package caches (pip + npm)"
|
|
echo "2) Temporary files"
|
|
echo "3) Both caches and temp files"
|
|
echo "4) Show what's using space (no deletion)"
|
|
echo "5) Cancel"
|
|
echo ""
|
|
|
|
read -p "Enter choice [1-5]: " choice
|
|
|
|
case $choice in
|
|
1)
|
|
echo "Cleaning package caches..."
|
|
rm -rf /data/.cache/pip/* /data/.cache/npm/*
|
|
echo "✓ Package caches cleared"
|
|
;;
|
|
2)
|
|
echo "Cleaning temporary files..."
|
|
find /data -type f -name "*.tmp" -delete 2>/dev/null
|
|
find /data -type f -name "*.log" -mtime +7 -delete 2>/dev/null
|
|
echo "✓ Temporary files cleaned"
|
|
;;
|
|
3)
|
|
echo "Cleaning caches and temporary files..."
|
|
rm -rf /data/.cache/pip/* /data/.cache/npm/*
|
|
find /data -type f -name "*.tmp" -delete 2>/dev/null
|
|
find /data -type f -name "*.log" -mtime +7 -delete 2>/dev/null
|
|
echo "✓ All cleaned"
|
|
;;
|
|
4)
|
|
echo "Analyzing disk usage..."
|
|
du -h /data | sort -rh | head -20
|
|
;;
|
|
5)
|
|
echo "Cleanup cancelled"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Invalid choice"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo ""
|
|
echo "New disk usage:"
|
|
df -h /data
|
|
|
|
install-tools.sh: |
|
|
#!/bin/bash
|
|
# Helper script to install common additional tools
|
|
|
|
echo "=== ClawdBox Additional Tools Installer ==="
|
|
echo ""
|
|
echo "This script helps install commonly requested tools."
|
|
echo "All installations are temporary and will be lost on container restart."
|
|
echo ""
|
|
|
|
echo "Available tool categories:"
|
|
echo "1) Data science (pandas, numpy, matplotlib)"
|
|
echo "2) Web scraping (beautifulsoup4, selenium)"
|
|
echo "3) CLI tools (fzf, bat, fd-find)"
|
|
echo "4) Custom (specify packages)"
|
|
echo "5) Exit"
|
|
echo ""
|
|
|
|
read -p "Enter choice [1-5]: " choice
|
|
|
|
case $choice in
|
|
1)
|
|
echo "Installing data science packages..."
|
|
pip3 install --user pandas numpy matplotlib scipy
|
|
;;
|
|
2)
|
|
echo "Installing web scraping packages..."
|
|
pip3 install --user beautifulsoup4 selenium requests-html
|
|
;;
|
|
3)
|
|
echo "Installing CLI tools..."
|
|
echo "Note: These require sudo and apt-get"
|
|
sudo apt-get update
|
|
sudo apt-get install -y fzf bat fd-find
|
|
;;
|
|
4)
|
|
read -p "Enter package names (space-separated): " packages
|
|
echo "Installing: $packages"
|
|
pip3 install --user $packages
|
|
;;
|
|
5)
|
|
echo "Exiting"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Invalid choice"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo ""
|
|
echo "✓ Installation complete"
|