{"points":[{"point":"pre_tool_call","hooks":[{"name":"ComplianceVeto","core":true,"disableable":false,"description":"AML/Compliance-Veto vor jeder Werkzeug-Aktion — nicht deaktivierbar. Durchsetzung: compliance/core/veto.py:146 evaluate(action), Chokepoint engine/tools/business.py:2267."},{"name":"ToolApprovalGate","core":true,"disableable":false,"description":"Freigabe-Gate für Schreib-/Outbound-Werkzeuge (Stufe 1/2) — nicht deaktivierbar. Durchsetzung: webchat/agents/tool_approval.py."}]},{"point":"post_tool_call","hooks":[{"name":"turn-telemetry","core":false,"disableable":true,"description":"Beobachtet tool_name/status/duration_ms nach jeder Tool-Ausführung und speist sie in die Turn-Telemetrie (kernel/turn_timing.py). Reine Beobachtung, Rückgabe ignoriert."}]},{"point":"on_turn_end","hooks":[{"name":"Evidence-Gate","core":true,"disableable":false,"description":"Beleg-Gate am Turn-Ende (ADR-0060) — nicht deaktivierbar. Durchsetzung: webchat/agents/evidence.py:111 gate_mode()."}]},{"point":"pre_outbound","hooks":[{"name":"ComplianceVeto","core":true,"disableable":false,"description":"AML/Compliance-Veto vor jeder ausgehenden Aktion — nicht deaktivierbar. Durchsetzung: compliance/core/veto.py:146 evaluate(action)."}]}],"rules":[]}