27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
# LIBRA ♎ — the Scales. Nimble-classified file librarian.
|
|
|
|
Nimble is the classification brain; deterministic Python touches the filesystem.
|
|
Nothing moves without your click. Every move is logged and one-click reversible.
|
|
|
|
## Pipeline
|
|
scan → sha256 hash (deterministic dup detection) → content extract (pdf/zip/text/images) →
|
|
Nimble structured JSON classification (think:false, strict enums) → safety validate →
|
|
review plan UI → apply (dry-run default) → immutable op log → undo session.
|
|
|
|
## Run
|
|
```
|
|
python3 ~/libra/app.py # http://127.0.0.1:5731
|
|
```
|
|
Requires: flask, pypdf (optional: Pillow). Nimble served by Ollama on nightmare (10.30.20.29:11434, model nimble:latest).
|
|
|
|
## Safety gates
|
|
- No system paths, no symlinks, no overwrite (auto-suffix).
|
|
- Confidence gate (tunable) — below threshold → REVIEW.
|
|
- Duplicates are sha256-verified only; extras go to ~/libra/dupe_hold/, never deleted.
|
|
- Every operation logged with src/dst/sha256; sessions undoable.
|
|
|
|
## Layout
|
|
- app.py — everything (scanner, extractor, classifier, safety, organizer, UI)
|
|
- taxonomy.yaml — editable destination map (class+subject → folder)
|
|
- libra.db — SQLite index of files, operations, sessions
|