55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
# Max Index
|
|
|
|
Кроссплатформенное Electron-приложение, которое локально распознаёт русскую
|
|
речь и превращает настроенные фразы в живой индекс встречи.
|
|
|
|
## Текущий статус
|
|
|
|
Готов Phase 0: воспроизводимый Electron Forge + Vite + React + strict
|
|
TypeScript scaffold, безопасное окно, статическое состояние `Пауза` и первые
|
|
чистые domain-функции для диапазона индекса и уровней лица.
|
|
|
|
Микрофон и распознавание пока не подключены. Кнопки в окне намеренно
|
|
недоступны, поэтому scaffold не создаёт ложного впечатления активного
|
|
прослушивания.
|
|
|
|
## Запуск
|
|
|
|
Требуются Node.js `>=22.13 <23` и pnpm `10.34.x`. Точная версия закреплена в
|
|
`packageManager` и выбирается через Corepack.
|
|
|
|
```bash
|
|
pnpm install --frozen-lockfile
|
|
pnpm start
|
|
```
|
|
|
|
Основные проверки:
|
|
|
|
```bash
|
|
pnpm lint
|
|
pnpm typecheck
|
|
pnpm test
|
|
pnpm package
|
|
```
|
|
|
|
`pnpm package` доказывает сборку только для текущего хоста. Windows и Linux
|
|
проверяются отдельными release-ланами.
|
|
|
|
## Архитектурное направление
|
|
|
|
```text
|
|
Renderer capture
|
|
→ bounded MessagePort
|
|
→ utilityProcess recognizer
|
|
→ RecognitionEvent
|
|
→ main-owned SessionController + pure domain
|
|
→ versioned renderer snapshot
|
|
```
|
|
|
|
Первый вертикальный срез использует детерминированный mock в настоящем utility
|
|
process. Нативный `sherpa-onnx-node` и модель T-one подключаются отдельным
|
|
packaging spike после доказанной границы процессов.
|
|
|
|
Полный порядок реализации, контракты и evidence gates находятся в
|
|
[`docs/goals/max-index-v1/PLAN.md`](docs/goals/max-index-v1/PLAN.md).
|