Провайдер¶
Провайдер — это публичный менеджер сетапов NDDev для одного харнеса. Он является единственным записывающим финальное состояние этого харнеса. Эти команды проверяют, что установлено, получают аттестованный релиз, сообщают о доверии и сетевой изоляции, а также заменяют или переустанавливают бинарный файл по тому же пути.
Они не устанавливают сетап. После того как байты провайдера привязаны, компоновка и применение по-прежнему идут через Select и Install.
Таблица команд¶
| Команда | Изменяемость | Подтверждение | Когда |
|---|---|---|---|
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.
Проверка¶
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.
Соответствие¶
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.
Загрузка¶
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.
Доверие и сеть¶
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.
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:
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.
Сброс выбора¶
--harness можно указывать повторно. Опустите его для каждого поддерживаемого харнеса. Forget сбрасывает записанный выбор, чтобы конфигурация и обнаружение решали снова. Он не удаляет бинарный файл. Ответ — то же представление installations, что и у check.
Счастливый путь¶
provider check
→ provider trust
→ provider fetch --harness <id>
→ provider conformance --harness <id> --executable <exe>
→ task start --intent install --idempotency-key install-session-01 --json
Замена текущей установки:
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.
Связанные ссылки¶
Флаги берутся из continuation argv¶
Не дампьте help --agent как прелюдию. Флаги текущей задачи — в continuation argv.
Эта страница группирует команды провайдера для удобства поиска. Установленный CLI является источником флагов, схем и next_actions. Если эта страница и CLI расходятся, следуйте CLI.