feat(assistant): авто-подхват новых модулей по фича-флагам в индексации системы
buildSystemKb теперь добавляет в снимок ЛЮБОЙ фича-флаг, которого нет в MODULE_CATALOG, как «функция X — вкл/выкл» (assistant-сам пропускается). Новый модуль с фича-флагом попадает в знания Квантика автоматически после «Проиндексировать», без правки кода. Для красивого описания/ссылки — запись в каталоге или поле «Описание системы». Проверено: авто-подхват 6/6, node --check OK. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1013,6 +1013,12 @@ function buildSystemKb() {
|
||||
chunks.push({ title: m.name, text: `Модуль «${m.name}» — ${e ? 'ВКЛЮЧЁН и доступен' : 'ВЫКЛЮЧЕН (не предлагать ученику)'}. ${m.desc}${m.url ? ' Раздел: ' + m.url + '.' : ''}` });
|
||||
});
|
||||
chunks.push({ title: 'Доступные модули', text: `Сейчас на платформе ВКЛЮЧЕНЫ разделы: ${on.join(', ')}.` + (off.length ? ` ВЫКЛЮЧЕНЫ (о них не рассказывать и не предлагать): ${off.join(', ')}.` : '') });
|
||||
// авто-подхват НОВЫХ модулей: любой фича-флаг, которого нет в каталоге (assistant — это сам помощник, пропускаем)
|
||||
const known = new Set(MODULE_CATALOG.map(m => m.key).filter(Boolean));
|
||||
Object.keys(flags).forEach(k => {
|
||||
if (known.has(k) || k === 'assistant') return;
|
||||
chunks.push({ title: 'Функция: ' + k, text: `Функция платформы «${k}» — ${flags[k] !== false ? 'ВКЛЮЧЕНА' : 'ВЫКЛЮЧЕНА (не предлагать)'}.` });
|
||||
});
|
||||
const doc = _aset('assistant_system_doc');
|
||||
if (doc && doc.trim()) doc.split(/\n{2,}/).map(s => s.trim()).filter(Boolean).forEach(p => chunks.push({ title: 'Описание системы', text: p.slice(0, 1500) }));
|
||||
return chunks;
|
||||
|
||||
Reference in New Issue
Block a user