feat(compliance): content moderation on model input and output — local lexicon, Aliyun adapter, free completion, admin log

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N4f2nya58RoRu4yEmJgRGE
This commit is contained in:
Jesse_Chen
2026-09-30 09:42:11 +08:00
co-authored by Claude Opus 5.5
parent e742da268d
commit 4f3d8d7c62
28 changed files with 1143 additions and 6 deletions
+2 -1
View File
@@ -938,7 +938,8 @@ export function useConsultationRun(params: ConsultationRunParams) {
if (responseKind !== "smalltalk") timelineState = reduceConsultationTimeline(timelineState, event);
frames.touch();
if (event.type === "answer.delta") {
answer += event.text;
// A moderated answer arrives as one replacing delta (2026-09-30).
answer = event.replace ? event.text : answer + event.text;
frames.setAnswer(answer);
}
if (event.type === "thinking.delta" && typeof event.text === "string") {