cd09a6ad26
AI-foundation slice 1 (per docs/discovery/06). Adds the embeddings abstraction that semantic search / near-dup / find-similar will build on: IEmbeddingProvider with a NullEmbeddingProvider (AI-off: IsAvailable=false, empty vectors) and an OllamaEmbeddingProvider (/api/embeddings, nomic-embed-text). DI registers embeddings by AI mode (Ollama local, else Null). Kept separate from IAiProvider since embeddings are a distinct model/capability. AI remains fully optional — callers fall back to lexical search when unavailable. Buildable/testable without a live Ollama; unit test locks the Null fallback contract. Build + all 41 tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>