Архитектура: протянуть shared organization authority в data-scope history recovery и session bootstrap
This commit is contained in:
@@ -180,34 +180,18 @@ function createAssistantDataScopePolicy(deps) {
|
||||
return Array.from(new Set(extracted));
|
||||
}
|
||||
function extractKnownOrganizationsFromHistory(items) {
|
||||
const collected = [];
|
||||
const authority = (0, assistantContinuityPolicy_1.resolveAssistantOrganizationAuthority)({
|
||||
sessionItems: items,
|
||||
toNonEmptyString: assistantOrganizationMatcher_1.normalizeOrganizationScopeValue,
|
||||
normalizeOrganizationScopeValue: assistantOrganizationMatcher_1.normalizeOrganizationScopeValue,
|
||||
mergeKnownOrganizations: assistantOrganizationMatcher_1.mergeKnownOrganizations
|
||||
});
|
||||
const collected = [...authority.knownOrganizations];
|
||||
for (let index = (Array.isArray(items) ? items.length : 0) - 1; index >= 0; index -= 1) {
|
||||
const item = Array.isArray(items) ? items[index] : null;
|
||||
if (!item || typeof item !== "object" || item.role !== "assistant") {
|
||||
continue;
|
||||
}
|
||||
const debug = item.debug;
|
||||
if (debug && typeof debug === "object") {
|
||||
const directFromProbe = Array.isArray(debug.living_chat_data_scope_probe_organizations)
|
||||
? debug.living_chat_data_scope_probe_organizations
|
||||
: [];
|
||||
const knownFromDebug = Array.isArray(debug.assistant_known_organizations)
|
||||
? debug.assistant_known_organizations
|
||||
: [];
|
||||
const directFromCandidates = Array.isArray(debug.organization_candidates) ? debug.organization_candidates : [];
|
||||
const directFromResolved = [
|
||||
(0, assistantOrganizationMatcher_1.normalizeOrganizationScopeValue)(debug.assistant_active_organization),
|
||||
(0, assistantOrganizationMatcher_1.normalizeOrganizationScopeValue)(debug.living_chat_selected_organization),
|
||||
(0, assistantOrganizationMatcher_1.normalizeOrganizationScopeValue)(debug.extracted_filters?.organization),
|
||||
(0, assistantOrganizationMatcher_1.normalizeOrganizationScopeValue)(debug.address_root_frame_context?.organization)
|
||||
].filter((value) => Boolean(value));
|
||||
if (directFromProbe.length > 0 ||
|
||||
knownFromDebug.length > 0 ||
|
||||
directFromCandidates.length > 0 ||
|
||||
directFromResolved.length > 0) {
|
||||
collected.push(...directFromProbe, ...knownFromDebug, ...directFromCandidates, ...directFromResolved);
|
||||
}
|
||||
}
|
||||
const parsedFromText = parseOrganizationsFromDataScopeAssistantText(item.text);
|
||||
if (parsedFromText.length > 0) {
|
||||
collected.push(...parsedFromText);
|
||||
|
||||
Reference in New Issue
Block a user