Feature: 🌲 CrumbCrew Command Central! 🎉

ALLE WALDWÄCHTER VEREINT!

New Main Menu Option:
9) 🌲 CrumbCrew - Alle Waldwächter
10) 👋 Beenden (moved from 9)

CrumbCrew Shell Features:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌲🌲🌲 CrumbCrew Command Central 🌲🌲🌲
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Die Waldwächter (All Characters):
- 🦉 mayaeule   - Die weise Eule (Philosophie)
- 🐙 deepbit    - Der poetische Oktopus (Bash)
- 🐞 bugsy      - Der Debugging-Clown
- ✂️  schnippsi  - Der Shell-Helfer
- 🤖 tobi       - Der Daten-Experte (JSON)

Crew Commands:
- crew_status  - Status aller Waldwächter
- crew_tokens  - Token-Verbrauch ALLER Charaktere
- crew_memory  - Erinnerungen aller Charaktere
- help/status/tokens/memory - Shortcuts

Interactive Shell:
(🌲 CrumbCrew) $ mayaeule "Was ist das Leben?"
(🌲 CrumbCrew) $ deepbit "Erkläre Pipes"
(🌲 CrumbCrew) $ bugsy "Debug diesen Fehler"
(🌲 CrumbCrew) $ crew_tokens  # Gesamt-Token über ALLE
(🌲 CrumbCrew) $ exit

Philosophy:
Seit Monaten gedacht - jetzt angedockt!
Schneller und hochwertiger als vorgestellt.
Kleiner Krümel auf der Brücke schmunzelt! 🌲❤️

WUHUUUU! 🚀
This commit is contained in:
Branko May Trinkwald
2025-12-21 14:59:20 +01:00
parent 458da8f774
commit c414181244

View File

@@ -589,6 +589,224 @@ EOF
rm -f "${EULE_RC}"
}
# ============================================================
# CRUMBCREW COMMAND CENTRAL (Alle Waldwächter)
# ============================================================
function crumbcrew_doktor() {
echo -e "${GREEN}--- 🌲 CrumbCrew Command Central ---${NC}"
echo -e "${CYAN}Alle Waldwächter versammeln sich!${NC}"
echo ""
if [[ "$AI_AVAILABLE" == "false" ]] || [[ -z "$OPENROUTER_API_KEY" ]]; then
echo -e "${YELLOW}⚠️ CrumbCrew braucht einen API-Key${NC}"
echo ""
echo "Bitte konfiguriere .env mit OPENROUTER_API_KEY"
read -p "Drücke Enter..." -r
return
fi
# Temporäres RC File für die Shell
CREW_RC="/tmp/crumb_crew_$$.rc"
# Pfade zu allen Charakteren
CREW_DIR="${SCRIPT_DIR}/crumbforest_roles"
cat > "${CREW_RC}" << EOF
# Load .bashrc if exists
if [ -f /etc/bashrc ]; then source /etc/bashrc; fi
if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
# Farben
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
BLUE='\033[0;34m'
RED='\033[0;31m'
MAGENTA='\033[1;35m'
NC='\033[0m'
# Prompt im CrumbCrew-Style
export PS1="\[\033[1;32m\](🌲 CrumbCrew) \u@\h:\w\$ \[\033[0m\]"
# Pfad zu den Charakteren
CREW_DIR="${CREW_DIR}"
# === WALDWÄCHTER FUNKTIONEN ===
function mayaeule() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: mayaeule \"Deine Frage\"\${NC}"
return
fi
echo -e "\${MAGENTA}🦉 Maya-Eule erwacht...\${NC}"
"\$CREW_DIR/mayaeule_zero.sh" "\$@"
}
function deepbit() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: deepbit \"Deine Frage\"\${NC}"
return
fi
echo -e "\${BLUE}🐙 Deepbit taucht auf...\${NC}"
"\$CREW_DIR/deepbit_zero.sh" "\$@"
}
function bugsy() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: bugsy \"Deine Frage\"\${NC}"
return
fi
echo -e "\${RED}🐞 Bugsy analysiert...\${NC}"
"\$CREW_DIR/bugsy_zero.sh" "\$@"
}
function schnippsi() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: schnippsi \"Deine Frage\"\${NC}"
return
fi
echo -e "\${CYAN}✂️ Schnippsi schnippelt...\${NC}"
"\$CREW_DIR/schnippsi_zero.sh" "\$@"
}
function tobi() {
if [[ -z "\$1" ]]; then
echo -e "\${YELLOW}Verwendung: tobi \"Deine Frage\"\${NC}"
return
fi
echo -e "\${GREEN}🤖 Tobi rechnet...\${NC}"
"\$CREW_DIR/tobi_zero.sh" "\$@"
}
# === CREW MANAGEMENT ===
function crew_help() {
echo -e "\${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
echo -e "\${GREEN} 🌲 CrumbCrew Command Central 🌲 \${NC}"
echo -e "\${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
echo ""
echo -e "\${CYAN}Die Waldwächter (Verfügbare Charaktere):\${NC}"
echo ""
echo -e " \${MAGENTA}🦉 mayaeule\${NC} - Die weise Eule (Philosophie, Weisheit)"
echo -e " \${BLUE}🐙 deepbit\${NC} - Der poetische Oktopus (Bash-Konzepte)"
echo -e " \${RED}🐞 bugsy\${NC} - Der Debugging-Clown (Fehlersuche)"
echo -e " \${CYAN}✂️ schnippsi\${NC} - Der Shell-Helfer (Kommandos)"
echo -e " \${GREEN}🤖 tobi\${NC} - Der Daten-Experte (JSON, Daten)"
echo ""
echo -e "\${YELLOW}Crew-Befehle:\${NC}"
echo " crew_status - Status aller Waldwächter"
echo " crew_tokens - Token-Verbrauch aller Charaktere"
echo " crew_memory - Erinnerungen aller Charaktere"
echo " crew_help - Diese Hilfe"
echo " exit - Zurück zum Hauptmenü"
echo ""
echo -e "\${CYAN}Beispiele:\${NC}"
echo " mayaeule \"Was ist das Leben?\""
echo " deepbit \"Erkläre Pipes und Redirects\""
echo " bugsy \"Warum funktioniert mein Script nicht?\""
echo " schnippsi \"Wie nutze ich grep?\""
echo " tobi \"Parse dieses JSON\""
echo ""
echo -e "\${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
}
function crew_status() {
echo -e "\${CYAN}🌲 CrumbCrew Status\${NC}"
echo ""
CHARS=("mayaeule:🦉:Maya-Eule" "deepbit:🐙:Deepbit" "bugsy:🐞:Bugsy" "schnippsi:✂️:Schnippsi" "tobi:🤖:Tobi")
for char_info in "\${CHARS[@]}"; do
IFS=: read -r name icon display <<< "\$char_info"
if [[ -x "\$CREW_DIR/\${name}_zero.sh" ]]; then
echo -e " \${GREEN}✅ \$icon \$display\${NC} - Bereit"
else
echo -e " \${RED}❌ \$icon \$display\${NC} - Nicht verfügbar"
fi
done
echo ""
echo -e "\${YELLOW}API Status:\${NC}"
if [[ -n "\$OPENROUTER_API_KEY" ]]; then
echo -e " \${GREEN}✅ OpenRouter API\${NC} - Konfiguriert"
else
echo -e " \${RED}❌ Kein API-Key\${NC}"
fi
}
function crew_tokens() {
echo -e "\${CYAN}📊 CrumbCrew Token-Verbrauch\${NC}"
echo ""
TOTAL=0
for logdir in ~/.{mayaeule,eule,deepbit,bugsy,schnippsi,tobi}_logs; do
if [[ -d "\$logdir" ]] && [[ -f "\$logdir/token_log.json" ]]; then
char_name=\$(basename "\$logdir" | sed 's/_logs//')
char_tokens=0
while IFS= read -r line; do
tokens=\$(echo "\$line" | jq -r '.usage.total_tokens' 2>/dev/null)
if [[ "\$tokens" != "null" ]] && [[ -n "\$tokens" ]]; then
char_tokens=\$((char_tokens + tokens))
fi
done < "\$logdir/token_log.json"
if [[ \$char_tokens -gt 0 ]]; then
echo -e " \${GREEN}\$char_name:\${NC} \$char_tokens Tokens"
TOTAL=\$((TOTAL + char_tokens))
fi
fi
done
echo ""
echo -e "\${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
echo -e " \${GREEN}Gesamt: \$TOTAL Tokens\${NC}"
echo -e " \${CYAN}Jede Frage ist wertvoll 🌲\${NC}"
echo -e "\${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
}
function crew_memory() {
echo -e "\${CYAN}📜 CrumbCrew Erinnerungen\${NC}"
echo ""
for logdir in ~/.{mayaeule,eule,deepbit,bugsy,schnippsi,tobi}_logs; do
if [[ -d "\$logdir" ]] && [[ -f "\$logdir/*_history.json" ]]; then
char_name=\$(basename "\$logdir" | sed 's/_logs//')
count=\$(jq '. | length' "\$logdir/*_history.json" 2>/dev/null)
if [[ "\$count" != "null" ]] && [[ \$count -gt 0 ]]; then
echo -e " \${GREEN}\$char_name:\${NC} \$count Gespräche"
fi
fi
done
}
alias help="crew_help"
alias status="crew_status"
alias tokens="crew_tokens"
alias memory="crew_memory"
# Willkommensnachricht
clear
echo -e "\${GREEN}"
cat << 'CREWEOF'
🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲
CrumbCrew Command Central
Alle Waldwächter vereint!
🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲🌲
CREWEOF
echo -e "\${NC}"
echo ""
crew_help
EOF
bash --rcfile "${CREW_RC}"
rm -f "${CREW_RC}"
}
# ============================================================
# HAUPTMENÜ
# ============================================================
@@ -606,10 +824,11 @@ function main_menu() {
echo "6) 🌲 Git Doktor"
echo "7) 🤖 AI & Token-Tracking"
echo "8) 🦉 Maya-Eule Weisheit"
echo "9) 🌲 CrumbCrew - Alle Waldwächter"
echo ""
echo "9) 👋 Beenden"
echo "10) 👋 Beenden"
echo ""
read -p "Auswahl [1-9]: " CHOICE
read -p "Auswahl [1-10]: " CHOICE
case $CHOICE in
1) run_mission_menu "basics" "📚 Basics - Einsteiger" ;;
@@ -620,7 +839,8 @@ function main_menu() {
6) git_doktor ;;
7) ai_doktor ;;
8) mayaeule_doktor ;;
9)
9) crumbcrew_doktor ;;
10)
clear
echo -e "${GREEN}"
echo "👋 Auf bald im Crumbforest!"
@@ -628,7 +848,7 @@ function main_menu() {
exit 0
;;
*)
echo -e "${RED}Bitte 1-9 wählen.${NC}"
echo -e "${RED}Bitte 1-10 wählen.${NC}"
sleep 1
;;
esac