Skip to main content
One endpoint, on purpose. A lane is a level, and a second endpoint for one concept is a second vocabulary. Company, partitions and lanes come back together — and where a tier does not exist in the schema it is reported as absent with the reason, not omitted.

The tree

recallable_beliefs counts only candidate, active and confirmed claims — the same set GET /v1/brain/beliefs returns by default.

lanes: [] means the tier does not exist

An empty lanes array here does not mean “you have no lanes configured”. It means the concept has no storage. absent.lanes is the field that says so, and it is always present.The same applies to level: "agent" on the beliefs endpoint: it is not a filter that returns nothing, it is a value the schema cannot produce. Asking for it is 400 invalid_input rather than an empty list.

partition_model is an open question, reported rather than resolved

The contract models N named partitions per project. The brain schema makes a partition be a knowledge base. Those are different models and neither has been ruled on, so this response reports the schema — knowledge-base rows as partitions — and says in absent.partition_model that it is doing so. Practical consequence: do not write code that assumes a fixed number of partitions per project, and do not assume a partition name is stable across a future ruling.

Vocabulary

The DSL levels are company | team | agent. The stored scope values are org and project. This endpoint maps org → company and everything else → team, and reports the DSL word on every row. A reader who has to remember which of two vocabularies a field is in will eventually get it wrong, so only one appears here.