К содержимому
# Синхронизация
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Предпросмотр, push, merge и pull приватного потока аккаунта.
## 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
# Синхронизация Sync перемещает локальные ревизии паспортов в и из приватного потока учётной записи. Это не публичный каталог, не Git и не установка. Предпросмотр никогда не изменяет head. Push, merge и pull — явные, безопасные для повторного воспроизведения записи. Повседневный sync — intent `account`. Движок спрашивает, прежде чем загружать. Не набирайте `sync push`, чтобы форсировать upload. ```bash ai-stp task start --intent account --idempotency-key account-session-01 --json ``` Expert preview / push / merge / pull ниже — для операторов, у которых уже есть id ревизии. Локальная работа не нуждается в sync. Вход в учётную запись обязателен для этих команд, потому что они обращаются к потоку учётной записи. Поток несёт ревизии паспортов, а не файлы таргета харнеса и не бэкапы провайдера. ## Таблица команд | Команда | Мутабельность | Подтверждение | Когда | | --- | --- | --- | --- | | `ai-stp task start --intent account` | `apply` | `none` | повседневный вход и явный sync | | `ai-stp sync preview` | `read` | `none` | expert: предпросмотр локального fast-forward, merge или конфликта без изменения head | | sync push | `apply` | `explicit_flag` | expert: запушить один точный локальный head с устойчивым безопасным для воспроизведения событием | | `ai-stp sync merge` | `apply` | `explicit_flag` | expert: зафиксировать механически чистый мёрж двух head разработческих паспортов | | sync pull | `apply` | `explicit_flag` | expert: получить и атомарно применить одну ограниченную страницу из потока учётной записи | `--json` — глобальный флаг. Всегда передавайте его. Push, merge и pull требуют `--confirm`. ## Preview ```bash ai-stp sync preview --id <stable_id> --json ``` `--id` — стабильный идентификатор, чьи локальные head сравниваются. Поля успеха: `stable_id`, `state`, `head_revision_ids`, `common_ancestor_revision_id`, `candidate_revision_id`, `server_head_revision_id`, `affected_fields`. `state` — это следующий механический ход: | `state` | Значение | | --- | --- | | `up_to_date` | один локальный head, нечего мёржить или пушить | | `fast_forward` | чистый потомок существует; push или pull могут переместить head | | `merge` | два head имеют чистый механический кандидат на мёрж | | `conflict` | сервер указывает head, которого нет на этом устройстве, или поля расходятся | | `manual_resolution` | более двух локальных head, или нет общего предка | Preview не пушит. Конфликт — это честный отчёт, а не сбой. Один локальный head плюс отклонённый push, который указывает head сервера, которого нет на этом устройстве, — это тоже `conflict`, а не `up_to_date`. ## Push ```text ai-stp sync push --id <stable_id> --confirm --json ``` `--id` и `--confirm` обязательны. Событие устойчиво и безопасно для воспроизведения: второй push того же head не создаёт второй эффект. Поля успеха: `stable_id`, `state`, `processed_events`, `event_id`, `local_revision_id`, `remote_revision_id`, `server_head_revision_id`, `conflicting_entity_id`, `conflict_fields`. Если `state` сообщает конфликт, остановитесь и выполните `preview` снова. Не пушьте в цикле. ## Merge ```bash ai-stp sync merge --id <stable_id> --confirm --json ``` `--id` и `--confirm` обязательны. Merge фиксирует механически чистый мёрж **двух** head разработческих паспортов. Он не изобретает значения полей. Если preview был `conflict` или `manual_resolution`, merge отклоняется. Ответ — это предпросмотр результирующих head: та же схема, что и у `sync preview`. Запушьте после, если новый head должен покинуть это устройство. ## Pull ```text ai-stp sync pull --confirm --json ai-stp sync pull --page-size 20 --confirm --json ai-stp sync pull --skip-event <event_id> --confirm --json ``` `--confirm` обязателен. `--page-size` — максимальное количество событий на этой странице. `--skip-event` повторяем: каждое значение — это точный id отклонённого события, через которое нужно пройти, отбрасывая его ревизию. Пропуск запоминается этим устройством, поэтому последующий pull проходит мимо него без запроса. Поля успеха: `received`, `applied`, `replayed`, `next_cursor`, `skipped`. Выполняйте pull, пока `next_cursor` не станет пустым, если намерены опустошить поток. Каждая страница атомарна. ## Счастливый путь ```text task start --intent account --idempotency-key account-session-01 --json → follow continuations until there are none ``` Expert (уже есть id ревизии): ```text auth status → sync preview --id <stable_id> → sync pull --confirm # если поток впереди → sync merge --confirm # только когда preview говорит merge → sync push --id <stable_id> --confirm → sync preview --id <stable_id> ``` Читайте `preview` после каждой записи. Не пушьте и не pull'ите в одном действии, не прочитав `state`. ## Именованные поля успеха | Команда | Поля для чтения | | --- | --- | | `preview` / `merge` | `state`, `head_revision_ids`, `candidate_revision_id`, `affected_fields` | | `push` | `event_id`, `local_revision_id`, `remote_revision_id`, `state` | | `pull` | `received`, `applied`, `replayed`, `next_cursor`, `skipped` | ## Отказы | Что вы видите | Что это значит | Что делать | | --- | --- | --- | | `AI_STP_AUTH_REQUIRED` | нет выполненного входа | `task start --intent account --idempotency-key account-session-01 --json` | | `AI_STP_DEVICE_REVOKED` | ключ этого устройства отозван для облачных операций | `device` + новый вход; не переиспользуйте отозванный ключ | | `AI_STP_USER_DECISION_REQUIRED` | `--confirm` был пропущен | передайте `--confirm` после чтения preview | | `AI_STP_NOT_FOUND` | у этого id нет локальных head ревизий | `passport developer show` / создайте объект локально сначала | | `AI_STP_CONFLICT` | head сервера расходится с этим устройством | `preview`; merge только если state — `merge` | | `AI_STP_PRECONDITION_FAILED` | merge, когда head не являются чистой парой | разрешите вручную; не пропускайте события, чтобы скрыть это | | `AI_STP_RATE_LIMITED` | сервер попросил замедлиться | повторяйте только если `retryable: true` | | пропуск события | его ревизия отброшена на этом устройстве | передавайте `--skip-event` только после человеческого отказа | Не помещайте токены потока в командную строку. Не принимайте sync за бэкап таргета харнеса. Копии таргета живут у провайдера; см. [Target](target.md). ## Связанные ссылки - [Вход](auth.md) - [Паспорта](passport.md) - [Устройство](device.md) - [Объекты владельца](owner.md) - [Карта команд](commands.md) ## Флаги берутся из continuation argv ```bash ai-stp task intents --json ``` Не дампьте `help --agent` как прелюдию. Флаги текущей задачи — в continuation `argv`. Эта страница группирует команды синхронизации, чтобы человек мог их найти. Если эта страница и CLI расходятся, следуйте CLI.