picoclaw/pkg/tools/fs
Yue_chen a680d8fcfa fix(tools): gate write_file overwrite guidance on available tools
#3150 reworded write_file's description, overwrite parameter, and guard
error to prefer append_file/edit_file. But those tools register via their
own enable flags and the per-agent allowlist, so a config exposing only
write_file was steered toward tools it does not have — a dead end in the
most restrictive setups.

WriteFileTool now tracks which non-destructive alternatives are available
and names only the ones present; when none are, the guard still blocks the
overwrite without pointing anywhere. The agent wiring registers the editors
before write_file and resolves availability via registry.HasRegistered,
which reflects both the enable flag and the allowlist.

Tests: conditional copy at the tool level (none/one/both) and agent wiring
across the enable-flag and allowlist dimensions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 20:40:27 +08:00
..
edit.go feat(tools): show unified diff for edit_file edits 2026-05-12 18:06:47 +02:00
edit_test.go fix test 2026-05-12 23:23:26 +02:00
filesystem.go fix(tools): gate write_file overwrite guidance on available tools 2026-07-07 20:40:27 +08:00
filesystem_test.go fix(tools): gate write_file overwrite guidance on available tools 2026-07-07 20:40:27 +08:00
filesystem_windows_path_test.go test(fs): cover root path separator normalization 2026-06-23 20:57:42 +01:00
load_image.go fix(feishu): fix image download with API fallback and post image support (#2708) 2026-04-30 11:08:00 +08:00
load_image_test.go fix(feishu): fix image download with API fallback and post image support (#2708) 2026-04-30 11:08:00 +08:00
send_file.go refactor(tools): reorganize tool packages and facades 2026-04-17 13:44:31 +08:00
send_file_test.go refactor(tools): reorganize tool packages and facades 2026-04-17 13:44:31 +08:00
shared.go feat(tools): show unified diff for edit_file edits 2026-05-12 18:06:47 +02:00