update
This commit is contained in:
@@ -10,7 +10,6 @@ STORAGE_DIR = PROJECT_ROOT / "storage"
|
||||
TOPICS_DIR = PROJECT_ROOT / "topics" # Uni-Quelldateien: topics/<name>/*.txt|md|pdf
|
||||
KORPUS_DIR = STORAGE_DIR / "korpus" # Snapshots: korpus/<topic>/q<id>.md
|
||||
FRONTEND_DIST = PROJECT_ROOT / "frontend" / "dist"
|
||||
DB_PATH = STORAGE_DIR / os.getenv("CREATOR_DB", "creator2.db") # Override für Smoke-Läufe
|
||||
|
||||
|
||||
def _load_env(path: Path) -> None:
|
||||
@@ -32,6 +31,23 @@ def _load_env(path: Path) -> None:
|
||||
|
||||
_load_env(PROJECT_ROOT / ".env")
|
||||
|
||||
# NACH _load_env lesen — sonst ist ein in .env gesetztes CREATOR_DB wirkungslos
|
||||
# (der Loader-Kommentar verspricht „die Datei gewinnt").
|
||||
DB_PATH = STORAGE_DIR / os.getenv("CREATOR_DB", "creator2.db") # Override für Smoke-Läufe
|
||||
|
||||
# ── Topic-Namen ───────────────────────────────────────────────────────────────
|
||||
import re as _re
|
||||
|
||||
# Erstes Zeichen alphanumerisch (kein führendes „-" = rsync/CLI-Option), danach
|
||||
# nur Wortzeichen/Umlaute/- /_. Kein „.", kein „/" → sicher als Pfadkomponente
|
||||
# (rmtree, Snapshot-Ordner) UND als Shell-Argument (Transfer-Makefile).
|
||||
TOPIC_NAME_RE = _re.compile(r"^[A-Za-z0-9äöüÄÖÜß][\wäöüÄÖÜß-]{0,63}$")
|
||||
|
||||
|
||||
def topic_name_ok(name: str) -> bool:
|
||||
return bool(name) and TOPIC_NAME_RE.match(name) is not None
|
||||
|
||||
|
||||
# ── Nebenläufigkeit ───────────────────────────────────────────────────────────
|
||||
MAX_CONCURRENT_AGENTS = int(os.getenv("MAX_CONCURRENT_AGENTS", "16")) # CLI-Prozesse (~310 MB RSS)
|
||||
MAX_CONCURRENT_API_AGENTS = int(os.getenv("MAX_CONCURRENT_API_AGENTS", "28")) # direkte API, ~0 RAM
|
||||
@@ -86,6 +102,10 @@ BAUSTEIN_MAX_ATOME = 8
|
||||
ZIELE_CHUNK_ATOME = 30 # Atome pro Lernziel-Call
|
||||
KAPITEL_BAUSTEINE = 5 # Richtwert Bausteine je Kapitel (Kapitel-Schnitt-Judge)
|
||||
|
||||
# ── Ebene 3.5: Diagramme ──────────────────────────────────────────────────────
|
||||
DIAGRAMM_MIN_KANTEN = 3 # ab so vielen internen braucht-Kanten → Abhängigkeitsdiagramm
|
||||
DIAGRAMM_TYPEN = ("dependency", "state", "flow", "tree")
|
||||
|
||||
# ── Ebene 4: Guide ────────────────────────────────────────────────────────────
|
||||
SECTION_WOERTER_PRO_ATOM = (40, 220) # Längenband ausführlicher Teil je Atom
|
||||
|
||||
@@ -111,6 +131,9 @@ TIMEOUTS = {
|
||||
"writer": (450, 60),
|
||||
"pruefer": (600, 5),
|
||||
"qa_judge": (600, 0),
|
||||
"diagramm_plan": (200, 0),
|
||||
"diagramm_spec": (300, 0),
|
||||
"diagramm_verify": (200, 5),
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user