#!/usr/bin/env bash
# cb26-status.sh - Quick status overview of CyberBrain26 runtime
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"

echo "=== CyberBrain26 Status ==="
echo "Project root: $PROJECT_ROOT"
echo "Date: $(date -Iseconds)"
echo ""

echo "=== Git ==="
cd "$PROJECT_ROOT"
if git rev-parse --git-dir >/dev/null 2>&1; then
    echo "Branch: $(git branch --show-current)"
    echo "HEAD: $(git log --oneline -1)"
    echo "Status:"
    git status --short || echo "  (git status failed)"
else
    echo "  Not a git repository"
fi
echo ""

echo "=== Python ==="
echo "System python: $(command -v python3 || echo 'NOT FOUND')"
python3 --version 2>/dev/null || echo "  python3 not available"
echo ""

echo "=== Virtualenvs ==="
for venv in venv-litellm venv-oi venv; do
    path="$PROJECT_ROOT/$venv"
    if [ -d "$path" ]; then
        echo "✓ $venv exists"
    else
        echo "✗ $venv MISSING"
    fi
done
echo ""

echo "=== Key binaries ==="
for cmd in bwrap ttyd curl; do
    if command -v "$cmd" >/dev/null 2>&1; then
        echo "✓ $cmd: $(command -v "$cmd")"
    else
        echo "✗ $cmd: NOT FOUND"
    fi
done
echo ""

echo "=== LiteLLM proxy ==="
PROXY_URL="${CB26_PROXY_URL:-http://127.0.0.1:4000}"
if curl -fsS -o /dev/null -w "%{http_code}" "$PROXY_URL/v1/models" \
    -H "Authorization: Bearer ${CB26_PROXY_KEY:-sk-cb26-local}" 2>/dev/null; then
    echo "✓ Proxy responding at $PROXY_URL"
else
    echo "✗ Proxy NOT responding at $PROXY_URL"
fi
echo ""

echo "=== ChromaDB ==="
DB_PATH="${CB26_DB_PATH:-$PROJECT_ROOT/workspace/chroma_db}"
if [ -d "$DB_PATH" ]; then
    echo "✓ ChromaDB path exists: $DB_PATH"
else
    echo "✗ ChromaDB path MISSING: $DB_PATH"
fi
echo ""

echo "=== ttyd (web terminal) ==="
TTYD_URL="${CB26_TTYD_URL:-http://127.0.0.1:31004}"
if curl -fsS -o /dev/null -w "%{http_code}" "$TTYD_URL" 2>/dev/null; then
    echo "✓ ttyd responding at $TTYD_URL"
else
    echo "✗ ttyd NOT responding at $TTYD_URL"
fi
echo ""

echo "=== safe-oi scripts ==="
if [ -f "$PROJECT_ROOT/scripts/safe-oi" ]; then
    echo "✓ scripts/safe-oi exists"
else
    echo "✗ scripts/safe-oi MISSING"
fi

if [ -f "$PROJECT_ROOT/scripts/safe_oi_runner.py" ]; then
    echo "✓ scripts/safe_oi_runner.py exists"
else
    echo "✗ scripts/safe_oi_runner.py MISSING"
fi
echo ""

echo "=== Python modules (syntax check) ==="
cd "$PROJECT_ROOT"
for mod in cyberbrain_memory.py memory_core.py scripts/safe_oi_runner.py; do
    if [ -f "$mod" ]; then
        if python3 -m py_compile "$mod" 2>/dev/null; then
            echo "✓ $mod syntax OK"
        else
            echo "✗ $mod SYNTAX ERROR"
        fi
    else
        echo "⚠ $mod NOT FOUND"
    fi
done
echo ""

echo "=== Environment (.env presence only) ==="
if [ -f "$PROJECT_ROOT/.env" ]; then
    echo "✓ .env exists"
else
    echo "✗ .env MISSING"
fi

if [ -f "$PROJECT_ROOT/.env.example" ]; then
    echo "✓ .env.example exists"
else
    echo "⚠ .env.example MISSING"
fi
echo ""

echo "=== Done ==="
