CLI (инструмент командной строки)
Соответствует пункту 7 задачи: полный список будущих команд и их назначение. Архитектура без реализации. Стек CLI — ADR-005.
CLI — главный инструмент разработчика и оркестратор всех остальных подсистем (конфиг, кодогенерация, dev-сервер, сборка, плагины, диагностика). Бинарь: aurobore (короткий алиас bor).
1. Принципы
- Единая точка входа для всего workflow: от создания проекта до публикации.
- Понятные ошибки и подсказки (DX, NFR-6);
doctorпомогает чинить окружение. - Не требует ручного редактирования нативных артефактов — всё генерируется.
- Расширяемость командами от плагинов/экосистемы (подкоманды).
2. Полный список команд
| Команда | Назначение |
|---|---|
aurobore create <name> | Создать новый проект из шаблона (vanilla/react/vue/svelte): структура src/, public/, aurobore.config, базовые плагины. |
aurobore init | Подключить существующий web-проект: aurobore.config.json, скрипты aurora:* / build:aurora в package.json, .aurobore/ в .gitignore. |
aurobore dev | Поднять Dev Server + dev-контейнер с live/hot reload; запустить на эмуляторе/устройстве. Флаг --web — browser mock mode без SDK (см. web-mock-mode.md, FR-C12). |
aurobore build | Собрать пакет приложения под Аврора (web → нативный проект → RPM). |
aurobore run | Установить и запустить собранное приложение на эмуляторе/устройстве. |
aurobore update keygen|publish|list|rollback | OTA: ключи Ed25519, публикация подписанного веб-бандла в канал, откат (COULD, FR-C14). См. ota-updates.md. |
aurobore doctor | Диагностика окружения: Aurora SDK, цели/таргеты, версии, конфиг, плагины, частые проблемы + советы по починке. |
aurobore plugin add <name> | Установить плагин (npm) и зарегистрировать в проекте; запустить кодогенерацию. |
aurobore plugin remove <name> | Удалить плагин из проекта и обновить артефакты. |
aurobore plugin list | Показать установленные плагины, версии, статус совместимости. |
aurobore plugin create <name> | Сгенерировать скелет нового плагина из манифеста (SHOULD, FR-C8). |
aurobore generate (codegen) | Перегенерировать JS-обёртки и TS-типы из манифестов. |
aurobore config | Показать/валидировать итоговую конфигурацию (после слияния с требованиями плагинов). |
aurobore migrate | Миграция конфигурации/проекта между версиями платформы (COULD, FR-C10). |
aurobore publish | Публикация: приложение — в стор Аврора; плагин — в npm (SHOULD, FR-C9). |
aurobore clean | Очистить сгенерированные артефакты/кэш сборки. |
aurobore info | Версии Aurobore/Runtime/протокола, окружение (для багрепортов). |
3. Назначение ключевых команд (подробнее)
create
Скелет проекта: каталоги src/, public//assets, aurobore.config, набор стартовых плагинов, готовые скрипты (dev/build). Выбор шаблона флагом --template.
init
Подключение существующего фронтенда (Vue/Vite и др.) без смены структуры проекта: интерактивное или неинтерактивное (-y) создание aurobore.config.json, авто-детект web.root, патч package.json и .gitignore. Не устанавливает @aurobore/* — только когда нужны плагины (plugin add).
dev
Самая «горячая» команда: live/hot reload, прокидывание консоли, DevTools. Использует Dev Server. С флагом --web — только desktop-браузер и loopback-мост с mock-плагинами (без эмулятора/RPM).
build
Полная детерминированная сборка (см. build-system.md). Флаги: --mode prod|dev, --target, --engine.
run
Деплой на эмулятор/устройство и запуск; выбор устройства флагом. Часто используется в связке build && run.
doctor
Проверяет: установлен ли Aurora SDK, доступны ли таргеты, корректность aurobore.config, совместимость плагинов, типичные проблемы (RPATH/зависимости WebView). Возвращает actionable-советы.
plugin *
Управление плагинами без ручной правки нативных конфигов: add ставит npm-пакет, агрегирует разрешения/нативные зависимости, запускает кодогенерацию; remove откатывает; list показывает статус; create генерирует скелет для авторов.
publish
Два сценария: публикация приложения (упаковка/подпись/загрузка в стор Аврора) и публикация плагина (npm).
4. Архитектура CLI (внутреннее устройство)
- Парсер команд → команда → вызов соответствующих подсистем (config, codegen, build, dev, plugins).
- Общие службы: загрузка/валидация конфига, логирование, обработка ошибок, обнаружение Aurora SDK.
- Команды — модульны и тестируемы изолированно (NFR-8).
- Возможность расширения подкомандами от плагинов экосистемы.
5. Связи
- ↔ Configuration — читает/валидирует/мигрирует.
- ↔ Build System —
build/run. - ↔ Dev Server —
dev. - ↔ Plugin System —
plugin *, кодогенерация. - ↔ TypeScript SDK —
generate.