Query page — retrieval and synthesis in two explicit stages
The query page never blurs together "what the vault found" and "what
the model said about it". Stage one retrieves document chunks through
the vault's own gated search — the same search every other surface
uses, bounded by the caller's compartments. Stage two asks the locally
configured model to answer a question over exactly the chunk SET stage
one handed back, and nothing else: the client sends references, not text,
and the vault re-resolves each one itself before the model sees anything.
Each resolved passage is then widened to its enclosing section, so the
model reads more of those same documents than stage one displayed —
inside the same versions, under the same permissions, and the citation
still names the passage that matched. A reference to content the caller cannot reach — whether
fabricated outright or copied from somewhere real but out of reach —
resolves to nothing, the same honest "doesn't cover" answer the vault
gives when nothing was asked for at all. Nothing about that answer
reveals which case actually happened.
An unconfigured vault refuses synthesis too
- Given a vault deployment with no portal configuration
- When a visitor asks the portal to synthesize an answer
- Then the portal refuses service entirely
A denial explains nothing
- Given a portal whose vault denies its visitor
- When the visitor asks the portal to synthesize an answer
- Then the answer is a bare denial with no reason attached
Asking nothing yields the vault's honest admissionstack
- Given a signed-in vault member with their own compartment
- When they ask the portal to synthesize an answer with no chunks at all
- Then the vault says the corpus does not cover it
- And no citations come back
A fabricated chunk reference earns no answerstack
- Given a signed-in vault member with their own compartment
- When they ask the portal to synthesize an answer from a chunk that was never retrieved
- Then the vault says the corpus does not cover it
- And no citations come back