# Провайдер
[Home](/ru/ai)
[Catalog](/ru/ai/catalog)
Проверить, загрузить, оценить доверие и заменить бинарник, который пишет нативное состояние harness.
## 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
# Провайдер
Провайдер — это публичный менеджер сетапов NDDev для одного харнеса. Он является единственным записывающим финальное состояние этого харнеса. Эти команды проверяют, что установлено, получают аттестованный релиз, сообщают о доверии и сетевой изоляции, а также заменяют или переустанавливают бинарный файл по тому же пути.
Они не устанавливают сетап. После того как байты провайдера привязаны, компоновка и применение по-прежнему идут через [Select](select.md) и [Install](install.md).
## Таблица команд
| Команда | Изменяемость | Подтверждение | Когда |
| --- | --- | --- | --- |
| `ai-stp provider check` | `read` | `none` | установленный провайдер каждого харнеса и наличие более нового релиза |
| `ai-stp provider conformance` | `read` | `none` | проверка одного провайдера по явно выбранному протоколу |
| `ai-stp provider fetch` | `apply` | `none` | загрузка аттестованного провайдера OpenNetwork и привязка закрытого манифеста релиза |
| `ai-stp provider trust` | `read` | `none` | отчёт о закреплённой политике доверия и проверка одного релиза по ней |
| provider network | `read` | `none` | наблюдаемая сетевая изоляция protocol-v2 на этой машине |
| `ai-stp provider update plan` | `read` | `none` | описание замены провайдера одного харнеса на новейшую выпущенную версию |
| `ai-stp provider update apply` | `apply` | `plan_digest` | выполнение ровно той замены, которую описал план |
| provider reinstall plan | `read` | `none` | описание переустановки одной точной версии провайдера по тому же пути |
| provider reinstall apply | `apply` | `plan_digest` | выполнение ровно той переустановки, которую описал план |
| `ai-stp provider forget` | `apply` | `none` | сброс записанного выбора провайдера, чтобы конфигурация и обнаружение решали снова |
`--json` — глобальный флаг. Передавайте его всегда.
`update plan` и `reinstall plan` — это `read`, а не `plan`. Они описывают замену. Они не записывают операцию установки. Apply подтверждается через `--expected-plan-digest` этого описания. В этой группе нет `--confirm`.
## Проверка
```bash
ai-stp provider check --json
ai-stp provider check --harness codex --json
ai-stp provider check --harness codex --offline --json
```
`--harness` можно указывать повторно. Опустите его для каждого поддерживаемого харнеса. `--offline` читает то, что установлено, не обращаясь к источнику релизов. Неудавшийся запрос не сообщается как «нет обновлений».
Поля успеха: `installations`, `source_consulted`. Каждая установка содержит `harness_id`, `provider_id`, `provider_version`, `path`, `status`, `source`, `repository`, `latest_tag`, `latest_commit`, `candidates`, `reason`, `checked_at`.
## Соответствие
```bash
ai-stp provider conformance \
--harness codex \
--executable <exe> \
--json
ai-stp provider conformance \
--harness codex \
--executable <exe> \
--target <dir> \
--protocol-version 3 \
--unverified-provider \
--json
```
`--harness` и `--executable` обязательны. `--protocol-version` по умолчанию — замороженный v1. `--unverified-provider` проверяет исполняемый файл, не покрытый подписанным или аттестованным релизом, например, собранный вами самостоятельно. Изоляция не ослабляется: проверка по-прежнему выполняется под лаунчером, доказанным системой.
Поля успеха: `conforms`, `harness_id`, `protocol_version`, `reported_version`, `cases`. Каждый кейс содержит `name`, `subject`, `passed`, `exercised`, `detail`.
## Загрузка
```bash
ai-stp provider fetch --harness codex --json
ai-stp provider fetch --harness codex --tag <tag> --directory <dir> --json
ai-stp provider fetch \
--harness codex \
--artifact <existing-file> \
--attestation-bundle <bundle> \
--json
```
`--harness` обязателен. `--tag` — точный тег релиза; опустите его для привязки текущего релиза GitHub после разрешения его тега. `--directory` принимает артефакт и привязанный манифест. `--artifact` привязывает существующий файл вместо загрузки. `--attestation-bundle` — необязательный локальный пакет аттестации GitHub для оффлайн-проверки.
Поля успеха: `harness_id`, `provider_id`, `provider_version`, `tag`, `commit`, `repository`, `artifact`, `artifact_digest`, `artifact_url`, `manifest`, `protocol_version`, `sequence`, `trust_level`.
## Доверие и сеть
```text
ai-stp provider trust --json
ai-stp provider trust --manifest <release-manifest> --json
ai-stp provider network --json
```
Без `--manifest` trust сообщает закреплённую политику. С ним тот же ответ также говорит, принят ли данный релиз.
Поля trust: `policy_id`, `policy_schema_version`, `signature_subject`, `allowed_keys`, `allowed_publishers`, `allowed_repositories`, `revoked_keys`, `pinned_releases`, `build_attestations`, `minimum_sequence`, `known_sequence`, `accepted`, `refusals`.
Поля network: `os_name`, `launcher_id`, `network_enforcement`, `protocol_version`, `local_actions_available`, `v3_local_phase`, `v3_local_phase_reasons`, `evidence`.
## Обновление и переустановка
Обе команды замены принимают `--harness` (обязателен), `--executable` (обязателен, когда установлено более одного провайдера) и `--adopt` (заменяет провайдер, который ai-stp не устанавливал; ничто другое не перезаписывает чужой). Apply добавляет `--expected-plan-digest`. Reinstall также принимает `--version`: опустите его для переустановки той версии, которая уже есть. Переход на новейший релиз — это `provider update`, а не reinstall.
```text
ai-stp provider update plan --harness codex --json
ai-stp provider update apply \
--harness codex \
--expected-plan-digest sha256:... \
--json
ai-stp provider reinstall plan --harness codex --version <tag> --json
ai-stp provider reinstall apply \
--harness codex \
--version <tag> \
--expected-plan-digest sha256:... \
--json
```
Когда установленный бинарный файл был размещён не этим CLI:
```bash
ai-stp provider update plan --harness codex --executable <exe> --adopt --json
ai-stp provider update apply \
--harness codex \
--executable <exe> \
--adopt \
--expected-plan-digest sha256:... \
--json
```
Поля plan: `operation`, `harness_id`, `path`, `plan_digest`, `provider_id`, `provider_version`, `current_version`, `current_digest`, `tag`, `commit`, `repository`, `artifact_url`, `artifact_digest`, `artifact_bytes`, `backup`, `foreign`, `trust_level`, `idempotency_key`.
Поля apply: `operation`, `outcome`, `harness_id`, `path`, `plan_digest`, `provider_version`, `previous_version`, `tag`, `artifact_digest`, `backup`.
## Сброс выбора
```bash
ai-stp provider forget --json
ai-stp provider forget --harness codex --json
```
`--harness` можно указывать повторно. Опустите его для каждого поддерживаемого харнеса. Forget сбрасывает записанный выбор, чтобы конфигурация и обнаружение решали снова. Он не удаляет бинарный файл. Ответ — то же представление installations, что и у `check`.
## Счастливый путь
```text
provider check
→ provider trust
→ provider fetch --harness <id>
→ provider conformance --harness <id> --executable <exe>
→ task start --intent install --idempotency-key install-session-01 --json
```
Замена текущей установки:
```text
provider update plan --harness <id>
→ provider update apply --harness <id> --expected-plan-digest sha256:...
→ provider check --harness <id>
```
## Именованные поля успеха
| Команда | Поля для чтения |
| --- | --- |
| `check` / `forget` | `installations`, `source_consulted` |
| `conformance` | `conforms`, `cases` |
| `fetch` | `artifact`, `manifest`, `artifact_digest`, `trust_level` |
| `trust` | `accepted`, `refusals`, `policy_id` |
| `network` | `network_enforcement`, `launcher_id`, `v3_local_phase` |
| `update` / `reinstall` plan | `plan_digest`, `path`, `tag`, `backup`, `foreign` |
| `update` / `reinstall` apply | `outcome`, `previous_version`, `provider_version` |
## Отказы
| Что вы видите | Что это означает | Что делать |
| --- | --- | --- |
| `AI_STP_VALIDATION_ERROR` | отсутствует `--harness` или `--expected-plan-digest` | прочитайте дескриптор |
| `AI_STP_PLAN_STALE` | байты на диске больше не совпадают с планом | спланируйте снова |
| `AI_STP_USER_DECISION_REQUIRED` | замена чужого бинарного файла требует `--adopt` | передайте `--adopt` после проверки пути |
| `AI_STP_PRECONDITION_FAILED` | политика доверия отказала релизу | прочитайте `provider trust --manifest`; не используйте `--unverified-provider`, чтобы скрыть это |
| `AI_STP_DEPENDENCY_UNAVAILABLE` | источник релизов недоступен | `--offline` на check, или повторите, если `retryable: true` |
| `conforms: false` | исполняемый файл не прошёл кейс протокола | прочитайте `cases`; не устанавливайте через него |
| `accepted` false | закреплённая политика отклонила манифест | остановитесь; не обходите политику через fetch |
| придумывание `--confirm` | apply подтверждается через `--expected-plan-digest` | передайте дайджест, а не булево значение |
`--unverified-provider` записывает, что закреплённая политика ничего не проверяла. Это не делает бинарный файл доверенным. Планы установки, использующие его, записывают `provider_release_trusted` false.
## Связанные ссылки
- [Установка](install.md)
- [Цель](target.md)
- [Программа харнеса](harness.md)
- [Инструментарий](toolchain.md)
- [Доверие и безопасность](../trust-and-safety/index.md)
- [Харнесы](../harnesses.md)
- [Карта команд](commands.md)
## Флаги берутся из continuation argv
```bash
ai-stp task intents --json
```
Не дампьте `help --agent` как прелюдию. Флаги текущей задачи — в continuation `argv`.
Эта страница группирует команды провайдера для удобства поиска. Установленный CLI является источником флагов, схем и `next_actions`. Если эта страница и CLI расходятся, следуйте CLI.