Закрепить phase5 continuity replay для 1С

This commit is contained in:
2026-05-23 19:46:32 +03:00
parent 624e0cdf26
commit b2fe0460b3
7 changed files with 37 additions and 73 deletions
@@ -105,6 +105,10 @@ function formatOptionalDate(value: string | null, formatDateRu: (isoDate: string
return value ? formatDateRu(value) : "дата не указана";
}
function trimTrailingSentenceDot(value: string | null): string | null {
return value ? value.replace(/\.+$/u, "") : null;
}
function findFocusedCounterpartyValuePoint(
profileRows: CounterpartyValuePoint[],
counterpartyHint: string | null | undefined,
@@ -371,7 +375,7 @@ export function composeCounterpartyAnalyticsReply(
: null;
const lines: string[] = [
observedAgeLabel && firstObservedActivity && lastObservedActivity
? `По активности в базе 1С контрагент ${focusedCounterparty.name} наблюдается минимум ${observedAgeLabel}.`
? `По активности в базе 1С контрагент ${focusedCounterparty.name} наблюдается минимум ${trimTrailingSentenceDot(observedAgeLabel)}.`
: `По активности в базе 1С контрагент ${focusedCounterparty.name} найден в подтвержденных движениях.`
];
if (firstObservedActivity) {
@@ -433,7 +437,7 @@ export function composeCounterpartyAnalyticsReply(
: null;
const lines: string[] = [
observedAgeLabel && organizationFirstObservedActivity && organizationLastObservedActivity
? `По активности организации ${organizationHint} в базе 1С наблюдается минимум ${observedAgeLabel}.`
? `По активности организации ${organizationHint} в базе 1С наблюдается минимум ${trimTrailingSentenceDot(observedAgeLabel)}.`
: `По активности организации ${organizationHint} в базе 1С найдены подтвержденные движения.`
];
if (organizationFirstObservedActivity) {
@@ -4047,7 +4047,7 @@ function buildAssistantCapabilityContractReply(userMessage = "") {
.replace(/По основным группам:/giu, "Основные направления:")
.replace(/Если нужно, подскажу, как лучше сформулировать запрос под вашу задачу\./giu, "Если хотите, можно сразу задать конкретный вопрос по документам, остаткам, НДС, контрагенту или договору.")
.replace(/Что не делаю:\s*/giu, "Не делаю только административные действия: ")
.replace(/\s{2,}/g, " ")
.replace(/[^\S\r\n]{2,}/g, " ")
.replace(/\n{3,}/g, "\n\n")
.trim();
return normalizedReply || "Могу помогать с вопросами по данным 1С: НДС, контрагенты, долги, деньги, договоры и склад.";
@@ -220,7 +220,7 @@ export function loadCapabilitiesRegistry(): CapabilityRegistry {
export function buildCapabilityContractReplyFromRegistry(): string {
return [
"Могу быстро смотреть управленческие вещи по данным 1С в режиме чтения.",
"Могу помочь с быстрым анализом данных 1С:",
"",
"- кто должен денег и кому должны;",
"- какой год или месяц был самым денежным;",