Skip to main content
Пакет — это набор политик, опубликованный как GitHub release. Одна команда устанавливает его: контрольные суммы release проверяются перед запуском чего-либо, и его дайджест записывается так, чтобы пакет не мог измениться на вашей машине впоследствии. Изучите все пакеты и каждую политику в них на хабе политик. Есть два типа:
  • Пакеты политик Failproof AI — готовые пакеты для предопределённых сценариев использования: подключите один, и он работает. Пакет политик для агента кодирования доступен сейчас, и пакеты для других сценариев скоро появятся.
  • Пакеты политик сообщества — политики, которые разработчики написали для собственных сценариев и опубликовали для всех.

Пакеты политик Failproof AI

Пакет политик для агента кодирования

Пакет содержит 38 политик и включает 10, которые его манифест помечает как безопасные для автоматического включения; остальные перечислены для вас, чтобы выбрать. Некоторые из наиболее используемых и показано, включены ли они по умолчанию при простой команде policies add: Включите любые отключённые по имени — failproofai policies add block-rm-rf — или возьмите весь пакет с --all. Смотрите каждую политику в нём, сгруппированную по категориям:

Пакеты политик сообщества

Разработчики публикуют пакеты для своих сценариев использования, и хаб политик их перечисляет. Пакет сообщества опубликован его автором, не проверен Failproof AI, поэтому прочитайте, что он содержит, перед установкой:
Это перечисляет все политики, которые он содержит, сгруппированные по категориям, и отмечает, какие автор включает по умолчанию. Он читает только манифест — основной артефакт никогда не загружается и не импортируется, поэтому просмотр пакета незнакомца не может запустить его код. Манифест всё ещё проверяется против собственной SHA256SUMS release, поэтому то, что вы видите, это то, что установится. Затем установите его:
Любое из этих значений работает — вставьте то, что у вас есть: Если не указан тег, устанавливается последний release и закрепляется, затем вам сообщается, какой тег был выбран. То, что записывается, всегда называет ровно один release, поэтому переустановка не может дрейфовать.

Возьмите часть пакета

По умолчанию вы получаете собственные значения по умолчанию пакета — политики, которые автор пометил как безопасные для автоматического включения — не всё, что он содержит.
--category и --policy объединяются как объединение (--only принимается как синоним для --policy). Когда пакет уже установлен, флаги добавляются к тому, что у вас было, и переустановка его без флага и без терминала — для обновления, например — сохраняет вашу выборку как есть. В терминале без флага add открывает выбор вместо этого, предварительно отмечен значениями по умолчанию автора, и то, что вы отметите, заменит вашу выборку.

Управление включёнными

Включение или выключение политики пакета применяется на всю машину: переключатель записывается вместе с установленным пакетом, а не в конфигурацию проекта, что бы ни говорил --scope. Имя без слеша — это политика; всё с одним — это источник пакета. Простое имя разрешается в установленный пакет, который его объявляет. Когда два установленных пакета объявляют одно имя, назовите нужный вам:
Области, параметры и файлы, которые эти команды записывают, рассматриваются в локальной конфигурации.

Что даёт целостность и что нет

SHA256SUMS поставляется в том же release, что и артефакт, поэтому это не подпись и ничего не доказывает о том, кто его опубликовал. Что она доказывает, так это то, что байты — это те, которые опубликовал этот release — и потому что дайджест записывается при добавлении пакета и повторно проверяется перед каждым импортом, пакет не может измениться на вашей машине впоследствии. Репозиторий, который переназначает или заменяет ресурс, перестаёт загружаться вместо того, чтобы тихо запустить что-то другое. При установке пакет также импортируется один раз и проверяется против собственного манифеста. Пакет, чей артефакт не парсится или регистрирует что-то иное, чем он объявляет, отклоняется перед тем, как что-либо активируется — вместо чистой установки и сбоя при следующем вызове инструмента.

Когда пакет не загружается

Пакет, который эта машина была приказана проверять и не может запустить, отрицает события, которые охватывали его отсутствующие политики, вместо того чтобы молчаливо их разрешить — как pack/failproofai-pack-unavailable, что перевешивает политики, которые загрузились, так что отрицание приписывается отсутствующему пакету, а не той охране, которая случайно сработала первой. Исключением является UserPromptSubmit, которое инструктирует вместо этого: отрицание там запер бы вас в агенте, который нужен для исправления. Смотрите Поведение при сбое.

Оффлайн и зеркала

Чтобы поделиться своими политиками таким образом, смотрите Опубликовать пакет политик.