Инструмент apply_patch

Применение изменений файлов с использованием структурированного формата патча. Это идеально подходит для многофайловых или многофрагментных правок, где один вызов edit был бы ненадежным.

Инструмент принимает одну строку input, которая оборачивает одну или несколько операций с файлами:

*** Begin Patch
*** Add File: path/to/file.txt
+line 1
+line 2
*** Update File: src/app.ts
@@
-old line
+new line
*** Delete File: obsolete.txt
*** End Patch

Параметры

  • input (обязательно): Полное содержимое патча, включая *** Begin Patch и *** End Patch.

Примечания

  • Пути разрешаются относительно корня рабочего пространства.
  • Используйте *** Move to: внутри фрагмента *** Update File: для переименования файлов.
  • *** End of File отмечает вставку только EOF при необходимости.
  • Экспериментальный и отключен по умолчанию. Включите с помощью tools.exec.applyPatch.enabled.
  • Только для OpenAI (включая OpenAI Codex). Опционально ограничьте по модели через tools.exec.applyPatch.allowModels.
  • Конфигурация находится только под tools.exec.

Пример

{
  "tool": "apply_patch",
  "input": "*** Begin Patch\n*** Update File: src/index.ts\n@@\n-const foo = 1\n+const foo = 2\n*** End Patch"
}