80 lines
3.4 KiB
JavaScript
80 lines
3.4 KiB
JavaScript
"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 createAssistantMetaFollowupPolicy(deps) {
|
|
function resolveMetaSignalSet(input) {
|
|
const samples = collectMessageSamples(input);
|
|
if (samples.length === 0) {
|
|
return {
|
|
dataScopeMetaQuery: false,
|
|
capabilityMetaQuery: false,
|
|
metaAnswerFollowupSignal: false,
|
|
answerInspectionFollowupSignal: false
|
|
};
|
|
}
|
|
return {
|
|
dataScopeMetaQuery: hasSignalAcrossSamples(samples, deps.hasAssistantDataScopeMetaQuestionSignal),
|
|
capabilityMetaQuery: hasSignalAcrossSamples(samples, deps.shouldHandleAsAssistantCapabilityMetaQuery) ||
|
|
hasImplicitHistoricalCapabilityMetaSignal(samples),
|
|
metaAnswerFollowupSignal: hasSignalAcrossSamples(samples, deps.hasMetaAnswerFollowupSignal),
|
|
answerInspectionFollowupSignal: hasSignalAcrossSamples(samples, deps.hasAnswerInspectionFollowupSignal)
|
|
};
|
|
}
|
|
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
|
|
};
|
|
}
|