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

Выбор сетапа

Пригодность кандидатов, proposal, отчёты состава, граф, пакет и подтверждение выбора сетапа.

Выбор сетапа

Выбор отвечает, из каких кандидатов можно собрать harness, записывает одно proposal и замораживает его как частную версию сетапа. Target он не создаёт. Provider пишет нативное состояние позже, через Установку.

Агент может помочь выбрать членов. Он не обходит механические ограничения eligibility, доступа и безопасности. Пустой допустимый список с причинами рядом — честный ответ, не авария.

Повседневный состав — intent install (каталожный сетап) или change / author (локальный граф). Eligibility, propose и confirm ниже — expert recovery.

ai-stp task start --intent install --idempotency-key install-session-01 --json

Таблица команд

КомандаMutabilityConfirmationКогда
select eligibilityreadnoneexpert: каких кандидатов может использовать один harness, и почему каждый отказ
select eligibility-matrixreadnoneкуда можно собрать один объект, для каждого поддерживаемого harness
ai-stp select impactreadnoneсравнить контекст, стоимость токенов и capabilities точных локальных версий
ai-stp select blast-radiusreadnoneлокальные ссылки сетапа, проекта, устройства и target на компонент
select proposeplannoneexpert: записать одно composition proposal; без версии, без target
select confirmapplynoneexpert: заморозить одно proposal как частную версию сетапа, trace и pin
ai-stp select cancelapplynoneзакрыть одно proposal, не создавая версию
ai-stp select graphreadnoneразрешить точное замыкание зависимостей или назвать каждую причину отказа
ai-stp select reportsreadnoneчто выбрано, что конфликтует, что теряется
select bundlereadnoneскомпилировать детерминированный пакет; в target не писать
ai-stp select sessionreadnoneоткрытые proposal для проекта и harness и выбранная версия

--json глобальный. Всегда передавайте его. У select confirm confirmation: none: назвать --proposal и есть решение. --confirm нет.

Eligibility

Expert recovery:

ai-stp select eligibility --harness codex --json
ai-stp select eligibility --harness codex --project . --json
ai-stp select eligibility --harness codex --include-unverified --json
ai-stp select eligibility --harness codex --for-redistribution --json

--harness обязателен. --project называет корень проекта, из фактов которого строится target. --include-unverified соглашается рассматривать непроверенные кандидаты только для этого вызова. Он никогда не сохраняется и никогда не достаточен, чтобы выбрать автоматически. --for-redistribution применяет права на распространение, потому что состав предназначен к redistributе.

Поля успеха: harness_id, harness_version, os, arch, admissible_count, auto_selectable_count, candidates, capabilities, capability_vocabulary_version. admissible_count: 0 с перечисленными отказами — успех.

Expert recovery: eligibility matrix

ai-stp select eligibility-matrix --json
ai-stp select eligibility-matrix --harness codex --harness claude-code --json

--harness повторяемый. Опустите, чтобы покрыть каждый поддерживаемый harness. Остальные флаги совпадают с eligibility.

Impact и blast-radius

Impact сравнивает точные локальные версии сетапа. Blast-radius перечисляет локальные ссылки на одну версию компонента.

ai-stp select impact \
  --setup-id <setup_id> \
  --setup-version 1.0 \
  --json

ai-stp select impact \
  --setup-id <setup_id> \
  --setup-version 1.1 \
  --against-setup-id <setup_id> \
  --against-setup-version 1.0 \
  --tokenizer-profile ai-stp:utf8-bytes/1 \
  --json

ai-stp select blast-radius \
  --component-id <component_id> \
  --component-version 1.0 \
  --scenario update \
  --json

--tokenizer-profile — ai-stp:utf8-bytes/1 или ai-stp:unicode-chars-div4/1. --price-profile — явный локальный JSON файл цен токенов. --project-id берёт установленный или выбранный сетап этого проекта как baseline, когда --against-setup-id нет. --scenario — одно из update, deprecation, blocked, expired_evidence, advisory.

Expert recovery: propose, session, confirm, cancel

Proposal — короткоживущий точный объект сессии. Он истекает. Confirm замораживает частную версию сетапа. Cancel ничего не создаёт.

--member повторяемый, каждое значение <stable_id>@<X.Y>. --empty собирает сетап, который не проецирует файлы. --empty и --member вместе отклоняются.

ai-stp select session --harness codex --project . --json

ai-stp select propose \
  --harness codex \
  --project . \
  --member component_...@1.0 \
  --member component_...@2.1 \
  --json

ai-stp select confirm --proposal <proposal_id> --json
ai-stp select cancel --proposal <proposal_id> --json

Propose возвращает сессию с proposal_id, state (open, confirmed, cancelled, expired), members, harness_id, project_id, created_at, expires_at, snapshot. Confirm возвращает created, stable_id, version, revision_id, state (pending_install или installed), trace. Повторный confirm того же proposal — успех: по created отличите «этот вызов создал» от «уже было создано».

Graph, reports, bundle

ai-stp select graph --proposal <proposal_id> --json
ai-stp select graph --member component_...@1.0 --json

ai-stp select reports --harness codex --proposal <proposal_id> --json

ai-stp select bundle --harness codex --proposal <proposal_id> --json
ai-stp select bundle \
  --harness codex \
  --proposal <proposal_id> \
  --target <absolute-dir> \
  --scope project \
  --json

graph берёт либо --proposal, либо повторяемый --member, не смесь, которую вы придумали. У каждого узла есть stable_id, version, passport_digest, revision_id, depth, requires.

reports нужны --harness и --proposal. --project — корень проекта, из фактов которого строится target.

bundle компилирует байты и манифест. Это read: ADR-0012 отдаёт запись provider. --scope — global (по умолчанию), project или user_root. --target нужен, когда член добавляет ключ в файл, которым provider уже владеет: текущие байты существуют только на target. Если compiled равен false, digest и files пусты, а refusals называет каждую причину.

Happy path

Повседневный путь:

ai-stp task start --intent install --idempotency-key install-session-01 --json

Expert custom composition:

select eligibility --harness <id> --project .
→ select propose --harness <id> --member <id>@<X.Y>
→ select reports --harness <id> --proposal <proposal>
→ select graph --proposal <proposal>
→ select confirm --proposal <proposal>
→ task start --intent install --idempotency-key install-session-01 --json

Читайте select session, когда нужны открытое proposal и выбранная версия этой пары.

Именованные поля успеха

КомандаКакие поля читать
eligibilityadmissible_count, auto_selectable_count, candidates
propose / session / cancelproposal_id, state, members, expires_at
confirmcreated, stable_id, version, revision_id, state
graphузлы с stable_id, version, passport_digest
bundlecompiled, digest / artifact_digest, refusals
impactсравниваемые версии и поля стоимости
blast-radiusссылающиеся сетапы, проекты, устройства, target

Отказы

Что видноЧто это значитЧто делать
AI_STP_VALIDATION_ERRORнет --harness, или --member вместе с --emptyисправить запрос
AI_STP_NOT_FOUNDproposal, сетап или компонент неизвестныselect session или component find
AI_STP_USER_DECISION_REQUIREDнепроверенным кандидатам нужно явное согласие--include-unverified на eligibility, затем выбор человека
AI_STP_PRECONDITION_FAILEDproposal истекло или не openснова propose; не confirm истекший id
AI_STP_CONFLICTсессия уже сдвинуласьselect session, затем действовать по текущему proposal
admissible_count: 0для этого harness собирать нечегопрочитать отказ каждого кандидата; не выдумывать member
compiled: falsebundle собрать не удалосьпрочитать refusals; не устанавливать половину пакета
выдумывать --confirm у confirmэтого флага нет--proposal и есть подтверждение

--include-unverified никогда не становится сохранённым согласием. Сохранённое согласие — Согласие. Experimental-объектам оно всё равно нужно до установки.

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

Флаги берутся из continuation argv

ai-stp task intents --json

Не дампьте help --agent как прелюдию. Флаги текущей задачи — в continuation argv.

Эта страница группирует команды выбора, чтобы человек их нашёл. Если страница и CLI расходятся, следуйте CLI.