Skip to main content

Crate thrall

Crate thrall 

Source
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 run does: 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.