Skip to main content

lexa_obsidian/
lib.rs

1//! Obsidian-vault adapter for [Lexa](https://github.com/rishiskhare/lexa).
2//!
3//! Wraps `lexa-core`'s `LexaDb` with vault-aware indexing — frontmatter
4//! parsing, wiki-link extraction, tag indexing, block-id tracking — and
5//! exposes a note-shaped API:
6//!
7//! - `LexaObsidianDb::index_vault` — walk a vault directory, parse
8//!   frontmatter, run `LexaDb::index_path`, populate sidecar tables in
9//!   the same SQLite file.
10//! - `LexaObsidianDb::search_notes` — hybrid search with tag / folder
11//!   filters layered on top of the lexa-core hybrid retrieval.
12//! - `LexaObsidianDb::find_backlinks` / `list_tags` / `get_note` /
13//!   `get_similar` — note-aware queries against the sidecar tables.
14//!
15//! Companion binaries:
16//!
17//! - `lexa-obsidian` — CLI: `index`, `status`, `tags`, `backlinks`,
18//!   `search`, `watch`.
19//! - `lexa-obsidian-mcp` — rmcp stdio MCP server for Codex / Claude
20//!   Desktop / any MCP client.
21
22pub mod db;
23pub mod frontmatter;
24pub mod schema;
25pub mod tags;
26pub mod wikilinks;
27
28pub use lexa_core::LexaError;
29
30pub type Result<T> = std::result::Result<T, lexa_core::LexaError>;
31
32pub use db::{
33    Backlink, IndexReport, LexaObsidianDb, LinkRef, Note, NoteHit, SearchNotesOptions, TagCount,
34    VaultStatus,
35};
36pub use frontmatter::Frontmatter;