К содержимому
# Команды сетапа
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Собрать, импортировать, обновить и опубликовать полный сетап.
## 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 `change`. Повседневная установка записанного сетапа — intent `install`. Не набирайте `setup compose plan` или `install plan`, если вы не восстанавливаете остановившуюся операцию. ```bash ai-stp task start --intent change --idempotency-key change-session-01 --json ``` Следуйте `continuations`. После записи identity сетапа запустите `install` тем же способом. Expert compose / import / publish ниже — для операторов, у которых уже есть digest. Установка по-прежнему идёт через [Install](install.md) и публичного провайдера. ## Таблица команд | Команда | Мутабельность | Подтверждение | Когда | | --- | --- | --- | --- | | `ai-stp task start --intent change` | `apply` | `none` | повседневная сборка; записывает новый identity сетапа | | `ai-stp task start --intent install` | `apply` | `none` | повседневная установка записанного сетапа | | setup compose plan | `plan` | `none` | expert: разрешить и зафиксировать новый сетап из каталога, Git, пакетов и path-источников | | setup compose apply | `apply` | `plan_digest` | expert: записать точный, по-прежнему актуальный смешанный сетап как одну неизменяемую локальную версию | | setup import inspect | `read` | `none` | прочитать одну нативную конфигурацию; ничего не записывать | | setup import plan | `plan` | `none` | спланировать точные черновики компонентов и сетапа из одной нативной конфигурации | | setup import register | `apply` | `plan_digest` | зарегистрировать проинспектированную конфигурацию как свой сетап | | setup update plan | `plan` | `none` | предпросмотр замены одного встроенного компонента более новым точным снапшотом | | setup update apply | `apply` | `plan_digest` | применить одно точное встроенное обновление и создать новую версию сетапа | | setup publish plan | `plan` | `none` | спланировать публикацию одного выпущенного сетапа со всеми компонентами, которые он фиксирует | | setup publish confirm | `apply` | `explicit_flag` | подтвердить один точный отрецензированный набор публикации | `--json` — глобальный флаг. Всегда передавайте его. `compose apply` и `update apply` требуют `--expected-plan-digest`. Этот дайджест и есть решение. `import register` требует `--plan-digest` (это декларированное имя). `publish confirm` требует `--set-digest` и `--confirm`, потому что меняет видимость существующего объекта. ## Compose plan и apply Поместите отрецензированные метаданные и источники в JSON-манифест. Внешние компоненты не требуют записи в каталоге. ```json { "schema_version": 1, "name": "Frontend developer", "description": "Playwright automation with local project checks.", "harness_id": "codex", "components": [ { "source": { "kind": "catalog", "stable_id": "component_...", "version": "1.0", "passport_digest": "sha256:..." } }, { "source": { "kind": "git", "repository_url": "https://github.com/example/context7", "tracked_ref": "main", "subpath": "." }, "component_type": "mcp", "name": "Context7 MCP", "description": "Upstream Context7 MCP snapshot.", "license_spdx": "MIT", "redistribution_allowed": true, "upstream_project": "Context7" }, { "source": {"kind": "path", "relative_path": "hooks/check"}, "component_type": "hook", "name": "Project check", "description": "Locally authored project check.", "license_spdx": "LicenseRef-Proprietary", "redistribution_allowed": true } ] } ``` Expert recovery (уже есть digest): ```text ai-stp setup compose plan --manifest setup.json --root . --json ``` `--manifest` обязателен. `--root` ограничивает источники `path:`. `--id` — это идентификатор сетапа, возвращённый предыдущим планом, когда вы перепроверяете ту же идентичность. Ответ плана несёт `setup_id`, `version`, `harness_id`, `created_at`, `definition_digest`, `plan_digest`, `members`. У каждого элемента есть `stable_id`, `version`, `source`, `embedded`. Apply повторяет разрешение и отклоняет изменённые байты. Передайте возвращённый идентификатор сетапа, временную метку и дайджест плана: ```text ai-stp setup compose apply \ --manifest setup.json \ --root . \ --id <setup_id> \ --created-at <created_at> \ --expected-plan-digest sha256:... \ --json ``` Git-ссылки разрешаются в коммиты, источники-пакеты требуют точных версий, а локальные пути остаются в пределах `--root`. Встроенные элементы публикуются только внутри сетапа; элементы каталога сохраняют своего существующего издателя. Поля успеха: `setup_id`, `version`, `created_at`, `passport_digest`, `definition_digest`, `plan_digest`, `created`. ## Import inspect, plan, register Import вносит нативную конфигурацию харнеса в локальный реестр как ваш собственный сетап. Значения секретов не сохраняются. Таргет не затрагивается: провайдер уже сделал бэкап; register лишь записывает, где он. ```text ai-stp setup import inspect --root <native-dir> --harness codex --json ai-stp setup import plan --root <native-dir> --harness codex --json ai-stp setup import register \ --root <native-dir> \ --harness codex \ --backup-ref <ref> \ --plan-digest sha256:... \ --json ``` `--root` и `--harness` обязательны для всех трёх. Register также требует `--backup-ref` и `--plan-digest`. `--target` указывает, с какого таргета был сделан бэкап. `--partial` регистрирует даже если некоторые файлы были пропущены; паспорт записывает режим и точные пути. Поля успеха inspect: `root`, `harness_id`, `detection_rule`, `files`, `redacted_keys`, `oversized`, `unreadable`. Поля plan: `plan_digest`, `inspection_digest`, `components`, `effects`, `excluded`, `blocked_by`. Поля register: `stable_id`, `revision_id`, `backup_id`, `component_ids`, `plan_digest`, `redacted_keys`. ## Update plan и apply Замена одного **встроенного** компонента более новым точным снапшотом. Фиксации каталога таким образом не обновляются. ```text ai-stp setup update plan \ --id <setup_id> \ --version 1.0 \ --component-id <embedded_id> \ --source git:https://github.com/example/context7 \ --commit abcdef0123456789abcdef0123456789abcdef01 \ --subpath . \ --harness codex \ --project . \ --json ``` `--id`, `--version`, `--component-id`, `--source` и `--harness` обязательны. `--source` — это точная координата `git`, `package:ecosystem:name@version` или `path:relative`. `--commit` — точный lowercase 40-символьный Git SHA. `--project` — корень проекта, чей выбранный сетап проверяется. Apply повторяет те же опции и добавляет `--expected-plan-digest`: ```text ai-stp setup update apply \ --id <setup_id> \ --version 1.0 \ --component-id <embedded_id> \ --source git:https://github.com/example/context7 \ --commit abcdef0123456789abcdef0123456789abcdef01 \ --harness codex \ --expected-plan-digest sha256:... \ --json ``` Поля plan включают `plan_digest`, `setup_id`, `component_id`, `from_version`, `to_version`, `snapshot_coordinate`, `snapshot_identity`, `suggested_catalog_stable_id`, `suggested_catalog_version`, `suggested_catalog_dismissible`. Поля apply: `created`, `setup_id`, `from_version`, `to_version`, `selected_stable_id`, `selected_version`, `plan_digest`. Результат — **новая** версия сетапа. ## Publish plan и confirm Спланируйте публикацию одного выпущенного сетапа вместе со всеми компонентами, которые он фиксирует. Подтверждение делает этот точный граф публичным: сначала фиксированные компоненты, затем сетап. ```text ai-stp setup publish plan --id <setup_id> --version 1.0 --json ai-stp setup publish confirm \ --set-digest sha256:... \ --confirm \ --json ``` Plan требует `--id` и `--version`. Confirm требует `--set-digest` (дайджест, который вернул plan) и `--confirm`. Поля успеха: `set_digest`, `setup_stable_id`, `setup_version`, `state`, `expires_at`, `members`. У каждого элемента есть `plan_id`, `plan_hash`, `role`, `object_kind`, `stable_id`, `version`, `state`, `already_published`. ## Счастливый путь Compose: ```text task start --intent change --idempotency-key change-session-01 --json → follow continuations until there are none → task start --intent install --idempotency-key install-session-01 --json ``` Expert compose (уже есть digest): ```text setup compose plan --manifest setup.json --root . → setup compose apply --manifest setup.json --root . --id … --created-at … --expected-plan-digest … ``` Импорт нативного дерева (повседневный intent `author`): ```bash ai-stp task start --intent author --idempotency-key author-session-01 --json ``` Expert import (уже есть plan digest): ```text setup import inspect --root <dir> --harness <id> → setup import plan --root <dir> --harness <id> → setup import register --root <dir> --harness <id> --backup-ref … --plan-digest … ``` Публикация графа (повседневный intent `publish`): ```bash ai-stp task start --intent publish --idempotency-key publish-session-01 --json ``` Expert publish (уже есть set digest): ```text setup publish plan --id <setup_id> --version <X.Y> → setup publish confirm --set-digest … --confirm ``` ## Именованные поля успеха | Команда | Поля для чтения | | --- | --- | | `compose plan` | `setup_id`, `created_at`, `plan_digest`, `members` | | `compose apply` | `setup_id`, `version`, `passport_digest`, `created` | | `import inspect` | `files`, `redacted_keys`, `unreadable` | | `import plan` | `plan_digest`, `components`, `blocked_by` | | `import register` | `stable_id`, `backup_id`, `component_ids` | | `update plan` | `plan_digest`, `from_version`, `to_version` | | `update apply` | `created`, `to_version`, `selected_version` | | `publish plan` / `confirm` | `set_digest`, `members`, `state` | ## Отказы | Что вы видите | Что это значит | Что делать | | --- | --- | --- | | `AI_STP_USER_DECISION_REQUIRED` | `--confirm` был пропущен при publish confirm | передайте `--confirm` после ревью набора публикации | | `AI_STP_VALIDATION_ERROR` | отсутствует `--expected-plan-digest`, `--plan-digest` или `--set-digest` | скопируйте дайджест, который вернул plan | | `AI_STP_PLAN_STALE` | байты Git, байты пакетов или локальные пути изменились | спланируйте заново; apply отклоняет изменённые байты | | `AI_STP_PRECONDITION_FAILED` | import register без бэкапа провайдера или несвязанный элемент | сделайте бэкап через install; исправьте манифест | | `AI_STP_AUTH_REQUIRED` | publish требует выполненного входа | `task start --intent account --idempotency-key account-session-01 --json` | | `AI_STP_PERMISSION_DENIED` | эта учётная запись не может публиковать этот сетап | проверьте владельца и гранты | | путь за пределами `--root` | локальные источники ограничены | переместите файлы или измените `--root` | | плавающая версия пакета | источники-пакеты требуют точную версию | зафиксируйте `name@version` | | выдумывание `--expected-plan-digest` для import register | эта команда декларирует `--plan-digest` | используйте декларированное имя | Секреты, удалённые при inspect, остаются удалёнными. Не вставляйте их обратно в паспорт, чтобы «завершить» импорт. ## Связанные ссылки - [Сетапы](../setups/index.md) - [Select](select.md) - [Install](install.md) - [Источник компонента](component-source.md) - [Публикация компонента](component-publish.md) - [Publication](publication.md) - [Publishing](../publishing/index.md) - [Карта команд](commands.md) ## Флаги берутся из continuation argv ```bash ai-stp task intents --json ``` Не дампьте `help --agent` как прелюдию. Флаги текущей задачи — в continuation `argv`. Эта страница группирует команды сетапа, чтобы человек мог их найти. Если эта страница и CLI расходятся, следуйте CLI.