feat: add persistent CPU search engine and CLI with lifecycle tests
Core CI / core (ubuntu-latest) (push) Successful in 1m0s
Core CI / core (macos-latest) (push) Canceled after 0s
Core CI / core (windows-latest) (push) Canceled after 0s

This commit is contained in:
karl committed 2026-10-12 15:51:39 +02:00
1 parent aae803771c
commit f77112db97
19 files changed
+1688

No files matched your search

+28
View File
@@ -0,0 +1,28 @@
# Searchi CLI
The CLI is a thin adapter over `searchi-core`; it performs no network requests or
GPU setup. Index only folders you explicitly choose.
```powershell
cargo run -p searchi-cli -- index --db ./searchi.db --root ./documents
cargo run -p searchi-cli -- search --db ./searchi.db "termination clause" --limit 10
cargo run -p searchi-cli -- search --db ./searchi.db "invoice" --json
cargo run -p searchi-cli -- stats --db ./searchi.db --json
```
The same arguments work on Linux and macOS. After building, invoke the `searchi`
binary directly instead of `cargo run -p searchi-cli --`.
`index` creates the database if needed; its parent directory must already exist.
`search` and `stats` require an existing database so a mistyped path does not
silently create an empty index. Failures exit with a nonzero status and include
the affected folder or database path. Result limits must be between 1 and 1000.
`search --json` emits an array of engine results, including the path, filename,
snippet, ranking score, and match kind. An empty search emits `[]`. `stats --json`
emits an object with `files` and `content_files`. JSON is the scripting interface;
the human-readable output may change as preview support develops.
The foundation CLI searches filenames and extracted text. Semantic inference,
document formats beyond the core extractor, and desktop integration remain
tracked in the project roadmap; this interface does not fabricate embeddings.