АРЧ АП11 - Архитектура после ге :
This commit is contained in:
@@ -53,10 +53,7 @@ function containsLetterLikeChars(text: unknown): boolean {
|
||||
}
|
||||
|
||||
export function createAssistantBoundaryPolicy(deps: AssistantBoundaryPolicyDeps): AssistantBoundaryPolicy {
|
||||
const defaultChannel = String(deps.activeMcpChannel ?? "default");
|
||||
|
||||
function buildAssistantDataScopeContractReply(scopeProbe: Record<string, unknown> | null = null): string {
|
||||
const channel = String(scopeProbe?.channel ?? defaultChannel);
|
||||
const organizations = Array.isArray(scopeProbe?.organizations)
|
||||
? scopeProbe.organizations
|
||||
.map((item) => String(item ?? "").trim())
|
||||
@@ -65,30 +62,30 @@ export function createAssistantBoundaryPolicy(deps: AssistantBoundaryPolicyDeps)
|
||||
|
||||
if (organizations.length === 1) {
|
||||
return [
|
||||
`Сейчас в активном MCP-канале \`${channel}\` доступна организация: ${organizations[0]}.`,
|
||||
"Работаю в read-only режиме. Могу сразу показать по этой организации документы, операции, договоры или остатки."
|
||||
`Сейчас доступна организация: ${organizations[0]}.`,
|
||||
"Могу сразу показать по ней документы, операции, договоры или остатки."
|
||||
].join(" ");
|
||||
}
|
||||
|
||||
if (organizations.length > 1) {
|
||||
const preview = organizations.slice(0, 10).join(", ");
|
||||
return [
|
||||
`Сейчас в активном MCP-канале \`${channel}\` доступны организации (${organizations.length}): ${preview}.`,
|
||||
"Работаю в read-only режиме. Скажи, по какой организации смотреть документы/операции."
|
||||
`Сейчас доступны организации (${organizations.length}): ${preview}.`,
|
||||
"Скажите, по какой организации смотреть данные."
|
||||
].join(" ");
|
||||
}
|
||||
|
||||
if (scopeProbe?.status === "unresolved_with_error" && scopeProbe?.error) {
|
||||
return [
|
||||
`Не смог прочитать название организации из live MCP-канала \`${channel}\`: ${scopeProbe.error}.`,
|
||||
"Работаю в read-only режиме и вижу только данные активного контура. Проверь подключение MCP/1С, после этого сразу назову контур."
|
||||
"Сейчас не удалось определить список организаций из подключенной базы.",
|
||||
`Техническая причина: ${scopeProbe.error}.`,
|
||||
"Проверьте подключение, и я сразу назову доступный контур."
|
||||
].join(" ");
|
||||
}
|
||||
|
||||
return [
|
||||
`Работаю в read-only режиме и вижу только те данные, которые отдает текущий MCP-канал \`${channel}\`.`,
|
||||
"Словарь компаний не зашит в код: рабочий контур определяется live-подключением.",
|
||||
"Если подключено несколько баз, для автосписка нужен MCP-метод метаданных (перечень баз/организаций); без него можно анализировать только активный контур запросов."
|
||||
"Сейчас вижу только данные текущего подключенного контура.",
|
||||
"Если в нем несколько организаций, скажите, по какой смотреть данные."
|
||||
].join(" ");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user