A Look at Upcoming Innovations in Electric and Autonomous Vehicles SnarkRoute бросает вызов нодовым редакторам. Открытый протокол меняет правила

SnarkRoute бросает вызов нодовым редакторам. Открытый протокол меняет правила

SnarkRoute бросает вызов нодовым редакторам. Открытый протокол меняет правила

Пока каждый второй разработчик лепит собственный нодовый редактор, российский инженер пошёл другим путём: вместо очередного острова с несовместимым форматом - открытый конструктор, где воркфлоу становится переносимым документом, а не заложником одного интерфейса.

Проблема, которую все видят, но никто не чинит

ComfyUI, n8n, самописные обвязки вокруг Replicate и Fal - все они решают одну задачу, но каждый заваривает результат в свой несовместимый формат. Воркфлоу, собранный в одном месте, в другое не переезжает. Его трудно воспроизвести, невозможно передать, а пользователь намертво прибит к чужому интерфейсу. Сотни команд раз за разом изобретают одну и ту же коробочку с входами и выходами - и каждый раз в никуда. Новая Зеландия - Бельгия прямая трансляция

Проект SnarkRoute предлагает выход. Рабочая часть уже доступна публично под названием BoojumRoute Lab - локальный блочный редактор маршрутов. Под ним лежит главное: Open Route Protocol, переносимый формат для описания AI-, model- и API-воркфлоу. Канонический формат файла - .orp, есть алиасы .orp.json, .orp.yaml и человекочитаемый .route.

Маршрут как главный артефакт

Центральная идея - в том, что главным объектом становится не модель и не редактор, а маршрут. Читаемый документ, в котором прописаны ноды, связи, параметры, провенанс, экономика запуска и ссылки на ассеты. Провайдерских секретов внутри нет, внешние файлы напрямую не зашиваются. Такой файл можно переслать, вскрыть, ремикснуть и запустить - и он не рассыплется при переезде.

Ноды при этом пакуются в формат .snarknode, перетаскиваются в редактор, складываются в библиотеку, собираются в составные блоки и сворачиваются обратно в одну ноду. Провайдеры - Replicate, Gemini, OpenRouter - подключаются через provider-neutral Model Gateway: нода обращается к зарегистрированному адаптеру, а сам маршрут остаётся провайдер-агностичным.

Безопасность и экономика - не на потом

Главный страх при словах «переносимые ноды, которые можно слать друг другу» - превратить это в небезопасный npm только для графов. Разработчик заложил ответ с самого начала.

  • Никакого исполнения чужого произвольного JavaScript - ноды сообщества представляют собой декларативные манифесты с явными разрешениями
  • AssetRef вместо прямой загрузки файлов: маршрут держит ссылку, хост сам решает, что с ней делать
  • Секреты остаются только на хосте и не уезжают ни с маршрутом, ни с бандлом
  • Hash-пиннинг срабатывает при подмене ассета и помогает делать воспроизводимые запуски

Экономика тоже зашита в формат с первого дня - поля для авторов, лицензий, долей выручки и провенанса есть уже сейчас. Платежей и сеттлментов в v0.1 нет: рубильник опущен намеренно, но архитектурное место под него занято. Добить поля потом, не сломав совместимость, было бы невозможно.

Что уже работает

Проект построен на TypeScript-монорепо с pnpm, Vite, React Flow, Fastify и тестами на Vitest. Всё работает local-first: ключи, запуски и ассеты по умолчанию не покидают машину пользователя. Живой пример - апскейл картинки: input.image проходит через Replicate Clarity Upscaler, затем в preview.image и output.file, а результат сразу кэшируется локально, потому что ссылки Replicate протухают.

В репозитории лежит Codex-скилл для сборки нод - чтобы любой желающий мог собрать собственные блоки без погружения во внутренности движка. Часть кода писалась с помощью языковых моделей, и проект честно это документирует. Но отсутствие протокола, тестов и валидационных схем моментально превращает AI-помощь в кашу - именно поэтому здесь AGPL, vitest и декларативные манифесты вместо молитвы над чужим JS.