Skip to main content
Um pacote é um conjunto de políticas publicado como uma release do GitHub. Um único comando o instala: os checksums da release são verificados antes de qualquer execução, e o digest é registrado para que o pacote não possa ser alterado na sua máquina posteriormente. Explore todos os pacotes e cada política em cada um deles no hub de políticas. Há dois tipos:
  • Pacotes de políticas Failproof AI — pacotes prontos para casos de uso predefinidos: conecte um e ele funciona. O pacote de políticas para agente de codificação está disponível agora, e pacotes para mais casos de uso estão chegando em breve.
  • Pacotes de políticas da comunidade — políticas que desenvolvedores criaram para seus próprios casos de uso e publicaram para qualquer pessoa usar.

Pacotes de políticas Failproof AI

Pacote de políticas para agente de codificação

O pacote contém 38 políticas e ativa as 10 que seu manifesto marca como seguras para habilitar sem supervisão; as demais são listadas para você escolher. Algumas das mais usadas, e se um simples policies add as ativa: Ative qualquer uma que esteja desativada pelo nome — failproofai policies add block-rm-rf — ou pegue o pacote inteiro com --all. Veja todas as políticas nele, agrupadas por categoria:

Pacotes de políticas da comunidade

Desenvolvedores publicam pacotes para os casos de uso que encontraram, e o hub de políticas os lista. Um pacote da comunidade é publicado pelo seu autor e não é auditado pelo Failproof AI, então leia o que ele contém antes de instalá-lo:
Isso lista todas as políticas que ele contém, agrupadas por categoria, e marca quais o autor ativa por padrão. Ele lê apenas o manifesto — o artefato de entrada nunca é baixado ou importado, então examinar o pacote de um desconhecido não pode executar o código de um desconhecido. O manifesto ainda é verificado contra o SHA256SUMS da própria release, então o que você lê é exatamente o que seria instalado. Em seguida, instale-o:
Qualquer uma dessas formas funciona — cole a que você tiver: Não informar nenhuma tag instala a release mais recente e a fixa, e depois informa qual tag foi escolhida. O que é registrado sempre nomeia exatamente uma release, portanto uma reinstalação não pode divergir.

Usar parte de um pacote

Por padrão, você recebe os próprios padrões do pacote — as políticas que o autor marcou como seguras para ativar sem supervisão — não tudo o que ele contém.
--category e --policy se combinam como uma união (--only é aceito como sinônimo de --policy). Quando o pacote já está instalado, os flags adicionam ao que você tinha, e re-adicioná-lo sem flag e sem terminal — para atualizar, por exemplo — mantém sua seleção como está. Em um terminal sem flag, add abre o seletor em vez disso, pré-marcado com os padrões do autor, e o que você marcar substitui sua seleção.

Gerenciar o que está ativo

Ativar ou desativar uma política de pacote se aplica a toda a máquina: a alteração é registrada com o pacote instalado, não na configuração de um projeto, independentemente do que --scope diga. Um nome sem barra é uma política; qualquer coisa com uma barra é uma fonte de pacote. Um nome simples resolve para o pacote instalado que o declara. Quando dois pacotes instalados declaram o mesmo nome, especifique o que você quer dizer:
Escopos, parâmetros e os arquivos que esses comandos escrevem estão cobertos em configuração local.

O que a integridade garante e o que não garante

SHA256SUMS é distribuído na mesma release que o artefato, portanto não é uma assinatura e não prova nada sobre quem o publicou. O que ele prova é que os bytes são os que aquela release publicou — e como o digest é registrado quando você adiciona o pacote e reverificado antes de cada importação, um pacote não pode ser alterado na sua máquina posteriormente. Um repositório que troca a tag ou substitui um asset para de carregar em vez de executar silenciosamente outra coisa. No momento da instalação, o pacote também é importado uma vez e verificado contra seu próprio manifesto. Um pacote cujo artefato não seja analisável, ou que registre algo diferente do que declara, é recusado antes que qualquer coisa seja ativada — em vez de instalar sem erros e falhar na sua próxima chamada de ferramenta.

Quando um pacote não carrega

Um pacote que esta máquina foi instruída a aplicar e não consegue executar nega os eventos cobertos pelas políticas ausentes, em vez de permitir silenciosamente — como pack/failproofai-pack-unavailable, que tem prioridade sobre as políticas que foram carregadas, de modo que a negação é atribuída ao pacote ausente e não a qualquer guarda que por acaso tenha disparado primeiro. A exceção é UserPromptSubmit, que instrui em vez de negar: negar ali bloquearia seu acesso ao agente que você precisa para corrigir o problema. Veja Comportamento em falhas.

Offline e espelhos

Para compartilhar suas próprias políticas dessa forma, veja Publicar um pacote de políticas.