feat: add Qdrant vector store for enterprise-grade semantic intelligence

Phase 16: Vector intelligence (+3 tools = 104 total)

New tools:
- intel_semantic_search: Natural language search across all stored intelligence
- intel_similar_events: Find historically similar events for pattern matching
- intel_timeline: Chronological timeline of stored data with domain filtering

Architecture:
- vector_store.py: Qdrant client with FastEmbed (ONNX, bge-small-en-v1.5)
- Background worker queue (asyncio) for non-blocking storage
- Auto-populates from every Fetcher.get_json() call
- 40+ domain categories mapped for filtered search
- Graceful degradation: vector store is optional, all 101 existing tools work without it

Integration:
- Fetcher: new vector_store parameter, stores data after each successful fetch
- server.py: vector store init + worker lifecycle + 3 dispatch cases
- dashboard/app.py: vector store worker starts on dashboard boot
- intel_status: now includes vector store statistics
- pyproject.toml: [vector] optional dependency (qdrant-client, fastembed)

186/186 tests passing.
This commit is contained in:
Marc Shade
2026-03-08 09:29:43 -04:00
parent a43d07cb3e
commit bc75cf46f7
5 changed files with 797 additions and 8 deletions
+1
View File
@@ -22,6 +22,7 @@ dependencies = [
[project.optional-dependencies]
dashboard = ["starlette>=0.37.0", "uvicorn>=0.29.0"]
vector = ["qdrant-client>=1.7.0", "fastembed>=0.7.0"]
pdf = ["weasyprint>=62.0"]
dev = [
"pytest>=8.0.0",