Об этом проекте
magus — это система сборки и оркестратор задач, предназначенный для полиглотных монорепозиториев. Он поставляется как единый статически слинкованный бинарник Go без необходимости устанавливать второй тулчейн. Цели пишутся на Buzz — небольшом типизированном скриптовом языке, встроенном в бинарник, — и объявляются как экспортируемые функции в `magusfile.buzz`.
Ключевые возможности:
- **Затронутые множества**: граф зависимостей проектов и объявления входных данных на уровне файлов позволяют команде `magus affected <target>` запускать только те проекты, которых может достичь изменение, в порядке зависимостей. Это сужает объём работы CI до того, что реально затрагивает дифф.
- **Контентно-адресуемое кэширование**: каждая цель объявляет свои входы и выходы. magus хеширует входы и воспроизводит сохранённые выходы (SHA-256), когда та же работа запрашивается снова, выдавая побайтово идентичные результаты.
- **Граф знаний**: строится из объявленных источников (magusfile, документация, индекс SCIP, история git, CODEOWNERS), а не выводится внешним индексатором. Он отвечает на запросы вроде `magus query "kind=target lint"`, `magus explain <node>` и `magus refs <symbol>`. Граф — побочный продукт того, что magus является источником истины для сборок.
- **Единый словарь**: цели, spells (языковые адаптеры), charms (модификаторы вроде `rw` для чтения-записи) и ops (вызовы инструментов) именуются один раз и переиспользуются в CLI, конфигурации и графе.
- **Терминальный интерфейс**: закреплённая полоса прогресса внизу терминала, которая не очищает историю прокрутки, с деревьями ошибок, сгруппированными по проектам, и средством выбора с поиском по графу. Все интерфейсы деградируют до простого текста без терминала.
- **Браузерная консоль**: опциональные веб-приложения только для чтения (дашборд, обозреватель графа, просмотрщик логов, лента активности, дифф), обслуживаемые демоном через loopback, без встроенного UI в бинарнике. Данные никогда не покидают машину.
- **Интеграция с агентами**: устанавливаемые навыки для Codex и Claude Code, а также закоммиченный индекс маршрутизации `MAGUS.md` позволяют AI-агентам запрашивать граф и детерминированно запускать цели.
Архитектура: демон (`magus server start`) предоставляет Unix-сокет для локальной диспетчеризации CLI и HTTP-сервер для MCP, API только для чтения и сервисов Connect — всё за цепочкой защиты (проверка DNS-rebind, bearer-токен, CORS). Эндпоинты проверки работоспособности не защищены. Ограниченный по времени слушатель LAN может передать консоль только для чтения на телефон.
Нецели: нет удалённого выполнения, нет управления тулчейном, нет герметичной песочницы (отключена по умолчанию, без слоя ядра на macOS), нет изоляции контейнеров и небольшая экосистема (молодой проект, в основном работа одного человека).
Начало работы: установка через скрипт curl (проверьте перед запуском), затем напишите `magusfile.buzz` с экспортируемыми функциями для сборки, тестирования, линтинга и т. д. Команды вроде `magus ls`, `magus run test`, `magus affected ci` и `magus query` дают немедленные ответы.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.