melchior
The model, and the other agents on this machine: who is running, how each stands to this one, what it may say to them, and what it may not.
What it owns
- The catalog. Which providers exist, which credential each takes, what protocol each speaks, and what this machine could therefore talk to.
- Naming. This session's name, in the form other sessions see:
project/role/id. It names the session because it can see the namespace and magi cannot. - The walls. Which session may reach which — see sessions.
Where sessions live
$XDG_RUNTIME_DIR/melchior/ myproject/ one directory per project alpha-rho a socket, named by the id and nothing else iota-mu iota-mu.parent "alpha-rho": who started it
There is no server for the layer as a whole. Every session binds its own socket and answers for itself, so the directory is the registry — a process that died did not get to remove itself from a list, and a socket nobody answers is discovered on the first call rather than trusted.
At a terminal
melchior models what this machine could talk to melchior ask run a turn; an Ask on stdin melchior needs what a coordinator may tell it melchior configure take configuration, as Lua on stdin melchior serve bind this session's socket and answer for it melchior models --cbor any of them, as bytes
The shape of it
melchior
one crate, by moduleNo verb here runs anything. It sends messages, reads an inbox, and says who is listening — deliberately, and its own tests refuse a verb named
run, shell, exec or eval. That is why magi can grant the agent tool in advance without a prompt.