АРЧ АП11 - Архитектура после регресса: Архитектура: централизовать organization authority в continuity policy для route, living-chat и data-scope

This commit is contained in:
2026-04-18 16:53:04 +03:00
parent 53e9151d5a
commit 9710d81676
16 changed files with 575 additions and 366 deletions
@@ -1,5 +1,7 @@
// @ts-nocheck
import { resolveAssistantContinuitySnapshot } from "./assistantContinuityPolicy";
import {
resolveAssistantOrganizationAuthority
} from "./assistantContinuityPolicy";
const ADDRESS_INTENTS_KEEP_ADDRESS_LANE = new Set([
"period_coverage_profile",
@@ -109,26 +111,25 @@ export function createAssistantRoutePolicy(deps) {
const sessionOrganizationScope = input?.sessionOrganizationScope && typeof input.sessionOrganizationScope === "object"
? input.sessionOrganizationScope
: null;
const continuitySnapshot = resolveAssistantContinuitySnapshot({
const organizationAuthority = resolveAssistantOrganizationAuthority({
sessionItems,
toNonEmptyString
sessionKnownOrganizations: Array.isArray(sessionOrganizationScope?.knownOrganizations)
? sessionOrganizationScope.knownOrganizations
: [],
sessionSelectedOrganization: sessionOrganizationScope?.selectedOrganization,
sessionActiveOrganization: sessionOrganizationScope?.activeOrganization,
lastOrganizationClarificationDebug: findLastOrganizationClarificationAddressDebug(sessionItems),
toNonEmptyString,
normalizeOrganizationScopeValue,
mergeKnownOrganizations
});
const continuityActiveOrganization = normalizeOrganizationScopeValue(sessionOrganizationScope?.activeOrganization) ??
normalizeOrganizationScopeValue(continuitySnapshot.activeOrganization);
const continuitySnapshot = organizationAuthority.continuitySnapshot;
const continuityActiveOrganization = organizationAuthority.continuityActiveOrganization;
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) ??
continuityActiveOrganization;
const organizationClarificationCandidates = organizationAuthority.organizationClarificationCandidates;
const organizationClarificationSelectionFromScope = organizationAuthority.organizationClarificationSelectionFromScope;
const organizationClarificationSelection = resolveOrganizationSelectionFromMessage(rawUserMessage, organizationClarificationCandidates) ??
resolveOrganizationSelectionFromMessage(repairedRawUserMessage, organizationClarificationCandidates) ??
resolveOrganizationSelectionFromMessage(effectiveAddressUserMessage, organizationClarificationCandidates) ??