# Запустить проверку соответствия

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Запустить проверку соответствия

`POST /api/v1/compliance/check`

**Авторизация:** dpop или oauth2: `compliance:write`

**Тело запроса** (`application/json`, обязательное): object
- `agentId`: string (uuid) — Агент, который выполнит проверку; по умолчанию — основной агент сотрудника
- `documentId`: string (uuid) — Проверяемый документ (одиночный режим)
- `documentIds`: массив string (uuid) — Проверяемые документы; на каждый создаётся свой результат в рамках одного прогона
- `playbooks`: массив object, обязательное — Чек-листы конвейера: выполняются по порядку, результат общий
  - `checkIds`: массив string — Ограничить прогон конкретными пунктами чек-листа; по умолчанию берутся все
  - `playbookId`: string (uuid), обязательное — Чек-лист из GET /playbooks

**Ответы**

- `201` — Проверка запущена (выполняется асинхронно; прогресс — по SSE-стриму) (`application/json`, ComplianceResult)
  - `agentId`: string, nullable — Агент, который выполнял проверку
  - `agentName`: string, nullable — Имя агента на момент запуска
  - `checkTypes`: массив string, обязательное — Выполненные типы проверок
  - `completedAt`: string, nullable — Когда завершена, ISO 8601
  - `createdAt`: string — Когда запущена, ISO 8601
  - `documentId`: string, обязательное — Проверенный документ
  - `id`: string, обязательное — Идентификатор результата
  - `importJobId`: string, nullable — Задача импорта, с распознавания которого началась проверка; null — проверка готового документа
  - `playbooks`: массив ComplianceResultPlaybook, обязательное — Чек-листы конвейера в порядке выполнения
    - `id`: string, nullable, обязательное — Идентификатор чек-листа; null, если чек-лист удалён
    - `name`: string, обязательное — Название чек-листа на момент запуска
  - `playbooksPinned`: boolean — Набор чек-листов выбран пользователем; false — подбирается по виду документа
  - `remarks`: массив ComplianceRemark — Найденные замечания
    - `blockId`: string — Блок документа, к которому относится замечание
    - `description`: string — Суть замечания
    - `id`: string, обязательное — Идентификатор замечания
    - `quote`: string — Дословная цитата текста документа, проверенная по блоку
    - `severity`: string — Критичность: high, medium, low
  - `runId`: string — Прогон: объединяет результаты по всем документам одной проверки
  - `score`: number, nullable — Итоговая оценка соответствия
  - `status`: string, обязательное — Статус: running, completed, failed
  - `summary`: string, nullable — Сводка по результату
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `401` — Токен отсутствует, недействителен или истёк (`application/problem+json`, ProblemDetails)
- `403` — Недостаточно прав или scope (`application/problem+json`, ProblemDetails)
- `404` — Ресурс не найден (`application/problem+json`, ProblemDetails)

    </>
  );
}
