jxxghp
d7e610e656
feat(agent): 新增 apply_patch 多文件补丁编辑工具
参考 Codex apply_patch 设计,支持单次调用对多个文本文件执行新增、
更新和删除:补丁以 *** Begin Patch / *** End Patch 包裹,Update 段
用 @@ 分隔 hunk,上下文行须与当前内容精确一致;先整体校验全部文件
操作,通过后才逐个原子写盘,并以校验期 sha256 防止并发修改。
- 工具描述与系统提示词明确 apply_patch / edit_file / write_file 分工:
跨多文件或增删文件用 apply_patch,单文件单处替换用 edit_file
- 注册进工具工厂与 ALWAYS_INCLUDE 列表,加入策略 inventory 与
MCP 隐藏列表,流式回调归类为 file_write
- 同步 create-moviepilot-plugin / publish-moviepilot-plugin /
create-moviepilot-skill 技能的 allowed-tools 与版本
- 新增 tests/test_agent_apply_patch.py 覆盖解析、多文件应用、
整体拒绝、权限边界与版本冲突场景
2026-08-17 08:01:59 +08:00
..
2026-08-12 12:56:40 +08:00
2026-06-02 12:23:08 +08:00
2026-04-29 16:29:17 +08:00
2026-06-01 15:41:14 +08:00
2026-08-15 06:58:38 +08:00
2026-06-02 12:23:08 +08:00
2026-08-14 19:53:33 +08:00
2026-08-12 10:48:14 +08:00
2026-08-16 19:32:20 +08:00
2026-08-16 19:25:24 +08:00
2026-08-17 08:01:59 +08:00
2026-08-16 19:25:24 +08:00
2026-08-16 19:25:24 +08:00
2026-08-16 19:32:20 +08:00
2026-08-15 06:58:38 +08:00
2026-08-16 19:25:24 +08:00
2026-06-15 14:28:18 +08:00
2026-08-07 13:31:39 +08:00
2026-06-02 12:23:08 +08:00
2026-08-16 17:38:19 +08:00
2026-08-16 19:25:24 +08:00
2026-08-16 19:44:43 +08:00
2026-08-16 19:44:43 +08:00
2026-08-16 19:44:43 +08:00
2026-06-21 09:56:34 +08:00
2026-08-16 19:25:24 +08:00
2026-08-16 19:25:24 +08:00
2026-08-16 19:25:24 +08:00
2026-08-16 19:32:20 +08:00
2026-08-14 19:53:33 +08:00
2026-08-13 04:07:59 +08:00
2026-08-16 19:44:43 +08:00
2026-08-14 15:45:38 +08:00
2026-06-02 12:23:08 +08:00
2026-06-02 12:23:08 +08:00
2026-06-23 10:49:12 +08:00
2026-08-16 19:32:20 +08:00
2026-08-06 23:34:29 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:25:24 +08:00
2026-06-15 13:51:35 +08:00
2026-08-12 18:31:09 +08:00
2026-08-12 18:31:09 +08:00
2026-06-23 10:05:45 +08:00
2026-08-16 19:25:24 +08:00
2026-08-13 17:26:13 +08:00
2026-08-16 19:44:43 +08:00
2026-08-16 19:25:24 +08:00
2026-06-21 18:29:27 +08:00
2026-08-16 19:25:24 +08:00
2026-07-20 06:55:23 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:32:20 +08:00
2026-08-16 19:44:43 +08:00
2026-08-12 10:48:14 +08:00
2026-06-14 10:27:26 +08:00
2026-08-12 10:48:14 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 19:25:24 +08:00
2026-08-13 22:13:36 +08:00
2026-08-16 19:48:22 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:32:20 +08:00
2026-08-16 19:32:20 +08:00
2026-08-06 22:36:05 +08:00
2026-08-12 10:48:14 +08:00
2026-06-22 21:29:15 +08:00
2026-08-16 19:44:43 +08:00
2026-08-14 15:45:38 +08:00
2026-08-10 08:11:54 +08:00
2026-08-14 19:53:33 +08:00
2026-08-11 23:17:21 +08:00
2026-07-05 17:24:44 +08:00
2026-06-05 06:50:20 +08:00
2026-08-09 14:53:13 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-15 06:58:38 +08:00
2026-08-16 16:30:16 +08:00
2026-08-16 19:25:24 +08:00
2026-08-15 06:58:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 15:45:38 +08:00
2026-06-02 06:23:57 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 15:45:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-16 16:44:45 +08:00
2026-08-17 08:01:59 +08:00
2026-08-16 20:50:55 +08:00
2026-08-16 16:30:16 +08:00
2026-08-16 21:16:09 +08:00
2026-08-16 16:30:16 +08:00
2026-06-02 12:23:08 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 16:07:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-12 23:15:13 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-15 06:58:38 +08:00
2026-08-12 21:29:08 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-08-15 06:58:38 +08:00
2026-07-21 20:20:09 +08:00
2026-08-16 16:30:16 +08:00
2026-08-16 16:44:45 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 04:59:17 +08:00
2026-08-14 15:45:38 +08:00
2026-06-02 12:23:08 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:44:43 +08:00
2026-08-12 06:51:58 +08:00
2026-08-03 21:38:26 +08:00
2026-08-16 16:30:16 +08:00
2026-07-14 16:03:29 +08:00
2026-08-02 14:16:57 +08:00
2026-08-16 17:25:49 +08:00
2026-08-16 16:30:16 +08:00
2026-08-16 16:07:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-06 22:36:05 +08:00
2026-08-14 20:40:02 +08:00
2026-08-13 13:47:37 +08:00
2026-08-07 12:44:04 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:32:20 +08:00
2026-06-20 13:04:55 +08:00
2026-06-21 07:37:47 +08:00
2026-08-16 19:32:20 +08:00
2026-07-28 19:01:55 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 04:59:17 +08:00
2026-08-16 04:59:17 +08:00
2026-08-13 19:45:09 +08:00
2026-07-24 12:12:48 +08:00
2026-08-13 19:45:09 +08:00
2026-07-21 20:20:09 +08:00
2026-08-03 08:45:35 +08:00
2026-08-14 19:53:33 +08:00
2026-08-13 19:45:09 +08:00
2026-08-16 19:32:20 +08:00
2026-08-03 11:59:58 +08:00
2026-07-13 11:51:16 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-05 19:19:26 +08:00
2026-08-15 07:15:03 +08:00
2026-08-16 19:32:20 +08:00
2026-08-16 16:44:45 +08:00
2026-08-16 19:48:22 +08:00
2026-08-12 18:31:09 +08:00
2026-08-14 19:53:33 +08:00
2026-07-16 19:27:06 +08:00
2026-08-09 16:15:14 +08:00
2026-08-16 08:27:21 +08:00
2026-08-13 13:51:22 +08:00
2026-08-05 19:19:26 +08:00
2026-08-13 08:19:54 +08:00
2026-07-20 06:54:09 +08:00
2026-06-23 13:36:15 +08:00
2026-06-02 12:23:08 +08:00
2026-08-05 19:19:26 +08:00
2026-08-14 15:45:38 +08:00
2026-08-13 08:19:54 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-13 05:03:42 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 16:44:45 +08:00
2026-08-16 17:25:49 +08:00
2026-08-14 19:53:33 +08:00
2026-08-13 13:47:37 +08:00
2026-07-21 20:20:09 +08:00
2026-08-16 19:32:20 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 16:30:16 +08:00
2026-08-16 16:30:16 +08:00
2026-08-16 19:48:22 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 16:30:16 +08:00
2026-08-12 12:56:40 +08:00
2026-08-15 06:58:38 +08:00
2026-08-14 19:53:33 +08:00
2026-07-25 14:24:25 +08:00
2026-08-14 19:53:33 +08:00
2026-06-29 10:45:10 +08:00
2026-08-12 06:51:58 +08:00
2026-08-15 06:58:38 +08:00
2026-07-21 11:34:18 +08:00
2026-08-12 18:31:09 +08:00
2026-06-02 12:23:08 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:32:20 +08:00
2026-08-16 19:44:43 +08:00
2026-08-16 19:32:20 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-07-15 17:28:49 +08:00
2026-08-16 16:07:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-13 08:19:54 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 04:59:17 +08:00
2026-08-14 19:53:33 +08:00
2026-08-13 14:00:50 +08:00
2026-08-13 08:19:54 +08:00
2026-08-13 08:19:54 +08:00
2026-06-09 20:48:38 +08:00
2026-08-13 19:45:09 +08:00
2026-08-14 15:45:38 +08:00
2026-08-15 20:35:02 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-13 19:45:09 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 16:30:16 +08:00
2026-08-16 04:59:17 +08:00
2026-08-14 21:02:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 22:15:17 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 19:48:22 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 17:25:49 +08:00
2026-08-16 16:30:16 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 16:07:38 +08:00
2026-07-14 16:03:29 +08:00
2026-08-15 08:03:55 +08:00
2026-06-02 23:34:31 +08:00
2026-08-16 19:32:20 +08:00
2026-08-16 19:32:20 +08:00
2026-08-14 19:53:33 +08:00
2026-04-22 17:21:43 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-17 06:13:18 +08:00
2026-06-02 12:23:08 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-15 06:58:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 21:29:15 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 16:44:45 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-06-19 09:26:16 +08:00
2026-08-16 16:30:16 +08:00
2026-06-02 12:23:08 +08:00
2026-08-16 16:30:16 +08:00
2026-08-14 19:53:33 +08:00
2026-07-25 14:24:25 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-15 08:03:55 +08:00
2026-08-10 22:33:18 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-15 06:58:38 +08:00
2026-08-16 19:48:22 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 19:25:24 +08:00
2026-08-15 06:58:38 +08:00
2026-07-26 08:55:34 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-12 23:15:13 +08:00
2026-08-15 10:56:50 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 16:07:38 +08:00
2026-08-14 15:45:38 +08:00
2026-07-12 16:30:30 +08:00
2026-05-31 09:11:09 +08:00
2026-08-15 08:03:55 +08:00
2026-08-09 18:12:29 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:32:20 +08:00
2026-08-16 16:30:16 +08:00
2026-08-16 19:44:43 +08:00
2026-06-13 17:15:35 +08:00
2026-06-05 17:43:06 +08:00
2026-08-16 07:50:29 +08:00
2026-08-13 08:19:54 +08:00
2026-08-15 08:03:55 +08:00
2026-08-15 08:03:55 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:44:43 +08:00
2026-08-15 06:58:38 +08:00
2026-08-12 06:51:58 +08:00
2026-08-14 15:45:38 +08:00
2026-06-28 07:48:25 +08:00
2026-08-15 06:58:38 +08:00
2026-08-12 06:51:58 +08:00
2026-08-09 23:30:31 +08:00
2026-08-15 06:58:38 +08:00
2026-06-10 07:07:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:32:20 +08:00
2026-08-16 16:07:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-05 19:19:26 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 17:13:51 +08:00
2026-08-16 19:44:43 +08:00
2026-08-17 06:13:46 +08:00
2026-08-15 06:58:38 +08:00
2026-08-16 19:44:43 +08:00
2026-07-07 19:58:49 +08:00
2026-08-16 19:32:20 +08:00
2026-08-14 19:53:33 +08:00
2026-06-03 18:34:20 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 04:59:17 +08:00
2026-08-16 21:20:32 +08:00
2026-08-16 21:20:32 +08:00
2026-08-14 19:53:33 +08:00
2026-08-14 19:53:33 +08:00
2026-06-11 12:48:32 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 17:13:51 +08:00
2026-08-15 08:03:55 +08:00
2026-08-13 19:45:09 +08:00
2026-08-14 15:45:38 +08:00
2026-08-16 17:25:49 +08:00
2026-07-20 16:14:17 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:44:43 +08:00
2026-08-14 19:53:33 +08:00
2026-08-12 18:31:09 +08:00
2026-08-15 06:58:38 +08:00
2026-08-16 16:30:16 +08:00
2026-08-15 06:58:38 +08:00
2026-08-16 19:32:20 +08:00
2026-08-16 17:25:49 +08:00
2026-08-16 17:25:49 +08:00
2026-08-15 11:14:10 +08:00
2026-08-16 16:30:16 +08:00
2026-08-13 08:19:54 +08:00
2026-08-15 06:58:38 +08:00
2026-08-14 15:45:38 +08:00
2026-08-13 08:19:54 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 16:30:16 +08:00
2026-08-16 17:25:49 +08:00
2026-08-16 17:25:49 +08:00
2026-08-15 06:58:38 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-15 20:44:19 +08:00
2026-05-27 15:02:03 +08:00
2026-07-15 17:38:31 +08:00
2026-06-02 12:23:08 +08:00
2026-06-02 12:23:08 +08:00
2026-06-23 13:36:15 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-08-16 19:44:43 +08:00
2026-08-12 18:31:09 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 19:53:33 +08:00
2026-05-24 08:00:54 +08:00
2026-06-02 12:23:08 +08:00
2026-08-12 18:31:09 +08:00
2026-08-15 06:58:38 +08:00
2026-06-17 16:48:29 +08:00
2026-08-14 15:45:38 +08:00
2026-08-14 15:45:38 +08:00
2026-06-02 12:23:08 +08:00
2026-08-12 12:56:40 +08:00