АРЧ АП11 - Архитектура после регресса: Архитектура: протянуть continuity snapshot в route arbitration и убрать non-domain drift при выборе организации

This commit is contained in:
2026-04-18 14:47:53 +03:00
parent cd734f568c
commit 21738f8662
6 changed files with 100 additions and 12 deletions
@@ -1,4 +1,6 @@
// @ts-nocheck
import { resolveAssistantContinuitySnapshot } from "./assistantContinuityPolicy";
const ADDRESS_INTENTS_KEEP_ADDRESS_LANE = new Set([
"period_coverage_profile",
"document_type_and_account_section_profile",
@@ -107,17 +109,26 @@ export function createAssistantRoutePolicy(deps) {
const sessionOrganizationScope = input?.sessionOrganizationScope && typeof input.sessionOrganizationScope === "object"
? input.sessionOrganizationScope
: null;
const lastGroundedAddressDebug = findLastGroundedAddressAnswerDebug(sessionItems);
const continuitySnapshot = resolveAssistantContinuitySnapshot({
sessionItems,
toNonEmptyString
});
const continuityActiveOrganization = normalizeOrganizationScopeValue(sessionOrganizationScope?.activeOrganization) ??
normalizeOrganizationScopeValue(continuitySnapshot.activeOrganization);
const lastGroundedAddressDebug = findLastGroundedAddressAnswerDebug(sessionItems) ??
continuitySnapshot.lastGroundedAddressDebug;
const lastOrganizationClarificationDebug = findLastOrganizationClarificationAddressDebug(sessionItems);
const organizationClarificationCandidates = Array.isArray(lastOrganizationClarificationDebug?.organization_candidates)
? mergeKnownOrganizations([
...lastOrganizationClarificationDebug.organization_candidates,
...((Array.isArray(sessionOrganizationScope?.knownOrganizations)
? sessionOrganizationScope.knownOrganizations
: []))
: [])),
continuityActiveOrganization
])
: [];
const organizationClarificationSelectionFromScope = normalizeOrganizationScopeValue(sessionOrganizationScope?.selectedOrganization);
const organizationClarificationSelectionFromScope = normalizeOrganizationScopeValue(sessionOrganizationScope?.selectedOrganization) ??
continuityActiveOrganization;
const organizationClarificationSelection = resolveOrganizationSelectionFromMessage(rawUserMessage, organizationClarificationCandidates) ??
resolveOrganizationSelectionFromMessage(repairedRawUserMessage, organizationClarificationCandidates) ??
resolveOrganizationSelectionFromMessage(effectiveAddressUserMessage, organizationClarificationCandidates) ??
@@ -230,7 +241,7 @@ export function createAssistantRoutePolicy(deps) {
hasShortInventoryObjectFollowupSignal(repairedRawUserMessage) ||
hasShortInventoryObjectFollowupSignal(effectiveAddressUserMessage) ||
hasShortInventoryObjectFollowupSignal(repairedEffectiveAddressUserMessage)));
const organizationClarificationContinuationDetected = Boolean(followupContext &&
const organizationClarificationContinuationDetected = Boolean((followupContext || continuitySnapshot.hasGroundedAddressContext) &&
lastOrganizationClarificationDebug &&
organizationClarificationSelection &&
!dataScopeMetaQuery &&
@@ -727,7 +738,9 @@ export function createAssistantRoutePolicy(deps) {
repairedEffectiveAddressUserMessage,
sessionItems
}));
const hasPriorAddressAnswerContext = Boolean(lastGroundedAddressDebug || toNonEmptyString(followupContext?.previous_intent));
const hasPriorAddressAnswerContext = Boolean(lastGroundedAddressDebug ||
continuitySnapshot.hasGroundedAddressContext ||
toNonEmptyString(followupContext?.previous_intent));
const metaFollowupOverGroundedAnswer = isMetaFollowupOverGroundedAnswer({
followupContext,
hasPriorAddressAnswerContext,