Перейти к содержанию

Согласие

Непроверенный объект не участвует в автоматической установке без явного согласия пользователя. Эта группа записывает согласие, показывает, что ещё в силе, и отзывает его. Она ничего не устанавливает.

Согласие имеет 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 снова только после того, как прочитали, что выросло.

Записать согласие на неверифицированные объекты одного издателя, мажорной линии или авторизованного профиля задачи.

ai-stp consent allow --scope publisher --target <publisher> --json

Сохраняется согласие и fingerprint того, что кандидат требовал в момент согласия. Весь механизм — «нужно ли теперь больше, чем тогда», а на это нельзя ответить без старого ответа. Если у кандидата позже вырастет новый риск, старое согласие его не покрывает.

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

Разрешить согласие, которое уже в силе, — не второе, более широкое разрешение. Читайте возвращённую запись.

Отозвать согласие. Для последующих запросов действует сразу.

ai-stp consent revoke --scope publisher --target <publisher> --json

Поздние запросы выбора и установки видят отзыв. Уже установленное нативное состояние эта команда не откатывает. Откат target — Target, через provider.

Отозвать согласие, которого никогда не давали, отказывается с AI_STP_NOT_FOUND.

Каждое согласие, которое ещё в силе, и что оно покрывало в момент выдачи.

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 всё равно действуют
Телеметрия установки другой экран согласия
Жалобы пожаловаться на объект после факта

Флаги из ai-stp help --agent --json

Если help --agent расходится с флагом на этой странице, прав CLI. Необязательные флаги здесь не перечислены. Читайте их из дескриптора.