180 lines
9.3 KiB
TypeScript
180 lines
9.3 KiB
TypeScript
import type { AnswerGroundingCheck, AssistantRequirement, RequirementCoverageReport, UnifiedRetrievalResult } from "../types/assistant";
|
|
import type { RouteHintSummary } from "../types/normalizer";
|
|
import type { ClaimBoundAnchorAudit } from "./assistantClaimBoundEvidence";
|
|
import type {
|
|
AssistantDeepTurnRetrievalGuardPipelineInput,
|
|
AssistantDeepTurnRetrievalGuardPipelineOutput
|
|
} from "./assistantDeepTurnGuardRuntimeAdapter";
|
|
import type { AssistantBusinessScopeResolution } from "./assistantDeepTurnContextRuntimeAdapter";
|
|
import type {
|
|
AssistantPlanEnforcementAuditLike,
|
|
AssistantRequirementExtractionLike
|
|
} from "./assistantDeepTurnPlanRuntimeAdapter";
|
|
import type { AssistantExecutionPlanItem } from "./assistantQueryPlanning";
|
|
import type {
|
|
AssistantDeepTurnRetrievalExecutionOutput,
|
|
AssistantLiveTemporalHint
|
|
} from "./assistantDeepTurnRetrievalRuntimeAdapter";
|
|
import type {
|
|
AssistantDeepTurnGroundingRuntimeInput,
|
|
AssistantDeepTurnGroundingRuntimeOutput
|
|
} from "./assistantDeepTurnGroundingRuntimeAdapter";
|
|
import type { AssistantDeepTurnCompositionOutput } from "./assistantDeepTurnCompositionRuntimeAdapter";
|
|
import type { DomainPolarityGuardAudit, TemporalGuardAudit } from "./assistantRuntimeGuards";
|
|
import type { CompanyAnchorSet } from "./companyAnchorResolver";
|
|
|
|
export interface AssistantDeepTurnRuntimeContextLike {
|
|
companyAnchors: CompanyAnchorSet | null;
|
|
focusDomainForGuards: AssistantDeepTurnRetrievalGuardPipelineInput["focusDomainForGuards"];
|
|
temporalGuard: TemporalGuardAudit;
|
|
domainPolarityGuardInitial: DomainPolarityGuardAudit;
|
|
claimAnchorAudit: ClaimBoundAnchorAudit;
|
|
businessScopeResolution: AssistantBusinessScopeResolution;
|
|
resolvedRouteSummary: RouteHintSummary | null;
|
|
liveTemporalHint: AssistantLiveTemporalHint | null;
|
|
}
|
|
|
|
export interface RunAssistantDeepTurnAnalysisRuntimeInput {
|
|
userMessage: string;
|
|
runContextRuntime: () => AssistantDeepTurnRuntimeContextLike;
|
|
runExecutionPlanRuntime: (input: {
|
|
resolvedRouteSummary: RouteHintSummary | null;
|
|
claimAnchorAudit: AssistantDeepTurnRuntimeContextLike["claimAnchorAudit"];
|
|
temporalGuard: TemporalGuardAudit;
|
|
domainPolarityGuardInitial: DomainPolarityGuardAudit;
|
|
}) => {
|
|
requirementExtraction: AssistantRequirementExtractionLike;
|
|
executionPlan: AssistantExecutionPlanItem[];
|
|
rbpRoutePlanEnforcement: AssistantPlanEnforcementAuditLike;
|
|
faRoutePlanEnforcement: AssistantPlanEnforcementAuditLike;
|
|
};
|
|
runRetrievalRuntime: (input: {
|
|
executionPlan: AssistantExecutionPlanItem[];
|
|
liveTemporalHint: AssistantLiveTemporalHint | null;
|
|
}) => Promise<AssistantDeepTurnRetrievalExecutionOutput>;
|
|
runGuardRuntime: (input: {
|
|
retrievalResults: UnifiedRetrievalResult[];
|
|
domainPolarityGuardInitial: DomainPolarityGuardAudit;
|
|
claimAnchorAudit: AssistantDeepTurnRuntimeContextLike["claimAnchorAudit"];
|
|
temporalGuard: TemporalGuardAudit;
|
|
focusDomainForGuards: AssistantDeepTurnRetrievalGuardPipelineInput["focusDomainForGuards"];
|
|
companyAnchors: AssistantDeepTurnRetrievalGuardPipelineInput["companyAnchors"];
|
|
userMessage: string;
|
|
}) => AssistantDeepTurnRetrievalGuardPipelineOutput;
|
|
runGroundingRuntime: (input: {
|
|
claimType: string;
|
|
retrievalResults: UnifiedRetrievalResult[];
|
|
rbpPlanAudit: AssistantDeepTurnGroundingRuntimeInput["rbpPlanAudit"];
|
|
faPlanAudit: AssistantDeepTurnGroundingRuntimeInput["faPlanAudit"];
|
|
routeSummary: RouteHintSummary | null;
|
|
requirementExtraction: AssistantRequirementExtractionLike;
|
|
temporalGuard: AssistantDeepTurnGroundingRuntimeInput["temporalGuard"];
|
|
polarityAudit: AssistantDeepTurnGroundingRuntimeInput["polarityAudit"];
|
|
evidenceAudit: AssistantDeepTurnGroundingRuntimeInput["evidenceAudit"];
|
|
claimAnchorAudit: AssistantDeepTurnGroundingRuntimeInput["claimAnchorAudit"];
|
|
targetedEvidenceHitRate?: number | null;
|
|
businessScopeResolved?: string[] | null;
|
|
}) => AssistantDeepTurnGroundingRuntimeOutput;
|
|
runCompositionRuntime: (input: {
|
|
resolvedRouteSummary: RouteHintSummary | null;
|
|
retrievalResults: UnifiedRetrievalResult[];
|
|
requirements: AssistantRequirement[];
|
|
coverageReport: RequirementCoverageReport;
|
|
groundingCheck: AnswerGroundingCheck;
|
|
companyAnchors: CompanyAnchorSet | null;
|
|
}) => AssistantDeepTurnCompositionOutput;
|
|
}
|
|
|
|
export interface RunAssistantDeepTurnAnalysisRuntimeOutput {
|
|
companyAnchors: CompanyAnchorSet | null;
|
|
temporalGuard: TemporalGuardAudit;
|
|
claimAnchorAudit: AssistantDeepTurnRuntimeContextLike["claimAnchorAudit"];
|
|
businessScopeResolution: AssistantDeepTurnRuntimeContextLike["businessScopeResolution"];
|
|
resolvedRouteSummary: RouteHintSummary | null;
|
|
requirementExtraction: AssistantRequirementExtractionLike;
|
|
executionPlan: AssistantExecutionPlanItem[];
|
|
retrievalCalls: AssistantDeepTurnRetrievalExecutionOutput["retrievalCalls"];
|
|
retrievalResultsRaw: AssistantDeepTurnRetrievalExecutionOutput["retrievalResultsRaw"];
|
|
retrievalResults: UnifiedRetrievalResult[];
|
|
polarityGuardResult: AssistantDeepTurnRetrievalGuardPipelineOutput["polarityGuardResult"];
|
|
targetedEvidenceResult: AssistantDeepTurnRetrievalGuardPipelineOutput["targetedEvidenceResult"];
|
|
evidenceGateResult: AssistantDeepTurnRetrievalGuardPipelineOutput["evidenceGateResult"];
|
|
rbpLiveRouteAudit: AssistantDeepTurnGroundingRuntimeOutput["rbpLiveRouteAudit"];
|
|
faLiveRouteAudit: AssistantDeepTurnGroundingRuntimeOutput["faLiveRouteAudit"];
|
|
coverageEvaluation: AssistantDeepTurnGroundingRuntimeOutput["coverageEvaluation"];
|
|
groundedAnswerEligibilityGuard: AssistantDeepTurnGroundingRuntimeOutput["groundedAnswerEligibilityGuard"];
|
|
groundingCheck: AssistantDeepTurnGroundingRuntimeOutput["groundingCheck"];
|
|
questionTypeClass: AssistantDeepTurnCompositionOutput["questionTypeClass"];
|
|
composition: AssistantDeepTurnCompositionOutput["composition"];
|
|
}
|
|
|
|
export async function runAssistantDeepTurnAnalysisRuntime(
|
|
input: RunAssistantDeepTurnAnalysisRuntimeInput
|
|
): Promise<RunAssistantDeepTurnAnalysisRuntimeOutput> {
|
|
const contextRuntime = input.runContextRuntime();
|
|
const executionPlanRuntime = input.runExecutionPlanRuntime({
|
|
resolvedRouteSummary: contextRuntime.resolvedRouteSummary,
|
|
claimAnchorAudit: contextRuntime.claimAnchorAudit,
|
|
temporalGuard: contextRuntime.temporalGuard,
|
|
domainPolarityGuardInitial: contextRuntime.domainPolarityGuardInitial
|
|
});
|
|
const retrievalRuntime = await input.runRetrievalRuntime({
|
|
executionPlan: executionPlanRuntime.executionPlan,
|
|
liveTemporalHint: contextRuntime.liveTemporalHint
|
|
});
|
|
const guardRuntime = input.runGuardRuntime({
|
|
retrievalResults: retrievalRuntime.retrievalResults,
|
|
domainPolarityGuardInitial: contextRuntime.domainPolarityGuardInitial,
|
|
claimAnchorAudit: contextRuntime.claimAnchorAudit,
|
|
temporalGuard: contextRuntime.temporalGuard,
|
|
focusDomainForGuards: contextRuntime.focusDomainForGuards,
|
|
companyAnchors: contextRuntime.companyAnchors,
|
|
userMessage: input.userMessage
|
|
});
|
|
const groundingRuntime = input.runGroundingRuntime({
|
|
claimType: contextRuntime.claimAnchorAudit.claim_type,
|
|
retrievalResults: guardRuntime.retrievalResults,
|
|
rbpPlanAudit: executionPlanRuntime.rbpRoutePlanEnforcement.audit,
|
|
faPlanAudit: executionPlanRuntime.faRoutePlanEnforcement.audit,
|
|
routeSummary: contextRuntime.resolvedRouteSummary,
|
|
requirementExtraction: executionPlanRuntime.requirementExtraction,
|
|
temporalGuard: contextRuntime.temporalGuard,
|
|
polarityAudit: guardRuntime.polarityGuardResult.audit,
|
|
evidenceAudit: guardRuntime.evidenceGateResult.audit,
|
|
claimAnchorAudit: contextRuntime.claimAnchorAudit,
|
|
targetedEvidenceHitRate: guardRuntime.targetedEvidenceResult.audit.targeted_evidence_hit_rate,
|
|
businessScopeResolved: contextRuntime.businessScopeResolution.business_scope_resolved ?? null
|
|
});
|
|
const compositionRuntime = input.runCompositionRuntime({
|
|
resolvedRouteSummary: contextRuntime.resolvedRouteSummary,
|
|
retrievalResults: guardRuntime.retrievalResults,
|
|
requirements: groundingRuntime.coverageEvaluation.requirements,
|
|
coverageReport: groundingRuntime.coverageEvaluation.coverage,
|
|
groundingCheck: groundingRuntime.groundingCheck,
|
|
companyAnchors: contextRuntime.companyAnchors
|
|
});
|
|
|
|
return {
|
|
companyAnchors: contextRuntime.companyAnchors,
|
|
temporalGuard: contextRuntime.temporalGuard,
|
|
claimAnchorAudit: contextRuntime.claimAnchorAudit,
|
|
businessScopeResolution: contextRuntime.businessScopeResolution,
|
|
resolvedRouteSummary: contextRuntime.resolvedRouteSummary,
|
|
requirementExtraction: executionPlanRuntime.requirementExtraction,
|
|
executionPlan: executionPlanRuntime.executionPlan,
|
|
retrievalCalls: retrievalRuntime.retrievalCalls,
|
|
retrievalResultsRaw: retrievalRuntime.retrievalResultsRaw,
|
|
retrievalResults: guardRuntime.retrievalResults,
|
|
polarityGuardResult: guardRuntime.polarityGuardResult,
|
|
targetedEvidenceResult: guardRuntime.targetedEvidenceResult,
|
|
evidenceGateResult: guardRuntime.evidenceGateResult,
|
|
rbpLiveRouteAudit: groundingRuntime.rbpLiveRouteAudit,
|
|
faLiveRouteAudit: groundingRuntime.faLiveRouteAudit,
|
|
coverageEvaluation: groundingRuntime.coverageEvaluation,
|
|
groundedAnswerEligibilityGuard: groundingRuntime.groundedAnswerEligibilityGuard,
|
|
groundingCheck: groundingRuntime.groundingCheck,
|
|
questionTypeClass: compositionRuntime.questionTypeClass,
|
|
composition: compositionRuntime.composition
|
|
};
|
|
}
|