Разработчик выпустил открытый конструктор нодовых редакторов с переносимым форматом маршрутов - и сразу объяснил, зачем это нужно всем, кто устал от несовместимых воркфлоу
Нодовые редакторы плодятся быстрее, чем успевают устаревать. 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, схема протокола открыта. Это не «нейросеточка собрала проект», а попытка зафиксировать слои и границы раньше, чем они размоются сами собой.