--- title: "Meeting-Room v2: Интерактивный офис" type: concept domain: meeting-room tags: [architecture, refactor, web-ui, artifacts] updated: 2026-05-03 --- # Meeting-Room v2: Интерактивный офис > Эволюция CLI-тула в интерактивный многоагентный офис с Web UI, ролями Boss/CSO и генерацией артефактов. ## Проблема Текущий meeting-room — CLI-утилита с одним режимом: `meeting-room -s scenario.md`. Глобальное состояние, движок смешан с I/O, нет событийной системы, несовместимость с Windows. Не поддерживает интерактивность. ## Решение — 4 фазы ### Фаза 1: Рефактор ядра - Pydantic модели данных (ProviderConfig, RoleConfig, Session) - EventEmitter + типы событий (вместо print()) - APIClient класс (вместо модульных глобалов) - ToolRegistry класс (вместо модульных глобалов, чистый Python вместо find/grep) - DiscussionEngine (извлечён из backends/custom/run.py, emit вместо print) - Обратная совместимость CLI ### Фаза 2: Web-сервер - FastAPI + WebSocket + SSE - REST: sessions, start, inject, roles, providers - Минимальный HTML/CSS/JS UI (без фреймворка) - `meeting-room serve` команда ### Фаза 3: Интерактивность - Boss-роль (пауза + inject через API) - CSO-инъекция (Claude Code через REST) - Setup Wizard (выбор участников, моделей, повестки) - BrainstormEngine (1:1 с CSO) ### Фаза 4: Артефакты - LLM-экстрактор (задачи, знания, решения из дискуссии) - TaskIntegrator → .tasks/ проекта (через projects-meta MCP) - WikiIntegrator → .wiki/ проекта (через projects-meta MCP) - ProjectCreator → Gitea API → clone → bootstrap - SessionArchive (индекс, поиск, архивация) ## Ключевые принципы - Событийная архитектура: движок emit'ит, потребитель подписывается - Каждая фаза даёт работающий продукт - CLI работает идентично на протяжении всех фаз - Артефакты идут в проектные .tasks/ и .wiki/, не в глобальные - Глобальные .tasks/ — только агрегация ## See Also - [sources/organization-architecture-meeting](../../.wiki/sources/organization-architecture-meeting.md) — оргструктура - [entities/cso](../../.wiki/entities/cso.md) — роль CSO