nervネルフ

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.

verbdoesrole
observetake a turn into this run's record, as it settlescore
replayeverything a run said, in ordercore
sessionswhich runs this project has hadcore
amendrevise a turn after it settledextension
recall · remember · forget · whysearch, keep, let go, and show the evidence — the four a model is given as toolsextension
scrolla run's history a page at a time, so an elided tool result can be read backextension
planwhat to keep, mask, drop or summarise when the window is over budgetextension
used · outcomewhat a turn did with what it was given, and how that wentextension
model · resumewhich model a run talks to; where the store thinks it left offextension
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

doorverbs
socketidentity tell inbox kin role status stop adopt adopted mint minted — one program asking another session
toolwhoami 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

commanddoes
toolsevery 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
verbswhat 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.

verbswhat 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.
clientthe 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.
acknowledgeclear the installed packages, so their declarations may run
--json · --cborwhich encoding the reply comes back in

Coordinated — everything magi drives

needswhat a coordinator may tell this program, in its own vocabulary
configuretake 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.

A setting a program declares must change something. A 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.