NODEDC_1C/llm_normalizer/backend/src/services/assistantDeepTurnAnalysisAt...

124 lines
5.9 KiB
TypeScript

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 { AssistantFollowupUsage } from "./assistantFollowupUsage";
import { buildAssistantDeepTurnAnalysisRuntimeInput } from "./assistantDeepTurnAnalysisAttemptInputBuilder";
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: AssistantFollowupUsage | 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(
buildAssistantDeepTurnAnalysisRuntimeInput({
...input,
runDeepTurnContextRuntimeSafe,
runDeepTurnPlanRuntimeSafe,
runDeepTurnRetrievalRuntimeSafe,
runDeepTurnGuardRuntimeSafe,
runDeepTurnGroundingRuntimeSafe,
runDeepTurnCompositionRuntimeSafe
})
);
}