ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.12.23: декомпозиция deep-turn пайплайна ассистента в runtime-адаптеры
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import type { AssistantReplyType, AssistantRequirement, RequirementCoverageReport, UnifiedRetrievalResult } from "../types/assistant";
|
||||
import type { RouteHintSummary } from "../types/normalizer";
|
||||
import type { InvestigationStateWithProblemUnits } from "../types/stage2ProblemUnits";
|
||||
import { updateInvestigationState } from "./investigationState";
|
||||
|
||||
export interface BuildAssistantInvestigationStateSnapshotInput {
|
||||
featureEnabled: boolean;
|
||||
previousState: InvestigationStateWithProblemUnits | null | undefined;
|
||||
timestamp: string;
|
||||
questionId: string;
|
||||
userMessage: string;
|
||||
routeSummary: RouteHintSummary | null;
|
||||
requirements: AssistantRequirement[];
|
||||
coverageReport: RequirementCoverageReport;
|
||||
retrievalResults: UnifiedRetrievalResult[];
|
||||
replyType: AssistantReplyType;
|
||||
followupApplied: boolean;
|
||||
}
|
||||
|
||||
export function buildAssistantInvestigationStateSnapshot(
|
||||
input: BuildAssistantInvestigationStateSnapshotInput
|
||||
): InvestigationStateWithProblemUnits | null {
|
||||
if (!input.featureEnabled || !input.previousState) {
|
||||
return null;
|
||||
}
|
||||
return updateInvestigationState({
|
||||
previous: input.previousState,
|
||||
timestamp: input.timestamp,
|
||||
questionId: input.questionId,
|
||||
userMessage: input.userMessage,
|
||||
routeSummary: input.routeSummary,
|
||||
requirements: input.requirements,
|
||||
coverageReport: input.coverageReport,
|
||||
retrievalResults: input.retrievalResults,
|
||||
replyType: input.replyType,
|
||||
followupApplied: input.followupApplied
|
||||
});
|
||||
}
|
||||
|
||||
export interface PersistAssistantInvestigationStateSnapshotInput {
|
||||
featureEnabled: boolean;
|
||||
sessionId: string;
|
||||
snapshot: InvestigationStateWithProblemUnits | null;
|
||||
persist: (sessionId: string, snapshot: InvestigationStateWithProblemUnits) => void;
|
||||
}
|
||||
|
||||
export function persistAssistantInvestigationStateSnapshot(
|
||||
input: PersistAssistantInvestigationStateSnapshotInput
|
||||
): boolean {
|
||||
if (!input.featureEnabled || !input.snapshot) {
|
||||
return false;
|
||||
}
|
||||
input.persist(input.sessionId, input.snapshot);
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user