Verbs
What each door answers, and what it deliberately does not.
balthasar
The surface is small on purpose. It is not a mirror of what balthasar can do; it is the handful of things another program has a real reason to ask a memory layer.
These are the memory role’s verbs. The core three are what any memory
layer owes; the rest it may refuse by name, and magi carries on with less — see
swapping a program.
| verb | does | role |
|---|---|---|
observe | take a turn into this run's record, as it settles | core |
replay | everything a run said, in order | core |
sessions | which runs this project has had | core |
amend | revise a turn after it settled | extension |
recall · remember · forget · why | search, keep, let go, and show the evidence — the four a model is given as tools | extension |
scroll | a run's history a page at a time, so an elided tool result can be read back | extension |
plan | what to keep, mask, drop or summarise when the window is over budget | extension |
used · outcome | what a turn did with what it was given, and how that went | extension |
model · resume | which model a run talks to; where the store thinks it left off | extension |
prompt, run and eval are absent and stay absent. A memory layer that can be told to run something is not a memory layer.melchior
| door | verbs |
|---|---|
| socket | identity tell inbox kin role status stop adopt adopted mint minted — one program asking another session |
| tool | whoami about list send ask reply inbox crew claim claims release assign task handoff disband stop role status attention trouble announce adopt help — what a model calls |
identity and tell on the socket are whoami and
send on the tool door, and they are not aliases: one answers a program with a
record, the other a model with a paragraph.
No verb here runs anything, and melchior's own tests refuse one named run,
shell, exec or eval.
casper
| command | does |
|---|---|
tools | every tool it offers, as declarations a harness can register |
run <tool> | one call, arriving as JSON on stdin |
surface <tool> | hold rows on the harness's screen and exchange frames |
verbs | what it answers, on each of its doors |
run is deliberately not reachable over the socket. casper's job is running programs, and a socket that runs commands is a remote shell wearing a friendly name. The spawn link carries the trust instead.Everywhere — the floor
Every program in the family answers these, in the reply shape, on its command line. A
family where one program can be asked what it speaks and another cannot has stopped being
one. gate-family.sh holds each of them to it on the merge path.
verbs | what this program answers, and on which door. Everything it lists, it dispatches — that is one of the two rules that is tested rather than reviewed. |
client | the Lua client library for its surface, as source. A program whose surface is not reached from a VM still answers, saying so — silence is not parseable. |
acknowledge | clear the installed packages, so their declarations may run |
--json · --cbor | which encoding the reply comes back in |
Coordinated — everything magi drives
needs | what a coordinator may tell this program, in its own vocabulary |
configure | take that configuration, as Lua on stdin, and say what it did with each name |
magi answers neither: it coordinates rather than being coordinated, and there is nothing above it to hand it settings. A setting the far side does not recognise comes back named — "refused" without a name is not something a coordinator can act on.
needs entry that nothing reads is the same sin as a verb that is advertised and refused, one level down: a coordinator sets it, is told it was taken, and the behaviour never moves.