"""Event ingress stub — dual trigger (Plan | Event) v0.1.""" from __future__ import annotations from typing import Any, Literal from tenant_context import TenantContext EventKind = Literal[ "actor_result", "external_event", "cadence_due", "situational", ] def apply_steering_event( ctx: TenantContext, *, initiative_id: str, event_kind: EventKind, payload: dict[str, Any] | None = None, ) -> dict[str, Any]: """ Event-Schub in den Kernel (Stub v0.1). Plan-dominante Methoden: Event wird protokolliert, Auswertung erfolgt weiterhin über evaluate_steering (Plan-Zug). Volle Event-Pipeline folgt für dispute_procedure, care_navigation, recurring_control. """ from steering.kernel.evaluate import evaluate_steering evaluation = evaluate_steering(ctx, initiative_id=initiative_id) return { "accepted": True, "event_kind": event_kind, "initiative_id": initiative_id, "handled": False, "message": "Event ingress stub — re-evaluate via Plan-Zug", "payload_keys": sorted((payload or {}).keys()), "evaluation": evaluation.to_dict(), }