Implement a `coderag query` CLI verb that consumes a `.coderag/index.db` produced by `coderag index` and returns matching chunks ranked by embedding similarity to a natural-language query.
Scope
- `coderag query [--db ] [--top-k N] [--format text|json] [--kind ] [--project ] [--namespace ] [--is-async]`
- Embed query with the same model the index used (`text-embedding-3-large`, 3072 dim)
- Apply structured filters (kind/project/namespace/is-async) BEFORE KNN where possible to narrow the search
- Run KNN against `chunk_embeddings` virtual table
- Default output: text with `relative_file_path:line_start fully_qualified_symbol_name score` and the chunk source body
- `--format json` emits machine-parseable output
Out of scope (this issue)
- Re-ranking with BM25 or other hybrid approaches
- MCP server interface (separate issue)
- Filters across child tables (`chunk_attributes`, `chunk_method_parameters`)
Implement a `coderag query` CLI verb that consumes a `.coderag/index.db` produced by `coderag index` and returns matching chunks ranked by embedding similarity to a natural-language query.
Scope
Out of scope (this issue)