К содержимому
# Публикация
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Подписать attestation, спланировать, просмотреть и подтвердить публикацию компонента.
## 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
# Публикация Публикация создаёт неизменяемый серверный план для одной точной выпущенной версии компонента и подтверждает этот план по его хешу. Подписание аттестации привязывает тестовые данные, зависящие от учётных данных, к активному ключу устройства. Повседневная публикация — intent `publish`. Движок drain'ит plan и confirm in-process. Не набирайте `publication plan`, если вы не восстанавливаете остановившийся план. ```bash 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 publish` | `apply` | `none` | повседневная публикация; drain plan/confirm | | `ai-stp attestation sign` | `apply` | `explicit_flag` | подписание точных тестовых данных, зависящих от учётных данных, активным ключом устройства | | publication plan | `plan` | `none` | expert: создание неизменяемого серверного плана для одной точной выпущенной версии компонента | | `ai-stp publication status` | `read` | `none` | чтение текущего серверного состояния одного плана публикации | | publication confirm | `apply` | `explicit_flag` | expert: подтверждение одного точного неистёкшего хеша плана публикации | `--json` — глобальный флаг. Передавайте его всегда. `attestation sign` требует `--confirm`. `publication confirm` требует `--plan-hash` и `--confirm`. Для всего графа сетапа используйте `setup publish plan` / `setup publish confirm` вместо подтверждения каждого участника вручную. ## Подпись аттестации Подписание наблюдаемых тестовых данных локально. Выходной файл — JSON только для владельца. Команда не загружает его. ```bash 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` позже. Не помещайте секреты в файл аттестации. ## План публикации ```text 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` здесь — это записанный бит плана, а не причина пропустить проверку хеша. ## Статус ```bash ai-stp publication status --plan-id <plan_id> --json ``` `--plan-id` обязателен. Ответ — то же представление publication-plan. Подтверждайте только неистёкший план, чей `plan_hash` по-прежнему совпадает. ## Подтверждение ```text 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`, чтобы увидеть публичную версию. ## Счастливый путь ```text task start --intent publish --idempotency-key publish-session-01 --json → follow continuations until there are none ``` Expert (уже есть hash плана): ```text 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> ``` Встроенный участник: ```text component publish --from-setup <setup> --setup-version <X.Y> --component-id <id> → publication confirm --plan-id <plan_id> --plan-hash <hash> --confirm ``` Весь граф сетапа: [Команды сетапа](setup.md) `setup publish plan`, затем `setup publish confirm --set-digest … --confirm`. ## Именованные поля успеха | Команда | Поля для чтения | | --- | --- | | `attestation sign` | `output_path`, `attestation_digest`, `signature`, `result` | | `publication plan` / `status` / `confirm` | `plan_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` | эта учётная запись не может публиковать данный id | `owner object show` | | `AI_STP_CONFLICT` | параллельная публикация той же версии | `publication status`; не подтверждайте второй хеш | | `AI_STP_NOT_FOUND` | версия никогда не была выпущена локально, или id плана неизвестен | `component version list` | | интерпретация `component_verified` как безопасности | происхождение и проверки, а не гарантия | читайте [Доверие и безопасность](../trust-and-safety/index.md) | Публичная версия должна происходить из публичного репозитория GitHub на точном коммите и подпути. Происхождение только из локальных источников отклоняется на этапе планирования. ## Связанные ссылки - [Публикация компонента](component-publish.md) - [Команды сетапа](setup.md) - [Объекты владельца](owner.md) - [Оценка](eval.md) - [Публикация](../publishing/index.md) - [Авторство](../publishing/authoring.md) - [Проверки безопасности](../security-checks.md) - [Доверие и безопасность](../trust-and-safety/index.md) - [Карта команд](commands.md) ## Флаги берутся из continuation argv ```bash ai-stp task intents --json ``` Не дампьте `help --agent` как прелюдию. Флаги текущей задачи — в continuation `argv`. Эта страница группирует команды публикации для удобства поиска. Установленный CLI является источником флагов, схем и `next_actions`. Если эта страница и CLI расходятся, следуйте CLI.