Как автоматизировать взаимодействие cli с gh copilot, используя ожиданиеLinux

Ответить
Anonymous
 Как автоматизировать взаимодействие cli с gh copilot, используя ожидание

Сообщение Anonymous »

Я хочу автоматически нажать
  • Ввод (выбрать общую команду оболочки)
  • Ввод (Copy command to clipboard)
  • Вверх (перемещение курсора к выходу)
  • Ввод (выход из интерфейса)
чтобы я мог Ctrl+V вставить предложенную команду терминала.
ВопросКак мне использовать для этого ожидаемый (инструмент Linux)?
Я не могу получить правильную комбинацию ключевых слов, таких как тайм-аут, взаимодействие, отправка.
Я также подозреваю, что копирование gh вторым пилотом в буфер обмена нарушает дизайн интерактивности или есть побочные эффекты от предыдущий запуск ./copilot_auto.sh как составить список файлов, влияющих на текущий запуск.
Ручной рабочий процесс должен быть автоматизирован
Ввод1: gh, второй пилот, подскажите, как составить список файлов
Output1:
Welcome to GitHub Copilot in the CLI!
version 0.5.4-beta (2024-01-04)

I'm powered by AI, so surprises and mistakes are possible. Make sure to verify any generated code or suggestions, and share feedback so that we can learn and improve. For more information, see https://gh.io/gh-copilot-transparency

? What kind of command can I help you with? [Use arrows to move, type to filter]
> generic shell command
gh command
git command

Ввод 2: нажмите Enter, чтобы выбрать общую команду оболочки
Вывод 2:< /strong> (2-й и 3-й варианты исчезнут из вывода 1 и появится предложение)
? What kind of command can I help you with?
> generic shell command

Suggestion:

ls

? Select an option [Use arrows to move, type to filter]
> Copy command to clipboard
Explain command
Revise command
Rate response
Exit

Ввод 3
: нажмите Enter, чтобы выбрать «Копировать команду в буфер обмена».
Вывод 3< /strong>: команда, скопированная в буфер обмена, отображается в качестве подтверждения, затем параметры повторяются
? Select an option
> Copy command to clipboard

Command copied to clipboard!

? Select an option [Use arrows to move, type to filter]
> Copy command to clipboard
Explain command
Revise command
Rate response
Exit

Попытки автоматизации
В настоящее время я пытался использовать ожидание:
Тайм-аут используется для ожидания перехода к командной строке второго пилота экран опций. Я изменил код ожидания от второго пилота, у меня плохое понимание механики ожидания.
#!/usr/bin/expect

set input_command [join $argv " "]
spawn gh copilot suggest $input_command

interact {
timeout 1 { send "\r" }
}
# interact
# sleep 1
# send "\r"

Изображение

Вопросы по механике ожидания

Пример 1. Почему ниже не отправляется Enter, как в примере с тайм-аутом?
interact
sleep 1
send "\r"

Пример 2. Почему тайм-аут ниже 1 не работает, как показано ниже, но тайм-аут 2 работает для непрерывной отправки ключа?
Почему клавиша Enter имеет более короткий требуется таймаут, чем клавиша «Вверх»?
Откуда это ['\x1b' '] ниже? (Здесь я подозреваю, что проблемы связаны с буфером обмена или побочным эффектом предыдущего запуска)
Ввод кода
#!/usr/bin/expect

set input_command [join $argv " "]
spawn gh copilot suggest $input_command

interact {
timeout 1 { send "\033\[A" }
}

Вывод
spawn gh copilot suggest how to list files

Welcome to GitHub Copilot in the CLI!
version 0.5.4-beta (2024-01-04)

I'm powered by AI, so surprises and mistakes are possible. Make sure to verify any generated code or suggestions, and share feedback so that we can learn and improve. For more information, see https://gh.io/gh-copilot-transparency

? What kind of command can I help you with? 1R [Use arrows to move, type to filter]

✗ Error: could not prompt: unexpected escape sequence from terminal: ['\x1b' ']']

^[[7;1R^[]11;rgb:1f1f/2424/2828^[\^[[11;1R%

Пример 3. Если я попытаюсь совместить клавиши «Ввод» и «Вверх», чтобы приблизиться к последовательности из 4 клавиш, упомянутой в начале, он нажимает только клавишу «Вверх» и игнорирует ввод:
Почему взаимодействие происходит в бесконечном цикле и почему выполняется только последняя команда?
#!/usr/bin/expect

set input_command [join $argv " "]
spawn gh copilot suggest $input_command

interact {
timeout 1 { send "\r" }
timeout 2 { send "\033\[A" }
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-expect
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»