Согласие
Записать, перечислить и отозвать явное согласие на непроверенных издателей, major-линии объектов и авторизованный профиль задачи.
Согласие
Непроверенный объект не участвует в автоматической установке без явного согласия пользователя. Эта группа записывает согласие, показывает, что ещё в силе, и отзывает его. Она ничего не устанавливает.
Согласие имеет scope. Контракт определяет publisher, object_major
и task. Переключателя «всё на этой машине» не существует: task
называет авторизованный профиль full-auto, а не всех издателей.
Это не согласие Телеметрии установки. Телеметрия — анонимный 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, который мог бы покрыть что угодно.
Типичный путь
Посмотреть, что уже записано, затем разрешить одного издателя, затем проверить снова:
ai-stp consent list --json
ai-stp consent allow --scope publisher --target <publisher> --json
ai-stp consent list --json
Чтобы разрешить одну major-линию объекта:
ai-stp consent allow --scope object_major --target <stable_id>@<major> --json
Чтобы записать полномочие полной задачи:
ai-stp consent allow --scope task --target full-auto --json
Чтобы отозвать любую из форм:
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
Записать согласие на неверифицированные объекты одного издателя, мажорной линии или авторизованного профиля задачи.
ai-stp consent allow --scope publisher --target <publisher> --json
Сохраняется согласие и fingerprint того, что кандидат требовал в момент согласия. Весь механизм — «нужно ли теперь больше, чем тогда», а на это нельзя ответить без старого ответа. Если у кандидата позже вырастет новый риск, старое согласие его не покрывает.
scope должен быть одним из тех, что определяет контракт. Неизвестное
слово отклоняется до любых вопросов о цели, чтобы опечатка не
выглядела как отсутствующий издатель.
Разрешить согласие, которое уже в силе, — не второе, более широкое разрешение. Читайте возвращённую запись.
consent revoke
Отозвать согласие. Для последующих запросов действует сразу.
ai-stp consent revoke --scope publisher --target <publisher> --json
Поздние запросы выбора и установки видят отзыв. Уже установленное нативное состояние эта команда не откатывает. Откат target — Target, через provider.
Отозвать согласие, которого никогда не давали, отказывается с
AI_STP_NOT_FOUND.
consent list
Каждое согласие, которое ещё в силе, и что оно покрывало в момент выдачи.
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
Доверие и безопасность по-прежнему действует.
| Линия | Что делает согласие |
|---|---|
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 | Выбор, затем Установка |
смешение с telemetry consent | другое решение, другая команда | Телеметрия установки |
Связанные страницы
| Страница | Зачем |
|---|---|
| Доверие и безопасность | линии доверия и две оси проверки |
| Каталог | как читать карточку до согласия |
| Реестр | найти издателя или объект |
| Выбор | eligibility всё равно действует |
| Установка | plan, approve, apply всё равно действуют |
| Телеметрия установки | другой экран согласия |
| Жалобы | пожаловаться на объект после факта |
!!! note "Флаги из ai-stp help --agent --json"
Если help --agent расходится с флагом на этой странице, прав CLI.
Необязательные флаги здесь не перечислены. Читайте их из дескриптора.