"""Eigenleben-Endpoints — „Von allein"-Ansicht (Skills + Vorschlags-Bilanz), read-only.""" from fastapi import APIRouter, HTTPException from services import eigenleben router = APIRouter(prefix="/api") @router.get("/eigenleben") def get_overview() -> dict: return eigenleben.overview() # :path — Kategorie-Skills haben einen Schrägstrich in der ID (autonomous-ai-agents/ # hermes-agent). Als normales {skill_id}-Segment matcht die Route dann nicht, der Request # fällt in den SPA-Fallback (index.html, Status 200) und die UI zeigt „Konnte den # Skill-Text nicht laden". Die Pfad-Validierung (max. eine Ebene, keine . /..) macht # services.eigenleben.skill_text. @router.get("/eigenleben/skill/{skill_id:path}") def get_skill(skill_id: str) -> dict: text = eigenleben.skill_text(skill_id) if text is None: raise HTTPException(404, "Skill nicht gefunden.") return {"id": skill_id, "text": text}