Поддержка упоминаний @extension в Daemon
Цель
Daemon WebShell должен поддерживать тот же механизм упоминания расширений, что и CLI, для активных расширений. Пользователи могут находить активные расширения через автодополнение @, выбирать каноническое упоминание @ext:<name>, после чего daemon внедряет контекст этого расширения в ход модели, не изменяя видимый текст промпта.
Дизайн
- Автодополнение
@в WebShell объединяет список активных расширений из статуса расширений рабочего пространства с совпадениями файлов этого пространства. Ввод@без символов сначала показывает расширения,@broфильтрует и расширения, и файлы, а@ext:переключает режим на автодополнение только расширений. - Автодополнение расширений вставляет
@ext:<extension.name>, чтобы daemon получал стабильную ссылку, не зависящую от отображаемого текста. - Статус расширений в Daemon включает необязательное поле
description, которое заполняется из конфигурации установленного расширения. Это поле является аддитивным для старых клиентов. - При разрешении промпта сессии ACP текстовые блоки промпта сканируются на наличие токенов
@ext:<name>. Система сопоставляет только активные расширения из конфигурации сессии, удаляет дубликаты повторяющихся упоминаний и без вывода ошибок пропускает неизвестные или неактивные имена. - Видимый пользователю текст сохраняется без изменений. Разрешенный контекст расширения добавляется в виде дополнительных текстовых частей для модели после текста пользователя.
- CLI и daemon используют общие вспомогательные функции для обработки упоминаний расширений: парсинга, очистки отображаемого текста, форматирования возможностей, а также чтения файлов контекста с проверками подпутей и лимитов размера.
Ограничения
Чтение файлов контекста ограничено как для каждого отдельного файла, так и общим бюджетом контекста расширений. Файлы, находящиеся за пределами каталога установленного расширения, пропускаются; нечитаемые файлы пропускаются с записью в debug-лог; повторяющиеся упоминания расходуют бюджет только один раз.
Проверка
Специализированные тесты охватывают режимы автодополнения WebShell, внедрение контекста daemon ACP, обработку повторяющихся и неизвестных упоминаний, файлы контекста с ограничениями, а также существующие обработчики упоминаний расширений в CLI. Финальная проверка включает сборку репозитория и проверку типов.