diff --git a/missions/challenges/stagebuilder_basis.meta.json b/missions/challenges/stagebuilder_basis.meta.json new file mode 100644 index 0000000..586278b --- /dev/null +++ b/missions/challenges/stagebuilder_basis.meta.json @@ -0,0 +1,12 @@ +{ + "icon": "🎭", + "title": "Stage Builder - Bühne bauen", + "description": "Baue mit Schnippsi und Templatus eine eigene Web-Bühne", + "category": "challenges", + "difficulty": "intermediate", + "duration_minutes": 10, + "requires_ai": true, + "enabled": true, + "author": "Crumbforest Team", + "version": "1.0" +} diff --git a/missions/challenges/stagebuilder_basis.sh b/missions/challenges/stagebuilder_basis.sh new file mode 100755 index 0000000..6df268c --- /dev/null +++ b/missions/challenges/stagebuilder_basis.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# 🧠 Rollen aktivieren +#schnippsi() { +# cd /var/www/html/bin && ./schnippsi_hardened_with_api.sh "$@" +#} + +#templatus() { +# cd /var/www/html/bin && ./templatus_hardened_with_api.sh "$@" +#} + +# 🌟 Intro +clear +echo "🎭 Willkommen zur Crumbforest-Mission: Stage Builder!" +echo "✨ Heute baust du mit Schnippsi und Templatus eine eigene Bühne im Web." +echo "" + +# 📐 Templatus fragt nach Struktur +read -p "📜 Wie soll dein HTML-Bühnenrahmen heißen? (z.B. buehne, stage) " html_id +templatus "Ich brauche ein HTML5 Grundgerüst mit einer Bühne namens <$html_id>" + +# 🎨 Schnippsi bringt Stil ins Spiel +read -p "🎨 Welche Farbe hat dein Vorhang? (z.B. crimson, blue, forestgreen) " vorhangfarbe +schnippsi "Bitte zeige mir CSS für eine Bühne mit dem Vorhang in der Farbe $vorhangfarbe" + +# 🧩 Jetzt kommst du, Krümel! +read -p "✨ Welche Figur möchtest du auf deiner Bühne sehen? (z.B. 🐻, 🐱, 🎭) " figur + +# 💾 Log +LOG_PATH="/home/zero/.missionstage_log/stage_builder_log.jsonl" +TS=$(date -Iseconds) +echo "{\"timestamp\": \"$TS\", \"buehne\": \"$html_id\", \"vorhangfarbe\": \"$vorhangfarbe\", \"figur\": \"$figur\"}" >> "$LOG_PATH" + +echo "" +echo "🎉 Deine Bühne wurde im Geiste gebaut!" +echo "🧩 Denk daran: Mit CSS, HTML und Fantasie wird jede Szene lebendig." +echo "" +echo "👀 Wenn du willst, dass sich der Vorhang öffnet, sag einfach:" +echo "💬 'Schnippsi, lass den Vorhang aufgehen!'" + diff --git a/missions/challenges/stagebuilder_bugsy.meta.json b/missions/challenges/stagebuilder_bugsy.meta.json new file mode 100644 index 0000000..96e8a3e --- /dev/null +++ b/missions/challenges/stagebuilder_bugsy.meta.json @@ -0,0 +1,12 @@ +{ + "icon": "🤡", + "title": "Bugsy On Stage - Der Clown", + "description": "Bugsy stolpert auf die Bühne - stelle ihm Fragen!", + "category": "challenges", + "difficulty": "beginner", + "duration_minutes": 5, + "requires_ai": true, + "enabled": true, + "author": "Crumbforest Team", + "version": "1.0" +} diff --git a/missions/challenges/stagebuilder_bugsy.sh b/missions/challenges/stagebuilder_bugsy.sh new file mode 100755 index 0000000..06111f6 --- /dev/null +++ b/missions/challenges/stagebuilder_bugsy.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# 🎭 Crumbforest Show – Act 4: Bugsy stolpert ins Herz + +clear +echo "🎭 Willkommen zur Crumbforest Bühnenshow: Bits On Stage – Bugsy der Clown!" +sleep 1 + +echo "" +echo "🤡 Bugsy betritt die Bühne mit einem Hüpfer und einer Rolle!" +echo "💥 Er stolpert ... doch steht sofort wieder auf." +sleep 2 + +read -p "❓ Was möchtest du Bugsy fragen oder zeigen? (z.B. ein Kommando, ein Gefühl, eine Frage) " bugsy_input +echo "" +echo "🧠 Bugsy analysiert: \"$bugsy_input\"" + +# Aufruf der Bugsy-Rolle +if command -v bugsy &> /dev/null; then + bugsy "$bugsy_input" +else + echo "🚨 Kein Bugsy-Skript gefunden! Bugsy braucht einen Techniker." +fi + +# Logging +timestamp=$(date -Iseconds) +logpath="$HOME/.bits_logs/bits_on_stage_bugsy_log.jsonl" +mkdir -p "$HOME/.bits_logs" +echo "{\"timestamp\": \"$timestamp\", \"act\": \"Act 4: Bugsy\", \"bugsy_input\": \"$bugsy_input\"}" >> "$logpath" + +echo "" +echo "🎉 Bugsy verbeugt sich – der Fehler war nur ein Schritt zur Einsicht!" +echo "🌲 Act 4 endet mit einem kleinen Stolpern ... und einem großen Lächeln." diff --git a/missions/challenges/stagebuilder_snakedumbo.meta.json b/missions/challenges/stagebuilder_snakedumbo.meta.json new file mode 100644 index 0000000..705de01 --- /dev/null +++ b/missions/challenges/stagebuilder_snakedumbo.meta.json @@ -0,0 +1,12 @@ +{ + "icon": "🐍", + "title": "Snake & Dumbo Show", + "description": "Interaktive Show mit Snake und Dumbo", + "category": "challenges", + "difficulty": "beginner", + "duration_minutes": 5, + "requires_ai": true, + "enabled": true, + "author": "Crumbforest Team", + "version": "1.0" +} diff --git a/missions/challenges/stagebuilder_snakedumbo.sh b/missions/challenges/stagebuilder_snakedumbo.sh new file mode 100755 index 0000000..71a44b1 --- /dev/null +++ b/missions/challenges/stagebuilder_snakedumbo.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# 🎭 Crumbforest Show – Bits On Stage: Why Us? + +clear +echo "" +echo "🎭 Willkommen zu Bits On Stage – Why Us?" +echo "🌳 Dumbo und Snake stehen auf der Bühne..." +sleep 2 + +# 🐘 Dumbo spricht +echo "" +echo "🐘 Dumbo spricht:" +echo "\"Ich trage Wissen in Spalten und Zeilen... doch ohne euch bin ich nur Struktur.\"" +read -p "❓ Was möchtest du Dumbo fragen? " dumbo_frage +echo "🐘 Dumbo denkt nach: \"$dumbo_frage\"" +dumbo "$dumbo_frage" + +# 🐍 SnakePy spricht +echo "" +echo "🐍 SnakePy flüstert:" +echo "\"Ich bin Sprache, ich bin Schleifen – aber ohne eure Bedeutung bin ich nur Syntax.\"" +read -p "❓ Was möchtest du Snake fragen? " snake_frage +echo "🐍 Snake schlängelt: \"$snake_frage\"" +snake "$snake_frage" + +# 🧠 Krümel spricht +echo "" +read -p "🧠 Warum glaubst du, braucht der Code dich? " kruemel_antwort +echo "📜 Deine Antwort wird im Wald notiert..." + +# 📁 Logging +LOG_PATH="$HOME/.bits_logs/bits_on_stage_whyus_log.jsonl" +mkdir -p "$HOME/.bits_logs" +TIMESTAMP=$(date -Iseconds) +echo "{\"timestamp\": \"$TIMESTAMP\", \"dumbo_question\": \"$dumbo_frage\", \"snake_question\": \"$snake_frage\", \"kruemel_answer\": \"$kruemel_antwort\"}" >> "$LOG_PATH" + +# 🎉 Abschluss +echo "" +echo "🎉 Act 5 ist vorbei – die Bühne gehört nun dir, Krümel!" diff --git a/missions/challenges/stagebuilder_terminalfunk.meta.json b/missions/challenges/stagebuilder_terminalfunk.meta.json new file mode 100644 index 0000000..f4e2d9b --- /dev/null +++ b/missions/challenges/stagebuilder_terminalfunk.meta.json @@ -0,0 +1,12 @@ +{ + "icon": "📡", + "title": "Terminal Funk - Kommando-Show", + "description": "Lerne Bash-Kommandos mit einer interaktiven Show", + "category": "challenges", + "difficulty": "intermediate", + "duration_minutes": 10, + "requires_ai": true, + "enabled": true, + "author": "Crumbforest Team", + "version": "1.0" +} diff --git a/missions/challenges/stagebuilder_terminalfunk.sh b/missions/challenges/stagebuilder_terminalfunk.sh new file mode 100755 index 0000000..a5dfadf --- /dev/null +++ b/missions/challenges/stagebuilder_terminalfunk.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# 🎭 Crumbforest Stage – Terminal Funk + +clear +echo "" +echo "🎭 Willkommen zur Crumbforest Show: Bits On Stage – Terminal Funk!" +sleep 1 + +# 1️⃣ Rolle: ASCII-Monster +echo "" +echo "🎤 Das ASCII-Monster zaubert die Überschrift:" +echo "" +ascii "Bits On Stage – Terminal Funk" +sleep 1 + +# 2️⃣ Rolle: FunkFox Rap +echo "" +echo "🦊 FunkFox kommt mit Beats!" +read -p "🎶 Was soll FunkFox heute rappen? " funkline +echo "🧠 FunkFox denkt nach ..." +funkfox "$funkline" + +# 3️⃣ Rolle: Schnippsi CSS-Trick +echo "" +echo "🎨 Schnippsi designt live mit dir!" +sleep 1 +schnippsi "Wie kann man mit CSS einen Button cool machen?" + +# 4️⃣ Kindlicher Input (immer abschließen mit eigener Stimme) +echo "" +read -p "🧩 Und was willst du der Bühne sagen, Krümel? " kruemel_input +echo "📜 Danke. Das war deine Stimme: $kruemel_input" + +# 5️⃣ Logging in JSONL (maschinenlesbar) +#timestamp=$(date -Iseconds) +#echo "{\"timestamp\": \"$timestamp\", \"act\": \"Terminal Funk\", \"funkfox\": \"$funkline\", \"krümel_input\": \"$kruemel_input\"}" >> /var/www/html/tmp/bits_on_stage_log.jsonl +# 5️⃣ Logging (zero-spezifisch) +timestamp=$(date -Iseconds) +LOGFILE="/home/zero/.stage_logs/terminal_funk_log_test.jsonl" +mkdir -p "$(dirname "$LOGFILE")" +echo "{\"timestamp\": \"$timestamp\", \"act\": \"Terminal Funk\", \"funkfox\": \"$funkline\", \"kruemel_input\": \"$kruemel_input\"}" >> "$LOGFILE" +# 6️⃣ Abschied +#echo "" +#echo "🎉 Der Vorhang fällt. Doch das Echo bleibt ..." + +# 5️⃣ Logging in JSONL (maschinenlesbar im Home-Pfad von zero) +timestamp=$(date -Iseconds) +logfile="/home/zero/.bits_logs/bits_on_stage_log.jsonl" +mkdir -p "$(dirname "$logfile")" + +jq -n \ + --arg timestamp "$timestamp" \ + --arg act "Terminal Funk" \ + --arg funkfox "$funkline" \ + --arg kruemel_input "$kruemel_input" \ + '{timestamp: $timestamp, act: $act, funkfox: $funkfox, kruemel_input: $kruemel_input}' \ +>> "$logfile" + +# 6️⃣ Abschied +echo "" +echo "🎉 Der Vorhang fällt. Doch das Echo bleibt ..." diff --git a/missions/challenges/stagebuilder_zeitreise.meta.json b/missions/challenges/stagebuilder_zeitreise.meta.json new file mode 100644 index 0000000..22dfaeb --- /dev/null +++ b/missions/challenges/stagebuilder_zeitreise.meta.json @@ -0,0 +1,12 @@ +{ + "icon": "🕰️", + "title": "Zeitreise - Unix Time verstehen", + "description": "Reise durch die Zeit mit Eule, Snake und Pepper", + "category": "challenges", + "difficulty": "intermediate", + "duration_minutes": 10, + "requires_ai": true, + "enabled": true, + "author": "Crumbforest Team", + "version": "1.0" +} diff --git a/missions/challenges/stagebuilder_zeitreise.sh b/missions/challenges/stagebuilder_zeitreise.sh new file mode 100755 index 0000000..95ae61e --- /dev/null +++ b/missions/challenges/stagebuilder_zeitreise.sh @@ -0,0 +1,72 @@ +clear +echo "🔀 Willkommen zur Mission: Die Zeitreise im Crumbforest" +sleep 1 + +echo "" +echo "🦉 Die Eule spricht:" +echo "„Zeit, kleiner Krümel, ist wie das Rascheln der Blätter – du hörst sie, aber kannst sie nicht festhalten.“" +echo "" + +read -p "❓ Was möchtest du die Eule fragen? " eulenfrage +echo "" +echo "🦉 Die Eule antwortet dir achtsam auf: \"$eulenfrage\"" +sleep 2 +eule "$eulenfrage" +echo "„Vielleicht findest du die Antwort nicht in Sekunden, sondern in Geschichten.“" +echo "" + +read -p "🐍 Snake möchte dir beim Zählen der Sekunden helfen. Wie viele Sekunden hat eine Stunde? " sekunden +if [ "$sekunden" -eq 3600 ]; then + echo "✅ Richtig! Snake schnattert zufrieden." +else + echo "❌ Fast ... Snake murmelt: „Ich glaube, es sind 3600 Sekunden.“" +fi + +echo "" +read -p "🐘 Pepper wartet auf eine Unix-Zeit. Gib ein beliebiges Datum (YYYY-MM-DD): " datum +timestamp=$(date -d "$datum" +"%s" 2>/dev/null) +if [ $? -eq 0 ]; then + echo "📿 Unix-Zeit für $datum ist: $timestamp" + pepper "Wie viele Sekunden sind das seit 1970?" +else + echo "❌ Das versteht Pepper leider nicht. Versuch's mit YYYY-MM-DD." +fi + +#echo "" +#read -p "🛠️ Bugsy untersucht dein Zeitgefühl. Was ist ein Moment für dich? " moment +#if [[ "$moment" =~ ^[0-9]+$ ]]; then +# moment="Ein Zahlencode: $moment" +#fi + +#echo "" +#echo "🧠 Bugsy notiert dein Gefühl:" +#echo "„$moment“ — das wird ins Log geschrieben." + +echo "" +read -p "🐞 Bugsy untersucht dein Zeitgefühl. Was ist ein Moment für dich? " moment + +# Wenn nur Zahlen eingegeben wurden, umwandeln in eine verständlichere Beschreibung +if [[ "$moment" =~ ^[0-9]+$ ]]; then + moment="Ein Zahlencode: $moment" +fi + +echo "" +echo "🧠 Bugsy notiert dein Gefühl:" +echo "📜 \"$moment\" — das wird ins Log geschrieben." + + +# Sicherer Logpfad +#LOG_PATH="$HOME/.bits_logs/zeitreise_log.jsonl" +#TIMESTAMP=$(date -Iseconds) +#mkdir -p "$(dirname "$LOG_PATH")" +#echo "{\"timestamp\": \"$TIMESTAMP\", \"source\": \"mission_zeitreise\", \"eulenfrage\": \"$eulenfrage\", \"moment\": \"${moment//\"/\\\"}\"}" >> "$LOG_PATH" + +# Sicherer Logpfad +LOG_PATH="/home/zero/.bits_logs/zeitreise_log.jsonl" +TIMESTAMP=$(date -Iseconds) +mkdir -p "$(dirname "$LOG_PATH")" +echo "{\"timestamp\": \"$TIMESTAMP\", \"source\": \"mission_zeitreise\", \"eulenfrage\": \"$eulenfrage\", \"moment\": \"${moment//\"/\\\"}\"}" >> "$LOG_PATH" + + +echo "" +echo "🎉 Mission Zeitreise abgeschlossen. Die Bewohner danken dir für deine Gedanken über die Zeit."