ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.25 финализацию address-ветки в отдельный adapter \ Переподключил assistantService на новый adapter (без смены поведения)
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import type { AssistantConversationItem, AssistantDebugPayload, AssistantMessageResponsePayload, AssistantReplyType } from "../types/assistant";
|
||||
import { buildAssistantDeepTurnSuccessResponse } from "./assistantDeepTurnResponseBuilder";
|
||||
import type { CommitAssistantTurnAndLogOutput } from "./assistantTurnCommitRuntimeAdapter";
|
||||
import { commitAssistantTurnAndLog } from "./assistantTurnCommitRuntimeAdapter";
|
||||
|
||||
export interface FinalizeAssistantDeepTurnInput {
|
||||
sessionId: string;
|
||||
assistantReply: string;
|
||||
replyType: AssistantReplyType;
|
||||
assistantItem: AssistantConversationItem;
|
||||
debug: AssistantDebugPayload | Record<string, unknown>;
|
||||
deepAnalysisLogDetails: Record<string, unknown>;
|
||||
appendItem: Parameters<typeof commitAssistantTurnAndLog>[0]["appendItem"];
|
||||
getSession: Parameters<typeof commitAssistantTurnAndLog>[0]["getSession"];
|
||||
persistSession: Parameters<typeof commitAssistantTurnAndLog>[0]["persistSession"];
|
||||
cloneConversation: Parameters<typeof commitAssistantTurnAndLog>[0]["cloneConversation"];
|
||||
logEvent: Parameters<typeof commitAssistantTurnAndLog>[0]["logEvent"];
|
||||
commitFn?: typeof commitAssistantTurnAndLog;
|
||||
buildResponseFn?: typeof buildAssistantDeepTurnSuccessResponse;
|
||||
}
|
||||
|
||||
export interface FinalizeAssistantDeepTurnOutput {
|
||||
commitResult: CommitAssistantTurnAndLogOutput;
|
||||
response: AssistantMessageResponsePayload;
|
||||
}
|
||||
|
||||
export function finalizeAssistantDeepTurn(
|
||||
input: FinalizeAssistantDeepTurnInput
|
||||
): FinalizeAssistantDeepTurnOutput {
|
||||
const commitSafe = input.commitFn ?? commitAssistantTurnAndLog;
|
||||
const buildResponseSafe = input.buildResponseFn ?? buildAssistantDeepTurnSuccessResponse;
|
||||
|
||||
const commitResult = commitSafe({
|
||||
sessionId: input.sessionId,
|
||||
assistantItem: input.assistantItem,
|
||||
eventType: "assistant_message",
|
||||
logDetails: input.deepAnalysisLogDetails,
|
||||
appendItem: input.appendItem,
|
||||
getSession: input.getSession,
|
||||
persistSession: input.persistSession,
|
||||
cloneConversation: input.cloneConversation,
|
||||
logEvent: input.logEvent
|
||||
});
|
||||
const response = buildResponseSafe({
|
||||
sessionId: input.sessionId,
|
||||
assistantReply: input.assistantReply,
|
||||
replyType: input.replyType,
|
||||
conversationItem: input.assistantItem,
|
||||
debug: input.debug,
|
||||
conversation: commitResult.conversation
|
||||
});
|
||||
|
||||
return {
|
||||
commitResult,
|
||||
response
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user