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

Разработчик выпустил открытый конструктор нодовых редакторов с переносимым форматом маршрутов - и сразу объяснил, зачем это нужно всем, кто устал от несовместимых воркфлоу

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

Что такое SnarkRoute и зачем он нужен

Проект называется SnarkRoute. Публичная его часть живёт как BoojumRoute Lab - локальный блочный редактор маршрутов. Под ним лежит главное: Open Route Protocol, переносимый формат описания AI-, model- и API-воркфлоу. Тунис - Нидерланды 3 тур

Идея простая, но радикальная. В центре - не модель и не редактор, а маршрут: читаемый документ с нодами, связями, параметрами, провенансом и экономикой запуска. Его можно переслать, вскрыть, ремикснуть и запустить - он не рассыплется при переезде. Отдельные ноды пакуются в формат .snarknode, тащатся в редактор перетаскиванием, складываются в библиотеку или собираются в составные цепочки.

Канонический формат файла - .orp, есть человекочитаемый алиас .route. Внутри: инстансы нод, рёбра, параметры, метаданные провенанса и экономики, ссылки на ассеты через AssetRef. Провайдеры - Replicate, Gemini, OpenRouter и другие - подключаются через нейтральный Model Gateway: нода зовёт зарегистрированный адаптер, а сам файл маршрута секретов не хранит и от конкретного провайдера не зависит.

Безопасность заложена в архитектуру, а не дописана поверх

Первый же вопрос, который возникает при словах «переносимые ноды, которые можно слать друг другу» - как не получить очередной небезопасный менеджер пакетов, только для графов. Автор отвечает на него конструктивно. Никакого исполнения произвольного JavaScript из сторонних нод нет в принципе: ноды сообщества - декларативные манифесты с явными разрешениями. Файлы маршрут не тянет сам - держит ссылку AssetRef, а хост сам решает, резолвить её или заблокировать. Секреты живут только локально и с маршрутом не уезжают.

Есть и хеш-пиннинг: если ассет подменили, система ругается. Воспроизводимость становится не декларацией, а рабочим механизмом.

Что уже работает - и где честные границы

Стек - TypeScript-монорепо на pnpm, Vite + React + React Flow на фронте, Fastify на сервере, тесты на Vitest. Всё local-first: ключи, запуски и настройки остаются на машине пользователя.

  • Рабочий блочный редактор BoojumRoute Lab
  • Создание и запуск маршрутов, импорт и экспорт .orp
  • DAG-исполнитель с топологической сортировкой, ловлей циклов и логами
  • Установка .snarknode и drag-and-drop импорт нод
  • Плейсхолдеры для недостающих нод - маршрут не разваливается, если ноды нет
  • Библиотека промптов как пример Asset System
  • Встроенные ноды: текст, файлы, изображения, видео, шаблоны, превью, вывод
  • Локальный ledger запусков с провенансом и экономикой

Поля для авторства, лицензий, долей выручки и атрибуции заложены в формат с первого дня - но с честным paymentExecuted: false. Экономика живёт как метаданные и локальный учёт. Никаких платежей, никакого блокчейна. Рубильник опущен осознанно - архитектурный задел без преждевременного включения.

Часть кода написана с помощью языковых моделей - в репозитории даже лежит Codex-скилл для сборки нод. Автор при этом открыто признаёт: стоило убрать протокол, тесты и схемы валидации - всё превращалось в кашу. Лицензия AGPL, схема протокола открыта. Это не «нейросеточка собрала проект», а попытка зафиксировать слои и границы раньше, чем они размоются сами собой.