# Согласие
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Записать, перечислить и отозвать явное согласие на непроверенных издателей, major-линии объектов и авторизованный профиль задачи.
## Pages
[Главная](/ru/ai/docs)
### Быстрый старт
[Быстрый старт](/ru/ai/docs/quickstart)
[Для человека](/ru/ai/docs/quickstart/human)
[Для ИИ-агента](/ru/ai/docs/quickstart/agent)
[Харнессы](/ru/ai/docs/harnesses)
[Понятия](/ru/ai/docs/concepts)
[Каталог](/ru/ai/docs/catalog)
### CLI
[CLI](/ru/ai/docs/cli)
[Карта команд](/ru/ai/docs/cli/commands)
[Наблюдение](/ru/ai/docs/cli/observe)
[Конфигурация](/ru/ai/docs/cli/config)
[Телеметрия](/ru/ai/docs/cli/telemetry)
[Устройство](/ru/ai/docs/cli/device)
[Паспорта](/ru/ai/docs/cli/passport)
[Вход](/ru/ai/docs/cli/auth)
[Согласие](/ru/ai/docs/cli/consent)
[Проект](/ru/ai/docs/cli/project)
[Toolchain](/ru/ai/docs/cli/toolchain)
[Harness](/ru/ai/docs/cli/harness)
[Agent Skill CLI](/ru/ai/docs/cli/skill)
[Реестр](/ru/ai/docs/cli/registry)
#### Компонент
[Обзор](/ru/ai/docs/cli/component)
[Обнаружение](/ru/ai/docs/cli/component-discover)
[Паспорт](/ru/ai/docs/cli/component-passport)
[Источник](/ru/ai/docs/cli/component-source)
[Публикация](/ru/ai/docs/cli/component-publish)
[Выбор](/ru/ai/docs/cli/select)
[Установка](/ru/ai/docs/cli/install)
[Target](/ru/ai/docs/cli/target)
[Setup](/ru/ai/docs/cli/setup)
[Provider](/ru/ai/docs/cli/provider)
[Синхронизация](/ru/ai/docs/cli/sync)
[Доступ](/ru/ai/docs/cli/grant)
[Жалобы](/ru/ai/docs/cli/report)
[Owner](/ru/ai/docs/cli/owner)
[Publication](/ru/ai/docs/cli/publication)
[Eval](/ru/ai/docs/cli/eval)
### Веб
[Веб](/ru/ai/docs/web)
[Главная](/ru/ai/docs/web/home)
[Каталог](/ru/ai/docs/web/catalog)
[Карточка компонента](/ru/ai/docs/web/catalog-component)
[Карточка сетапа](/ru/ai/docs/web/catalog-setup)
[Региональные сервисы](/ru/ai/docs/web/services)
[Издатели](/ru/ai/docs/web/publishers)
[Content](/ru/ai/docs/web/content)
[Эта документация](/ru/ai/docs/web/docs)
[Контакт](/ru/ai/docs/web/contact)
[Правовые документы](/ru/ai/docs/web/legal)
[Вход](/ru/ai/docs/web/login)
[Аккаунт](/ru/ai/docs/web/account)
[Профиль](/ru/ai/docs/web/profile)
[Устройства](/ru/ai/docs/web/devices)
[Объекты](/ru/ai/docs/web/objects)
[Доступ](/ru/ai/docs/web/access)
[Жалобы](/ru/ai/docs/web/reports)
[Лайки](/ru/ai/docs/web/likes)
[Онбординг](/ru/ai/docs/web/onboarding)
[Публикация](/ru/ai/docs/web/publications)
### Компоненты
[Компоненты](/ru/ai/docs/components)
[instruction](/ru/ai/docs/components/instruction)
[skill](/ru/ai/docs/components/skill)
[mcp](/ru/ai/docs/components/mcp)
[hook](/ru/ai/docs/components/hook)
[command](/ru/ai/docs/components/command)
[agent](/ru/ai/docs/components/agent)
[plugin](/ru/ai/docs/components/plugin)
[setting](/ru/ai/docs/components/setting)
[Сетапы](/ru/ai/docs/setups)
### Публикация
[Публикация](/ru/ai/docs/publishing)
[Авторство](/ru/ai/docs/publishing/authoring)
### Доверие и безопасность
[Обзор](/ru/ai/docs/trust-and-safety)
[Проверки безопасности](/ru/ai/docs/security-checks)
[Диагностика](/ru/ai/docs/troubleshooting)
[cli](/ru/ai/docs/components/cli)
## Content
# Согласие
Непроверенный объект не участвует в автоматической установке без
явного согласия пользователя. Эта группа записывает согласие, показывает,
что ещё в силе, и отзывает его. Она ничего не устанавливает.
Согласие имеет scope. Контракт определяет `publisher`, `object_major`
и `task`. Переключателя «всё на этой машине» не существует: `task`
называет авторизованный профиль `full-auto`, а не всех издателей.
Это не согласие [Телеметрии установки](telemetry.md). Телеметрия —
анонимный ping установки со своей командой. Смешивать их — значит
принять решение о риске каталога за предпочтение трафика.
## Команды
| Команда | Mutability | Confirmation | Когда |
| --- | --- | --- | --- |
| `ai-stp consent allow` | `apply` | `none` | записать согласие на неверифицированные объекты одного издателя, мажорной линии или авторизованного профиля задачи |
| `ai-stp consent revoke` | `apply` | `none` | отозвать согласие; для последующих запросов действует сразу |
| `ai-stp consent list` | `read` | `none` | каждое согласие, которое ещё в силе, и что оно покрывало в момент выдачи |
`confirmation` — `none`. Решение — сама команда, направленная на
одного издателя, одну major-линию или авторизованный профиль
`full-auto`. Это уже, чем `--confirm`, который мог бы покрыть что угодно.
## Типичный путь
Посмотреть, что уже записано, затем разрешить одного издателя, затем
проверить снова:
```bash
ai-stp consent list --json
ai-stp consent allow --scope publisher --target <publisher> --json
ai-stp consent list --json
```
Чтобы разрешить одну major-линию объекта:
```bash
ai-stp consent allow --scope object_major --target <stable_id>@<major> --json
```
Чтобы записать полномочие полной задачи:
```bash
ai-stp consent allow --scope task --target full-auto --json
```
Чтобы отозвать любую из форм:
```bash
ai-stp consent revoke --scope publisher --target <publisher> --json
ai-stp consent list --json
```
`--scope` и `--target` — объявленные опции. Обработчик отказывает,
если нет любой из них. `--scope` — `publisher`, `object_major` или
`task`. `--target` — издатель, major-линия объекта или `full-auto`.
Записанное согласие — не разрешение пропустить eligibility, план или
`--expected-plan-digest`. Оно отвечает только на ворота непроверенного
объекта, которые иначе остановили бы поздний запрос.
`publisher` покрывает непроверенные объекты одного издателя.
`object_major` покрывает одну major-линию объекта. `task` / `full-auto`
покрывает непроверенных кандидатов авторизованного профиля без
отдельного grant на объект. Отозванная более узкая запись publisher
или object-major по-прежнему исключает эту цель. Нет цели `*` и нет
разрешения на весь аккаунт. Если нужны два издателя, записывают два
согласия.
Fingerprint для `publisher` и `object_major` сохраняется, а не
пересчитывается. Поздний запрос, которому нужно больше, чем хранит
fingerprint, отказывается, если его не покрывает активный `task`.
Разрешайте fingerprint-scope снова только после того, как прочитали,
что выросло.
## `consent allow`
Записать согласие на неверифицированные объекты одного издателя, мажорной линии или авторизованного профиля задачи.
```bash
ai-stp consent allow --scope publisher --target <publisher> --json
```
Сохраняется согласие *и* fingerprint того, что кандидат требовал в
момент согласия. Весь механизм — «нужно ли теперь больше, чем тогда»,
а на это нельзя ответить без старого ответа. Если у кандидата позже
вырастет новый риск, старое согласие его не покрывает.
`scope` должен быть одним из тех, что определяет контракт. Неизвестное
слово отклоняется до любых вопросов о цели, чтобы опечатка не
выглядела как отсутствующий издатель.
Разрешить согласие, которое уже в силе, — не второе, более широкое
разрешение. Читайте возвращённую запись.
## `consent revoke`
Отозвать согласие. Для последующих запросов действует сразу.
```bash
ai-stp consent revoke --scope publisher --target <publisher> --json
```
Поздние запросы выбора и установки видят отзыв. Уже установленное
нативное состояние эта команда не откатывает. Откат target —
[Target](target.md), через provider.
Отозвать согласие, которого никогда не давали, отказывается с
`AI_STP_NOT_FOUND`.
## `consent list`
Каждое согласие, которое ещё в силе, и что оно покрывало в момент выдачи.
```bash
ai-stp consent list --json
```
Это чтение. Пустой массив `records` — успешный ответ, а не ошибка.
Значит, в силе ничего нет.
## Что содержит успешный конверт
`consent allow` и `consent revoke` возвращают одну запись в `data`:
| Поле | Что это |
| --- | --- |
| `consent_id` | идентификатор этого согласия |
| `scope` | `publisher`, `object_major` или `task` |
| `target` | издатель, major-линия или профиль `full-auto`, который оно покрывает |
| `fingerprint` | что кандидат требовал, когда пользователь согласился |
| `observed` | что наблюдали в тот момент |
| `origin` | где записали решение |
| `decided_by` | кто его записал |
| `created_at` | когда его дали |
| `revoked_at` | когда отозвали, или `null` |
| `schema_version` | major схемы этой записи |
`consent list` возвращает:
| Поле | Что это |
| --- | --- |
| `records` | каждое согласие, которое ещё в силе, в форме выше |
| `schema_version` | major схемы этой сводки |
Конверт также несёт `ok`, `warnings`, `next_actions`, `request_id`,
`operation_id` и `schema_version`.
## Согласие — не trust line
[Доверие и безопасность](../trust-and-safety/index.md) по-прежнему
действует.
| Линия | Что делает согласие |
| --- | --- |
| `authoritative` | не эта страница; обычные план и подтверждение |
| `experimental` | можно рассматривать только после явного согласия |
| `local_owner_or_pinned` | выбирается как локально закреплённый объект, не потому что платформа его подтвердила |
`author_verified` и `component_verified` остаются независимыми.
Согласие не переключает ни один флаг. Оно не переносит объект на
линию `authoritative`.
## Чего эти команды никогда не делают
- не ставят, не обновляют и не удаляют компонент или сетап;
- не расширяют согласие издателя до «всех издателей»;
- не заменяют согласие телеметрии;
- не кладут секреты в сохранённый fingerprint;
- не пропускают eligibility `select` и подтверждение плана `install`;
- не пишут target harness.
## Типичные отказы
| Что видно | Что это значит | Что делать |
| --- | --- | --- |
| `AI_STP_VALIDATION_ERROR` нет scope или target | оба обязательны | передать `--scope` и `--target` |
| `AI_STP_VALIDATION_ERROR` unknown scope | слово не `publisher`, не `object_major` и не `task` | использовать одно из этих трёх |
| `AI_STP_NOT_FOUND` на `revoke` | этого согласия не давали или его уже нет | `consent list --json` |
| `AI_STP_PRECONDITION_FAILED` | кандидату теперь нужно больше, чем покрывает fingerprint | читать `details`; разрешать снова только после нового риска |
| установка всё равно отказывает | согласие — не digest плана и не eligibility | [Выбор](select.md), затем [Установка](install.md) |
| смешение с `telemetry consent` | другое решение, другая команда | [Телеметрия установки](telemetry.md) |
## Связанные страницы
| Страница | Зачем |
| --- | --- |
| [Доверие и безопасность](../trust-and-safety/index.md) | линии доверия и две оси проверки |
| [Каталог](../catalog/index.md) | как читать карточку до согласия |
| [Реестр](registry.md) | найти издателя или объект |
| [Выбор](select.md) | eligibility всё равно действует |
| [Установка](install.md) | plan, approve, apply всё равно действуют |
| [Телеметрия установки](telemetry.md) | другой экран согласия |
| [Жалобы](report.md) | пожаловаться на объект после факта |
!!! note "Флаги из `ai-stp help --agent --json`"
Если `help --agent` расходится с флагом на этой странице, прав CLI.
Необязательные флаги здесь не перечислены. Читайте их из дескриптора.