**Änderung: Option A - logs/ im Repo**
Vorher:
- Logs in ~/.{character}_logs/ (User Home Directory)
- Multi-Projekt aber verstreut
- Nicht im Repo sichtbar
Nachher:
- Logs in logs/{character}/ (Repo Directory)
- Projekt-spezifisch & übersichtlich
- Mit Fallback: ${CRUMB_LOGS_DIR:-$HOME/.{character}_logs}
- Für Standalone-Nutzung
**Geänderte Files:**
- lib/waldwaechter.sh: CRUMB_LOGS_DIR exportiert
- Alle 17 crumbforest_roles/*: LOGDIR updated
- missions/robots/*: Mission logs → logs/missions/
- .gitignore: logs/ hinzugefügt
**Log-Struktur:**
```
logs/
├── tobi/
│ ├── tobi_history.json
│ ├── token_log.json
│ └── ...
├── crabbyrust/
├── mayaeule/
└── missions/
```
**Tested:** ✅ Tobi funktioniert, Logs landen in logs/tobi/
🌲 "Was kostet die Frage eines Kindes?" - jetzt transparent im Repo!
🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
129 lines
2.8 KiB
Bash
129 lines
2.8 KiB
Bash
#!/bin/bash
|
|
# 🌲 Waldwächter Library - AI Assistants for Crumbforest Missions
|
|
# Source this file to make all AI characters available as commands
|
|
|
|
# Determine the repo root directory (lib/ is inside repo root)
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
WALDWAECHTER_DIR="$(dirname "$SCRIPT_DIR")"
|
|
ROLES_DIR="${WALDWAECHTER_DIR}/crumbforest_roles"
|
|
|
|
# Set logs directory in repo
|
|
export CRUMB_LOGS_DIR="${WALDWAECHTER_DIR}/logs"
|
|
mkdir -p "${CRUMB_LOGS_DIR}"
|
|
|
|
# Load .env if it exists
|
|
ENV_FILE="${WALDWAECHTER_DIR}/.env"
|
|
if [[ -f "${ENV_FILE}" ]]; then
|
|
set -a
|
|
source "${ENV_FILE}"
|
|
set +a
|
|
fi
|
|
|
|
# 🦉 Maya-Eule - Die weise Eule mit Gedächtnis
|
|
function mayaeule() {
|
|
"${ROLES_DIR}/mayaeule_zero.sh" "$@"
|
|
}
|
|
|
|
# 🔧 Deepbit - Bash-Erklärer
|
|
function deepbit() {
|
|
"${ROLES_DIR}/deepbit_zero.sh" "$@"
|
|
}
|
|
|
|
# 🐛 Bugsy - Debugging-Helfer
|
|
function bugsy() {
|
|
"${ROLES_DIR}/bugsy_zero.sh" "$@"
|
|
}
|
|
|
|
# ✂️ Schnippsi - Shell-Helfer
|
|
function schnippsi() {
|
|
"${ROLES_DIR}/schnippsi_zero.sh" "$@"
|
|
}
|
|
|
|
# 📄 Templatus - HTML/Template-Helfer
|
|
function templatus() {
|
|
"${ROLES_DIR}/templatus_zero.sh" "$@"
|
|
}
|
|
|
|
# 📊 Tobi - JSON/Daten-Helfer
|
|
function tobi() {
|
|
"${ROLES_DIR}/tobi_zero.sh" "$@"
|
|
}
|
|
|
|
# 🔧 Schraubbär - Schweres Gerät, Schweißen, Werkzeug
|
|
function schraubaer() {
|
|
"${ROLES_DIR}/schraubaer_zero_final.sh" "$@"
|
|
}
|
|
|
|
# 🐌 Schnecki - Elektronik-Bastler
|
|
function schnecki() {
|
|
"${ROLES_DIR}/schnecki_zero.sh" "$@"
|
|
}
|
|
|
|
# === DAS DREIECK ===
|
|
|
|
# 🐘 DumboSQL - Nie vergessend
|
|
function dumbosql() {
|
|
"${ROLES_DIR}/dumbosql_zero.sh" "$@"
|
|
}
|
|
|
|
# 🦊 FunkFox - Bash Rapper
|
|
function funkfox() {
|
|
"${ROLES_DIR}/funkfox_zero.sh" "$@"
|
|
}
|
|
|
|
# 🕊️ Taichi Taube - Balance & Spirale
|
|
function taichitaube() {
|
|
"${ROLES_DIR}/taichitaube_zero.sh" "$@"
|
|
}
|
|
|
|
# === DIE RESTLICHEN WALDWÄCHTER ===
|
|
|
|
# 🐍 SnakePy - Python Guide
|
|
function snakepy() {
|
|
"${ROLES_DIR}/snakepy_zero.sh" "$@"
|
|
}
|
|
|
|
# 🧓 PepperPHP - Structure Mentor
|
|
function pepperphp() {
|
|
"${ROLES_DIR}/pepperphp_zero.sh" "$@"
|
|
}
|
|
|
|
# 🦀 CrabbyRust - Security Guardian
|
|
function crabbyrust() {
|
|
"${ROLES_DIR}/crabbyrust_zero.sh" "$@"
|
|
}
|
|
|
|
# 🕷️ Spider - Network Feeler
|
|
function spider() {
|
|
"${ROLES_DIR}/spider_zero.sh" "$@"
|
|
}
|
|
|
|
# 🧭 Vektor - Point-to-Point Guide
|
|
function vektor() {
|
|
"${ROLES_DIR}/vektor_zero.sh" "$@"
|
|
}
|
|
|
|
# 👾 ASCII-Monster - Terminal Artist
|
|
function asciimonster() {
|
|
"${ROLES_DIR}/asciimonster_zero.sh" "$@"
|
|
}
|
|
|
|
# Export functions so they're available in subshells
|
|
export -f mayaeule
|
|
export -f deepbit
|
|
export -f bugsy
|
|
export -f schnippsi
|
|
export -f templatus
|
|
export -f tobi
|
|
export -f schraubaer
|
|
export -f schnecki
|
|
export -f dumbosql
|
|
export -f funkfox
|
|
export -f taichitaube
|
|
export -f snakepy
|
|
export -f pepperphp
|
|
export -f crabbyrust
|
|
export -f spider
|
|
export -f vektor
|
|
export -f asciimonster
|