Configuración

Ignorar archivos

Controla a qué archivos puede acceder Bob creando un archivo `.bobignore` en tu proyecto.

¿Qué es .bobignore?

  • Propósito: Proteger información sensible, prevenir cambios accidentales en artefactos de compilación o recursos grandes, y definir generalmente el alcance operativo de Bob dentro de tu espacio de trabajo.
  • Uso: Crea un archivo llamado .bobignore en el directorio de tu espacio de trabajo. Lista patrones en este archivo para indicarle a Bob qué archivos y directorios ignorar.

Bob monitorea activamente el archivo .bobignore. Cualquier cambio que realices se recarga automáticamente, asegurando que Bob siempre use las reglas más actuales. El archivo .bobignore en sí siempre se ignora implícitamente, por lo que Bob no puede modificar sus propias reglas de acceso.

Sintaxis de patrones

La sintaxis para .bobignore es idéntica a .gitignore. Aquí hay ejemplos comunes:

EjemploDescripción
node_modules/Ignora todo el directorio node_modules
*.logIgnora todos los archivos que terminan en .log
config/secrets.jsonIgnora un archivo específico
!important.logUna excepción; Bob no ignorará este archivo específico, incluso si existe un patrón más amplio como *.log
build/Ignora el directorio build
docs/**/*.mdIgnora todos los archivos Markdown en el directorio docs y sus subdirectorios

Para aprender más sobre la sintaxis, lee la documentación oficial de Git sobre .gitignore.

Cómo interactúan las herramientas de Bob con .bobignore

Las reglas de .bobignore se aplican en las herramientas de archivos de Bob:

Herramientas de lectura y escritura

Estas herramientas verifican .bobignore antes de cada operación de archivo. Si un archivo coincide con un patrón ignorado, la operación se bloquea:

  • read_file: No lee archivos ignorados.
  • write_file: No escribe en archivos ignorados ni los crea.
  • apply_diff: No aplica diffs a archivos ignorados.
  • insert_content: No inserta contenido en archivos ignorados.
  • search_and_replace: No modifica archivos ignorados.
  • GetSymbolsOverview: No analiza archivos ignorados en busca de símbolos de código.

Descubrimiento y listado de archivos

  • Herramienta list_files: Los archivos ignorados se omiten de los listados o se marcan con un símbolo 🔒 (ver "Experiencia del usuario" a continuación).
  • Detalles del entorno: La información del espacio de trabajo que se proporciona a Bob, como las pestañas abiertas y la estructura del proyecto, se filtra para excluir o marcar elementos ignorados.

Ejecución de comandos

  • Herramienta execute_command: Bob verifica si un comando de una lista predefinida (como cat o grep) apunta a un archivo ignorado. Si es así, el comando se bloquea. Los comandos fuera de esta lista predefinida no se verifican contra .bobignore.

Restricción: .bobignore y la configuración de sandbox del espacio de trabajo ("Allow outside workspace tool requests") son dos controles independientes. .bobignore restringe a qué archivos pueden acceder las herramientas de archivos de Bob dentro del espacio de trabajo. La configuración de sandbox del espacio de trabajo controla si las herramientas de archivos pueden operar fuera de la raíz del espacio de trabajo. Ninguno de los dos controles restringe execute_command para operaciones de shell arbitrarias; un comando de shell aún puede crear, modificar o eliminar archivos en cualquier lugar que el sistema operativo permita, independientemente de estas configuraciones.

Limitaciones y alcance importantes

  • Centrado en el espacio de trabajo: Las reglas de .bobignore se aplican solo a archivos y directorios dentro de la raíz del espacio de trabajo actual de Bob. Los archivos fuera de este alcance no se ven afectados.
  • Alcance de execute_command: La aplicación de .bobignore para execute_command cubre solo una lista predefinida de comandos de lectura de archivos. Los comandos de shell arbitrarios no están restringidos por .bobignore ni por la configuración de sandbox del espacio de trabajo.
  • No es un sandbox completo: .bobignore controla el acceso de las herramientas de archivos de Bob dentro del espacio de trabajo. No crea un sandbox a nivel de sistema y no restringe la ejecución de comandos de shell.

Experiencia del usuario y notificaciones

  • Indicador visual (🔒): En los listados de archivos, los archivos ignorados por .bobignore pueden marcarse con un símbolo de candado (🔒), dependiendo de la configuración showbobignoredFiles (el valor predeterminado es true).
  • Mensajes de error: Cuando se bloquea una operación de herramienta, Bob recibe un error: "El acceso a [file_path] está bloqueado por la configuración del archivo .bobignore. Debes intentar continuar con la tarea sin usar este archivo, o pedirle al usuario que actualice el archivo .bobignore."
  • Notificaciones de chat: Normalmente verás una notificación en la interfaz de chat de Bob cuando se bloquea una acción debido a .bobignore.

Esta guía te ayuda a comprender la función .bobignore, sus capacidades y sus limitaciones actuales, para que puedas gestionar eficazmente la interacción de Bob con tu base de código.

¿Cómo es este tema?