simplify Athena runtime and centralize MCP management

This commit is contained in:
Mikei386 committed 2026-08-26 09:57:38 +02:00
1 parent 104c9904a5
commit ab671a6396
31 files changed
+918 -419

No files matched your search

+24 -16
View File
@@ -1,31 +1,39 @@
#!/usr/bin/env bash
set -Eeuo pipefail
STACK_DIR=${STACK_DIR:-/opt/mike-ai/stack}
HERMES_DATA_DIR=${HERMES_DATA_DIR:-/data/hermes}
SKILL_SOURCE=$STACK_DIR/platform/hermes/skills/athena-operator/SKILL.md
PROFILES=(fast medium large ultra uncensored)
STACK_DIR=${STACK_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)}
HERMES_DATA_DIR=${HERMES_DATA_DIR:-/mnt/nvme-storage/appdata/Hermes-Agent}
PROFILE_MATRIX=${PROFILE_MATRIX:-$STACK_DIR/config/profile-matrix.json}
SKILL_ROOT=$STACK_DIR/platform/hermes/skills
die() { printf 'FEHLER: %s\n' "$*" >&2; exit 1; }
[[ $EUID -eq 0 ]] || die "Bitte als root ausführen."
[[ -s $SKILL_SOURCE ]] || die "Skill-Quelle fehlt: $SKILL_SOURCE"
grep -Fxq -- 'name: athena-operator' "$SKILL_SOURCE" || \
die "Skill-Quelle hat kein gültiges Athena-Operator-Frontmatter."
[[ -s $PROFILE_MATRIX ]] || die "Profilmatrix fehlt: $PROFILE_MATRIX"
install_skill() {
local root=$1 target=$1/platform/athena-operator/SKILL.md
local source=$1 root=$2 name target
name=${source%/SKILL.md}
name=${name##*/}
target=$root/platform/$name/SKILL.md
grep -Fxq -- "name: $name" "$source" || \
die "Skill-Quelle hat kein gültiges Frontmatter: $source"
install -d -o 10000 -g 10000 -m 0750 "${target%/*}"
if [[ -s $target ]] && ! cmp -s "$SKILL_SOURCE" "$target"; then
if [[ -s $target ]] && ! cmp -s "$source" "$target"; then
cp -a "$target" "$target.before-managed-update-$(date +%Y%m%d-%H%M%S)"
fi
install -o 10000 -g 10000 -m 0640 "$SKILL_SOURCE" "$target"
cmp -s "$SKILL_SOURCE" "$target" || die "Skill-Synchronisierung fehlgeschlagen: $target"
install -o 10000 -g 10000 -m 0640 "$source" "$target"
cmp -s "$source" "$target" || die "Skill-Synchronisierung fehlgeschlagen: $target"
}
install_skill "$HERMES_DATA_DIR/skills"
for profile in "${PROFILES[@]}"; do
[[ -d $HERMES_DATA_DIR/profiles/$profile ]] || continue
install_skill "$HERMES_DATA_DIR/profiles/$profile/skills"
mapfile -t profiles < <(jq -r '.profiles[].id' "$PROFILE_MATRIX")
for source in "$SKILL_ROOT"/*/SKILL.md; do
[[ -s $source ]] || continue
install_skill "$source" "$HERMES_DATA_DIR/skills"
for profile in "${profiles[@]}"; do
[[ -d $HERMES_DATA_DIR/profiles/$profile ]] || continue
install_skill "$source" "$HERMES_DATA_DIR/profiles/$profile/skills"
done
done
printf 'HERMES_ATHENA_OPERATOR_SKILL_OK\n'
printf 'HERMES_SKILLS_OK\n'