ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Рефакторинг этапов 2.562.60 Deep-turn attempt input builder \ Deep-turn analysis-attempt input builder \ Deep-turn response-runtime input builder:

This commit is contained in:
2026-04-11 09:46:42 +03:00
parent c849eb5f5b
commit 6c9b94ef34
16 changed files with 1234 additions and 393 deletions
@@ -0,0 +1,207 @@
import { resolveCompanyAnchors } from "./companyAnchorResolver";
import {
applyPolarityHintToExecutionPlan,
applyTemporalHintToExecutionPlan,
resolveDomainPolarityGuard,
resolveTemporalGuard
} from "./assistantRuntimeGuards";
import { resolveClaimBoundAnchors } from "./assistantClaimBoundEvidence";
import type { RunAssistantDeepTurnAnalysisRuntimeInput } from "./assistantDeepTurnAnalysisRuntimeAdapter";
import type {
BuildAssistantDeepTurnRuntimeContextInput,
BuildAssistantDeepTurnRuntimeContextOutput
} from "./assistantDeepTurnContextRuntimeAdapter";
import type {
BuildAssistantDeepTurnExecutionPlanInput,
BuildAssistantDeepTurnExecutionPlanOutput,
AssistantRequirementExtractionLike
} from "./assistantDeepTurnPlanRuntimeAdapter";
import type {
AssistantDeepTurnRetrievalExecutionInput,
AssistantDeepTurnRetrievalExecutionOutput
} from "./assistantDeepTurnRetrievalRuntimeAdapter";
import type {
AssistantDeepTurnRetrievalGuardPipelineInput,
AssistantDeepTurnRetrievalGuardPipelineOutput
} from "./assistantDeepTurnGuardRuntimeAdapter";
import type {
AssistantDeepTurnGroundingRuntimeInput,
AssistantDeepTurnGroundingRuntimeOutput
} from "./assistantDeepTurnGroundingRuntimeAdapter";
import type {
BuildAssistantDeepTurnCompositionInput,
AssistantDeepTurnCompositionOutput
} from "./assistantDeepTurnCompositionRuntimeAdapter";
import type { AssistantExecutionPlanItem } from "./assistantQueryPlanning";
import type { RunAssistantDeepTurnAnalysisAttemptRuntimeInput } from "./assistantDeepTurnAnalysisAttemptRuntimeAdapter";
type ExecutionPlanRuntimeArgs = Parameters<RunAssistantDeepTurnAnalysisRuntimeInput["runExecutionPlanRuntime"]>[0];
type RetrievalRuntimeArgs = Parameters<RunAssistantDeepTurnAnalysisRuntimeInput["runRetrievalRuntime"]>[0];
type GuardRuntimeArgs = Parameters<RunAssistantDeepTurnAnalysisRuntimeInput["runGuardRuntime"]>[0];
type GroundingRuntimeArgs = Parameters<RunAssistantDeepTurnAnalysisRuntimeInput["runGroundingRuntime"]>[0];
type CompositionRuntimeArgs = Parameters<RunAssistantDeepTurnAnalysisRuntimeInput["runCompositionRuntime"]>[0];
export interface BuildAssistantDeepTurnAnalysisRuntimeInputInput
extends RunAssistantDeepTurnAnalysisAttemptRuntimeInput {
runDeepTurnContextRuntimeSafe: (
input: BuildAssistantDeepTurnRuntimeContextInput
) => BuildAssistantDeepTurnRuntimeContextOutput;
runDeepTurnPlanRuntimeSafe: (
input: BuildAssistantDeepTurnExecutionPlanInput
) => BuildAssistantDeepTurnExecutionPlanOutput;
runDeepTurnRetrievalRuntimeSafe: (
input: AssistantDeepTurnRetrievalExecutionInput
) => Promise<AssistantDeepTurnRetrievalExecutionOutput>;
runDeepTurnGuardRuntimeSafe: (
input: AssistantDeepTurnRetrievalGuardPipelineInput
) => AssistantDeepTurnRetrievalGuardPipelineOutput;
runDeepTurnGroundingRuntimeSafe: (
input: AssistantDeepTurnGroundingRuntimeInput
) => AssistantDeepTurnGroundingRuntimeOutput;
runDeepTurnCompositionRuntimeSafe: (
input: BuildAssistantDeepTurnCompositionInput
) => AssistantDeepTurnCompositionOutput;
}
export function buildAssistantDeepTurnContextRuntimeInput(
input: BuildAssistantDeepTurnAnalysisRuntimeInputInput
): BuildAssistantDeepTurnRuntimeContextInput {
return {
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
};
}
export function buildAssistantDeepTurnExecutionPlanRuntimeInput(
input: BuildAssistantDeepTurnAnalysisRuntimeInputInput,
runtime: ExecutionPlanRuntimeArgs
): BuildAssistantDeepTurnExecutionPlanInput {
return {
routeSummary: runtime.resolvedRouteSummary,
normalizedPayload: input.normalizedPayload,
userMessage: input.userMessage,
claimType: runtime.claimAnchorAudit.claim_type,
temporalGuard: runtime.temporalGuard,
domainPolarityGuardInitial: runtime.domainPolarityGuardInitial,
extractRequirements: input.extractRequirements,
toExecutionPlan: input.toExecutionPlan,
enforceRbpLiveRoutePlan: input.enforceRbpLiveRoutePlan,
enforceFaLiveRoutePlan: input.enforceFaLiveRoutePlan,
applyTemporalHintToExecutionPlan: applyTemporalHintToExecutionPlan as any,
applyPolarityHintToExecutionPlan: applyPolarityHintToExecutionPlan as any
};
}
export function buildAssistantDeepTurnRetrievalRuntimeInput(
input: BuildAssistantDeepTurnAnalysisRuntimeInputInput,
runtime: RetrievalRuntimeArgs
): AssistantDeepTurnRetrievalExecutionInput {
return {
executionPlan: runtime.executionPlan as AssistantExecutionPlanItem[],
liveTemporalHint: runtime.liveTemporalHint,
executeRouteRuntime: input.executeRouteRuntime,
mapNoRouteReason: input.mapNoRouteReason,
buildSkippedResult: input.buildSkippedResult
};
}
export function buildAssistantDeepTurnGuardRuntimeInput(
runtime: GuardRuntimeArgs
): AssistantDeepTurnRetrievalGuardPipelineInput {
return {
retrievalResults: runtime.retrievalResults,
domainPolarityGuardInitial: runtime.domainPolarityGuardInitial as any,
claimAnchorAudit: runtime.claimAnchorAudit as any,
temporalGuard: runtime.temporalGuard as any,
focusDomainForGuards: runtime.focusDomainForGuards as any,
companyAnchors: runtime.companyAnchors as any,
userMessage: runtime.userMessage
};
}
export function buildAssistantDeepTurnGroundingRuntimeInput(
input: BuildAssistantDeepTurnAnalysisRuntimeInputInput,
runtime: GroundingRuntimeArgs
): AssistantDeepTurnGroundingRuntimeInput {
return {
claimType: runtime.claimType,
retrievalResults: runtime.retrievalResults,
rbpPlanAudit: runtime.rbpPlanAudit,
faPlanAudit: runtime.faPlanAudit,
routeSummary: runtime.routeSummary,
normalizedPayload: input.normalizedPayload,
userMessage: input.userMessage,
requirementExtraction: runtime.requirementExtraction as AssistantRequirementExtractionLike,
extractRequirements: input.extractRequirements as any,
evaluateCoverage: input.evaluateCoverage as any,
checkGrounding: input.checkGrounding as any,
temporalGuard: runtime.temporalGuard,
polarityAudit: runtime.polarityAudit,
evidenceAudit: runtime.evidenceAudit,
claimAnchorAudit: runtime.claimAnchorAudit,
targetedEvidenceHitRate: runtime.targetedEvidenceHitRate,
businessScopeResolved: runtime.businessScopeResolved,
collectRbpLiveRouteAudit: input.collectRbpLiveRouteAudit as any,
collectFaLiveRouteAudit: input.collectFaLiveRouteAudit as any
};
}
export function buildAssistantDeepTurnCompositionRuntimeInput(
input: BuildAssistantDeepTurnAnalysisRuntimeInputInput,
runtime: CompositionRuntimeArgs
): BuildAssistantDeepTurnCompositionInput {
return {
userMessage: input.userMessage,
routeSummary: runtime.resolvedRouteSummary,
retrievalResults: runtime.retrievalResults,
requirements: runtime.requirements,
coverageReport: runtime.coverageReport,
groundingCheck: runtime.groundingCheck,
followupUsage: input.followupUsage,
investigationState: input.investigationState,
companyAnchors: runtime.companyAnchors,
normalizedPayload: input.normalizedPayload,
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
featureProblemCentricAnswerV1: input.featureProblemCentricAnswerV1,
featureLifecycleAnswerV1: input.featureLifecycleAnswerV1,
hasExplicitPeriodAnchor: input.hasExplicitPeriodAnchor
};
}
export function buildAssistantDeepTurnAnalysisRuntimeInput(
input: BuildAssistantDeepTurnAnalysisRuntimeInputInput
): RunAssistantDeepTurnAnalysisRuntimeInput {
return {
userMessage: input.userMessage,
runContextRuntime: () =>
input.runDeepTurnContextRuntimeSafe(buildAssistantDeepTurnContextRuntimeInput(input)) as any,
runExecutionPlanRuntime: (runtime) =>
input.runDeepTurnPlanRuntimeSafe(
buildAssistantDeepTurnExecutionPlanRuntimeInput(input, runtime)
) as any,
runRetrievalRuntime: (runtime) =>
input.runDeepTurnRetrievalRuntimeSafe(
buildAssistantDeepTurnRetrievalRuntimeInput(input, runtime)
) as any,
runGuardRuntime: (runtime) =>
input.runDeepTurnGuardRuntimeSafe(buildAssistantDeepTurnGuardRuntimeInput(runtime) as any),
runGroundingRuntime: (runtime) =>
input.runDeepTurnGroundingRuntimeSafe(
buildAssistantDeepTurnGroundingRuntimeInput(input, runtime)
) as any,
runCompositionRuntime: (runtime) =>
input.runDeepTurnCompositionRuntimeSafe(
buildAssistantDeepTurnCompositionRuntimeInput(input, runtime)
) as any
};
}
@@ -1,11 +1,3 @@
import { resolveCompanyAnchors } from "./companyAnchorResolver";
import {
applyPolarityHintToExecutionPlan,
applyTemporalHintToExecutionPlan,
resolveDomainPolarityGuard,
resolveTemporalGuard
} from "./assistantRuntimeGuards";
import { resolveClaimBoundAnchors } from "./assistantClaimBoundEvidence";
import {
runAssistantDeepTurnAnalysisRuntime,
type RunAssistantDeepTurnAnalysisRuntimeInput,
@@ -43,8 +35,7 @@ import {
} 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";
import { buildAssistantDeepTurnAnalysisRuntimeInput } from "./assistantDeepTurnAnalysisAttemptInputBuilder";
interface RuntimeAnalysisContextLike {
active: boolean;
@@ -117,127 +108,15 @@ export async function runAssistantDeepTurnAnalysisAttemptRuntime(
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
});
return runDeepTurnAnalysisRuntimeSafe(
buildAssistantDeepTurnAnalysisRuntimeInput({
...input,
runDeepTurnContextRuntimeSafe,
runDeepTurnPlanRuntimeSafe,
runDeepTurnRetrievalRuntimeSafe,
runDeepTurnGuardRuntimeSafe,
runDeepTurnGroundingRuntimeSafe,
runDeepTurnCompositionRuntimeSafe
})
);
}
@@ -0,0 +1,156 @@
import type {
BuildAssistantDeepTurnNormalizationRuntimeInput,
BuildAssistantDeepTurnNormalizationRuntimeOutput
} from "./assistantDeepTurnNormalizationRuntimeAdapter";
import type { RunAssistantDeepTurnAnalysisAttemptRuntimeInput } from "./assistantDeepTurnAnalysisAttemptRuntimeAdapter";
import type { RunAssistantDeepTurnAnalysisRuntimeOutput } from "./assistantDeepTurnAnalysisRuntimeAdapter";
import type { RunAssistantDeepTurnResponseAttemptRuntimeInput } from "./assistantDeepTurnResponseAttemptRuntimeAdapter";
export interface BuildAssistantDeepTurnNormalizationRuntimeInputInput {
userMessage: string;
payload: BuildAssistantDeepTurnNormalizationRuntimeInput["payload"];
featureInvestigationStateV1: boolean;
featureStateFollowupBindingV1: boolean;
sessionInvestigationState: BuildAssistantDeepTurnNormalizationRuntimeInput["sessionInvestigationState"];
buildFollowupStateBinding: BuildAssistantDeepTurnNormalizationRuntimeInput["buildFollowupStateBinding"];
normalize: BuildAssistantDeepTurnNormalizationRuntimeInput["normalize"];
}
export function buildAssistantDeepTurnNormalizationRuntimeInput(
input: BuildAssistantDeepTurnNormalizationRuntimeInputInput
): BuildAssistantDeepTurnNormalizationRuntimeInput {
return {
userMessage: input.userMessage,
payload: input.payload,
featureInvestigationStateV1: input.featureInvestigationStateV1,
featureStateFollowupBindingV1: input.featureStateFollowupBindingV1,
sessionInvestigationState: input.sessionInvestigationState,
buildFollowupStateBinding: input.buildFollowupStateBinding,
normalize: input.normalize
};
}
export interface BuildAssistantDeepTurnAnalysisAttemptRuntimeInputInput {
userMessage: string;
runtimeAnalysisContext: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["runtimeAnalysisContext"];
sessionInvestigationState: RunAssistantDeepTurnAnalysisAttemptRuntimeInput["investigationState"];
featureAnswerPolicyV11: boolean;
featureProblemCentricAnswerV1: boolean;
featureLifecycleAnswerV1: boolean;
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"];
normalizationRuntime: BuildAssistantDeepTurnNormalizationRuntimeOutput;
}
export function buildAssistantDeepTurnAnalysisAttemptRuntimeInput(
input: BuildAssistantDeepTurnAnalysisAttemptRuntimeInputInput
): RunAssistantDeepTurnAnalysisAttemptRuntimeInput {
return {
userMessage: input.userMessage,
normalizedPayload: input.normalizationRuntime.normalized.normalized,
routeSummary: input.normalizationRuntime.normalized.route_hint_summary,
runtimeAnalysisContext: input.runtimeAnalysisContext,
followupUsage: input.normalizationRuntime.followupBinding.usage,
investigationState: 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
};
}
export interface BuildAssistantDeepTurnResponseAttemptRuntimeInputInput<ResponseType = unknown> {
featureInvestigationStateV1: boolean;
featureContractsV11: boolean;
featureAnswerPolicyV11: boolean;
sessionId: string;
questionId: string;
userMessage: string;
runtimeAnalysisContext: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["runtimeAnalysisContext"];
sessionInvestigationState: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["previousInvestigationState"];
addressRuntimeMetaForDeep: RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType>["addressRuntimeMetaForDeep"];
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"];
normalizationRuntime: BuildAssistantDeepTurnNormalizationRuntimeOutput;
deepTurnAnalysisRuntime: RunAssistantDeepTurnAnalysisRuntimeOutput;
}
export function buildAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType = unknown>(
input: BuildAssistantDeepTurnResponseAttemptRuntimeInputInput<ResponseType>
): RunAssistantDeepTurnResponseAttemptRuntimeInput<ResponseType> {
return {
featureInvestigationStateV1: input.featureInvestigationStateV1,
featureContractsV11: input.featureContractsV11,
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
sessionId: input.sessionId,
questionId: input.questionId,
userMessage: input.userMessage,
normalized: {
trace_id: input.normalizationRuntime.normalized.trace_id,
prompt_version: input.normalizationRuntime.normalized.prompt_version,
schema_version: input.normalizationRuntime.normalized.schema_version,
normalized: input.normalizationRuntime.normalized.normalized
},
normalizedQuestion: input.normalizationRuntime.followupBinding.normalizedQuestion,
deepTurnAnalysisRuntime: input.deepTurnAnalysisRuntime,
runtimeAnalysisContext: input.runtimeAnalysisContext,
followupStateUsage: input.normalizationRuntime.followupBinding.usage,
followupApplied: Boolean(
(input.normalizationRuntime.followupBinding.usage as { applied?: unknown } | null)?.applied
),
previousInvestigationState: 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
};
}
@@ -14,6 +14,11 @@ import {
type RunAssistantDeepTurnResponseAttemptRuntimeInput
} from "./assistantDeepTurnResponseAttemptRuntimeAdapter";
import type { RunAssistantDeepTurnAnalysisRuntimeOutput } from "./assistantDeepTurnAnalysisRuntimeAdapter";
import {
buildAssistantDeepTurnAnalysisAttemptRuntimeInput,
buildAssistantDeepTurnNormalizationRuntimeInput,
buildAssistantDeepTurnResponseAttemptRuntimeInput
} from "./assistantDeepTurnAttemptInputBuilder";
export interface RunAssistantDeepTurnAttemptRuntimeInput<ResponseType = AssistantMessageResponsePayload> {
sessionId: string;
@@ -90,80 +95,73 @@ export async function runAssistantDeepTurnAttemptRuntime<ResponseType = Assistan
const runDeepTurnResponseAttemptRuntimeSafe =
input.runDeepTurnResponseAttemptRuntime ?? runAssistantDeepTurnResponseAttemptRuntime;
const normalizationRuntime = await runDeepTurnNormalizationRuntimeSafe({
userMessage: input.userMessage,
payload: input.payload,
featureInvestigationStateV1: input.featureInvestigationStateV1,
featureStateFollowupBindingV1: input.featureStateFollowupBindingV1,
sessionInvestigationState: input.sessionInvestigationState,
buildFollowupStateBinding: input.buildFollowupStateBinding,
normalize: input.normalize
});
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 followupBinding = normalizationRuntime.followupBinding;
const normalized = normalizationRuntime.normalized;
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 deepTurnAnalysisRuntime = await runDeepTurnAnalysisAttemptRuntimeSafe({
userMessage: input.userMessage,
normalizedPayload: normalized.normalized,
routeSummary: normalized.route_hint_summary,
runtimeAnalysisContext: input.runtimeAnalysisContext,
followupUsage: followupBinding.usage,
investigationState: 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
});
const deepTurnResponseRuntime = runDeepTurnResponseAttemptRuntimeSafe({
featureInvestigationStateV1: input.featureInvestigationStateV1,
featureContractsV11: input.featureContractsV11,
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
sessionId: input.sessionId,
questionId: input.questionId,
userMessage: input.userMessage,
normalized: {
trace_id: normalized.trace_id,
prompt_version: normalized.prompt_version,
schema_version: normalized.schema_version,
normalized: normalized.normalized
},
normalizedQuestion: followupBinding.normalizedQuestion,
deepTurnAnalysisRuntime,
runtimeAnalysisContext: input.runtimeAnalysisContext,
followupStateUsage: followupBinding.usage,
followupApplied: Boolean((followupBinding.usage as { applied?: unknown } | null)?.applied),
previousInvestigationState: 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
});
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,
@@ -7,6 +7,7 @@ import {
type RunAssistantDeepTurnResponseRuntimeInput,
type RunAssistantDeepTurnResponseRuntimeOutput
} from "./assistantDeepTurnResponseRuntimeAdapter";
import { buildAssistantDeepTurnResponseRuntimeInput } from "./assistantDeepTurnResponseRuntimeInputBuilder";
export interface RunAssistantDeepTurnResponseAttemptRuntimeInput<
ResponseType = AssistantMessageResponsePayload
@@ -58,56 +59,37 @@ export function runAssistantDeepTurnResponseAttemptRuntime<
} {
const runDeepTurnResponseRuntimeSafe =
input.runDeepTurnResponseRuntime ?? runAssistantDeepTurnResponseRuntime;
const analysis = input.deepTurnAnalysisRuntime;
const responseRuntime = runDeepTurnResponseRuntimeSafe({
featureInvestigationStateV1: input.featureInvestigationStateV1,
featureContractsV11: input.featureContractsV11,
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
sessionId: input.sessionId,
questionId: input.questionId,
userMessage: input.userMessage,
normalized: input.normalized,
normalizedQuestion: input.normalizedQuestion,
routeSummary: analysis.resolvedRouteSummary,
executionPlan: analysis.executionPlan,
requirementExtractionRequirements: analysis.requirementExtraction.requirements,
coverageEvaluationRequirements: analysis.coverageEvaluation.requirements,
coverageReport: analysis.coverageEvaluation.coverage,
groundingCheck: analysis.groundingCheck,
retrievalCalls: analysis.retrievalCalls,
retrievalResultsRaw: analysis.retrievalResultsRaw,
retrievalResults: analysis.retrievalResults,
questionTypeClass: analysis.questionTypeClass,
companyAnchors: analysis.companyAnchors,
runtimeAnalysisContext: input.runtimeAnalysisContext,
businessScopeResolution: analysis.businessScopeResolution,
temporalGuard: analysis.temporalGuard,
polarityAudit: analysis.polarityGuardResult.audit,
claimAnchorAudit: analysis.claimAnchorAudit,
targetedEvidenceAudit: analysis.targetedEvidenceResult.audit,
evidenceAdmissibilityGateAudit: analysis.evidenceGateResult.audit,
rbpLiveRouteAudit: analysis.rbpLiveRouteAudit,
faLiveRouteAudit: analysis.faLiveRouteAudit,
groundedAnswerEligibilityGuard: analysis.groundedAnswerEligibilityGuard,
followupStateUsage: input.followupStateUsage,
followupApplied: input.followupApplied,
composition: analysis.composition as any,
previousInvestigationState: input.previousInvestigationState ?? null,
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
});
const responseRuntime = runDeepTurnResponseRuntimeSafe(
buildAssistantDeepTurnResponseRuntimeInput({
featureInvestigationStateV1: input.featureInvestigationStateV1,
featureContractsV11: input.featureContractsV11,
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
sessionId: input.sessionId,
questionId: input.questionId,
userMessage: input.userMessage,
normalized: input.normalized,
normalizedQuestion: input.normalizedQuestion,
deepTurnAnalysisRuntime: input.deepTurnAnalysisRuntime,
runtimeAnalysisContext: input.runtimeAnalysisContext,
followupStateUsage: input.followupStateUsage,
followupApplied: input.followupApplied,
previousInvestigationState: input.previousInvestigationState,
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
})
);
return {
response: responseRuntime.response as ResponseType,
@@ -0,0 +1,87 @@
import type { RunAssistantDeepTurnAnalysisRuntimeOutput } from "./assistantDeepTurnAnalysisRuntimeAdapter";
import type { RunAssistantDeepTurnResponseRuntimeInput } from "./assistantDeepTurnResponseRuntimeAdapter";
export interface BuildAssistantDeepTurnResponseRuntimeInputInput {
featureInvestigationStateV1: boolean;
featureContractsV11: boolean;
featureAnswerPolicyV11: boolean;
sessionId: string;
questionId: string;
userMessage: string;
normalized: RunAssistantDeepTurnResponseRuntimeInput["normalized"];
normalizedQuestion: string;
deepTurnAnalysisRuntime: RunAssistantDeepTurnAnalysisRuntimeOutput;
runtimeAnalysisContext: RunAssistantDeepTurnResponseRuntimeInput["runtimeAnalysisContext"];
followupStateUsage: RunAssistantDeepTurnResponseRuntimeInput["followupStateUsage"];
followupApplied: boolean;
previousInvestigationState: RunAssistantDeepTurnResponseRuntimeInput["previousInvestigationState"];
addressRuntimeMetaForDeep: RunAssistantDeepTurnResponseRuntimeInput["addressRuntimeMetaForDeep"];
extractDroppedIntentSegments: RunAssistantDeepTurnResponseRuntimeInput["extractDroppedIntentSegments"];
buildDebugRoutes: RunAssistantDeepTurnResponseRuntimeInput["buildDebugRoutes"];
extractExecutionState: RunAssistantDeepTurnResponseRuntimeInput["extractExecutionState"];
sanitizeReply: RunAssistantDeepTurnResponseRuntimeInput["sanitizeReply"];
persistInvestigationState: RunAssistantDeepTurnResponseRuntimeInput["persistInvestigationState"];
messageIdFactory: RunAssistantDeepTurnResponseRuntimeInput["messageIdFactory"];
appendItem: RunAssistantDeepTurnResponseRuntimeInput["appendItem"];
getSession: RunAssistantDeepTurnResponseRuntimeInput["getSession"];
persistSession: RunAssistantDeepTurnResponseRuntimeInput["persistSession"];
cloneConversation: RunAssistantDeepTurnResponseRuntimeInput["cloneConversation"];
logEvent: RunAssistantDeepTurnResponseRuntimeInput["logEvent"];
runPackagingRuntime?: RunAssistantDeepTurnResponseRuntimeInput["runPackagingRuntime"];
runFinalizeDeepTurn?: RunAssistantDeepTurnResponseRuntimeInput["runFinalizeDeepTurn"];
}
export function buildAssistantDeepTurnResponseRuntimeInput(
input: BuildAssistantDeepTurnResponseRuntimeInputInput
): RunAssistantDeepTurnResponseRuntimeInput {
const analysis = input.deepTurnAnalysisRuntime;
return {
featureInvestigationStateV1: input.featureInvestigationStateV1,
featureContractsV11: input.featureContractsV11,
featureAnswerPolicyV11: input.featureAnswerPolicyV11,
sessionId: input.sessionId,
questionId: input.questionId,
userMessage: input.userMessage,
normalized: input.normalized,
normalizedQuestion: input.normalizedQuestion,
routeSummary: analysis.resolvedRouteSummary,
executionPlan: analysis.executionPlan,
requirementExtractionRequirements: analysis.requirementExtraction.requirements,
coverageEvaluationRequirements: analysis.coverageEvaluation.requirements,
coverageReport: analysis.coverageEvaluation.coverage,
groundingCheck: analysis.groundingCheck,
retrievalCalls: analysis.retrievalCalls,
retrievalResultsRaw: analysis.retrievalResultsRaw,
retrievalResults: analysis.retrievalResults,
questionTypeClass: analysis.questionTypeClass,
companyAnchors: analysis.companyAnchors,
runtimeAnalysisContext: input.runtimeAnalysisContext,
businessScopeResolution: analysis.businessScopeResolution,
temporalGuard: analysis.temporalGuard,
polarityAudit: analysis.polarityGuardResult.audit,
claimAnchorAudit: analysis.claimAnchorAudit,
targetedEvidenceAudit: analysis.targetedEvidenceResult.audit,
evidenceAdmissibilityGateAudit: analysis.evidenceGateResult.audit,
rbpLiveRouteAudit: analysis.rbpLiveRouteAudit,
faLiveRouteAudit: analysis.faLiveRouteAudit,
groundedAnswerEligibilityGuard: analysis.groundedAnswerEligibilityGuard,
followupStateUsage: input.followupStateUsage,
followupApplied: input.followupApplied,
composition: analysis.composition as any,
previousInvestigationState: input.previousInvestigationState ?? null,
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
};
}