177 lines
9.7 KiB
TypeScript
177 lines
9.7 KiB
TypeScript
import type { AssistantDebugPayload, AssistantMessageResponsePayload } from "../types/assistant";
|
|
import type { InvestigationStateWithProblemUnits } from "../types/stage2ProblemUnits";
|
|
import {
|
|
buildAssistantDeepTurnNormalizationRuntime,
|
|
type BuildAssistantDeepTurnNormalizationRuntimeInput,
|
|
type BuildAssistantDeepTurnNormalizationRuntimeOutput
|
|
} from "./assistantDeepTurnNormalizationRuntimeAdapter";
|
|
import {
|
|
runAssistantDeepTurnAnalysisAttemptRuntime,
|
|
type RunAssistantDeepTurnAnalysisAttemptRuntimeInput
|
|
} from "./assistantDeepTurnAnalysisAttemptRuntimeAdapter";
|
|
import {
|
|
runAssistantDeepTurnResponseAttemptRuntime,
|
|
type RunAssistantDeepTurnResponseAttemptRuntimeInput
|
|
} from "./assistantDeepTurnResponseAttemptRuntimeAdapter";
|
|
import type { RunAssistantDeepTurnAnalysisRuntimeOutput } from "./assistantDeepTurnAnalysisRuntimeAdapter";
|
|
import {
|
|
buildAssistantDeepTurnAnalysisAttemptRuntimeInput,
|
|
buildAssistantDeepTurnNormalizationRuntimeInput,
|
|
buildAssistantDeepTurnResponseAttemptRuntimeInput
|
|
} from "./assistantDeepTurnAttemptInputBuilder";
|
|
|
|
export interface RunAssistantDeepTurnAttemptRuntimeInput<ResponseType = AssistantMessageResponsePayload> {
|
|
sessionId: string;
|
|
questionId: string;
|
|
userMessage: string;
|
|
payload: BuildAssistantDeepTurnNormalizationRuntimeInput["payload"];
|
|
runtimeAnalysisContext: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["runtimeAnalysisContext"];
|
|
sessionInvestigationState: InvestigationStateWithProblemUnits | null | undefined;
|
|
addressRuntimeMetaForDeep: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["addressRuntimeMetaForDeep"];
|
|
featureInvestigationStateV1: boolean;
|
|
featureStateFollowupBindingV1: boolean;
|
|
featureContractsV11: boolean;
|
|
featureAnswerPolicyV11: boolean;
|
|
featureProblemCentricAnswerV1: boolean;
|
|
featureLifecycleAnswerV1: boolean;
|
|
buildFollowupStateBinding: BuildAssistantDeepTurnNormalizationRuntimeInput["buildFollowupStateBinding"];
|
|
normalize: BuildAssistantDeepTurnNormalizationRuntimeInput["normalize"];
|
|
resolveBusinessScopeAlignment: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["resolveBusinessScopeAlignment"];
|
|
inferP0DomainFromMessage: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["inferP0DomainFromMessage"];
|
|
resolveBusinessScopeFromLiveContext: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["resolveBusinessScopeFromLiveContext"];
|
|
extractRequirements: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["extractRequirements"];
|
|
toExecutionPlan: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["toExecutionPlan"];
|
|
enforceRbpLiveRoutePlan: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["enforceRbpLiveRoutePlan"];
|
|
enforceFaLiveRoutePlan: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["enforceFaLiveRoutePlan"];
|
|
executeRouteRuntime: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["executeRouteRuntime"];
|
|
mapNoRouteReason: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["mapNoRouteReason"];
|
|
buildSkippedResult: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["buildSkippedResult"];
|
|
evaluateCoverage: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["evaluateCoverage"];
|
|
checkGrounding: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["checkGrounding"];
|
|
collectRbpLiveRouteAudit: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["collectRbpLiveRouteAudit"];
|
|
collectFaLiveRouteAudit: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["collectFaLiveRouteAudit"];
|
|
hasExplicitPeriodAnchor: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["hasExplicitPeriodAnchor"];
|
|
extractDroppedIntentSegments: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["extractDroppedIntentSegments"];
|
|
buildDebugRoutes: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["buildDebugRoutes"];
|
|
extractExecutionState: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["extractExecutionState"];
|
|
sanitizeReply: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["sanitizeReply"];
|
|
persistInvestigationState: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["persistInvestigationState"];
|
|
messageIdFactory: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["messageIdFactory"];
|
|
appendItem: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["appendItem"];
|
|
getSession: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["getSession"];
|
|
persistSession: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["persistSession"];
|
|
cloneConversation: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["cloneConversation"];
|
|
logEvent: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["logEvent"];
|
|
runPackagingRuntime?: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["runPackagingRuntime"];
|
|
runFinalizeDeepTurn?: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["runFinalizeDeepTurn"];
|
|
runDeepTurnNormalizationRuntime?: (
|
|
input: BuildAssistantDeepTurnNormalizationRuntimeInput
|
|
) => Promise<BuildAssistantDeepTurnNormalizationRuntimeOutput>;
|
|
runDeepTurnAnalysisAttemptRuntime?: (
|
|
input: RunAssistantDeepTurnAnalysisAttemptRuntimeInput
|
|
) => Promise<RunAssistantDeepTurnAnalysisRuntimeOutput>;
|
|
runDeepTurnResponseAttemptRuntime?: (
|
|
input: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>
|
|
) => {
|
|
response: ResponseType;
|
|
debug: AssistantDebugPayload;
|
|
};
|
|
}
|
|
|
|
export interface RunAssistantDeepTurnAttemptRuntimeOutput<ResponseType = AssistantMessageResponsePayload> {
|
|
response: ResponseType;
|
|
debug: AssistantDebugPayload;
|
|
normalizationRuntime: BuildAssistantDeepTurnNormalizationRuntimeOutput;
|
|
deepTurnAnalysisRuntime: RunAssistantDeepTurnAnalysisRuntimeOutput;
|
|
}
|
|
|
|
export async function runAssistantDeepTurnAttemptRuntime<ResponseType = AssistantMessageResponsePayload>(
|
|
input: RunAssistantDeepTurnAttemptRuntimeInput<ResponseType>
|
|
): Promise<RunAssistantDeepTurnAttemptRuntimeOutput<ResponseType>> {
|
|
const runDeepTurnNormalizationRuntimeSafe =
|
|
input.runDeepTurnNormalizationRuntime ?? buildAssistantDeepTurnNormalizationRuntime;
|
|
const runDeepTurnAnalysisAttemptRuntimeSafe =
|
|
input.runDeepTurnAnalysisAttemptRuntime ?? runAssistantDeepTurnAnalysisAttemptRuntime;
|
|
const runDeepTurnResponseAttemptRuntimeSafe: (
|
|
input: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>
|
|
) => {
|
|
response: ResponseType;
|
|
debug: AssistantDebugPayload;
|
|
} = input.runDeepTurnResponseAttemptRuntime ?? runAssistantDeepTurnResponseAttemptRuntime;
|
|
|
|
const normalizationRuntime = await runDeepTurnNormalizationRuntimeSafe(
|
|
buildAssistantDeepTurnNormalizationRuntimeInput({
|
|
userMessage: input.userMessage,
|
|
payload: input.payload,
|
|
featureInvestigationStateV1: input.featureInvestigationStateV1,
|
|
featureStateFollowupBindingV1: input.featureStateFollowupBindingV1,
|
|
sessionInvestigationState: input.sessionInvestigationState,
|
|
buildFollowupStateBinding: input.buildFollowupStateBinding,
|
|
normalize: input.normalize
|
|
})
|
|
);
|
|
|
|
const deepTurnAnalysisRuntime = await runDeepTurnAnalysisAttemptRuntimeSafe(
|
|
buildAssistantDeepTurnAnalysisAttemptRuntimeInput({
|
|
userMessage: input.userMessage,
|
|
runtimeAnalysisContext: input.runtimeAnalysisContext,
|
|
sessionInvestigationState: input.sessionInvestigationState,
|
|
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
|
|
featureProblemCentricAnswerV1: input.featureProblemCentricAnswerV1,
|
|
featureLifecycleAnswerV1: input.featureLifecycleAnswerV1,
|
|
resolveBusinessScopeAlignment: input.resolveBusinessScopeAlignment,
|
|
inferP0DomainFromMessage: input.inferP0DomainFromMessage,
|
|
resolveBusinessScopeFromLiveContext: input.resolveBusinessScopeFromLiveContext,
|
|
extractRequirements: input.extractRequirements,
|
|
toExecutionPlan: input.toExecutionPlan,
|
|
enforceRbpLiveRoutePlan: input.enforceRbpLiveRoutePlan,
|
|
enforceFaLiveRoutePlan: input.enforceFaLiveRoutePlan,
|
|
executeRouteRuntime: input.executeRouteRuntime,
|
|
mapNoRouteReason: input.mapNoRouteReason,
|
|
buildSkippedResult: input.buildSkippedResult,
|
|
evaluateCoverage: input.evaluateCoverage,
|
|
checkGrounding: input.checkGrounding,
|
|
collectRbpLiveRouteAudit: input.collectRbpLiveRouteAudit,
|
|
collectFaLiveRouteAudit: input.collectFaLiveRouteAudit,
|
|
hasExplicitPeriodAnchor: input.hasExplicitPeriodAnchor,
|
|
normalizationRuntime
|
|
})
|
|
);
|
|
|
|
const deepTurnResponseRuntime = runDeepTurnResponseAttemptRuntimeSafe(
|
|
buildAssistantDeepTurnResponseAttemptRuntimeInput({
|
|
featureInvestigationStateV1: input.featureInvestigationStateV1,
|
|
featureContractsV11: input.featureContractsV11,
|
|
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
|
|
sessionId: input.sessionId,
|
|
questionId: input.questionId,
|
|
userMessage: input.userMessage,
|
|
runtimeAnalysisContext: input.runtimeAnalysisContext,
|
|
sessionInvestigationState: input.sessionInvestigationState,
|
|
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,
|
|
normalizationRuntime,
|
|
deepTurnAnalysisRuntime
|
|
})
|
|
);
|
|
|
|
return {
|
|
response: deepTurnResponseRuntime.response,
|
|
debug: deepTurnResponseRuntime.debug,
|
|
normalizationRuntime,
|
|
deepTurnAnalysisRuntime
|
|
};
|
|
}
|