Примечание.
GitHub Copilot CLI Расширения в настоящее время являются экспериментальной функцией и могут измениться.
Расширение позволяет добавить свои собственные возможности в Copilot CLI. Каждое расширение — это небольшой модуль Node.js, который работает как отдельный процесс вместе с вашей интерактивной сессией и подключается обратно к нему. С помощью этого подключения расширение может добавить следующее:
- Средства , которые Copilot могут вызываться во время работы от вашего имени.
- Команды косой черты , которые выполняются самостоятельно.
Так как расширение запускает реальный код на компьютере, вы можете добавить возможности, которые не имеют встроенных средств. Например, расширение может наблюдать за тем, что происходит в сеансе, и поддерживать выполнение между вызовами инструментов, которые не могут сделать одноуровневая команда оболочки.
В этой статье объясняется, как работают расширения и как Copilot CLI они обрабатываются. Практическое руководство по созданию собственных расширений см. в разделе Создание расширений для GitHub Copilot CLI.
Предупреждение
Расширения выполняются на вашем компьютере с вашими правами. Загружайте только тот код расширения, которым доверяете, так же как вы запускаете только другие скрипты, которые не написали сами.
Обнаружение расширений
При Copilot CLI запуске он ищет расширения в нескольких расположениях. Каждое расширение живет в собственной подкаталоге, и этот подкаталог должен содержать файл записи с именем extension.mjs, extension.cjsили extension.js. Это все файлы JavaScript: Copilot CLI файл записи выполняется непосредственно с Node.js, поэтому расширение должно быть записано в JavaScript— TypeScript и других языках в настоящее время не поддерживается.
Имя подкаталога становится именем расширения.
| Source | Местонахождение | Доступность |
|---|---|---|
| Проект | ||
.github/ в текущем репозитории | Доступно всем, кто работает в этом репозитории. | |
| User | ~/ | Доступно во всех сеансах CLI в каждом каталоге. |
| Подключаемый модуль | Установленный подключаемый модуль | Доступно везде, где включен подключаемый модуль. |
Выбор места жизни расширения
Где вы помещаете каталог расширений, определяет, кто может использовать его:
- Поместите его в
.github/extensions/репозиторий, когда расширение зависит от этого проекта, и вы хотите поделиться им со всеми, кто работает там. - Поместите его
~/.copilot/extensions/, если требуется расширение, доступное во всех собственных сеансах, независимо от того, какой каталог вы запускаете CLI.
Два расположения следуют точно той же структуре , именованной подкаталогу, содержащей extension.mjs файл, чтобы можно было переместить расширение из одного в другую, просто переместив ее папку.
Включение расширений
Расширения в настоящее время являются экспериментальной функцией, поэтому необходимо включить экспериментальные функции. Это можно сделать, выполнив одно из следующих действий:
- Запустите ИНТЕРФЕЙС командной строки с флагом
‑‑experimental. - Выполните команду косой
/experimental onчерты внутри интерактивного сеанса.
Изменение способа обработки расширений CLI
Вы можете ограничить Copilotдоступ к расширениям или полностью отключить их с помощью /extensions mode команды. При использовании этой команды вы получите три варианта:
- Загрузка и расширение (по умолчанию) — интерфейс командной строки запускает расширения _и_Copilot может управлять ими.
- Загрузка только— интерфейс командной строки запускает расширения, но Copilot не может управлять ими.
- Отключенные— расширения полностью отключены в текущем сеансе и будут оставаться отключенными в будущих сеансах, пока не переключитесь на один из двух других параметров. Другие текущие сеансы не затрагиваются.
Любое изменение, которое вы вносите, вступает в силу немедленно в текущем сеансе:
- Переключение на "Отключено" останавливает все расширения, которые в настоящее время выполняются. Их процессы завершаются, и их инструменты больше не доступны.
- Переход с "Отключено" на любой из других параметров запускает расширения.
- Переключение между только загрузкой и загрузкой и расширением просто изменяет возможность Copilot управления расширениями.
Что означает "управление расширениями"
В режиме ****Copilot предоставляется небольшой набор дополнительных средств, которые позволяют работать непосредственно в системе расширений в рамках выполнения запросов. С помощью этих средств Copilot можно:
- Вывод списка обнаруженных расширений и просмотра их состояния.
- Проверьте расширение, в том числе хвост файла журнала, чтобы помочь диагностировать тот, который завершился сбоем или неправильно работает.
- Создание начального
extension.mjsфайла для создания шаблона нового расширения. - Перезагрузите расширения, чтобы код его (или вы) вступили в силу без перезапуска сеанса.
Это то, что позволяет вам попросить Copilot создать расширение для вас. Copilot может создать файл, написать код и перезагрузить его без выхода из сеанса.
Выберите "Загрузка только в том случае, если вы хотите сохранить известный доверенный набор расширений, но не хотите Copilot создавать, перезагрузить или изменять код расширения", который выполняется на компьютере, в качестве побочных эффектов его работы. Существующие расширения по-прежнему выполняются и Copilot по-прежнему могут вызывать предоставляемые им средства. Он просто не может самостоятельно управлять расширениями.
Расширения по сравнению с подключаемыми модулями
Как расширения, так и подключаемые модули добавляют функциональные Copilot CLIвозможности, но они служат различным целям:
- Расширение — это один модуль JavaScript, который записывается для добавления инструментов и команд косой черты, поддерживаемых кодом, выполняемым в сеансе.
- Подключаемый модуль — это устанавливаемый пакет, который объединяет повторно используемые компоненты, такие как агенты, навыки, перехватчики и интеграции, и может распространяться через Marketplace.
Для получения дополнительной информации о плагинах см. О GitHub Copilot плагинах.