Expand description
thrall — the foot: a tool-execution client for a yog server.
A thrall holds an operator-issued, foot-grade certificate and dials in to an engine it does not administer. Its entire wire surface is three acts: advertise what this box offers, wait on its mailbox for work, post the captures back. It asks nothing, it acts on nothing, and it never listens — the engine never speaks first.
docs/DESIGN.md states the role and the inherited invariants. yog’s
docs/REMOTE.md is the protocol authority thrall implements against; where
this crate and that document disagree, one of them is a bug.
What is built (DESIGN §4): the command line; the channel — the mTLS
dial, the version preface, the framing, the foot-grade check on this box’s
own leaf, and the entries an operator filed (bl-a4a5); and the config
this box offers from, with tools the element it advertises and
json the strict reads both spend (bl-05fe); the gestures a foot may
send with the run loop that spends them, over the
invocation nouns the routing leg carries (bl-a2ea);
and the executor behind the loop’s hand-off, with the serve read
that starts the whole thing from a data root paths names (bl-4cda).
thrall is complete as a foot at that point — advertise, wait, execute, answer — and what remains is what it deliberately is not: it holds no world, it never listens, it never asks and it never acts.
Modules§
- channel
- The channel: thrall’s end of one wire to one engine (yog’s
docs/REMOTE.md§3, §5.4; DESIGN §3.1). - cli
- The command line, as a pure function.
- config
- The operator’s document (yog’s
docs/REMOTE.md§5.2, §5.4; DESIGN §3.4): what this box offers, and — by dropping half of it — what it says it offers. - exec
- Running one invocation (yog’s
docs/REMOTE.md§5.2, §5.3; DESIGN §3.4, §3.5): the far end of the routing leg, where a tool actually happens. - gestures
- The three gestures a foot may send, and the answers it may receive
(yog’s
docs/REMOTE.md§4.2, §5.1, §5.3). - invocation
- What crosses the routing leg (yog’s
docs/REMOTE.md§5.3): the work a foot is handed, and the answer it hands back. - json
- Strict field reads, shared by everything that decodes JSON here.
- paths
- Where this box keeps what the operator gave it.
- run
- The loop (yog’s
docs/REMOTE.md§5.3, §5.4): the whole of what a foot does, for as long as it does anything. - serve
- What
thrall rundoes: read this box, and serve every channel it holds until they have all stopped. - tools
- The advertised element (yog’s
docs/REMOTE.md§5.1): the three facts a tool host presents about one tool, and the one spelling of them.