Open a brain
Brain.open creates the layout if the directory is empty and reopens it otherwise. Opening a brain is
not a request to install anything.
Supply the model
You supply the model. The SDK embeds none: what knowledge a source yields is the model’s judgment, and what gets stored is the protocol’s.CandidateProposer is any callable with that shape. It is the only place interpretation enters.
Ingest
ingest runs the four steps in order: register → delegate → validate → commit. Registering the same
bytes twice is a no-op, so this is safe to retry. See Ingestion for
the steps as separate calls, which is what you want when the model runs elsewhere.
Query
What comes back is an Evidence Bundle: data with its provenance, never prose.block_id is what keeps the answer checkable.
Narrowing conditions live on filters, and advice a planner may ignore lives on hints:
Prove what you got
Membership is provable inO(log n), without holding the rest of the module.
resolvable and member are different questions. A block can be a verifiable member of a version and
still not be readable — after a selective install, or a redaction. Membership proves; resolution
reads. brain.resolvability() reports the three-way split.Remove knowledge
Always plan first. Dropping canonical evidence is privileged: it cascades to everything derived from it, because a claim whose source was removed can no longer be justified.Publish
pack involves no network at all — the directory becomes a real OCI artifact any tool can copy. To
publish over the wire, and to install selectively:
Distribution
Tags move and digests do not, why a layer carries two identities, and what a selective install leaves
behind.