Expand description
grr ask — the natural-language entry point, powered by System One
models (TypeSafe’s Jev by default; any provider speaking the same
contract works by config — endpoint, model and key are all config).
The pattern is hierarchical route-and-fill: code selects the candidate
sets from the embedded Discovery index, a judgment picks the intended
one, then typed parameters are filled — and the request is assembled
through the same shared call path as grr api:
grr ask "show my unread messages" # plan (the default output)
grr ask "show my unread messages" --run # execute
grr ask "..." --service gmail # skip the service judgment
grr ask "..." --method gmail.users.messages.list # skip both, straight to paramsThree sequential judgments, each one small HTTP request:
- Service — a Choice over the 14 indexed services (+
none), criteria = what each service covers, derived from the index. - Method — a Choice over the chosen service’s methods (+
none), criteria = each method’s description. Depends on 1: the answer narrows the candidate set, so the two cannot share one request. - Parameters — one Choice per required parameter, all in a single
request: the questions map IS the object with one field per required
param, and the aggregated answers become the values. Options are the
param’s enum values when it declares them, else verbatim spans found
in the request (plus the universal
mealias for user-id params) — the model can only select among code-supplied candidates, never invent a value.
Planning is the default and the plan IS the output: --run executes
through the shared call path. A low-confidence method choice
(configurable, default 0.6) is flagged, not blocked: the model supplies
the probability, code owns the behavior.
Structs§
Functions§
- handle_
ask - THE
grr askhandler — the wire-up target for cli.rs.