Local FTS search over Vibe sessions and curated memory.
Search uses SQLite FTS indexes managed by Vibe.Storage.FTS. Results are
returned as structured Vibe.Storage.Search.Result values so eval, CLI, TUI,
and future web clients can render the same semantic data.
Summary
Functions
@spec memories( String.t(), keyword() ) :: [Vibe.Storage.Search.Result.t()]
@spec query( String.t(), keyword() ) :: {:ok, [Vibe.Storage.Search.Result.t()]} | {:error, term()}
@spec sessions( String.t(), keyword() ) :: [Vibe.Storage.Search.Result.t()]