> ## Documentation Index
> Fetch the complete documentation index at: https://exosphere-auto-translate-docs-20260624-1149.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Dashboard

title: Панель управления
description: "Мониторинг сеансов агентов, просмотр вызовов инструментов и управление политиками"
icon: chart-line
----------------

Панель управления failproofai — это локальное веб-приложение для мониторинга сеансов вашего ИИ-агента и управления политиками. Узнайте, что делали ваши агенты, пока вас не было.

***

## Запуск панели управления

```bash theme={null}
failproofai
```

Открывается на `http://localhost:8020`.

Панель управления читает данные непосредственно из файловой системы — из папок вашего проекта Claude Code и файлов конфигурации failproofai. Ничего не записывается в удалённый сервис.

***

## Страницы

### Projects

Отображает все проекты Claude Code, OpenAI Codex, GitHub Copilot CLI *(бета)*, Cursor Agent *(бета)*, OpenCode *(бета)*, Pi *(бета)* и Gemini CLI *(бета)*, найденные на вашем компьютере. Проекты Claude обнаруживаются из `~/.claude/projects/` (или пути, заданного переменной `CLAUDE_PROJECTS_PATH`); проекты Codex обнаруживаются путём сканирования каждой транскрипции в `~/.codex/sessions/<YYYY>/<MM>/<DD>/*.jsonl` и группировки по `cwd`, записанному в первой записи сеанса; проекты Copilot CLI обнаруживаются путём сканирования каждого файла `~/.copilot/session-state/<sessionId>/workspace.yaml` (настраивается через `COPILOT_HOME`) и группировки по полю `cwd`; проекты Cursor Agent обнаруживаются путём сканирования метаданных для каждого сеанса в `~/.cursor/agent-sessions/<sessionId>/` (настраивается через `CURSOR_HOME`, с резервными вариантами `conversations/` и `sessions/`) для скалярного значения `cwd` в `meta.json` / `session.json` / `workspace.yaml`; проекты OpenCode обнаруживаются путём запроса к его БД SQLite в `~/.local/share/opencode/opencode.db` через `opencode db --format json` (мы читаем таблицы `session` и `project` и группируем по `project_id`); проекты Pi обнаруживаются путём сканирования транскрипций JSONL для каждого сеанса в `~/.pi/agent/sessions/<encoded-cwd>/<timestamp>_<uuid>.jsonl` (настраивается через `PI_SESSIONS_DIR`) и извлечения `cwd` из первой записи каждого сеанса; проекты Gemini CLI обнаруживаются путём сканирования `~/.gemini/tmp/<basename>/chats/session-<timestamp>-<uuid-prefix>.jsonl` (настраивается через `GEMINI_SESSIONS_DIR`) и восстановления канонического cwd из соседнего текстового маркера `.project_root`. Проект, используемый несколькими CLI, отображается как одна строка со всеми соответствующими значками. Используйте раскрывающееся меню **CLI** над таблицей для фильтрации по определённому агенту CLI; URL сохраняет ваш выбор как `?cli=claude|codex|copilot|cursor|opencode|pi|gemini`.

Каждый проект показывает:

* Имя проекта (производная от пути папки)
* Значок CLI — `Claude Code` (оранжевый), `OpenAI Codex` (фиолетовый), `GitHub Copilot` (синий), `Cursor Agent` (изумрудный), `OpenCode` (янтарный), `Pi` (розовый) и/или `Gemini CLI` (светло-голубой)
* Дата последней активности сеанса

Нажмите на проект, чтобы посмотреть его сеансы.

### Sessions

Список всех сеансов в проекте. Каждый сеанс показывает:

* ID сеанса
* Временные метки начала и завершения
* Количество вызовов инструментов
* Количество активностей хука (срабатывания политик)

Используйте фильтр диапазона дат и поиск по ID сеанса, чтобы сузить список. Сеансы отображаются постранично.

Нажмите на сеанс, чтобы открыть средство просмотра сеанса.

### Session viewer

Средство просмотра сеанса отвечает на ключевой вопрос для автономных агентов: что делал агент и остался ли он на правильном пути? Значок CLI рядом с заголовком указывает, является ли сеанс транскрипцией Claude Code, OpenAI Codex, GitHub Copilot CLI, Cursor Agent, OpenCode, Pi или Gemini CLI. Он показывает временную шкалу всех событий в сеансе:

* **Messages** — текстовые ответы Claude и подсказки пользователя
* **Tool calls** — каждый инструмент, который вызвал Claude, с его входными и выходными данными
* **Policy activity** — для каждого вызова инструмента, какие политики сработали и какое решение они вернули

Панель статистики в верхней части показывает продолжительность сеанса, общее количество вызовов инструментов и сводку решений хука (количество allow / deny / instruct).

Нажмите кнопку **Download Logs**, чтобы экспортировать сеанс. Для сеансов Claude Code, Codex, Copilot, Cursor, Pi и Gemini вы получите исходную транскрипцию JSONL на диске побайтово; для OpenCode (чьи сеансы находятся в SQLite, а не на диске) вы получите JSON-документ, отражающий основные таблицы `session` / `messages` / `parts`.

### Audit

Персонифицированный отчёт о том, как ваш агент фактически себя вёл во всех прошлых сеансах. Запускает то же сканирование, что и CLI `failproofai audit`, но отображает его как одноэкранный общий постер + четыре раздела ниже линии сгиба:

1. **Poster** — заполняет первый видимый элемент. Самодостаточный регион захвата PNG с логотипом failproof\_ai + метка аудита · индекс архетипа (`№ NN из 08`) + дата аудита · числовой балл (0–100) + таблетка рейтинга процентилей (`top 15%`) · название архетипа (один из `the optimist`, `the cowboy`, `the explorer`, `the goldfish`, `the paranoid architect`, `the precision builder`, `the hammer`, `the ghost`) + полоса из 3 ключевых слов · строка редкости `// только N% агентов имеют этот архетип` · плитка сигилы 8×8 пикселей · подвал `audit yours → failproof.ai`. Три кнопки общего доступа находятся сразу за границей поля захвата: `post your archetype` (интент X), `share on linkedin`, `download poster`. Захват выполняется через `html-to-image`, поэтому PNG совпадает с отображением на экране пиксель в пиксель (пунктирные границы, маска логотипа SVG, градиенты, метрики шрифтов — всё сохраняется).
2. **Strengths** — спокойный список ✓ поведений, которые ваш агент уже выполняет правильно, полученные из данных живого аудита (чистая скорость вызовов инструментов, без прямых толчков в main, нулевые утечки учётных данных, нулевые штормы повторных попыток) — каждая поверхность отображается только при наличии чистого записи политики во всё время окна аудита.
3. **Quirks** — таблица того, что проскользнуло, ранжированная по серьёзности: `when · что проскользнуло + политика, которая бы это поймала · таблетка серьёзности · seen`, где повторяемость читается `new` (один раз), `N× seen` (2–9 раз) или `recurring` (10+).
4. **How to improve** — спокойный список строк, по одной за каждую рекомендуемую политику: имя политики белым, однострочное описание, команда установки + кнопка копирования справа. Заголовок раздела звучит как `enable all N → projected <score> · <tier>` (балл, который вы получите со всеми применёнными исправлениями), а его кнопка `[install all]` копирует объединённую команду `failproofai policy add a b c …` для каждой рекомендуемой политики.
5. **Come back better** — две карточки рядом. Слева: установить напоминание (выбиратель кадма `3d` / `7d` / `14d` / `30d`; сохраняется через `/api/auth/reminder` после аутентификации). Справа: откройте льготы failproof — `invite a friend` открывает модальное окно, которое принимает список электронных адресов друзей, разделённых запятыми/пробелами/переводом строки (максимум 10 за отправку), отправляет их на `/api/audit/invite`, который перенаправляет на `POST /v0/invite` сервера API. API-сервер отправляет по одному письму для каждого получателя с адреса `invite@failproof.ai` с копией отправителю и установкой `Reply-To`, чтобы получатель видел, кто его пригласил, и отправитель получал копию в своем почтовом ящике. Анонимные пользователи перенаправляются через `AuthDialog` первыми, чтобы электронная почта отправителя была известна до отправки приглашений. Выполнение прав и привилегий — это последующее действие.

Управляется модулем выполнения `failproofai audit` — см. раздел [Audit CLI](/ru/cli/audit) для базовой системы сканирования, поддерживаемых флагов и инвариантов кэша для каждой транскрипции. Панель управления кэширует последний результат в `~/.failproofai/audit-dashboard.json` (режим `0600`, одиночный слот, новые запуски перезаписывают) так что повторные посещения мгновенны; **как кэш для каждой транскрипции, так и кэш полного результата отклоняются при чтении, когда им больше 7 дней**, поэтому панель управления никогда молча не доставляет результат неделей давности — после истечения TTL `/audit` переходит в пустое состояние и запрашивает свежий запуск. Нажатие `[ re-audit now ]` рядом с нижней частью отчёта отправляет `POST /api/audit/run` с `noCache: true` — повторный аудит обходит кэш для каждой транскрипции и пересканирует каждую транскрипцию с нуля вместо молчаливого возврата кэшированного результата — и панель управления опрашивает `/api/audit/status` с частотой 1 Гц до завершения запуска; во время запуска к верхней части окна приклеивается прилипчивая розовая полоса прогресса с прошедшим таймером, и свежий результат меняется местами на месте при успехе (без полной перезагрузки страницы; неудачный повторный аудит оставляет предыдущий отчёт неповреждённым). При ошибке полоса становится красной с текстом, зависящим от `RerunError.kind` (`timeout` / `network` / `post_failed`). Пустое состояние (нет кэша или истекло) и состояние нулевых сеансов (кэш существует, но сканирование не нашло транскрипции) отображаются отдельно.

### Policies

Двухвкладочная страница для управления политиками и просмотра активности.

<Tabs>
  <Tab title="Вкладка Policies">
    * Множественный выбор того, какие агенты CLI защищает failproofai, в одной панели — Claude Code, OpenAI Codex, GitHub Copilot, Cursor Agent, OpenCode, Pi и Gemini CLI все имеют строку со статусом установки (`Active` / `Detected` / `Inactive`), пути параметров области пользователя и акцентом цвета бренда. Установите или снимите флажок с CLI, которые вы хотите, и нажмите `Apply changes`, чтобы установить/удалить разницу в один шаг. CLI, чьи двоичные файлы обнаружены в PATH, предварительно отмечены.
    * Включайте или отключайте отдельные политики одним щелчком (записывает в `~/.failproofai/policies-config.json` — общей для всех установленных CLI)
    * Разверните политику, чтобы настроить её параметры (для политик, поддерживающих `policyParams`)
    * Установите пользовательский путь файла политик
  </Tab>

  <Tab title="Вкладка Activity">
    * Полная постраничная история каждого события хука, которое срабатывало во всех сеансах
    * Фильтруйте по решению, типу события, CLI (Claude Code / OpenAI Codex / GitHub Copilot *(бета)* / Cursor Agent *(бета)* / OpenCode *(бета)* / Pi *(бета)* / Gemini CLI *(бета)*), имени политики или ID сеанса
    * Каждая строка показывает: временную метку, имя политики, решение, значок CLI (оранжевый = Claude Code, фиолетовый = OpenAI Codex, синий = GitHub Copilot, изумрудный = Cursor Agent, янтарный = OpenCode, розовый = Pi, светло-голубой = Gemini CLI), имя инструмента, ID сеанса и причину решений deny/instruct
    * Нажмите ID сеанса, чтобы открыть его транскрипцию — средство просмотра автоматически определяет, какой CLI срабатил хук (Claude `~/.claude/projects/…`, Codex `~/.codex/sessions/…`, Copilot CLI `~/.copilot/session-state/<id>/events.jsonl`, Cursor Agent `~/.cursor/agent-sessions/<id>/events.jsonl`, OpenCode `~/.local/share/opencode/opencode.db`, Pi `~/.pi/agent/sessions/<encoded-cwd>/<id>.jsonl`, Gemini CLI `~/.gemini/tmp/<basename>/chats/<session>.jsonl`) и отображает соответствующий значок CLI в заголовке
  </Tab>
</Tabs>

***

## Auto-refresh

Панель управления имеет переключатель автоматического обновления в верхней навигации. При включении текущая страница периодически обновляется, чтобы показать новые сеансы и активность политик по мере их появления. Необходимо для мониторинга долгоживущих сеансов автономных агентов.

***

## Отключение страниц

Если вам нужны только некоторые части панели управления, установите `FAILPROOFAI_DISABLE_PAGES` в список имён страниц, разделённый запятыми:

```bash theme={null}
FAILPROOFAI_DISABLE_PAGES=policies failproofai
```

Допустимые значения: `policies`, `projects`, `audit`.

***

## Настройка пути проектов

По умолчанию панель управления читает из стандартного каталога проектов Claude Code. Переопределите его для пользовательских конфигураций:

```bash theme={null}
CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai
```

***

## Доступ с не-localhost хоста

При запуске панели управления в **режиме разработки** (`npm run dev`) и её доступе с имени хоста, отличного от `localhost` — например, пользовательского домена, удалённого IP или туннелированного URL — вы можете увидеть предупреждение вроде:

```text theme={null}
⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com".
```

Это Next.js, блокирующий кросс-ориджинальный доступ к своему вебсокету HMR (горячей перезагрузки модулей), который является функцией только для разработки. Чтобы разрешить ваш хост, используйте флаг `--allowed-origins`:

```bash theme={null}
npm run dev -- --allowed-origins dashboard.example.com
```

Для нескольких хостов или IP-адресов передайте список, разделённый запятыми:

```bash theme={null}
npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5
```

Вы также можете установить переменную окружения `FAILPROOFAI_ALLOWED_DEV_ORIGINS`:

```bash theme={null}
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
```

<Note>
  Это применяется только к режиму разработки. При запуске `failproofai` (режиме производства) нет вебсокета HMR и нет проблем с кросс-ориджинальными ресурсами разработки.
</Note>
