Checks_CancelCheckRun
const url = 'https://junction-api.qualiastudios.dev/v1/accounts/example/checks/example/runs/example:cancel';const options = { method: 'POST', headers: {'X-API-Key': '<X-API-Key>', 'Content-Type': 'application/json'}, body: '{"name":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://junction-api.qualiastudios.dev/v1/accounts/example/checks/example/runs/example:cancel \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <X-API-Key>' \ --data '{ "name": "example" }'Cancels a running VLM or heuristic run: its pipeline run is
cancelled, which releases the credits it reserved, and the run ends
FAILED with “cancelled by” who asked. A VLM run still QUEUED behind
another ends so at once: it never starts and reserves nothing. Episodes
it had not read keep their issues. The check may be -: a run’s id
names one run. Needs what RunCheck needs (a write on the dataset).
FAILED_PRECONDITION for a run that has ended, one still starting its
pipeline run (ask again in a few seconds) and any other check’s run. A
pipeline cancel that answered late or failed but took ends the run all
the same. UNAVAILABLE when the pipeline could not be reached or did not
answer in time and the run does not read cancelled after: it still runs;
ask again. ABORTED when another cancel or end of a queued run keeps it
busy: nothing changed; ask again. NOT_FOUND outside the caller’s
workspace.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The account id.
The check id.
The run id.
Request Body required
Section titled “Request Body required ”Request for Checks.CancelCheckRun.
object
Accounts/{account}/checks/{check}/runs/{run} (check may be -).
Example generated
{ "name": "example"}Responses
Section titled “ Responses ”OK
One run of a check over a dataset, as RunCheck recorded it. Its id is the operation’s (RunCheckResponse.operation), so its events on the record name it too. A merged dataset is checked one upload at a time, one run each, named under the upload, but for VLM and REACH, which are one run named under the merged dataset.
Served by qds-api.
object
Accounts/{account}/checks/{check}/runs/{run}
Accounts/{account}/datasets/{dataset}: the dataset it checked (an upload, for each per-upload run of a merged dataset).
Accounts/{account}/operations/{operation}: the same id, as RunCheckResponse.operation and the record’s events name it.
Where it stands.
Why it failed; empty otherwise.
Episodes of the selection; 0 when it checked the whole dataset.
Issues and notes it opened (new ones, and ones a re-run had closed); set once it succeeded.
Open issues and notes it no longer found, dismissed as RESOLVED; set once it succeeded.
Who started it.
object
What kind of actor it is.
The person’s user id when kind is PERSON; empty otherwise.
The person’s display name at the time, for rendering without a lookup.
The rule code, or for a MODEL the Qualia model tier (e.g. “qualia-vlm”; “qualia” for any other model), when not a person.
The run a model or rule finding came from, when it has one.
The API key’s id when a person acted through one; empty for a session. Never the key itself.
Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.
object
How the principal authenticated.
The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.
The initiator’s display name at the time, never their email.
The user id of the key’s creator at the time. Not who used the key.
Who owned the key at the time.
The owning space’s id (a workspace or the organization) when
credential_owner is SPACE.
When RunCheck recorded it.
When it last moved; once it ended, when it ended.
The Task revisions it judged against, set once it planned: a VLM run’s Tasks, and the ones a heuristic run read duration bounds from. A run judges each Task at the revision its episodes’ links carry, never a newer one; empty when it read no Task.
A Task revision a run judged its episodes against.
object
Accounts/{account}/tasks/{task}
The Task’s display name, as that revision (or draft) has it.
The revision the episodes’ links carry (Episode.linked_task_revision); 0 when the run read the Task’s unpublished draft.
The VLM check’s.
object
The Qualia model tier that read (or reads) the episodes: the one asked for, or once the run answered, the one it reports. Empty while a run that named none has not answered.
The pipeline run that reads the episodes, a UUID; empty until it started. The gateway serves its status and settled credits.
Episodes planned for the model: linked to a published task.
Episodes of the selection left out: no published task.
Planned episodes the model could not read (no published video, a
refused call, an invalid answer). Their other issues are left as they
were. Each gets an open “not checked” issue (code not_checked) that
takes it out of KEPT, as a confident failure does; against a draft
task, or on an episode a person kept, it is a note. The next VLM
reading of the episode closes it, whatever its verdict.
Findings written, by verdict.
Failing findings: issues at CONFIDENT confidence or more, else notes.
Uncertain findings: notes.
Accounts/{account}/datasets/{dataset}/checks/{check}: the catalog checks a RunDatasetChecks run reads, by category then check id; empty for a run of the single VLM check.
A graph check run’s review health, computed once when its pipeline run ended; set once the run succeeded on a template with the review_health step.
object
The rules could read this run. When false, unavailable_code and
unavailable_reason say why; the numbers, rows, questions and checks
are unset.
Why not: “no_decisions” (no episode read), “no_task_review” (no observation was read), “no_task_map” (no upload of the run has a task discovery), “map_incomplete” (the map covers under 90% of the run’s episodes, e.g. after cuts), “partial_run” (the run read under 90% of the discovered episodes) or “invalid_input”.
Why not, in a sentence.
“review-health-v1”.
Sha256 of the frozen thresholds (CurationBench’s THRESHOLDS_SHA256).
Accounts/{account}/operations/{operation}: the prepare runs whose task discovery it read, one per upload.
Episodes read.
Of them, episodes whose observation was read.
Removals.
Removed_count / episode_count.
Episodes the discovery map calls successful.
Map_succeeded_count / episode_count.
The kept share less the share the map calls successful.
Removals whose observation says the task was completed (they deviated).
Removed_completed_count / removed_count.
Share of the run’s episodes the map covers.
Share of the run’s episodes judged against a Task linked to their own discovered task.
The contradiction rule ran: false when grouping_agreement is under 0.9.
Per task, largest first.
One task’s numbers.
object
The task’s display name in the discovery, else the Task’s label.
Its episodes in the run.
Of them, removals.
Of them, episodes the discovery map calls successful.
Removed_count / episode_count.
Map_succeeded_count / episode_count.
The kept share less the share the map calls successful.
At most three questions, in the rules’ order.
One question for a person, with example episodes.
object
The rule that asks it: “contradiction” (tasks may be mixed), “under_removal”, “over_removal” or “outcome_data”.
The question, in a sentence.
Why it is asked, with the numbers.
Contradiction: the tasks it fires on.
A task (or variant) the contradiction rule fires on.
object
The task’s display name in the discovery.
The variant’s name; empty for a whole task.
Its episodes in the run.
Of them, removals: a failing finding.
Of them, episodes the discovery map calls successful.
The SUCCESS references most of them were judged against, by episode id: a Task’s reference can live in another dataset.
Example episodes.
Where it is answered: “tasks” (the task grouping and the references), “miss_check” (the miss check below), or empty.
The rules of questions past the three, not shown.
The spot check.
object
The episodes, at most ten, picked reproducibly from the pool.
Every removal the map calls successful.
Wrong removals among the episodes that say the references or the Task may not fit the dataset (4).
The miss check; unset unless the run keeps too much.
object
The episodes shown, at most eight.
The rest of the queue, in removal-score order.
The whole queue.
Removals among the shown episodes that say the rest likely go too (5).
Episodes whose proposed labels did not publish. Their findings stand; a run above zero is partial.
The first 100 of those episodes, each with why.
An episode whose proposed labels did not publish.
object
Accounts/{account}/datasets/{dataset}/episodes/{episode}
Why, as the publisher answered.
Nobody saw the publication end: it may still land. Running the same reading again replays it.
The first 100 episodes counted in unread_count, each with why, in
the order the run planned them.
A planned episode the run could not read.
object
Accounts/{account}/datasets/{dataset}/episodes/{episode}
Why, in a sentence: no published video, a refused call, an invalid answer.
One line on a succeeded run that could not read every planned episode, e.g. “completed, 4 of 30 episodes not checked”; empty otherwise. The run’s state stays SUCCEEDED.
Example
{ "state": "STATE_UNSPECIFIED", "creator": { "kind": "KIND_UNSPECIFIED", "attribution": { "authentication": "AUTHENTICATION_UNSPECIFIED", "credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED" } }}default
Section titled “default ”Default error response
A refusal from the API itself.
object
The gRPC code name in upper case, e.g. NOT_FOUND.
Whether the same call may succeed if retried.
Empty, except when a dataset copy or move is refused: then one google.rpc.ErrorInfo with the refusal’s reason code, its domain and, in metadata, the datasets it names.
object
A refusal from the gateway before the call reaches the API, for example 401 bad or missing API key, 403 key lacks the scope or environment closed, 413 body too large.
object
What went wrong.
Example generated
{ "code": "example", "message": "example", "retryable": true, "details": [ {} ]}