Разработчик выпустил открытый конструктор нодовых редакторов с переносимым форматом воркфлоу
Пока каждый AI-инструмент в индустрии клепает собственный нодовый редактор и намертво запирает в нём пользователя, один разработчик пошёл в другую сторону. Проект SnarkRoute предлагает не очередной остров, а открытый протокол - формат, в котором воркфлоу можно передать, вскрыть, ремикснуть и запустить заново, не потеряв ни автора, ни экономики, ни провенанса.
Проблема, которую все видели, но никто не трогал
ComfyUI, n8n, самопальные обвязки вокруг Replicate и Fal, внутренние пайплайны студий - всё это решает одну и ту же задачу, но каждый раз в собственной несовместимой упаковке. Воркфлоу, собранный в одном инструменте, в другой не переезжает. Логику процесса не вытащить, ноды не переиспользовать. Итог предсказуем: сотни команд изобретают одну и ту же коробочку с входами и выходами - и каждая заваривает её по-своему. Эквадор - Германия 3 тур
Стоит отметить, что эта ситуация напоминает ранние годы веб-разработки, когда у каждого фреймворка был собственный несовместимый шаблонизатор. Индустрия тогда выбралась через стандарты. Здесь ставка на тот же механизм.
Что такое SnarkRoute и как это устроено
Рабочий публичный фрагмент проекта - BoojumRoute Lab, локальный блочный редактор маршрутов. Под ним живёт главное: Open Route Protocol - переносимый формат для описания AI-, model- и API-воркфлоу. Канонический формат файла - .orp, есть алиасы .orp.json, .orp.yaml и человекочитаемый .route. Внутри - ноды, рёбра, параметры, метаданные автора, лицензия, провенанс и экономика запуска.
Ноды упакованы в .snarknode: их можно скачать, перетащить в редактор, собрать в цепочку и свернуть обратно в одну ноду. Архитектура local-first - ключи и ассеты остаются на машине пользователя, наружу маршрут лезет только при явном вызове внешнего провайдера. Провайдеры - Replicate, Gemini, OpenRouter и другие - подключаются через provider-neutral Model Gateway; сам файл маршрута провайдерских секретов не хранит.
Безопасность и экономика - не заплатки, а архитектура
Переносимые ноды от сообщества - декларативные манифесты с явными permissions, никакого исполнения произвольного JavaScript. Файлы и URL маршрут не тянет сам: вместо прямой загрузки используется AssetRef - ссылка с хешем, версией и типом, а хост уже решает, резолвить её или заблокировать. Hash-пиннинг ругается при подмене ассета.
Экономические поля - авторы, контрибьюторы, доли выручки, валюта, подсказки по цене - зашиты в формат с первого дня. Каждый запуск получает локальную сводку учёта. Платежи не исполняются: поля есть, рубильник опущен. Это осознанный выбор: совместимость важнее преждевременной монетизации.
Что уже работает
- Блочный редактор маршрутов BoojumRoute Lab с импортом и экспортом .orp
- DAG-движок с топологической сортировкой, ловлей циклов и шаблонными ссылками между нодами
- Установка и drag-and-drop импорт .snarknode
- Библиотека промптов как первый пример Asset System
- Встроенные ноды: текст, файлы, картинки, видео, шаблоны, превью, дебаг-логи
- Локальный ledger запусков с провенансом и экономикой
- Плейсхолдеры для недостающих нод - маршрут не разваливается при переезде
Живой пример уже в репозитории: апскейл картинки через Replicate Clarity Upscaler с автоматической локальной загрузкой результата - Replicate отдаёт ссылки, которые протухают, поэтому файл сразу оседает в data/runs. Стек - TypeScript-монорепо на pnpm, Vite, React Flow, Fastify, Vitest, лицензия AGPL. Открытый формат против закрытых островов - ставка сделана.