How nicolas-systems/nicolas works
Nicolas is a tenant-aware evidence-gating product: users submit questions, and the runtime normalizes them, retrieves evidence, compiles facts, resolves claim support, enforces abstention, and returns a DecisionPacket. Separate branches handle document ingestion/connectors, admin and API-key security, and evaluation. Edges reflect calls visible in excerpts or relationships stated in the README; several services and API routes are indexed but unsampled, so their internal links are omitted.
Main entry points: runtime.py Runtime Orchestrator · api.py HTTP API · repositories.py Tenant Repository · ingestion.py Ingestion Service
Components 20
API & Security
- HTTP API
nicolas_product/api.py - Tenant Auth
nicolas_product/security.py
Source Ingestion
- Ingestion Service
nicolas_product/services/ingestion.py - Source Connectors
nicolas_product/connectors.py - Document Parsing
nicolas_product/parsing.py
Evidence Runtime
- Product Schemas
nicolas_product/schemas.py - Runtime Orchestrator
nicolas_product/runtime.py - Query Normalization
nicolas_product/services/normalization.py - Evidence Retrieval
nicolas_product/services/retrieval.py - Vector Search
nicolas_product/services/vector_index.py - Fact Compilation
nicolas_product/services/fact_compiler.py - Claim Decisions
nicolas_product/services/decision_engine.py - Answer Enforcement
nicolas_product/services/answer_enforcer.py - Baseline RAG
nicolas_product/services/baseline_rag.py - Tenant Repository
nicolas_product/repositories.py
Admin & Evaluation
- Admin Services
nicolas_product/services/admin.py - Evaluation Runner
nicolas_product/services/evaluation.py
Other components
- Questioner
- Content Sources
- API Client
Connections 25
- API Client → HTTP API: calls
README.md - HTTP API → Runtime Orchestrator: routes queries
nicolas_product/api.py - HTTP API → Tenant Auth: checks keys
README.md - Runtime Orchestrator → Query Normalization: normalizes
nicolas_product/runtime.py - Runtime Orchestrator → Evidence Retrieval: retrieves evidence
nicolas_product/runtime.py - Runtime Orchestrator → Fact Compilation: compiles facts
nicolas_product/runtime.py - Runtime Orchestrator → Claim Decisions: solves claims
nicolas_product/runtime.py - Runtime Orchestrator → Answer Enforcement: enforces answers
README.md - Runtime Orchestrator → Tenant Repository: reads and writes
nicolas_product/runtime.py - Evidence Retrieval → Tenant Repository: loads documents
nicolas_product/services/retrieval.py - Evidence Retrieval → Vector Search: searches
nicolas_product/services/retrieval.py - Vector Search → Tenant Repository: loads vectors
nicolas_product/services/vector_index.py - Baseline RAG → Evidence Retrieval: retrieves evidence
nicolas_product/services/baseline_rag.py - Ingestion Service → Source Connectors: fetches documents
nicolas_product/services/ingestion.py - Ingestion Service → Document Parsing: parses files
nicolas_product/services/ingestion.py - Ingestion Service → Tenant Repository: stores documents
nicolas_product/services/ingestion.py - Ingestion Service → Vector Search: indexes documents
nicolas_product/services/ingestion.py - Content Sources → Source Connectors: provides content
README.md - HTTP API → Ingestion Service: routes ingestion
README.md - HTTP API → Admin Services: routes admin
README.md - HTTP API → Evaluation Runner: routes evaluation
README.md - Admin Services → Tenant Repository: manages records
nicolas_product/services/admin.py - Evaluation Runner → Tenant Repository: loads cases
nicolas_product/services/evaluation.py - Evaluation Runner → Baseline RAG: compares baseline
nicolas_product/services/evaluation.py - Runtime Orchestrator → Product Schemas: exchanges packets
nicolas_product/runtime.py