pub fn version() -> String {
format!("{} {}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"))
}
pub fn usage() -> String {
format!(
"{}
lernie is the seat: the operator's face on a yog server. It dials in over
mTLS, asks and acts, and paints what comes back. It holds no world, runs no
agent and executes nothing.
THE NAME HAS TWO ERAS. lernie through 0.0.x was the agent-loop engine, which
continues under the name litany. lernie 0.1.0 and above is this seat. The
version is the only rule that separates them.
usage: lernie open the window on this box's channels
lernie [--json] <verb> [argument…]
lernie start <workspace> <goal>
lernie ask <envelope>
lernie entries
lernie help [<verb>]
lernie [--version | --help]
WITH NO ARGUMENTS AT ALL lernie opens its window: a roster of every workspace
across every channel this box holds, the aimed wall's conversations, the
selected conversation and a composer under it. That is what a seat is; every
verb below is a way of reaching one gesture without one.
The gestures, typed. Each becomes the envelope the boundary already carries
and goes down the channel its workspace names, and the exit code is 0 when the
last reply says ok.
WHAT IT PRINTS. By default the reply is RENDERED: the rows of a listing, the
entries of a transcript, the sentence a receipt is. `--json` prints the frames
exactly as they crossed instead, one envelope per line, which is what a script
wants. The flag goes BEFORE the word — everything after the word is the
gesture, verbatim, including a message whose text happens to start with a
dash.
{}
And the four words this binary answers itself, with no channel and no engine
up. Each has its own page too: `lernie help <word>` reaches every entry in
both lists.
{}
--json print the reply frames as they crossed, not rendered
-V, --version print the name and version
-h, --help print this
What it reads, all of it provisioned by hand and none of it ever written by
lernie: this box's own channel at <data root>/wire/, and one channel per
directory under <data root>/wire/workspaces/. The data root is
$XDG_DATA_HOME/lernie, or $HOME/.local/share/lernie.
See docs/DESIGN.md for the role and the module map, and yog's docs/REMOTE.md
for the protocol lernie implements against.",
version(),
crate::verbs::help::roster(),
crate::verbs::help::doors()
)
}