import { resolveCompanyAnchors } from "./companyAnchorResolver"; import { applyPolarityHintToExecutionPlan, applyTemporalHintToExecutionPlan, resolveDomainPolarityGuard, resolveTemporalGuard } from "./assistantRuntimeGuards"; import { resolveClaimBoundAnchors } from "./assistantClaimBoundEvidence"; import { runAssistantDeepTurnAnalysisRuntime, type RunAssistantDeepTurnAnalysisRuntimeInput, type RunAssistantDeepTurnAnalysisRuntimeOutput } from "./assistantDeepTurnAnalysisRuntimeAdapter"; import { buildAssistantDeepTurnRuntimeContext, type BuildAssistantDeepTurnRuntimeContextInput, type BuildAssistantDeepTurnRuntimeContextOutput } from "./assistantDeepTurnContextRuntimeAdapter"; import { buildAssistantDeepTurnExecutionPlan, type BuildAssistantDeepTurnExecutionPlanInput, type BuildAssistantDeepTurnExecutionPlanOutput } from "./assistantDeepTurnPlanRuntimeAdapter"; import { executeAssistantDeepTurnRetrievalPlan, type AssistantDeepTurnRetrievalExecutionInput, type AssistantDeepTurnRetrievalExecutionOutput } from "./assistantDeepTurnRetrievalRuntimeAdapter"; import { applyAssistantDeepTurnRetrievalGuards, type AssistantDeepTurnRetrievalGuardPipelineInput, type AssistantDeepTurnRetrievalGuardPipelineOutput } from "./assistantDeepTurnGuardRuntimeAdapter"; import { runAssistantDeepTurnGroundingRuntime, type AssistantDeepTurnGroundingRuntimeInput, type AssistantDeepTurnGroundingRuntimeOutput } from "./assistantDeepTurnGroundingRuntimeAdapter"; import { buildAssistantDeepTurnComposition, type BuildAssistantDeepTurnCompositionInput, type AssistantDeepTurnCompositionOutput } from "./assistantDeepTurnCompositionRuntimeAdapter"; import type { NormalizeResponsePayload, RouteHintSummary } from "../types/normalizer"; import type { InvestigationStateWithProblemUnits } from "../types/stage2ProblemUnits"; import type { AssistantExecutionPlanItem } from "./assistantQueryPlanning"; import type { AssistantRequirementExtractionLike } from "./assistantDeepTurnPlanRuntimeAdapter"; interface RuntimeAnalysisContextLike { active: boolean; as_of_date: string | null; period_from: string | null; period_to: string | null; source: string | null; } export interface RunAssistantDeepTurnAnalysisAttemptRuntimeInput { userMessage: string; normalizedPayload: NormalizeResponsePayload["normalized"]; routeSummary: RouteHintSummary | null; runtimeAnalysisContext: RuntimeAnalysisContextLike; followupUsage: unknown | null | undefined; investigationState: InvestigationStateWithProblemUnits | null | undefined; featureAnswerPolicyV11: boolean; featureProblemCentricAnswerV1: boolean; featureLifecycleAnswerV1: boolean; resolveBusinessScopeAlignment: BuildAssistantDeepTurnRuntimeContextInput["resolveBusinessScopeAlignment"]; inferP0DomainFromMessage: BuildAssistantDeepTurnRuntimeContextInput["inferP0DomainFromMessage"]; resolveBusinessScopeFromLiveContext: BuildAssistantDeepTurnRuntimeContextInput["resolveBusinessScopeFromLiveContext"]; extractRequirements: BuildAssistantDeepTurnExecutionPlanInput["extractRequirements"]; toExecutionPlan: BuildAssistantDeepTurnExecutionPlanInput["toExecutionPlan"]; enforceRbpLiveRoutePlan: BuildAssistantDeepTurnExecutionPlanInput["enforceRbpLiveRoutePlan"]; enforceFaLiveRoutePlan: BuildAssistantDeepTurnExecutionPlanInput["enforceFaLiveRoutePlan"]; executeRouteRuntime: AssistantDeepTurnRetrievalExecutionInput["executeRouteRuntime"]; mapNoRouteReason: AssistantDeepTurnRetrievalExecutionInput["mapNoRouteReason"]; buildSkippedResult: AssistantDeepTurnRetrievalExecutionInput["buildSkippedResult"]; evaluateCoverage: AssistantDeepTurnGroundingRuntimeInput["evaluateCoverage"]; checkGrounding: AssistantDeepTurnGroundingRuntimeInput["checkGrounding"]; collectRbpLiveRouteAudit: AssistantDeepTurnGroundingRuntimeInput["collectRbpLiveRouteAudit"]; collectFaLiveRouteAudit: AssistantDeepTurnGroundingRuntimeInput["collectFaLiveRouteAudit"]; hasExplicitPeriodAnchor: BuildAssistantDeepTurnCompositionInput["hasExplicitPeriodAnchor"]; runDeepTurnAnalysisRuntime?: ( input: RunAssistantDeepTurnAnalysisRuntimeInput ) => Promise; runDeepTurnContextRuntime?: ( input: BuildAssistantDeepTurnRuntimeContextInput ) => BuildAssistantDeepTurnRuntimeContextOutput; runDeepTurnPlanRuntime?: ( input: BuildAssistantDeepTurnExecutionPlanInput ) => BuildAssistantDeepTurnExecutionPlanOutput; runDeepTurnRetrievalRuntime?: ( input: AssistantDeepTurnRetrievalExecutionInput ) => Promise; runDeepTurnGuardRuntime?: ( input: AssistantDeepTurnRetrievalGuardPipelineInput ) => AssistantDeepTurnRetrievalGuardPipelineOutput; runDeepTurnGroundingRuntime?: ( input: AssistantDeepTurnGroundingRuntimeInput ) => AssistantDeepTurnGroundingRuntimeOutput; runDeepTurnCompositionRuntime?: ( input: BuildAssistantDeepTurnCompositionInput ) => AssistantDeepTurnCompositionOutput; } export async function runAssistantDeepTurnAnalysisAttemptRuntime( input: RunAssistantDeepTurnAnalysisAttemptRuntimeInput ): Promise { const runDeepTurnAnalysisRuntimeSafe = input.runDeepTurnAnalysisRuntime ?? runAssistantDeepTurnAnalysisRuntime; const runDeepTurnContextRuntimeSafe = input.runDeepTurnContextRuntime ?? buildAssistantDeepTurnRuntimeContext; const runDeepTurnPlanRuntimeSafe = input.runDeepTurnPlanRuntime ?? buildAssistantDeepTurnExecutionPlan; const runDeepTurnRetrievalRuntimeSafe = input.runDeepTurnRetrievalRuntime ?? executeAssistantDeepTurnRetrievalPlan; const runDeepTurnGuardRuntimeSafe = input.runDeepTurnGuardRuntime ?? applyAssistantDeepTurnRetrievalGuards; const runDeepTurnGroundingRuntimeSafe = input.runDeepTurnGroundingRuntime ?? runAssistantDeepTurnGroundingRuntime; const runDeepTurnCompositionRuntimeSafe = input.runDeepTurnCompositionRuntime ?? buildAssistantDeepTurnComposition; return runDeepTurnAnalysisRuntimeSafe({ userMessage: input.userMessage, runContextRuntime: () => runDeepTurnContextRuntimeSafe({ userMessage: input.userMessage, normalizedPayload: input.normalizedPayload, routeSummary: input.routeSummary, runtimeAnalysisContext: input.runtimeAnalysisContext, followupUsage: input.followupUsage, resolveCompanyAnchors, resolveBusinessScopeAlignment: input.resolveBusinessScopeAlignment, inferP0DomainFromMessage: input.inferP0DomainFromMessage, resolveTemporalGuard: resolveTemporalGuard as any, resolveDomainPolarityGuard: resolveDomainPolarityGuard as any, resolveClaimBoundAnchors: resolveClaimBoundAnchors as any, resolveBusinessScopeFromLiveContext: input.resolveBusinessScopeFromLiveContext }) as any, runExecutionPlanRuntime: ({ resolvedRouteSummary, claimAnchorAudit, temporalGuard, domainPolarityGuardInitial }) => runDeepTurnPlanRuntimeSafe({ routeSummary: resolvedRouteSummary, normalizedPayload: input.normalizedPayload, userMessage: input.userMessage, claimType: claimAnchorAudit.claim_type, temporalGuard, domainPolarityGuardInitial, extractRequirements: input.extractRequirements, toExecutionPlan: input.toExecutionPlan, enforceRbpLiveRoutePlan: input.enforceRbpLiveRoutePlan, enforceFaLiveRoutePlan: input.enforceFaLiveRoutePlan, applyTemporalHintToExecutionPlan: applyTemporalHintToExecutionPlan as any, applyPolarityHintToExecutionPlan: applyPolarityHintToExecutionPlan as any }) as any, runRetrievalRuntime: ({ executionPlan, liveTemporalHint }) => runDeepTurnRetrievalRuntimeSafe({ executionPlan: executionPlan as AssistantExecutionPlanItem[], liveTemporalHint, executeRouteRuntime: input.executeRouteRuntime, mapNoRouteReason: input.mapNoRouteReason, buildSkippedResult: input.buildSkippedResult }) as any, runGuardRuntime: ({ retrievalResults, domainPolarityGuardInitial, claimAnchorAudit, temporalGuard, focusDomainForGuards, companyAnchors, userMessage: runtimeUserMessage }) => runDeepTurnGuardRuntimeSafe({ retrievalResults, domainPolarityGuardInitial: domainPolarityGuardInitial as any, claimAnchorAudit: claimAnchorAudit as any, temporalGuard: temporalGuard as any, focusDomainForGuards: focusDomainForGuards as any, companyAnchors: companyAnchors as any, userMessage: runtimeUserMessage } as any), runGroundingRuntime: ({ claimType, retrievalResults, rbpPlanAudit, faPlanAudit, routeSummary, requirementExtraction, temporalGuard, polarityAudit, evidenceAudit, claimAnchorAudit, targetedEvidenceHitRate, businessScopeResolved }) => runDeepTurnGroundingRuntimeSafe({ claimType, retrievalResults, rbpPlanAudit, faPlanAudit, routeSummary, normalizedPayload: input.normalizedPayload, userMessage: input.userMessage, requirementExtraction: requirementExtraction as AssistantRequirementExtractionLike, extractRequirements: input.extractRequirements as any, evaluateCoverage: input.evaluateCoverage as any, checkGrounding: input.checkGrounding as any, temporalGuard, polarityAudit, evidenceAudit, claimAnchorAudit, targetedEvidenceHitRate, businessScopeResolved, collectRbpLiveRouteAudit: input.collectRbpLiveRouteAudit as any, collectFaLiveRouteAudit: input.collectFaLiveRouteAudit as any } as any), runCompositionRuntime: ({ resolvedRouteSummary, retrievalResults, requirements, coverageReport, groundingCheck, companyAnchors }) => runDeepTurnCompositionRuntimeSafe({ userMessage: input.userMessage, routeSummary: resolvedRouteSummary, retrievalResults, requirements, coverageReport, groundingCheck, followupUsage: input.followupUsage, investigationState: input.investigationState, companyAnchors, normalizedPayload: input.normalizedPayload, featureAnswerPolicyV11: input.featureAnswerPolicyV11, featureProblemCentricAnswerV1: input.featureProblemCentricAnswerV1, featureLifecycleAnswerV1: input.featureLifecycleAnswerV1, hasExplicitPeriodAnchor: input.hasExplicitPeriodAnchor }) as any }); }