Add complete Crumbforest mission system

- Interactive mission selector with metadata-driven design
- 5 educational missions (basics + advanced)
- AI assistant roles (Deepbit, Bugsy, Schnippsi, Tobi)
- SnakeCam gesture recognition system
- Token tracking utilities
- CLAUDE.md documentation
- .gitignore for logs and secrets
This commit is contained in:
Branko May Trinkwald
2025-12-21 01:16:48 +01:00
parent ffea50b4b0
commit 2915828adf
121 changed files with 11851 additions and 0 deletions

63
fix_token_logs.sh Executable file
View File

@@ -0,0 +1,63 @@
#!/bin/bash
echo "🔧 Repariere Crumbforest Token-Logs mit eingebetteten JSON-Strings …"
LOG_DIRS=(
"/home/zero/.bugsy_logs"
"/home/zero/.deepbit_logs"
"/home/zero/.dumbo_logs"
"/home/zero/.funkfox_logs"
"/home/zero/.pepper_logs"
"/home/zero/.schnecki_logs"
"/home/zero/.schnippsi_logs"
"/home/zero/.schraubaer_logs"
"/home/zero/.snake_logs"
"/home/zero/.taube_logs"
"/home/zero/.templatus_logs"
"/home/zero/.tobi_logs"
)
for dir in "${LOG_DIRS[@]}"; do
FILE="$dir/token_log.json"
if [ -f "$FILE" ]; then
echo "🔍 Prüfe $FILE"
TMP="$FILE.fixed"
# Filter & reparieren Zeile für Zeile
jq -c '.' "$FILE" 2>/dev/null | while read -r line; do
usage_raw=$(echo "$line" | jq -r '.usage')
if [[ "$usage_raw" =~ ^\{.*\}$ ]]; then
# usage ist korrektes Objekt direkt übernehmen
echo "$line" >> "$TMP"
else
# usage ist String versuche zu reparieren
usage_fixed=$(echo "$usage_raw" | jq '.' 2>/dev/null)
if [ $? -eq 0 ]; then
zeit=$(echo "$line" | jq -r '.zeit')
rolle=$(echo "$line" | jq -r '.rolle')
jq -n \
--arg zeit "$zeit" \
--arg rolle "$rolle" \
--argjson usage "$usage_fixed" \
'{zeit: $zeit, rolle: $rolle, usage: $usage}' >> "$TMP"
else
echo "⚠️ Ungültige Zeile übersprungen in $FILE:"
echo "$line"
fi
fi
done
# Nur ersetzen, wenn wir etwas geschrieben haben
if [ -s "$TMP" ]; then
mv "$TMP" "$FILE"
echo "✅ Repariert: $FILE"
else
echo " Keine gültigen Einträge in $FILE"
rm -f "$TMP"
fi
else
echo "❌ Datei nicht gefunden: $FILE"
fi
done
echo "🎉 Alle Token-Logs geprüft und repariert (sofern nötig)."