100 lines
4.7 KiB
TypeScript
100 lines
4.7 KiB
TypeScript
import type { AssistantDebugPayload, AssistantMessageResponsePayload } from "../types/assistant";
|
|
import type { NormalizeResponsePayload } from "../types/normalizer";
|
|
import type { InvestigationStateWithProblemUnits } from "../types/stage2ProblemUnits";
|
|
import type { RunAssistantDeepTurnAnalysisRuntimeOutput } from "./assistantDeepTurnAnalysisRuntimeAdapter";
|
|
import type { AssistantFollowupUsage } from "./assistantFollowupUsage";
|
|
import {
|
|
runAssistantDeepTurnResponseRuntime,
|
|
type RunAssistantDeepTurnResponseRuntimeInput,
|
|
type RunAssistantDeepTurnResponseRuntimeOutput
|
|
} from "./assistantDeepTurnResponseRuntimeAdapter";
|
|
import { buildAssistantDeepTurnResponseRuntimeInput } from "./assistantDeepTurnResponseRuntimeInputBuilder";
|
|
|
|
export interface RunAssistantDeepTurnResponseAttemptRuntimeInput<
|
|
ResponseType = AssistantMessageResponsePayload
|
|
> {
|
|
featureInvestigationStateV1: boolean;
|
|
featureContractsV11: boolean;
|
|
featureAnswerPolicyV11: boolean;
|
|
sessionId: string;
|
|
questionId: string;
|
|
userMessage: string;
|
|
normalized: {
|
|
trace_id: string;
|
|
prompt_version: string;
|
|
schema_version: string;
|
|
normalized: NormalizeResponsePayload["normalized"];
|
|
};
|
|
normalizedQuestion: string;
|
|
deepTurnAnalysisRuntime: RunAssistantDeepTurnAnalysisRuntimeOutput;
|
|
runtimeAnalysisContext: RunAssistantDeepTurnResponseRuntimeInput["runtimeAnalysisContext"];
|
|
followupStateUsage: AssistantFollowupUsage | null;
|
|
followupApplied: boolean;
|
|
previousInvestigationState: InvestigationStateWithProblemUnits | null | undefined;
|
|
addressRuntimeMetaForDeep: RunAssistantDeepTurnResponseRuntimeInput["addressRuntimeMetaForDeep"];
|
|
extractDroppedIntentSegments: RunAssistantDeepTurnResponseRuntimeInput["extractDroppedIntentSegments"];
|
|
buildDebugRoutes: RunAssistantDeepTurnResponseRuntimeInput["buildDebugRoutes"];
|
|
extractExecutionState: RunAssistantDeepTurnResponseRuntimeInput["extractExecutionState"];
|
|
sanitizeReply: RunAssistantDeepTurnResponseRuntimeInput["sanitizeReply"];
|
|
persistInvestigationState: RunAssistantDeepTurnResponseRuntimeInput["persistInvestigationState"];
|
|
messageIdFactory: RunAssistantDeepTurnResponseRuntimeInput["messageIdFactory"];
|
|
appendItem: RunAssistantDeepTurnResponseRuntimeInput["appendItem"];
|
|
getSession: RunAssistantDeepTurnResponseRuntimeInput["getSession"];
|
|
persistSession: RunAssistantDeepTurnResponseRuntimeInput["persistSession"];
|
|
cloneConversation: RunAssistantDeepTurnResponseRuntimeInput["cloneConversation"];
|
|
logEvent: RunAssistantDeepTurnResponseRuntimeInput["logEvent"];
|
|
runPackagingRuntime?: RunAssistantDeepTurnResponseRuntimeInput["runPackagingRuntime"];
|
|
runFinalizeDeepTurn?: RunAssistantDeepTurnResponseRuntimeInput["runFinalizeDeepTurn"];
|
|
runDeepTurnResponseRuntime?: (
|
|
input: RunAssistantDeepTurnResponseRuntimeInput
|
|
) => RunAssistantDeepTurnResponseRuntimeOutput;
|
|
}
|
|
|
|
export function runAssistantDeepTurnResponseAttemptRuntime<
|
|
ResponseType = AssistantMessageResponsePayload
|
|
>(
|
|
input: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>
|
|
): {
|
|
response: ResponseType;
|
|
debug: AssistantDebugPayload;
|
|
} {
|
|
const runDeepTurnResponseRuntimeSafe =
|
|
input.runDeepTurnResponseRuntime ?? runAssistantDeepTurnResponseRuntime;
|
|
const responseRuntime = runDeepTurnResponseRuntimeSafe(
|
|
buildAssistantDeepTurnResponseRuntimeInput({
|
|
featureInvestigationStateV1: input.featureInvestigationStateV1,
|
|
featureContractsV11: input.featureContractsV11,
|
|
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
|
|
sessionId: input.sessionId,
|
|
questionId: input.questionId,
|
|
userMessage: input.userMessage,
|
|
normalized: input.normalized,
|
|
normalizedQuestion: input.normalizedQuestion,
|
|
deepTurnAnalysisRuntime: input.deepTurnAnalysisRuntime,
|
|
runtimeAnalysisContext: input.runtimeAnalysisContext,
|
|
followupStateUsage: input.followupStateUsage,
|
|
followupApplied: input.followupApplied,
|
|
previousInvestigationState: input.previousInvestigationState,
|
|
addressRuntimeMetaForDeep: input.addressRuntimeMetaForDeep,
|
|
extractDroppedIntentSegments: input.extractDroppedIntentSegments,
|
|
buildDebugRoutes: input.buildDebugRoutes,
|
|
extractExecutionState: input.extractExecutionState,
|
|
sanitizeReply: input.sanitizeReply,
|
|
persistInvestigationState: input.persistInvestigationState,
|
|
messageIdFactory: input.messageIdFactory,
|
|
appendItem: input.appendItem,
|
|
getSession: input.getSession,
|
|
persistSession: input.persistSession,
|
|
cloneConversation: input.cloneConversation,
|
|
logEvent: input.logEvent,
|
|
runPackagingRuntime: input.runPackagingRuntime,
|
|
runFinalizeDeepTurn: input.runFinalizeDeepTurn
|
|
})
|
|
);
|
|
|
|
return {
|
|
response: responseRuntime.response as ResponseType,
|
|
debug: responseRuntime.debug
|
|
};
|
|
}
|