API Reference
Core Functions
Section titled “Core Functions”retrieve(options)
Section titled “retrieve(options)”Run the full retrieval pipeline. Returns a RetrievalBundle.
const bundle = await retrieve({ store: CorpusStore, // required roleId: string, // required taskText: string, // required overlay: RoleOverlay | null, // null = shared corpus only packetContextSummary?: string, lexicalOnly?: boolean, // skip semantic search embeddingModel?: string, // Ollama model (default: nomic-embed-text) ollamaUrl?: string, // default: http://localhost:11434});CorpusStore
Section titled “CorpusStore”SQLite-backed document and chunk storage.
const store = new CorpusStore(":memory:"); // or file pathstore.insertDocument(doc);store.insertChunk(chunk);store.searchFTS(query, limit);store.insertEmbedding(chunkId, vector, model);store.close();ingestFixtureCorpus(store, path)
Section titled “ingestFixtureCorpus(store, path)”Load a JSON corpus file into a store. Returns { documents_ingested, chunks_ingested, errors }.
ingestCorpusData(store, corpusData)
Section titled “ingestCorpusData(store, corpusData)”Same as above but accepts parsed JSON directly.
validateOverlay(data)
Section titled “validateOverlay(data)”Validate a role overlay JSON against the schema. Returns { valid, errors }.
validateBundle(data)
Section titled “validateBundle(data)”Validate a retrieval bundle JSON against the schema. Returns { valid, errors }.
Pipeline Functions
Section titled “Pipeline Functions”These are used internally by retrieve() but are exported for testing and custom pipelines.
| Function | Purpose |
|---|---|
buildQuery(taskText, overlay, context?) |
Overlay-aware query expansion |
lexicalSearch(store, ftsQuery, limit?) |
BM25 via FTS5 |
semanticSearch(store, queryText, limit?, model?, url?) |
Embedding similarity |
mergeCandidates(lexical, semantic) |
Union + deduplicate |
metadataFilter(candidates, overlay) |
Apply governance rules |
rerank(candidates, overlay) |
Weighted scoring + diversity |
assembleBundle(input) |
Produce final RetrievalBundle |
Key Types
Section titled “Key Types”RetrievalBundle
Section titled “RetrievalBundle”The governed output of every retrieval operation.
| Field | Type | Description |
|---|---|---|
version |
"1.0" |
Schema version |
role_id |
string |
Which role this was retrieved for |
query |
QueryTrace |
Full audit trail of query construction |
summary |
RetrievalSummary |
Aggregate stats |
selected |
RetrievedChunk[] |
Top evidence with scores |
rejected |
RejectedCandidate[] |
Why candidates were excluded |
provenance |
ProvenanceSummary |
Trust and freshness posture |
warnings |
RetrievalWarning[] |
Degradation signals |
diagnostics |
RetrievalDiagnostics |
Performance stats |
RoleOverlay
Section titled “RoleOverlay”Declarative per-role retrieval configuration.
| Field | Type | Description |
|---|---|---|
role_id |
string |
Role identifier |
mission |
string |
What this role retrieves for |
anti_goals |
string[] |
What it must NOT drift into |
vocabulary |
RoleVocabulary |
Boost/suppress terms |
source_policy |
SourcePolicy |
Preferred/forbidden sources |
retrieval_policy |
RetrievalPolicy |
Weights and limits |
synthesis_policy |
SynthesisPolicy |
Output guidance |
eval_profile |
EvalProfile |
Golden set for testing |
FallbackDecision
Section titled “FallbackDecision”| State | Action | When |
|---|---|---|
healthy |
continue | Normal operation |
no_overlay |
continue | Shared corpus only |
no_strong_match |
warn | Bundle is empty or weak |
stale_dominant |
warn | Majority of evidence is outdated |
forbidden_hit |
continue | Forbidden sources removed |
conflicting |
warn | High-trust sources disagree |