use serde_json::Value;
use super::Verb;
pub const HELP: Verb = Verb {
word: "help",
params: &[],
flags: &[],
summary: "every op this engine has a word for, and what each is for",
detail: "One row per op the engine answers: the line to type, one \
sentence on what it is for, the page under that, and whether the \
op is spoken by an operator or by a program. It takes no address, \
so its subject is EVERY channel this box holds — two engines may \
be at two protocol versions, and a union would say they are one \
thing. It is also the table every seat's interface parity is \
judged against, so the pane an operator reads and the ledger that \
reddens for a missing control come off one answer.",
};
pub const SEARCH: Verb = Verb {
word: "search",
params: &["text"],
flags: &[],
summary: "find text across balls, workspaces and conversations",
detail: "One row per hit: what kind of thing carried it, which field of \
that thing, how far into it, and the words around it — plus what \
the engine could not read, which is a different claim from \
finding nothing there. It takes no address, so its subject is \
EVERY channel this box holds and the answer is printed under the \
name of the channel each came down. A hit is READ and not \
actionable: its workspace and project are the engine's own \
absolute paths rather than the names every gesture carries, so \
feeding one back earns `unknown workspace` (yog bl-ef16).",
};
pub fn help() -> Value {
HELP.built(Vec::new(), &[])
}
pub fn search(text: String) -> Value {
SEARCH.built(vec![text], &[])
}