CLI
@lite-fsm/cli публикует команду lite-fsm. Пакет находится в alpha-версии.
Команды
| Команда | Назначение |
|---|---|
create | Создать Next.js или Vite starter с lite-fsm store |
add-machine | Добавить доменный автомат в generated src/store |
export-graph | Записать project graph в JSON export document |
visualize | Запустить локальный Visualizer для project graph |
lite-fsm create
lite-fsm create my-app --template viteКоманда создаёт React starter, добавляет @lite-fsm/core, @lite-fsm/react, @lite-fsm/middleware, immer, generated src/store, React provider wiring и базовый автомат app.
| Опция | Обязательна | Назначение |
|---|---|---|
<project-name> | Да | Относительный target, например my-app, apps/demo или . |
--template <next|vite> | Да | Framework starter |
--css <tailwind|none> | Нет | CSS preset, по умолчанию tailwind |
--package-manager <pnpm|npm|yarn|bun> | Нет | Package manager для scaffold/install/next steps, по умолчанию npm |
--install / --no-install | Нет | Установить зависимости после генерации или пропустить install |
lite-fsm add-machine
lite-fsm add-machine user-sessionКоманда запускается из корня проекта, созданного через lite-fsm create. Она создаёт src/store/machines/user-session.ts, регистрирует userSession в src/store/index.ts и добавляет userSession.Events в AppEvents.
| Опция | Обязательна | Назначение |
|---|---|---|
<name> | Да | Имя в kebab-case, snake_case или camelCase, например user-session |
lite-fsm export-graph
lite-fsm export-graph --entry store/index.ts --out lite-fsm.graph.jsonКоманда строит project graph через @lite-fsm/graph и записывает JSON export document.
| Опция | Обязательна | Назначение |
|---|---|---|
--entry <path> | Да | Входной TypeScript-файл с выбранным MachineManager(...) |
--out <path> | Да | Путь к JSON-файлу |
--tsconfig <path> | Нет | Явный tsconfig.json для module resolution |
--include-source | Нет | Добавить source text в sources.files[] |
--out - не поддерживается: команда пишет только в файл.
lite-fsm visualize
lite-fsm visualize --entry store/index.tsКоманда строит project graph, запускает локальный server на 127.0.0.1 и открывает Visualizer с session URL.
| Опция | Обязательна | Назначение |
|---|---|---|
--entry <path> | Да | Входной TypeScript-файл с выбранным MachineManager |
--tsconfig <path> | Нет | Явный tsconfig.json для module resolution |
--port <number> | Нет | Локальный порт, по умолчанию 3030 |
--no-open | Нет | Напечатать URL без автоматического открытия браузера |
Session API доступен только с token из URL. /api/session возвращает graph export document, /api/source отдает исходники только для файлов из текущего graph document.
Diagnostics
CLI diagnostics используют коды LFC_*. Ошибки graph compiler остаются внутри graph.diagnostics, чтобы потребители export document могли отдельно показывать проблемы запуска CLI и проблемы анализа source.