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 { sessionId: string; questionId: string; userMessage: string; payload: BuildAssistantDeepTurnNormalizationRuntimeInput["payload"]; runtimeAnalysisContext: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["runtimeAnalysisContext"]; sessionInvestigationState: InvestigationStateWithProblemUnits | null | undefined; addressRuntimeMetaForDeep: RunAssistantDeepTurnResponseAttemptRuntimeInput["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["extractDroppedIntentSegments"]; buildDebugRoutes: RunAssistantDeepTurnResponseAttemptRuntimeInput["buildDebugRoutes"]; extractExecutionState: RunAssistantDeepTurnResponseAttemptRuntimeInput["extractExecutionState"]; sanitizeReply: RunAssistantDeepTurnResponseAttemptRuntimeInput["sanitizeReply"]; persistInvestigationState: RunAssistantDeepTurnResponseAttemptRuntimeInput["persistInvestigationState"]; messageIdFactory: RunAssistantDeepTurnResponseAttemptRuntimeInput["messageIdFactory"]; appendItem: RunAssistantDeepTurnResponseAttemptRuntimeInput["appendItem"]; getSession: RunAssistantDeepTurnResponseAttemptRuntimeInput["getSession"]; persistSession: RunAssistantDeepTurnResponseAttemptRuntimeInput["persistSession"]; cloneConversation: RunAssistantDeepTurnResponseAttemptRuntimeInput["cloneConversation"]; logEvent: RunAssistantDeepTurnResponseAttemptRuntimeInput["logEvent"]; runPackagingRuntime?: RunAssistantDeepTurnResponseAttemptRuntimeInput["runPackagingRuntime"]; runFinalizeDeepTurn?: RunAssistantDeepTurnResponseAttemptRuntimeInput["runFinalizeDeepTurn"]; runDeepTurnNormalizationRuntime?: ( input: BuildAssistantDeepTurnNormalizationRuntimeInput ) => Promise; runDeepTurnAnalysisAttemptRuntime?: ( input: RunAssistantDeepTurnAnalysisAttemptRuntimeInput ) => Promise; runDeepTurnResponseAttemptRuntime?: ( input: RunAssistantDeepTurnResponseAttemptRuntimeInput ) => { response: ResponseType; debug: AssistantDebugPayload; }; } export interface RunAssistantDeepTurnAttemptRuntimeOutput { response: ResponseType; debug: AssistantDebugPayload; normalizationRuntime: BuildAssistantDeepTurnNormalizationRuntimeOutput; deepTurnAnalysisRuntime: RunAssistantDeepTurnAnalysisRuntimeOutput; } export async function runAssistantDeepTurnAttemptRuntime( input: RunAssistantDeepTurnAttemptRuntimeInput ): Promise> { const runDeepTurnNormalizationRuntimeSafe = input.runDeepTurnNormalizationRuntime ?? buildAssistantDeepTurnNormalizationRuntime; const runDeepTurnAnalysisAttemptRuntimeSafe = input.runDeepTurnAnalysisAttemptRuntime ?? runAssistantDeepTurnAnalysisAttemptRuntime; const runDeepTurnResponseAttemptRuntimeSafe: ( input: RunAssistantDeepTurnResponseAttemptRuntimeInput ) => { 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 }; }