Skip to main content

Module ask

Module ask 

Source
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 params

Three sequential judgments, each one small HTTP request:

  1. Service — a Choice over the 14 indexed services (+ none), criteria = what each service covers, derived from the index.
  2. 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.
  3. 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 me alias 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§

AskArgs

Functions§

handle_ask
THE grr ask handler — the wire-up target for cli.rs.