100 lines
2.3 KiB
Bash
100 lines
2.3 KiB
Bash
#!/bin/bash
|
|
# workspace-status.sh — Quick workspace health check
|
|
# Run from workspace root or pass path as argument
|
|
|
|
WORKSPACE="${1:-$HOME/.openclaw/workspace}"
|
|
|
|
echo "=== Workspace Status: $WORKSPACE ==="
|
|
echo ""
|
|
|
|
# Check if workspace exists
|
|
if [ ! -d "$WORKSPACE" ]; then
|
|
echo "❌ Workspace not found: $WORKSPACE"
|
|
exit 1
|
|
fi
|
|
|
|
cd "$WORKSPACE"
|
|
|
|
echo "## Required Files"
|
|
for file in AGENTS.md SOUL.md USER.md IDENTITY.md TOOLS.md; do
|
|
if [ -f "$file" ]; then
|
|
lines=$(wc -l < "$file")
|
|
echo "✅ $file ($lines lines)"
|
|
else
|
|
echo "❌ $file MISSING"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "## Optional Files"
|
|
for file in HEARTBEAT.md MEMORY.md BOOT.md BOOTSTRAP.md; do
|
|
if [ -f "$file" ]; then
|
|
lines=$(wc -l < "$file")
|
|
echo "✅ $file ($lines lines)"
|
|
else
|
|
echo "⬜ $file (not present)"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "## Directories"
|
|
for dir in memory skills docs canvas; do
|
|
if [ -d "$dir" ]; then
|
|
count=$(find "$dir" -type f | wc -l)
|
|
echo "✅ $dir/ ($count files)"
|
|
else
|
|
echo "⬜ $dir/ (not present)"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "## Memory Files (last 7 days)"
|
|
if [ -d "memory" ]; then
|
|
find memory -name "*.md" -mtime -7 -exec basename {} \; 2>/dev/null | sort -r | head -7
|
|
else
|
|
echo "No memory directory"
|
|
fi
|
|
|
|
echo ""
|
|
echo "## Git Status"
|
|
if [ -d ".git" ]; then
|
|
if git diff --quiet && git diff --cached --quiet; then
|
|
echo "✅ Working tree clean"
|
|
else
|
|
echo "⚠️ Uncommitted changes:"
|
|
git status --short
|
|
fi
|
|
|
|
untracked=$(git ls-files --others --exclude-standard | wc -l)
|
|
if [ "$untracked" -gt 0 ]; then
|
|
echo "⚠️ $untracked untracked files"
|
|
fi
|
|
else
|
|
echo "⬜ Not a git repository"
|
|
fi
|
|
|
|
echo ""
|
|
echo "## File Sizes (lines)"
|
|
wc -l AGENTS.md SOUL.md USER.md IDENTITY.md TOOLS.md HEARTBEAT.md MEMORY.md 2>/dev/null | grep -v total
|
|
|
|
echo ""
|
|
echo "## Potential Issues"
|
|
# Check for rogue files
|
|
for file in README.md NOTES.md TODO.md; do
|
|
if [ -f "$file" ]; then
|
|
echo "⚠️ Found $file — may duplicate bootstrap file purposes"
|
|
fi
|
|
done
|
|
|
|
# Check for secrets
|
|
if grep -r -l "sk-" --include="*.md" . 2>/dev/null | grep -v node_modules; then
|
|
echo "⚠️ Possible API key found in .md files"
|
|
fi
|
|
|
|
if [ -f ".env" ]; then
|
|
echo "⚠️ .env file in workspace (should be gitignored)"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== End Status ==="
|