47c53f900a
Mover issue a completed/ y actualizar indice en README.md. Todas las tareas del issue implementadas y testeadas (44 tests).
1.6 KiB
1.6 KiB
0031 — Expandir tools/file/ con write, list, append, delete
Objetivo
Ampliar el paquete tools/file/ con operaciones de escritura, listado, append y borrado. Mantener el patron deny-by-default, validacion de symlinks, y respetar el flag read_only del config.
Estado: completado
Implementado en rama issue/0031-expand-file-tools.
Archivos creados/modificados
tools/file/validate.go— NEW: validatePath(), validateWritePath(), resolveReal() extraidos de file.gotools/file/write.go— NEW: write_file tool (crea/sobreescribe, MkdirAll, limite 1MB)tools/file/list.go— NEW: list_directory tool (plano/recursivo, limite 500 entries)tools/file/append.go— NEW: append_file tool (append o crear, limite 10MB total)tools/file/delete.go— NEW: delete_file tool (solo archivos, nunca directorios)tools/file/file.go— refactored: removidas funciones movidas a validate.gotools/file/write_test.go— NEW: 11 teststools/file/list_test.go— NEW: 9 teststools/file/append_test.go— NEW: 11 teststools/file/delete_test.go— NEW: 9 testsagents/runtime.go— registro condicional de las 4 tools nuevas
Seguridad
- Deny-by-default en todas las tools (AllowedPaths vacio = todo denegado)
- ReadOnly gate: write/append/delete solo se registran si ReadOnly == false
- Path traversal protegido via resolveReal() + prefix validation
- Symlink escape protegido via EvalSymlinks
- Solo archivos en delete (nunca directorios)
- Limites de tamano: 1MB write, 10MB append total, 64KB read output, 500 entries list