""" KI-Prompt Jobs: Resolver + oeffentliche Fassade fuer Uebungs-KI-Aufrufe. Importiert exercise_ai fuer Platzhalter-Builder und OpenRouter-Orchestrierung. """ from __future__ import annotations from typing import Any, Dict from ai_prompt_context import ExerciseFormAiFocusRow, ExerciseFormAiPromptContext from exercise_ai import build_exercise_placeholder_variables def resolve_exercise_form_variables(cur, slug: str, ctx: ExerciseFormAiPromptContext) -> Dict[str, str]: """Baut die Mustache-Map fuer exercise_summary / exercise_skill_suggestions.""" return build_exercise_placeholder_variables( cur, slug=slug, title=(ctx.title or "").strip(), goal=ctx.goal, execution=ctx.execution, focus_area_hint=ctx.focus_hint, focus_areas_context=ctx.focus_area_tuples(), preparation=ctx.preparation, trainer_notes=ctx.trainer_notes, planning_context=ctx.planning_context, ) def run_exercise_form_ai_suggestion( cur, ctx: ExerciseFormAiPromptContext, *, want_summary: bool, want_skills: bool, want_instructions: bool = False, ) -> Dict[str, Any]: """ Fuehrt Uebungs-KI aus (OpenRouter) — ein Einstieg fuer Router und kuenftige Jobs. ``ctx`` = Formularinhalt; ``want_*`` = welche Prompt-Slugs angefragt werden. """ from exercise_ai import run_exercise_ai_suggestion return run_exercise_ai_suggestion( cur, form_ctx=ctx, want_summary=want_summary, want_skills=want_skills, want_instructions=want_instructions, ) __all__ = [ "ExerciseFormAiFocusRow", "ExerciseFormAiPromptContext", "resolve_exercise_form_variables", "run_exercise_form_ai_suggestion", ]