"use strict"; // @ts-nocheck Object.defineProperty(exports, "__esModule", { value: true }); exports.createAssistantMetaFollowupPolicy = createAssistantMetaFollowupPolicy; function collectMessageSamples(input) { const values = [ input.rawUserMessage, input.repairedRawUserMessage, input.effectiveAddressUserMessage, input.repairedEffectiveAddressUserMessage ]; return Array.from(new Set(values .map((item) => String(item ?? "").trim()) .filter((item) => item.length > 0))); } function hasSignalAcrossSamples(samples, detector) { return samples.some((sample) => detector(sample)); } function hasImplicitHistoricalCapabilityMetaSignal(samples) { return samples.some((sample) => /(?:историческ|история|архив|раньше|ретро|старые\s+данные)/iu.test(sample) && /(?:мож(?:ешь|ем|но)|уме(?:ешь|ете))/iu.test(sample)); } function normalizedSampleText(value) { return String(value ?? "") .toLowerCase() .replace(/\s+/g, " ") .replace(/\u0451/gu, "\u0435") .trim(); } function hasSchemaDataScopeMetaSignal(samples) { return samples.some((sample) => { const text = normalizedSampleText(sample); if (!text) { return false; } const hasOneCOrSchemaCue = /(?:\b1\s*[cс]\b|1с|metadata|schema|схем|структур|метаданн)/iu.test(text); const hasSchemaObjectCue = /(?:справочник|справочники|регистр|регистры|объект(?:ы|ов)?|пол[ея]|связ[ьи]|реквизит|таблиц|раздел(?:ы|ов)?|catalog|register|object|field|relation|link)/iu.test(text); const hasDirectSchemaQuestion = /(?:какие\s+(?:справочник|справочники|регистры|объекты|поля|связи|реквизиты)|где\s+(?:лежат|хранятся).*(?:данные|поля)|что\s+есть\s+в\s+1с\s+по)/iu.test(text); const hasDocumentSchemaQuestion = /(?:какие\s+(?:поля|связи|реквизиты).{0,80}(?:документ|реализац|поступлен)|(?:документ|реализац|поступлен).{0,80}(?:поля|связи|реквизиты))/iu.test(text); return (hasOneCOrSchemaCue && hasSchemaObjectCue) || hasDirectSchemaQuestion || hasDocumentSchemaQuestion; }); } function hasBusinessBoundaryQuestionSignal(samples) { return samples.some((sample) => { const text = normalizedSampleText(sample); if (!text) { return false; } const hasClassificationCue = /(?:можно\s+ли\s+считать|это\s+можно\s+считать|как\s+считать|классифиц|объясни\s+аккуратно|это\s+уже|это\s+пока|can\s+this\s+be\s+treated)/iu.test(text); const hasBusinessObjectCue = /(?:просроч|открыт\w*\s+задолж|долг|дебитор|кредитор|ликвид|резерв|неликвид|склад|прибыл|марж|оборот|контрагент|покупател|поставщик|overdue|debt|receivable|payable|stock|profit|margin)/iu.test(text); return hasClassificationCue && hasBusinessObjectCue; }); } function hasContextIntegrityInspectionSignal(samples) { return samples.some((sample) => { const text = normalizedSampleText(sample); return Boolean(text && /(?:проверь\s+себя|не\s+смешал|не\s+перепутал|правильно\s+ли\s+контур|объясни\s+контур|self[-\s]?check)/iu.test(text) && /(?:контрагент|организац|компан|контур|scope|counterparty|organization|company)/iu.test(text)); }); } function createAssistantMetaFollowupPolicy(deps) { function resolveMetaSignalSet(input) { const samples = collectMessageSamples(input); if (samples.length === 0) { return { dataScopeMetaQuery: false, capabilityMetaQuery: false, metaAnswerFollowupSignal: false, answerInspectionFollowupSignal: false }; } const dataScopeMetaQuery = hasSignalAcrossSamples(samples, deps.hasAssistantDataScopeMetaQuestionSignal) || hasSchemaDataScopeMetaSignal(samples); const businessBoundaryQuestion = hasBusinessBoundaryQuestionSignal(samples); return { dataScopeMetaQuery, capabilityMetaQuery: !businessBoundaryQuestion && (hasSignalAcrossSamples(samples, deps.shouldHandleAsAssistantCapabilityMetaQuery) || hasImplicitHistoricalCapabilityMetaSignal(samples)), metaAnswerFollowupSignal: hasSignalAcrossSamples(samples, deps.hasMetaAnswerFollowupSignal), answerInspectionFollowupSignal: hasSignalAcrossSamples(samples, deps.hasAnswerInspectionFollowupSignal) || hasContextIntegrityInspectionSignal(samples) }; } function resolveHardMetaMode(input) { if (Boolean(input.dataScopeMetaQuery)) { return "data_scope"; } if (Boolean(input.capabilityMetaQuery) && !Boolean(input.dataRetrievalSignal)) { return "capability"; } return null; } function isMetaFollowupOverGroundedAnswer(input) { return Boolean(input.followupContext && input.hasPriorAddressAnswerContext && (input.metaAnswerFollowupSignal || input.vatEvaluativeFollowupSignal) && !input.dataScopeMetaQuery && !input.capabilityMetaQuery && !input.aggregateBusinessAnalyticsSignal && !input.dataRetrievalSignal && !input.strongDataSignal && String(input.resolvedMode ?? "") !== "address_query" && String(input.resolvedIntent ?? "") === "unknown" && (!input.llmContractIntent || String(input.llmContractIntent) === "unknown") && String(input.llmContractMode ?? "") !== "address_query"); } function isAnswerInspectionFollowupOverGroundedAnswer(input) { return Boolean(input.followupContext && input.hasPriorAddressAnswerContext && input.answerInspectionFollowupSignal && !input.dataScopeMetaQuery && !input.capabilityMetaQuery && !input.aggregateBusinessAnalyticsSignal); } return { resolveMetaSignalSet, resolveHardMetaMode, isMetaFollowupOverGroundedAnswer, isAnswerInspectionFollowupOverGroundedAnswer }; }