Домашняя страница фабрики

Домашняя страница фабрики — единая закладка, с которой открываются все приложения фабрики. Вместо того чтобы запоминать адреса каждого агента и инструмента, вы заходите на одну страницу и видите их карточки. Это статичная панель: MultiAgent сам собирает её из своей базы и загружает на фабрику, а Nginx отдаёт её в корне /. Отдельный контейнер для неё не нужен — достаточно установленного Nginx, а своё состояние страница не хранит вовсе.

Страница — один самодостаточный файл: фоновая картинка, знаки и шрифт встроены внутрь, за внешними данными она никуда не ходит. Шрифт — системный, тот же современный набор, что и в самом интерфейсе, поэтому страница открывается и без доступа в интернет и выглядит одинаково на любой системе.

Собственного входа у страницы нет. Всё, что нужно, решает центральный вход: когда он активен, корень закрывается вместе с остальными защищёнными приложениями, а когда выключен — страница открыта. Так одна учётная запись открывает и панель, и все приложения с неё.

Вкладка «Домашняя страница»

Вкладка расположена сразу справа от вкладки Nginx — сначала устанавливается Nginx, иначе устанавливать панель некуда. На вкладке — установка, кнопка применения (повторная сборка и загрузка), публичный адрес страницы и число карточек; полей для логина и пароля нет — страница статичная, и своего входа у неё нет. Выбора языка здесь тоже нет: язык надписей следует бренду фабрики.

Что на панели

Над сеткой карточек — заголовок страницы: знак MultiAgent и надпись «Фабрика агентов». Карточки — это то, что MultiAgent ведёт из своей базы. По одной карточке на каждого агента, продукт и инструмент с адресом, с реальными логотипами проектов: агенты несут логотип Agent, приложения — логотип своего шаблона, инструменты — свой. Если логотипа нет, карточка получает квадратик с первой буквой названия. Сама карточка — плоская полупрозрачная плитка, которая светлеет под курсором: видно, что вся плитка — ссылка. Подпись карточки приложения лишена слова «App»: «Analytics App» становится «Analytics» — так карточка говорит, что это за приложение, а не что это приложение. Это только подпись на панели: сама запись в интерфейсе сохраняет полное имя.

  • Значки дополнительных ссылок — в правом верхнем углу карточки агента или приложения выводятся значки, которые вы задали на вкладке «Ссылки»: наведите курсор, чтобы увидеть подсказку с названием;
  • Строка кнопок в углу — общие действия живут не карточками, а кнопками-значками в правом верхнем углу панели, поверх сетки. Слева направо: «Git» — только пока на фабрике запущен Forgejo, ведёт на его публичную подпапку; «Вход по QR-коду» — только пока центральный вход включён и работает; и всегда крайняя справа «Выйти» — завершает сессию центрального входа, выходит из всех агентов и продуктов (их токены удаляются) и возвращает на панель. Это один клик, чтобы завершить все сессии фабрики сразу, не выходя из каждой подсистемы по отдельности. Кнопки в углу не считаются приложениями: в число карточек на вкладке они не входят;
  • Один и тот же адрес — карточка открывается в той же вкладке, а кнопка «назад» в браузере возвращает к панели;
  • Внизу — сайт бренда. Под сеткой карточек стоит мелкая ссылка на сайт бренда фабрики: pastukhov.com или xedant.com.

Вход по QR-коду

Кнопка «Вход по QR-коду» открывает страницу с большим кодом, а под ним — сама ссылка, которую можно скопировать одним кликом: она кладётся в буфер обмена. На телефоне достаточно навести камеру на код или открыть присланную ссылку: устройство войдёт в центральный вход и сразу попадёт на панель — пароль набирать не нужно. Ссылку можно скопировать и отправить человеку: он войдёт так же, без пароля.

Код одноразовый и живёт 24 часа. Он действует, пока им не воспользовались: после первого входа ссылка перестаёт работать, а неиспользованная — истекает через сутки. На фабрике одновременно хранится до десяти живых кодов, и каждое открытие страницы показывает следующий по очереди — тот, что вы только что видели, не повторится. Значит, можно выдать вход нескольким людям или устройствам, и вход одного не отменяет остальные.

Если код уже использован или просрочен, страница сообщает об этом и предлагает ссылку на панель — новый код выдаёт кнопка «Ссылка для входа» в шапке страницы фабрики. Вернуться на панель со страницы кода можно кнопкой «Главная» в её углу.

Страница выхода устроена так же: сначала она спрашивает подтверждение, и до ответа ничего не завершается. Выглядит она как сама панель — тот же фон, — а кнопки разные: «Отмена» обычная и возвращает назад, ничего не трогая, «Выйти» красная и завершает сессии.

Панель всегда актуальна

Менять страницу вручную не нужно: MultiAgent пересобирает её при каждом изменении состава приложений — развернули агента или инструмент, переименовали запись, добавили ссылку, поставили или сняли центральный вход. Сборка идёт и в конце каждого применения Nginx — даже если сама конфигурация маршрутов не изменилась. Поэтому упущенное обновление не остаётся навсегда: панель догоняет текущее состояние при следующем применении. Ручная кнопка применения делает то же самое сразу, когда нужно наверстать упущенное. Загрузка экономная: если на фабрике уже лежит та же страница, файл заново не отправляется.

Язык надписей не выбирается: страница говорит на языке бренда фабрики — русский бренд даёт русские надписи, английский — английские, независимо от языка интерфейса управления. Смена бренда на вкладке «Общее» сразу пересобирает панель.

Если на фабрике прежде стояла старая домашняя страница, установка аккуратно уберёт её и поставит новую — все шаги видны в ленте прогресса.

Доступ и приоритеты

Панель отдаётся в корне фабрики, а подпапки приложений всегда имеют приоритет: агент со слагом settings будет отдан по /settings/, а сама домашняя страница продолжит работать в корне. Если Nginx остановлен, страдает только корень — подпапки приложений продолжают работать.

Значок вкладки браузера у страницы — тот же знак MultiAgent, что стоит и в заголовке, поэтому за отдельной картинкой браузер никуда не ходит. У приложения управления остаётся его собственный значок: страница фабрики и интерфейс управления — разные вкладки.

← Оглавление документации