tools: split the filesystem tool into a package
`tools/filesystem.py` was 1145 lines: path/format/diff/AI-text helpers at the
top, then a `FilesystemTool` class with every action handler. Move the pure
layer out into `navi/tools/_filesystem/`:

* `helpers.py` — path checks, formatting, line numbering, unified-diff
  annotation, chunking, edit-op validation/application, AI prompts;
* `tool.py` — the dispatcher and its read/write/AI handlers.

The package is underscore-prefixed because `navi/tools/filesystem` also has
to stay available as the compatibility shim at the same import path. No
behavior change: the shim re-exports every top-level name the module had, and
the tests patch `settings` on the modules that now read it.
1 parent ac7264d commit 9b1c8276f39573ef7c0d31371843e935e1700dce
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 21 hours ago
Showing 5 changed files
View
navi/tools/_filesystem/__init__.py 0 → 100644
View
navi/tools/_filesystem/helpers.py 0 → 100644
View
navi/tools/_filesystem/tool.py 0 → 100644
View
navi/tools/filesystem.py
Too large (Show diff)
View
tests/unit/tools/test_filesystem.py