SPPI WebMCP: ошибка центровки, 6 ноября 2026
Подтверждённый результат
Мост Chat Agent → WebMCP SPPI работает. В установленной панели выполнен один контрольный запрос без изменения карты: pageTools.list() и Measure.GetActive. Сохранённый результат run_js содержит ok=true, measure=false и четыре инструмента: map.CenterOnGeoJsonFeature, map.SetCenter, Measure.GetActive, Measure.MeasureOnOff.
Сбой исходного запроса
- Request:
445a702f-4268-5c79-ac61-e9eb62bdbfbb. - Session:
4f051baa-3791-443a-8362-63717683f53c. - Команда: «зацентрируйся на городе москва».
- Первый вызов получил каталог. Второй вызвал map.CenterOnGeoJsonFeature с GeoJsonData: Feature / Point, координаты [37.6173, 55.7558].
- Аргумент GeoJsonData соответствует опубликованной схеме инструмента.
- Результат: browser_script_exception, effect=unknown,
Cannot read properties of undefined (reading 'clear'). - В Monitor сохранены вызов, результат и ошибка запроса. Это не тайм-аут истории.
Причина в опубликованном SPPI
Проверена фактически загруженная версия DEV-MASTER v1.0.24052 / 04.11.2026. В bundle карты, строка 1196 (нумерация с 1), метод MapService.CenterOnGeoJsonFeature сначала выполняет:
this.centerDataSource.clear();
this.centerDataSource = new VectorSource({ features: /* readFeatures */ });
this.CenterOnFeatures(this.centerDataSource.getFeatures());
На первом вызове centerDataSource ещё отсутствует. Инициализации до clear в
загруженном классе нет. Исключение возникает до создания источника и центровки.
Реестр SPPI вызывает метод как instance[method](#archive-availability), сохраняя this.
Наш мост сохраняет moduleName/apiName из каталога и передаёт JSON-аргументы.
Минимальная правка на стороне SPPI: проверять существование прежнего источника
перед clear (this.centerDataSource?.clear()), либо создавать его до использования.
Окончательный вариант и тест первого/повторного вызова должны выполняться в
исходном репозитории SPPI. Исходники и runtime карты в этой проверке не менялись.
Общий текст ошибки панели недостаточно конкретен: он скрывает за «результат не подтверждён» фактически полученное исключение. Точное сообщение доступно в «Ход выполнения» → второй run_js → «Получено от инструмента».
Границы проверки
Не повторял упавшую центровку и не вызывал изменяющие карту инструменты. Страницу не перезагружал, микрофон не переключал, настройки и сервисы не менял. Работоспособность map.SetCenter в этой проверке не устанавливалась.