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