balthasar
Memory for agents. Short-term and long-term in one layer, with its own store — not a library a harness links.
The four things it holds
| the window | what is in the context right now |
| the session | what happened in this run, verbatim — the only copy of what was said |
| the project | what is true here, and how things are done |
| everywhere | what is true of you, whichever project you are in |
And the ladder between them: eight kinds of evidence and two floors, deciding what is allowed to climb from one level to the next.
At a terminal
balthasar remember "we run the tests with make test" balthasar recall "tests" --explain balthasar why <handle> the evidence, not just the number balthasar decay what today's forgetting would take, before it takes it balthasar sessions which runs this project has had balthasar serve listen for other programs
Where a store lives
<project>/balthasar/<tool>/project.db what is true here, kept <project>/balthasar/<tool>/<session>/memory.db that run's scratch, dies with it <project>/balthasar/<tool>/<session>/transcript.db ~/.local/share/balthasar/<tool>/global.db yours, everywhere
The store lives in the project, so renaming a checkout moves its memory rather than orphaning it. Which store a given directory gets is its own question.
The shape of it
balthasar
twelve cratesOne store per tool. A harness and a shell reaching the same daemon are two memories, and neither is opened on the chance that it might be. The kernel names the caller, so a peer reads its own memory rather than everybody's.