Filesystem watcher that keeps a Qdrant vector store in sync with document changes. Extract text from files, chunk it, generate embeddings, and query your documents with semantic search.
jeeves-watcher init, validate, start, and moreThe following helpers are available in every JsonMap lib context:
| Helper | Description |
|---|---|
split(str, sep) |
Split a string into an array |
slice(arr, start, end?) |
Slice an array |
join(arr, sep) |
Join an array into a string |
toLowerCase(str) |
Lowercase a string |
replace(str, search, replacement) |
String replacement |
get(obj, path) |
Dot-path property access |
lookupJson(filePath, key, field?) |
Load a JSON file and look up a value by key |
mapLookup(filePath, keys, field) |
Map keys through a JSON lookup, collecting a field from each |
fetchSiblings(filePath, options?) |
Extract text from neighboring files for contextual embedding |
fetchSiblingsRetrieves extracted text from sibling files in the same directory, useful for contextual embedding (e.g., injecting surrounding email thread messages).
Options: { before?: number (default 3), after?: number (default 1), sort?: "name" | "mtime" (default "name") }
Returns string[] of extracted text. Files that fail extraction are silently skipped.
npm install @karmaniverous/jeeves-watcher
# Generate a config file
npx jeeves-watcher init --output ./jeeves-watcher.config.json
# Validate it
npx jeeves-watcher validate --config ./jeeves-watcher.config.json
# Start the watcher
npx jeeves-watcher start --config ./jeeves-watcher.config.json
Full docs, guides, and API reference:
docs.karmanivero.us/jeeves-watcher
BSD-3-Clause