Kansho/backend/placeholder_mvp.py
2026-08-26 10:42:20 +02:00

99 lines
2.8 KiB
Python

"""MVP context keys. Values come from the Context Builder, never from Python prompt strings."""
from __future__ import annotations
from placeholders import Placeholder, register
def _from_ctx(key: str):
return lambda ctx: (ctx or {}).get(key) or ""
register(
Placeholder(
key="dialogue_context",
description="Vom Context Builder zusammengestellter Dialog- und Space-Kontext.",
data_class="B",
resolver=_from_ctx("dialogue_context"),
)
)
register(
Placeholder(
key="writing_profile",
description="Aktueller Writing-Profile-Brief für Journal-Artefakte. Kein KI-Draft, keine Dialogsteuerung.",
data_class="B",
resolver=_from_ctx("writing_profile"),
)
)
register(
Placeholder(
key="interaction_hint",
description="Interaction Profile plus aktueller Dialogue State. Kein Writing Profile, keine Ableitung aus Nicht-Widersprechen.",
data_class="C",
resolver=_from_ctx("interaction_hint"),
)
)
register(
Placeholder(
key="space_title",
description="Titel des aktuellen Reflection Space.",
data_class="C",
resolver=_from_ctx("space_title"),
)
)
register(
Placeholder(
key="existing_text",
description="Bestehender Draft oder Entry, nur bei ausdrücklichem Regenerieren.",
data_class="B",
resolver=_from_ctx("existing_text"),
)
)
register(
Placeholder(
key="source_text",
description="Klartext für Entity Detection. Verlässt die Trusted Zone nur über den Detect-Provider.",
data_class="B",
resolver=_from_ctx("source_text"),
)
)
register(
Placeholder(
key="known_labels",
description="Bereits gemappte lokale Labels, damit Detection sie nicht neu vorschlägt.",
data_class="C",
resolver=_from_ctx("known_labels"),
)
)
register(
Placeholder(
key="register_hint",
description="Lokales Erzählregister für den Dialogzug. Kein zweiter Modellaufruf.",
data_class="C",
resolver=_from_ctx("register_hint"),
)
)
register(
Placeholder(
key="opening_hint",
description="Journalspezifischer erster Impuls. Leer bei späteren Zügen. Keine Intent-Engine.",
data_class="B",
resolver=_from_ctx("opening_hint"),
)
)
register(
Placeholder(
key="reconstruction",
description="Validierte inhaltliche Rekonstruktion der Stufe 1. Kein vollständiger Tagesdialog.",
data_class="B",
resolver=_from_ctx("reconstruction"),
)
)
register(
Placeholder(
key="review_package",
description="Gebündeltes Profile-Review-Paket (derselbe Vertrag für API und Copy/Paste).",
data_class="B",
resolver=_from_ctx("review_package"),
)
)