244 lines
10 KiB
TypeScript
244 lines
10 KiB
TypeScript
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<RunAssistantDeepTurnAnalysisRuntimeOutput>;
|
|
runDeepTurnContextRuntime?: (
|
|
input: BuildAssistantDeepTurnRuntimeContextInput
|
|
) => BuildAssistantDeepTurnRuntimeContextOutput;
|
|
runDeepTurnPlanRuntime?: (
|
|
input: BuildAssistantDeepTurnExecutionPlanInput
|
|
) => BuildAssistantDeepTurnExecutionPlanOutput;
|
|
runDeepTurnRetrievalRuntime?: (
|
|
input: AssistantDeepTurnRetrievalExecutionInput
|
|
) => Promise<AssistantDeepTurnRetrievalExecutionOutput>;
|
|
runDeepTurnGuardRuntime?: (
|
|
input: AssistantDeepTurnRetrievalGuardPipelineInput
|
|
) => AssistantDeepTurnRetrievalGuardPipelineOutput;
|
|
runDeepTurnGroundingRuntime?: (
|
|
input: AssistantDeepTurnGroundingRuntimeInput
|
|
) => AssistantDeepTurnGroundingRuntimeOutput;
|
|
runDeepTurnCompositionRuntime?: (
|
|
input: BuildAssistantDeepTurnCompositionInput
|
|
) => AssistantDeepTurnCompositionOutput;
|
|
}
|
|
|
|
export async function runAssistantDeepTurnAnalysisAttemptRuntime(
|
|
input: RunAssistantDeepTurnAnalysisAttemptRuntimeInput
|
|
): Promise<RunAssistantDeepTurnAnalysisRuntimeOutput> {
|
|
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
|
|
});
|
|
}
|