List runs (AGDX_AGENT_LIST), filtered and paged. Every field but v is
optional: an empty request lists the caller’s runs from the newest. limit
is clamped to MAX_PAGE_SIZE and cursor
is the opaque continuation from the previous page, the kv scan pattern.
A run’s metadata, returned by submit, status, and list. updated_at_micros
is the time of the last state mark (equal to created_at_micros until one
lands), and detail is the terminal summary (an error message on failed,
absent when clean), so a console renders a run without a second read.
cancel_requested is the recorded cancel intent, not a state: the engine
observes it at its next step boundary and routes it into its own
cancellation path, and the state moves only when the engine reports it.
Submit a task to an agent or workflow (AGDX_AGENT_SUBMIT). agent_id names
the target, run_id lets the caller assign the run id (else the backend
mints one), params is scalar control, and input is the opaque task body.
A per-run resource ceiling carried on submit: caps across independent
dimensions, each optional (absent is unbounded on that dimension). A run that
crosses any cap is failed with a budget reason.
A run’s lifecycle state. A pinned snake-case vocabulary, additive. The
strum derives keep the display, parse, and static-str spellings identical
to the serde one by construction (ForkKind and ContentType set the
same pattern).