К содержанию
Документация
Разработчикам

Контракты

Где живут схемы и у кого из них есть schemaVersion.

Схемы описываются один раз, в packages/contracts, на Zod. Модели Python собираются из них. Сгенерированные файлы вручную не правят: сборка сравнивает их с исходными схемами и падает на расхождении.

Запрос и ответ на границе TypeScript и Python проходят те же схемы. Имена на странице схем — те же, что проверяют данные в коде.

Ограничение

Поля schemaVersion нет у каждой Zod-схемы. Оно есть у контрактов, которые пересекают границу пайплайна. Тест packages/contracts/src/index.spec.ts явно оставляет без него HealthCheck, RunConfig и AgentConfig. Схемы чата в packages/contracts/src/chat.ts в этот реестр не входят и schemaVersion не объявляют. У агента есть semver-поле version, это не schemaVersion.

Несовместимое изменение версионированного контракта поднимает schemaVersion: старый пример перестаёт проходить проверку, пока новая версия не описана явно.