# klieo-embed-common

Shared `Embedder` trait + `DummyEmbedder` for klieo memory backends.

Before W3.A17 the trait was duplicated byte-for-byte across
`klieo-memory-sqlite::embedder` and `klieo-memory-qdrant::embedder`.
A downstream embedder (Ollama, OpenAI, fastembed, etc.) needed two
`impl Embedder` blocks. This crate is the single home; both memory
crates re-export from here so their public APIs stay source-stable.

## Features

- **Default** — `Embedder` trait + `DummyEmbedder` (zero vectors).
- **`test-utils`** — adds `FakeEmbedder` (deterministic per-text
  hashing) for downstream test harnesses.

## Example

```rust,ignore
use klieo_embed_common::{DummyEmbedder, Embedder};

let e = DummyEmbedder;
let vecs = e.embed(&["hello".into()]).await?;
assert_eq!(vecs[0].len(), e.dimension());
```
