К содержимому

Программа harness

Установка, обновление, удаление и состояние программы harness.

Программа harness

Эти команды устанавливают программу harness — бинарный файл в конкретном prefix — не сетап, не компонент и не провайдер. Провайдер — отдельный бинарный файл, который позже записывает нативное состояние. Применение сетапа описано в Install. Обзор видимых на машине harness — toolchain harnesses.

Объект — программа в --prefix, а не конфигурация в --target. Путаница между этими двумя путями — способ, которым сетап оказывается в директории программы, а бинарный файл — в проекте.

Команды

КомандаИзменяемостьПодтверждениеКогда
ai-stp harness installapplynoneУстановить саму программу harness в конкретный prefix.
ai-stp harness updateapplynoneПеревести программу harness на версию, которую фиксирует провайдер.
ai-stp harness removedestructiveexplicit_flagУдалить программу harness, установленную этим CLI, и ничего больше.
ai-stp harness resumeapplynoneЗавершить остановленную операцию программы, только проверив состояние, никогда не применяя повторно.
ai-stp harness statusreadnoneКакая программа находится в данном prefix — по журналу и диску.

install, update и remove требуют --harness, --prefix и --target. remove также требует --confirm. status требует --harness и --prefix. resume требует --operation.

--prefix — абсолютный путь к директории, в которой находится программа. Это не target. --target — абсолютный путь к конфигурационному target harness.

Типичный путь

ai-stp toolchain harnesses --json
ai-stp harness status --harness codex --prefix <prefix> --json
ai-stp harness install --harness codex --prefix <prefix> --target <target> --json
ai-stp harness status --harness codex --prefix <prefix> --json

<prefix> и <target> — абсолютные пути. --harness — одно из значений: claude-code, codex, pi, opencode, grok-build, cursor, antigravity.

Если операция остановилась без завершённого результата:

ai-stp harness resume --operation <operation> --json
ai-stp harness status --harness codex --prefix <prefix> --json

resume завершает, проверяя состояние, никогда не применяя повторно. Это то же правило, что и для install resume сетапов: повторный запуск эффекта создаёт вторую копию, а не восстанавливает первую.

Переход на версию, зафиксированную провайдером:

ai-stp harness update --harness codex --prefix <prefix> --target <target> --json

Удаление только того, что установил этот CLI:

ai-stp harness remove --harness codex --prefix <prefix> --target <target> --confirm --json

harness install

Устанавливает саму программу harness в конкретный prefix.

ai-stp harness install --harness codex --prefix <prefix> --target <target> --json

Исполняемый файл провайдера определяется при отсутствии --provider: явный путь, затем конфигурация, затем запомненный выбор, затем discovery. Опциональные флаги описаны в machine help. Не изобретайте путь провайдера.

state после успешного применения — то, что сообщил провайдер. verified — единственное состояние, означающее, что программа установлена и её идентификатор подтверждён.

harness update

Переводит программу harness на версию, зафиксированную провайдером.

ai-stp harness update --harness codex --prefix <prefix> --target <target> --json

Те же обязательные опции, что и у install. Это не provider update. Обновление бинарного файла провайдера — Provider. Эта команда обновляет программу harness, которую провайдер предоставляет в prefix.

harness remove

Удаляет программу harness, установленную этим CLI, и ничего больше.

ai-stp harness remove --harness codex --prefix <prefix> --target <target> --confirm --json

Destructive. --confirm обязателен. Без него команда отказывает с AI_STP_USER_DECISION_REQUIRED. Программа, не установленная этим CLI, не удаляется. Нативная конфигурация в --target не удаляется. Кэшированные байты каталога не удаляются.

harness resume

Завершает остановленную операцию программы, только проверяя состояние, никогда не применяя повторно.

ai-stp harness resume --operation <operation> --json

--operation обязателен. Он указывает запись журнала, которая остановилась. Опциональные assert-флаги (--harness, --prefix, --target) берутся из операции, если не указаны; другое значение отклоняется. Прочитайте их в machine help, если нужно зафиксировать.

Resume не загружает вторую копию. Он проверяет, что уже есть на диске и в журнале, и записывает завершённое состояние.

harness status

Какая программа находится в данном prefix — по журналу и диску.

ai-stp harness status --harness codex --prefix <prefix> --json

Два независимых источника, намеренно: журнал говорит, что сделала эта установка, файловая система — что сейчас там. Сообщение только первого назвало бы верифицированную операцию успешной на пустом prefix.

version берётся из журнала, никогда — из запуска программы. Запрос версии у бинарного файла означал бы выполнение чужого исполняемого файла из команды, объявленной как read.

Поля успешного data:

ПолеЧто это
harness_idharness, о котором вы спросили
prefixдиректория, которую вы указали
statepresent, removed, never_installed, foreign, lost или interrupted
reasonпочему это состояние таково
entry_pointэкспонированный путь в prefix
executableимя программы, как записано
versionверсия, записанная журналом
operation_idпоследняя записанная операция, если есть
recorded_atкогда журнал последний раз писал
recorded_operationsoftware_install, software_update или software_remove
recorded_stateчто журнал последний раз записал
stoppedоперации, остановившиеся без завершённого результата
schema_versionmajor-версия схемы этого отчёта

lost означает: журнал говорит verified, а prefix не содержит файлов. Это отчёт, а не указание немедленно переустановить без чтения.

Что содержит успешный envelope

install, update, remove и resume возвращают операцию программы в data:

ПолеЧто это
harness_idharness
prefixprefix программы
operationsoftware_install, software_update или software_remove
operation_idзапись журнала
plan_digestточный план, который был выполнен
stateчто провайдер сообщил после эффекта
versionверсия программы
executableэкспонированный исполняемый файл
artifactsархивы, названные планом
effectsчто изменилось
recoveredчто resume завершил
removedзабрал ли remove программу обратно
schema_versionmajor-версия схемы этого отчёта

status возвращает поля статуса выше. Каждый envelope также содержит ok, warnings, next_actions, request_id, operation_id и schema_version.

Prefix не target не provider

ПутьЧто этоКоманда
--prefixгде находится программа harnessэта страница
--targetгде живёт нативная конфигурацияInstall, Target
provider executableбинарный файл, пишущий targetProvider

toolchain harnesses отвечает на вопрос «виден ли этот harness на машине». harness status отвечает «что этот CLI положил в этот prefix». Не используйте одно вместо другого.

Что эти команды никогда не делают

  • не применяют сетап и не записывают нативную конфигурацию как цель команды;
  • не запускают программу harness для получения версии из status;
  • не удаляют программу, не установленную этим CLI;
  • не заменяют provider update или toolchain install;
  • не пропускают --confirm при remove.

Типичные отказы

Что вы видитеЧто это значитЧто делать
AI_STP_VALIDATION_ERROR отсутствует --harness / --prefix / --targetэти опции обязательны для install, update и removeпередайте все три; для status нужны harness и prefix
AI_STP_USER_DECISION_REQUIRED при remove--confirm отсутствуетдобавьте --confirm после явного решения
AI_STP_NOT_FOUND при resumeтакой операции нет в журналеharness status, прочитайте stopped
AI_STP_PRECONDITION_FAILEDprefix, target или провайдер не совпадают с планомне переиспользуйте argv от другого prefix
state: foreignэтот prefix принадлежит чему-то другомуне делайте remove; этот CLI его не устанавливал
state: lostжурнал verified, диск пустпрочитайте reason; resume или восстановление, не слепая переустановка
state: interruptedоперация остановиласьharness resume --operation <operation> --json

Связанные страницы

СтраницаЗачем
Toolchainобзор присутствия и возможностей
Providerбинарный файл, пишущий нативное состояние
Installприменение сетапа через этот провайдер
Targetтекущее состояние проекта и harness
Harnessesсемь харнессов открытой беты
Agent Skill CLIskill, который программа будет читать
Быстрый старт для человекапервый запуск, когда программа отсутствует

!!! note "Флаги из ai-stp help --agent --json" Если help --agent расходится с флагом на этой странице, CLI побеждает. Опциональные флаги здесь не перечислены. Читайте их из descriptor. harness install и harness update требуют --harness, --prefix и --target. harness remove также требует --confirm. harness resume требует --operation.