Configuração

Ignorando arquivos

Controle quais arquivos Bob pode acessar criando um arquivo `.bobignore` no seu projeto.

O que é .bobignore?

  • Propósito: Proteger informações sensíveis, prevenir mudanças acidentais em artefatos de build ou ativos grandes, e geralmente definir o escopo operacional do Bob dentro do seu espaço de trabalho.
  • Como usar: Crie um arquivo chamado .bobignore no diretório do seu espaço de trabalho. Liste padrões neste arquivo para dizer ao Bob quais arquivos e diretórios ignorar.

Bob monitora ativamente o arquivo .bobignore. Quaisquer mudanças que você fizer são recarregadas automaticamente, garantindo que Bob sempre use as regras mais atuais. O próprio arquivo .bobignore é sempre implicitamente ignorado, então Bob não pode mudar suas próprias regras de acesso.

Sintaxe de padrões

A sintaxe para .bobignore é idêntica ao .gitignore. Aqui estão exemplos comuns:

ExemploDescrição
node_modules/Ignora todo o diretório node_modules
*.logIgnora todos os arquivos terminando em .log
config/secrets.jsonIgnora um arquivo específico
!important.logUma exceção; Bob não ignorará este arquivo específico, mesmo se um padrão mais amplo como *.log existir
build/Ignora o diretório build
docs/**/*.mdIgnora todos os arquivos Markdown no diretório docs e seus subdiretórios

Para aprender sobre sintaxe, consulte a documentação oficial do Git sobre .gitignore.

Como as ferramentas Bob interagem com .bobignore

As regras .bobignore são aplicadas nas ferramentas de arquivo do Bob:

Ferramentas de leitura e escrita

Estas ferramentas verificam o .bobignore antes de qualquer operação de arquivo. Se um arquivo corresponder a um padrão ignorado, a operação é bloqueada:

  • read_file: Não lê arquivos ignorados.
  • write_file: Não escreve em arquivos ignorados nem os cria.
  • apply_diff: Não aplica diffs a arquivos ignorados.
  • insert_content: Não insere conteúdo em arquivos ignorados.
  • search_and_replace: Não modifica arquivos ignorados.
  • GetSymbolsOverview: Não analisa arquivos ignorados para símbolos de código.

Descoberta e listagem de arquivos

  • Ferramenta list_files: Arquivos ignorados são omitidos das listagens ou marcados com um símbolo 🔒 (veja "Experiência do usuário" abaixo).
  • Detalhes do ambiente: Informações sobre seu espaço de trabalho fornecidas ao Bob, como abas abertas e estrutura do projeto, são filtradas para excluir ou marcar itens ignorados.

Execução de comandos

  • Ferramenta execute_command: O Bob verifica se um comando de uma lista predefinida (como cat ou grep) tem como alvo um arquivo ignorado. Se sim, o comando é bloqueado. Comandos fora desta lista predefinida não são verificados em relação ao .bobignore.

Restrição: O .bobignore e a configuração de sandbox do espaço de trabalho ("Allow outside workspace tool requests") são dois controles separados. O .bobignore restringe quais arquivos as ferramentas de arquivo do Bob podem acessar dentro do espaço de trabalho. A configuração de sandbox do espaço de trabalho controla se as ferramentas de arquivo podem operar fora da raiz do espaço de trabalho. Nenhum dos controles restringe o execute_command para operações arbitrárias de shell; um comando de shell ainda pode criar, modificar ou excluir arquivos onde quer que o sistema operacional permita, independentemente dessas configurações.

Limitações e escopo principais

  • Centrado no espaço de trabalho: As regras .bobignore se aplicam apenas a arquivos e diretórios dentro da raiz do espaço de trabalho Bob atual. Arquivos fora deste escopo não são afetados.
  • Escopo de execute_command: A aplicação do .bobignore para o execute_command cobre apenas uma lista predefinida de comandos de leitura de arquivos. Comandos arbitrários de shell não são restringidos pelo .bobignore nem pela configuração de sandbox do espaço de trabalho.
  • Não é uma sandbox completa: O .bobignore controla o acesso das ferramentas de arquivo do Bob dentro do espaço de trabalho. Ele não cria uma sandbox em nível de sistema e não restringe a execução de comandos shell.

Experiência do usuário e notificações

  • Indicação visual (🔒): Em listagens de arquivos, arquivos ignorados por .bobignore podem ser marcados com um símbolo de cadeado (🔒), dependendo da configuração showbobignoredFiles (padrão é true).
  • Mensagens de erro: Se uma operação de ferramenta for bloqueada, Bob recebe um erro: "Acesso a [file_path] está bloqueado pelas configurações do arquivo .bobignore. Você deve tentar continuar na tarefa sem usar este arquivo, ou pedir ao usuário para atualizar o arquivo .bobignore."
  • Notificações de chat: Você normalmente verá uma notificação na interface de chat do Bob quando uma ação for bloqueada devido ao .bobignore.

Este guia ajuda você a entender o recurso .bobignore, suas capacidades e suas limitações atuais, para que você possa gerenciar efetivamente a interação do Bob com sua base de código.

Como está este tópico?