ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.12.23: декомпозиция deep-turn пайплайна ассистента в runtime-адаптеры

This commit is contained in:
2026-04-10 19:22:40 +03:00
parent 19dbaff741
commit 80d108e506
116 changed files with 13949 additions and 2039 deletions
@@ -0,0 +1,68 @@
import { buildAssistantAnswerStructureV11 } from "./assistantAnswerPackageBuilder";
import type {
AssistantConversationItem,
AssistantDebugPayload,
AssistantReplyType,
AnswerGroundingCheck,
RequirementCoverageReport,
UnifiedRetrievalResult
} from "../types/assistant";
import type { AnswerStructureV11 } from "../types/stage1Contracts";
export interface DeepAnswerArtifacts {
safeAssistantReply: string;
answerStructureV11: AnswerStructureV11 | null;
}
function stripTechnicalTail(text: string): string {
return String(text ?? "")
.replace(/(?:^|\n)\s*#{0,6}\s*(?:debug_payload_json|technical_breakdown_json)\b[\s\S]*$/gi, "")
.replace(/\b(?:debug_payload_json|technical_breakdown_json)\b[\s\S]*$/gi, "")
.trim();
}
export function buildDeepAnswerArtifacts(input: {
safeAssistantReplyBase: string;
featureContractsV11: boolean;
featureAnswerPolicyV11: boolean;
compositionAnswerStructureV11: AnswerStructureV11 | null | undefined;
coverageReport: RequirementCoverageReport;
groundingCheck: AnswerGroundingCheck;
retrievalResults: UnifiedRetrievalResult[];
}): DeepAnswerArtifacts {
const safeAssistantReply = stripTechnicalTail(input.safeAssistantReplyBase);
const answerStructureV11 = input.featureContractsV11
? input.featureAnswerPolicyV11 && input.compositionAnswerStructureV11
? input.compositionAnswerStructureV11
: buildAssistantAnswerStructureV11({
assistantReply: safeAssistantReply,
coverageReport: input.coverageReport,
groundingCheck: input.groundingCheck,
retrievalResults: input.retrievalResults
})
: null;
return {
safeAssistantReply,
answerStructureV11
};
}
export function buildAssistantConversationItem(input: {
messageId: string;
sessionId: string;
text: string;
replyType: AssistantReplyType;
traceId: string | null;
debug: AssistantDebugPayload;
}): AssistantConversationItem {
return {
message_id: input.messageId,
session_id: input.sessionId,
role: "assistant",
text: input.text,
reply_type: input.replyType,
created_at: new Date().toISOString(),
trace_id: input.traceId,
debug: input.debug
};
}