Search the vector store for text chunks semantically similar to `query`.

Embeds the query and returns the top-k most relevant chunks with their similarity score,
raw text, and stored metadata (filename, document_id, chunk_index, etc.).

Use this tool after indexing a large file with `rag_index`, or whenever the user asks
a question that could be answered from previously indexed documents.

Optional filters:
- `document_id` — restrict search to a single document.
- `filename` — restrict search to chunks from one exact filename.
- `user_id` / `agent_id` / `chat_id` — restrict to chunks tagged with these values. If supplied
  explicitly, they must match the current runtime context.
- `tags` / `categories` — restrict to chunks matching any of the provided normalized values.
- `limit` — number of results (default configured server-side, usually 5).
