К содержимому

Публикация

Подписать attestation, спланировать, просмотреть и подтвердить публикацию компонента.

Публикация

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

Повседневная публикация — intent publish. Движок drain'ит plan и confirm in-process. Не набирайте publication plan, если вы не восстанавливаете остановившийся план.

ai-stp task start --intent publish --idempotency-key publish-session-01 --json

Следуйте continuations. Expert plan / status / confirm ниже — для операторов, у которых уже есть hash плана.

План не делает версию публичной. Confirm делает. Неудавшаяся проверка не должна оставлять частично опубликованную версию. author_verified по-прежнему не означает, что содержимое безопасно.

Таблица команд

КомандаИзменяемостьПодтверждениеКогда
ai-stp task start --intent publishapplynoneповседневная публикация; drain plan/confirm
ai-stp attestation signapplyexplicit_flagподписание точных тестовых данных, зависящих от учётных данных, активным ключом устройства
publication planplannoneexpert: создание неизменяемого серверного плана для одной точной выпущенной версии компонента
ai-stp publication statusreadnoneчтение текущего серверного состояния одного плана публикации
publication confirmapplyexplicit_flagexpert: подтверждение одного точного неистёкшего хеша плана публикации

--json — глобальный флаг. Передавайте его всегда.

attestation sign требует --confirm. publication confirm требует --plan-hash и --confirm. Для всего графа сетапа используйте setup publish plan / setup publish confirm вместо подтверждения каждого участника вручную.

Подпись аттестации

Подписание наблюдаемых тестовых данных локально. Выходной файл — JSON только для владельца. Команда не загружает его.

ai-stp attestation sign \
  --id <stable_id> \
  --version 1.0 \
  --check-id <check_id> \
  --policy-version <policy> \
  --harness-id codex \
  --harness-version 0.140.1 \
  --provider-version 1.2.3 \
  --test-case-id <case_id> \
  --result passed \
  --output ./attestation.json \
  --confirm \
  --json

Обязательны: --id, --version, --check-id, --policy-version, --harness-id, --harness-version, --provider-version, --test-case-id (повторяемый), --result (passed или failed), --output, --confirm. --tool-version — повторяемый name=version.

Поля успеха: object_digest, subject, check_id, policy_version, harness_id, harness_version, provider_version, test_case_ids, result, account_id, device_id, attested_at, signature, output_path, attestation_digest.

Передайте --output в publication plan --attestation-file позже. Не помещайте секреты в файл аттестации.

План публикации

ai-stp publication plan --id <stable_id> --version 1.0 --json
ai-stp publication plan \
  --id <stable_id> \
  --version 1.0 \
  --attestation-file ./attestation.json \
  --json

--id — стабильный идентификатор выпущенного компонента. --version — точный локальный X.Y. --attestation-file повторяемый.

Версия должна быть уже выпущена (component version release). Устройство активной сессии должно совпадать с подписантом любой прикреплённой аттестации.

Поля успеха: plan_id, plan_hash, state, object_kind, stable_id, version, content_digest, component_verified, policy_version, actor_id, device_id, effects, evidence, expires_at. Читайте effects перед подтверждением. component_verified здесь — это записанный бит плана, а не причина пропустить проверку хеша.

Статус

ai-stp publication status --plan-id <plan_id> --json

--plan-id обязателен. Ответ — то же представление publication-plan. Подтверждайте только неистёкший план, чей plan_hash по-прежнему совпадает.

Подтверждение

ai-stp publication confirm \
  --plan-id <plan_id> \
  --plan-hash sha256:... \
  --confirm \
  --json

--plan-id и --plan-hash обязательны. --confirm — явный флаг. Хеш — тот, что вернул plan. Изменившийся план — это новый план.

Ответ — представление плана в его новом state. Следуйте через publication status, если конверт говорит ждать, или через owner version show, чтобы увидеть публичную версию.

Счастливый путь

task start --intent publish --idempotency-key publish-session-01 --json
→ follow continuations until there are none

Expert (уже есть hash плана):

component passport validate --id <id>
→ component version release --id <id>
→ attestation sign … --output ./attestation.json --confirm   # когда требуются доказательства
→ publication plan --id <id> --version <X.Y> --attestation-file ./attestation.json
→ publication status --plan-id <plan_id>
→ publication confirm --plan-id <plan_id> --plan-hash <hash> --confirm
→ owner version show --kind component --id <id> --version <X.Y>

Встроенный участник:

component publish --from-setup <setup> --setup-version <X.Y> --component-id <id>
→ publication confirm --plan-id <plan_id> --plan-hash <hash> --confirm

Весь граф сетапа: Команды сетапа setup publish plan, затем setup publish confirm --set-digest … --confirm.

Именованные поля успеха

КомандаПоля для чтения
attestation signoutput_path, attestation_digest, signature, result
publication plan / status / confirmplan_id, plan_hash, state, effects, evidence, expires_at

Также читайте content_digest, component_verified и policy_version в плане. Они должны совпадать с версией, которую вы планировали.

Отказы

Что вы видитеЧто это означаетЧто делать
AI_STP_AUTH_REQUIREDнет выполненного входаtask start --intent account --idempotency-key account-session-01 --json
AI_STP_USER_DECISION_REQUIRED--confirm был пропущенпередайте --confirm после чтения effects
AI_STP_VALIDATION_ERRORотсутствует --id, --version, --plan-id или --plan-hashпрочитайте дескриптор
AI_STP_PRECONDITION_FAILEDаттестация не привязана к этой версии, устройству и учётной записиподпишите снова на этом устройстве после входа
AI_STP_PLAN_STALE / истёкший expires_atплан больше не актуаленpublication plan снова
AI_STP_PERMISSION_DENIEDэта учётная запись не может публиковать данный idowner object show
AI_STP_CONFLICTпараллельная публикация той же версииpublication status; не подтверждайте второй хеш
AI_STP_NOT_FOUNDверсия никогда не была выпущена локально, или id плана неизвестенcomponent version list
интерпретация component_verified как безопасностипроисхождение и проверки, а не гарантиячитайте Доверие и безопасность

Публичная версия должна происходить из публичного репозитория GitHub на точном коммите и подпути. Происхождение только из локальных источников отклоняется на этапе планирования.

Связанные ссылки

Флаги берутся из continuation argv

ai-stp task intents --json

Не дампьте help --agent как прелюдию. Флаги текущей задачи — в continuation argv.

Эта страница группирует команды публикации для удобства поиска. Установленный CLI является источником флагов, схем и next_actions. Если эта страница и CLI расходятся, следуйте CLI.