Использование .codeassistantignore для управления доступом к файлам в SourceCraft Code Assistant

Важно

Функциональность доступна только в Visual Studio Code.

Файл .codeassistantignore — это ключевая функция для управления взаимодействием Code Assistant с файлами вашего проекта. Он позволяет указывать файлы и директории, к которым Code Assistant не должен получать доступ или вносить изменения, аналогично тому, как .gitignore работает для git.

Файл .codeassistantignore предназначен для защиты конфиденциальной информации, предотвращения случайных изменений артефактов сборки или больших файлов, а также определения области действия Code Assistant в вашем рабочем пространстве.

Создайте файл с именем .codeassistantignore в корневом каталоге вашего рабочего пространства VS Code. Укажите в этом файле шаблоны, чтобы сообщить Code Assistant, какие файлы и директории игнорировать.

Файл .codeassistantignore влияет как на инструменты Code Assistant, так и на упоминания контекста, например вложения @directory.

Code Assistant постоянно отслеживает файл .codeassistantignore. Любые изменения, которые вы вносите, автоматически загружаются, гарантируя, что Code Assistant всегда использует самые актуальные правила. Сам файл .codeassistantignore всегда игнорируется по умолчанию, поэтому Code Assistant не может изменить свои собственные правила доступа.

Синтаксис шаблонов

Синтаксис для .codeassistantignore идентичен .gitignore. Распространенные примеры:

  • node_modules/ — игнорируется весь каталог node_modules.
  • *.log — игнорируются все файлы, оканчивающиеся на .log.
  • config/secrets.json — игнорируется конкретный файл.
  • !important.log – исключение. Code Assistant не будет игнорировать этот конкретный файл, даже если существует более общий шаблон, например, *.log.
  • build/ — игнорируется каталог build.
  • docs/**/*.md — игнорируются все файлы с расширением .md в каталоге docs и его подкаталогах.

Для полного руководства по синтаксису обратитесь к документации git о .gitignore.

Как инструменты Code Assistant взаимодействуют с .codeassistantignore

Правила .codeassistantignore применяются ко многим инструментам Code Assistant:

Строгое соблюдение (чтение и запись)

Эти инструменты напрямую проверяют .codeassistantignore перед любой операцией с файлами. Если файл игнорируется, операция блокируется:

  • read_file — игнорируемые файлы не будут читаться.
  • write_to_file — игнорируемые файлы не будут записываться или создаваться.
  • apply_diff — к игнорируемым файлам не будет применяться быстрое редактирование.
  • insert_content — в игнорируемые файлы не будет вестись запись.
  • search_and_replace — в игнорируемых файлах не будет вестись поиск и замена.
  • list_code_definition_names — в игнорируемых файлах не будет проводиться анализ на наличие символов кода.

Обнаружение и перечисление файлов

  • list_files и вложения @directory — когда Code Assistant перечисляет файлы или вы используете вложения @directory, игнорируемые файлы исключаются или помечаются символом 🔒. Оба инструмента используют одинаковую логику фильтрации.
  • Детали окружения — информация о вашем рабочем пространстве, например открытые вкладки и структура проекта, предоставляемая Code Assistant, фильтруется для исключения или пометки игнорируемых элементов.

Упоминания контекста

  • Вложения @directory — содержимое директорий учитывает шаблоны .codeassistantignore. Игнорируемые файлы фильтруются или помечаются префиксом [🔒] в зависимости от настройки showCodeAssistantIgnoredFiles.
  • Упоминания отдельных файлов — игнорируемые файлы возвращают Файл игнорируется настройками .codeassistantignore вместо содержимого.

Выполнение команд

execute_command — этот инструмент проверяет, нацелен ли запрос команды из предопределенного списка, например cat или grep, на игнорируемый файл. Если да, выполнение блокируется.

Основные ограничения и область действия

Правила .codeassistantignore применяются только к файлам и директориям в корневой директории рабочего пространства VS Code. Файлы за пределами этой области не затрагиваются.

Защита для инструмента execute_command ограничена предопределенным списком команд для чтения файлов. Пользовательские скрипты или малораспространенные утилиты могут не обнаруживаться.

.codeassistantignore — это мощный инструмент для управления доступом Code Assistant к файлам через инструменты, но он не создает песочницу (sandbox) на уровне системы.

Пользовательский опыт и уведомления

В списках файлов и во вложениях @directory файлы, игнорируемые .codeassistantignore, могут быть помечены символом (🔒) в зависимости от настройки showCodeAssistantIgnoredFiles (по умолчанию — true).

Упоминания отдельных файлов возвращают Файл игнорируется настройками .codeassistantignore вместо содержимого.

Если операция инструмента блокируется, Code Assistant получает ошибку: Доступ к <путь_к_файлу> заблокирован настройками файла .codeassistantignore. Попытайся продолжить выполнение задачи без использования этого файла или попроси пользователя обновить файл .codeassistantignore.

Обычно, если действие блокируется из-за .codeassistantignore, об этом выводится сообщение в интерфейсе чата Code Assistant.