open-standards/wai/wai-quantum/schemas/tools.v1.json
Transaction Science 9258a0739f wai-quantum contract over views, the answer layer, correctness records and the harness: their schemas, the view's tool, the basis in the views, and the stored seal for 0.7.0
The apps branch's documents join the version contract. The answer layer's
documents (wai.quantum.answer/1: an answer read, carried out, a seal's
request and result, a stored answer checked), described as a draft whose form
may change before the extension settles; a correctness record and its corpus
(wai.quantum.telemetry/1); the views page's manifest
(wai.quantum.views-bundle/1); and the command line's harness report, corpus
and token counts (wai.quantum.eval-report/1, eval-answers/1, token-cost/1).
The engine's test holds every answer of the layer's conformance set (read,
carried out, half arrived, and stored and verified), records, the corpus and
the committed manifest to them; the eval tests hold a scripted run's report,
a model server's, the corpus and the committed token counts; check_schemas.py
holds the committed documents too. The tool and diagnostic schemas take the
answer layer's outcomes, dropped and defaulted.

The result view's own tool, poll_quantum_job, listed only to a host that
draws views, answers to the job's schema, and the strict test holds it.

The basis rename reaches the views: a compile's words and its view name the
gate set by its basis (both read the certificate's old target), and a test in
each holds it.

The service's job summary now lives in engine::views (the apps branch moved
it there); it carries the durable branch's set summary and the processor
packages' energy wording with it.

The answer set's stored seal was made at 0.6.16; the values it seals name
their engine, so it is written again at 0.7.0 (WAI_ANSWER_BUNDLE_WRITE=1).
The views crate's lock moves to wai-quantum 0.7.0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:42:54 -04:00

2100 lines
51 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.transaction.science/Transaction-Science/open-standards/raw/branch/main/wai/wai-quantum/schemas/tools.v1.json",
"title": "wai.quantum.tools/1",
"description": "The answers of the engine's tools, as the command line's --json, both MCP servers, the job service's checks and the Studio give them: lint, the reader's diagnostic codes, critique, the equivalence check, improve, the classical shortcuts, the methods, the rewrites, novelty, the workbench, convergence, the study, the repair, the debugger and the device targets. Each is a $def. A member named here keeps its name and type within this major version; members may be added.",
"$defs": {
"error": {
"type": "object",
"description": "A program that does not read: the problem, and its line, its diagnostic code, column and length when the reader names them.",
"required": [
"ok",
"error"
],
"properties": {
"ok": {
"const": false
},
"error": {
"type": "string"
},
"line": {
"type": [
"integer",
"null"
]
},
"code": {
"type": "string",
"description": "The reader's diagnostic code, as Q103; qasm_diagnostics says what each means."
},
"column": {
"type": "integer",
"minimum": 1,
"description": "Where the problem starts on its line, in characters from 1."
},
"length": {
"type": "integer",
"minimum": 0,
"description": "Its length on that line, in characters."
}
}
},
"lint": {
"description": "A program read as the engine reads it: its shape, or the first problem with its line.",
"anyOf": [
{
"type": "object",
"required": [
"ok",
"qubits",
"gates",
"bits",
"measured"
],
"properties": {
"ok": {
"const": true
},
"qubits": {
"type": "integer",
"minimum": 0
},
"gates": {
"type": "integer",
"minimum": 0
},
"bits": {
"type": "integer",
"minimum": 0
},
"measured": {
"type": "integer",
"minimum": 0
},
"dynamic_steps": {
"type": [
"integer",
"null"
],
"description": "The steps of a program that measures in the middle, resets or branches; null otherwise."
},
"diagnostics": {
"type": "array",
"items": {
"$ref": "#/$defs/diagnostic"
},
"description": "The reader's warnings and notes on a program it read, each with its code; present only when there are any."
}
}
},
{
"$ref": "#/$defs/error"
}
]
},
"diagnostic": {
"type": "object",
"description": "One of the reader's diagnostics: its code, what happens to the construct it is about, its message (without the line or the code), and where it stands.",
"required": [
"code",
"outcome",
"message"
],
"properties": {
"code": {
"type": "string"
},
"outcome": {
"enum": [
"refused",
"lowered",
"carried",
"preserved",
"warned"
]
},
"message": {
"type": "string"
},
"line": {
"type": "integer",
"minimum": 1
},
"column": {
"type": "integer",
"minimum": 1
},
"length": {
"type": "integer",
"minimum": 0
}
}
},
"diagnostic_code": {
"type": "object",
"description": "A row of a table of codes, the reader's (Q…) or the job layer's (J…): a code, its outcome, its meaning, and whether it is retired (a retired code keeps its row and its meaning, and nothing gives it).",
"required": [
"code",
"outcome",
"meaning",
"retired"
],
"properties": {
"code": {
"type": "string"
},
"outcome": {
"enum": [
"refused",
"retry",
"failed",
"lowered",
"carried",
"preserved",
"warned",
"dropped",
"defaulted"
]
},
"meaning": {
"type": "string"
},
"retired": {
"type": "boolean"
},
"table": {
"enum": [
"reader",
"job"
],
"description": "Which table the code is in: the reader's (Q…) or the job layer's (J…)."
}
}
},
"diagnostic_codes": {
"description": "The codes of both tables, the reader's (Q…) and the job layer's (J…), or the row of one code.",
"anyOf": [
{
"type": "object",
"required": [
"codes"
],
"properties": {
"codes": {
"type": "array",
"items": {
"$ref": "#/$defs/diagnostic_code"
}
},
"stable": {
"type": "string"
},
"job_codes": {
"type": "array",
"items": {
"$ref": "#/$defs/diagnostic_code"
},
"description": "The job layer's codes (J…): what a host refuses of a job it read, and why."
}
}
},
{
"$ref": "#/$defs/diagnostic_code"
}
]
},
"refusal": {
"type": "object",
"description": "A refusal as data: the message, every code in it (the last is the code), its outcome and meaning as the code's table gives them. A host that refuses for its own reasons gives the error alone.",
"required": [
"error"
],
"properties": {
"error": {
"type": "string"
},
"message": {
"type": "string"
},
"code": {
"type": [
"string",
"null"
]
},
"codes": {
"type": "array",
"items": {
"type": "string"
}
},
"outcome": {
"enum": [
"refused",
"retry",
"failed",
"lowered",
"carried",
"preserved",
"warned",
"dropped",
"defaulted"
]
},
"meaning": {
"type": "string"
}
}
},
"repair": {
"type": "object",
"description": "A program repaired on the lines its diagnostics flag alone: the program as it now is, each repair with the code it answered and every line it changed, and what needs a person, with the reader's advice.",
"required": [
"ok",
"changed",
"qasm",
"repairs",
"needs_person"
],
"properties": {
"ok": {
"type": "boolean",
"description": "Whether the program now reads."
},
"changed": {
"type": "boolean"
},
"qasm": {
"type": "string"
},
"repairs": {
"type": "array",
"items": {
"$ref": "#/$defs/repair_step"
}
},
"needs_person": {
"type": "array",
"items": {
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string"
},
"line": {
"type": [
"integer",
"null"
]
},
"message": {
"type": "string"
},
"advice": {
"type": "string"
}
}
}
}
}
},
"repair_step": {
"type": "object",
"required": [
"code",
"by",
"edits"
],
"properties": {
"code": {
"type": "string"
},
"rule": {
"type": "string"
},
"by": {
"enum": [
"engine",
"proposal"
]
},
"flagged": {
"type": "array",
"items": {
"type": "integer"
}
},
"edits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"line": {
"type": "integer"
},
"before": {
"type": [
"string",
"null"
]
},
"after": {
"type": [
"string",
"null"
]
}
}
}
}
}
},
"debug_step_point": {
"type": [
"object",
"null"
],
"description": "A step of the program: its place, its kind, its line, what it does and on which qubits.",
"properties": {
"step": {
"type": "integer"
},
"kind": {
"type": "string"
},
"op": {
"type": "integer"
},
"line": {
"type": [
"integer",
"null"
]
},
"label": {
"type": "string"
},
"qubits": {
"type": "array",
"items": {
"type": "integer"
}
},
"bit": {
"type": "integer"
},
"final": {
"type": "boolean"
}
}
},
"debug_step": {
"type": "object",
"description": "The engine's state at one point of a program's path: where it is, the measurements decided on the way and their weight, each qubit's Bloch vector, a reduced state and an entanglement measure when asked, and the state's digest and amplitudes.",
"required": [
"ok",
"method",
"position",
"at_end",
"decisions",
"outcomes",
"weight",
"classical",
"state"
],
"properties": {
"ok": {
"const": true
},
"method": {
"type": "string"
},
"accuracy": {
"type": "object",
"description": "The method's accuracy class and what it promises.",
"properties": {
"class": {
"type": "string"
},
"note": {
"type": "string"
}
}
},
"qubits": {
"type": "integer"
},
"bits": {
"type": "integer"
},
"position": {
"type": "integer",
"description": "Steps taken from the start."
},
"at_end": {
"type": "boolean"
},
"next": {
"$ref": "#/$defs/debug_step_point"
},
"last": {
"$ref": "#/$defs/debug_step_point"
},
"decisions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"position": {
"type": "integer"
},
"step": {
"type": "integer"
},
"kind": {
"type": "string"
},
"line": {
"type": [
"integer",
"null"
]
},
"qubit": {
"type": "integer"
},
"bit": {
"type": [
"integer",
"null"
]
},
"outcome": {
"type": "integer"
},
"p": {
"type": "number"
},
"by": {
"type": "string"
}
}
}
},
"outcomes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 1
}
},
"weight": {
"type": "number",
"description": "The path's probability so far."
},
"classical": {
"type": "string",
"description": "The classical bits so far, the highest first."
},
"bloch": {
"type": "array",
"items": {
"type": "object",
"properties": {
"qubit": {
"type": "integer"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
},
"length": {
"type": "number"
},
"purity": {
"type": "number"
},
"p1": {
"type": "number"
}
}
}
},
"reduced": {
"type": "object",
"description": "The reduced state of the qubits asked for: its density matrix, purity and entropy."
},
"entanglement": {
"type": "object",
"description": "An entanglement measure across a cut: the entropy of a pure state, or the logarithmic negativity of a mixed one."
},
"ideal": {
"type": "object",
"description": "With noise: the same path without it, and the noisy state's fidelity to it."
},
"state": {
"type": "object",
"properties": {
"digest": {
"type": "string"
},
"norm": {
"type": "number"
},
"purity": {
"type": "number"
},
"nonzero": {
"type": "integer"
},
"of": {
"type": "integer"
},
"amplitudes": {
"type": "array",
"items": {
"type": "object"
}
},
"probabilities": {
"type": "array",
"items": {
"type": "object"
}
},
"trace": {
"type": "number",
"description": "With noise: the density matrix's trace."
}
}
},
"length": {
"type": "integer",
"description": "With length: the steps in the path."
},
"outline": {
"type": "array",
"description": "With outline: every step, in order.",
"items": {
"type": "object"
}
}
}
},
"debug_branches": {
"type": "object",
"description": "Every branch of a program at its measurements in the middle, each with its weight (exact for a noiseless Clifford program), and each leaf's path, outcomes and final distribution.",
"required": [
"ok",
"method",
"qubits",
"bits",
"tree",
"leaves",
"total_weight"
],
"properties": {
"ok": {
"const": true
},
"method": {
"type": "string"
},
"accuracy": {
"type": "object",
"description": "The method's accuracy class and what it promises.",
"properties": {
"class": {
"type": "string"
},
"note": {
"type": "string"
}
}
},
"weights": {
"type": "string"
},
"qubits": {
"type": "integer"
},
"bits": {
"type": "integer"
},
"tree": {
"type": [
"object",
"null"
],
"description": "The tree of branches, from the first measurement; null when there is none."
},
"leaves": {
"type": "array",
"items": {
"type": "object",
"properties": {
"leaf": {
"type": "integer"
},
"path": {
"type": "array",
"items": {
"type": "object"
}
},
"outcomes": {
"type": "array",
"items": {
"type": "integer"
}
},
"weight": {
"type": "number"
},
"weight_exact": {
"type": "string"
},
"final": {
"type": "array",
"items": {
"type": "object"
}
},
"final_outcomes": {
"type": "integer"
}
}
}
},
"total_weight": {
"type": "number"
},
"truncated": {
"type": "boolean"
},
"note": {
"type": "string"
}
}
},
"figures": {
"type": [
"object",
"null"
],
"properties": {
"min": {
"type": "number"
},
"median": {
"type": "number"
},
"max": {
"type": "number"
},
"of": {
"type": "integer"
}
},
"description": "The least, the median and the most of a figure across the device, and how many it has; null when the target gives none."
},
"target_summary": {
"type": "object",
"description": "A device target in brief: its name and hash, where it came from, its calibration snapshot, its qubits and pairs, each native gate's error and duration across the device, the native gate set it is compiled to, and its qubits' T1, T2 and readout error.",
"required": [
"name",
"hash",
"qubits",
"pairs"
],
"properties": {
"name": {
"type": "string"
},
"hash": {
"type": "string",
"description": "BLAKE3 of the target document's RFC 8785 text: what a receipt names."
},
"source": {
"type": "object",
"properties": {
"format": {
"type": "string"
},
"note": {
"type": "string"
}
}
},
"calibration": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"timestamp": {
"type": "string"
}
}
},
"qubits": {
"type": "integer"
},
"pairs": {
"type": "integer"
},
"gates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"gate": {
"type": "string"
},
"qubits": {
"type": "integer"
},
"where": {
"type": "integer"
},
"error": {
"$ref": "#/$defs/figures"
},
"duration_ns": {
"$ref": "#/$defs/figures"
}
}
}
},
"native": {
"type": "object",
"description": "The compiler's gate set the target's gates hold, whether exactly, and how each is costed."
},
"t1_us": {
"$ref": "#/$defs/figures"
},
"t2_us": {
"$ref": "#/$defs/figures"
},
"readout_error": {
"$ref": "#/$defs/figures"
},
"view": {
"type": "object",
"description": "With view: each qubit's place and errors and each pair's error, to draw the coupling map."
},
"document": {
"$ref": "target.v1.json"
}
}
},
"targets": {
"type": "object",
"description": "The device targets this host knows: the built-in ones (all synthetic) and the person's own, kept in a directory of theirs.",
"required": [
"built_in",
"yours"
],
"properties": {
"built_in": {
"type": "array",
"items": {
"$ref": "#/$defs/target_summary"
}
},
"yours": {
"type": "array",
"items": {
"$ref": "#/$defs/target_summary"
}
},
"kept_in": {
"type": [
"string",
"null"
]
},
"note": {
"type": "string"
}
}
},
"measures": {
"type": "object",
"description": "A program's measures, computed by the engine.",
"required": [
"ok",
"qubits",
"gates",
"depth",
"two_qubit",
"t_count",
"clifford"
],
"properties": {
"ok": {
"const": true
},
"qubits": {
"type": "integer"
},
"bits": {
"type": "integer"
},
"gates": {
"type": "integer"
},
"one_qubit": {
"type": "integer"
},
"two_qubit": {
"type": "integer"
},
"three_qubit": {
"type": "integer"
},
"t_count": {
"type": "integer"
},
"non_clifford": {
"type": "integer"
},
"clifford": {
"type": "boolean"
},
"depth": {
"type": "integer"
},
"two_qubit_depth": {
"type": "integer"
},
"measured": {
"type": "integer"
},
"dynamic": {
"type": "boolean"
},
"by_gate": {
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
"fidelity_model": {
"type": "object",
"description": "A fidelity under reference error rates: a model of a device, not a run.",
"required": [
"estimate"
],
"properties": {
"estimate": {
"type": "number"
},
"rates": {
"type": "object",
"properties": {
"one_qubit": {
"type": "number"
},
"two_qubit": {
"type": "number"
},
"readout": {
"type": "number"
}
}
},
"note": {
"type": "string"
}
}
},
"smells": {
"type": "array",
"items": {
"$ref": "#/$defs/smell"
}
},
"inputs": {
"type": "object",
"additionalProperties": {
"type": "integer"
},
"description": "A generator's inputs, when it was read at them."
}
}
},
"smell": {
"type": "object",
"required": [
"kind",
"message",
"lines",
"fixable"
],
"properties": {
"kind": {
"type": "string"
},
"message": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "integer"
}
},
"ops": {
"type": "array",
"items": {
"type": "integer"
}
},
"qubits": {
"type": "array",
"items": {
"type": "integer"
}
},
"fixable": {
"type": "boolean"
}
}
},
"critique": {
"description": "A program's measures and its smells, each with its lines; or why it does not read.",
"anyOf": [
{
"$ref": "#/$defs/measures"
},
{
"$ref": "#/$defs/error"
}
]
},
"equivalence": {
"type": "object",
"description": "Whether two programs are the same circuit up to a global phase, and how the engine decided.",
"required": [
"verdict",
"how",
"why"
],
"properties": {
"verdict": {
"enum": [
"equivalent",
"different",
"unchecked"
]
},
"how": {
"enum": [
"tableau",
"exact",
"rewrites",
"random",
"state",
"shape",
"none"
],
"description": "tableau, exact and rewrites are proofs; state is a proof of the same state from |0…0⟩; random is evidence, not proof; shape: they differ in their shape; none: unchecked."
},
"why": {
"type": "string"
},
"global_phase": {
"type": [
"number",
"null"
],
"description": "The global phase between them, in units of π."
},
"steps": {
"type": "integer",
"description": "rewrites: the checked steps to nothing."
}
}
},
"improve": {
"description": "The program with its smells fixed, all together and each alone, each candidate checked against the program; a candidate found different is never given.",
"anyOf": [
{
"type": "object",
"required": [
"ok",
"base",
"candidates"
],
"properties": {
"ok": {
"const": true
},
"base": {
"$ref": "#/$defs/measures"
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"qasm",
"changes",
"measures",
"equivalence"
],
"properties": {
"label": {
"type": "string"
},
"qasm": {
"type": "string"
},
"changes": {
"type": "array",
"items": {
"type": "string"
}
},
"measures": {
"$ref": "#/$defs/measures"
},
"equivalence": {
"$ref": "#/$defs/equivalence"
}
}
}
}
}
},
{
"$ref": "#/$defs/error"
}
]
},
"route": {
"type": "object",
"required": [
"route",
"answers",
"applies",
"why"
],
"properties": {
"route": {
"type": "string"
},
"answers": {
"type": "array",
"items": {
"type": "string"
}
},
"applies": {
"type": "boolean"
},
"why": {
"type": "string"
},
"memory_bytes": {
"type": "number"
},
"log2_work": {
"type": "number"
},
"seconds_at_reference": {
"type": "number"
},
"size": {
"type": "object"
}
}
},
"shortcuts": {
"description": "Every exact classical route the engine knows for a program, priced on it, and the cheapest for each question.",
"anyOf": [
{
"type": "object",
"required": [
"ok",
"qubits",
"gates",
"routes",
"cheapest",
"summary"
],
"properties": {
"ok": {
"const": true
},
"qubits": {
"type": "integer"
},
"gates": {
"type": "integer"
},
"thorough": {
"type": "boolean"
},
"routes": {
"type": "array",
"items": {
"$ref": "#/$defs/route"
}
},
"cheapest": {
"type": "object",
"description": "For counts, amplitudes, expectations and one_qubit_expectations: the cheapest route that answers it, or null.",
"additionalProperties": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"required": [
"route"
],
"properties": {
"route": {
"type": "string"
},
"memory_bytes": {
"type": "number"
},
"log2_work": {
"type": "number"
},
"seconds_at_reference": {
"type": "number"
}
}
}
]
}
},
"summary": {
"type": "string"
},
"reference_rate": {
"type": "number",
"description": "Operations a second the times assume."
},
"note": {
"type": "string"
}
}
},
{
"$ref": "#/$defs/error"
}
]
},
"method": {
"type": "object",
"required": [
"method",
"accuracy",
"circuits",
"max_qubits",
"answers"
],
"properties": {
"method": {
"type": "string"
},
"accuracy": {
"type": "string"
},
"circuits": {
"type": "string"
},
"max_qubits": {
"type": "integer"
},
"max_cut": {
"type": "integer"
},
"available": {
"type": "boolean",
"description": "false when this build or this machine lacks it."
},
"answers": {
"type": "array",
"items": {
"type": "string"
}
},
"options": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"methods": {
"type": "object",
"required": [
"methods"
],
"properties": {
"methods": {
"type": "array",
"items": {
"$ref": "#/$defs/method"
}
}
}
},
"draw": {
"type": "object",
"description": "A program's circuit: as text (one wire per qubit), a standalone SVG drawing, a LaTeX (TikZ) picture, or a description in words for a screen reader, as asked.",
"properties": {
"text": {
"type": "string"
},
"svg": {
"type": "string"
},
"latex": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"rewrite": {
"description": "The rewrites: options (each rewrite the program admits), apply (the program with one made), simplify (every rewrite to a fixed point), prove (two programs equal by rewrites) or explain (how one program becomes another).",
"anyOf": [
{
"type": "object",
"required": [
"ok",
"options"
],
"properties": {
"ok": {
"const": true
},
"options": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"rule",
"why",
"result"
],
"properties": {
"id": {
"type": "string"
},
"rule": {
"type": "string"
},
"why": {
"type": "string"
},
"gates": {
"type": "array",
"items": {
"type": "integer"
}
},
"lines": {
"type": "array",
"items": {
"type": "integer"
}
},
"result": {
"type": "string"
}
}
}
},
"note": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"ok",
"unread"
],
"properties": {
"ok": {
"const": false
},
"unread": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"result",
"why"
],
"properties": {
"result": {
"type": "string"
},
"why": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"steps",
"gates",
"result"
],
"properties": {
"steps": {
"type": "array",
"items": {
"$ref": "#/$defs/step"
}
},
"gates": {
"type": "array",
"items": {
"type": "integer"
},
"minItems": 2,
"maxItems": 2
},
"result": {
"type": "string"
}
}
},
{
"type": "object",
"description": "prove: whether checked rewrites take the first followed by the second's inverse to nothing.",
"required": [
"verdict",
"how",
"why"
],
"properties": {
"verdict": {
"enum": [
"equivalent",
"unproved"
]
},
"how": {
"const": "rewrites"
},
"why": {
"type": "string"
},
"steps": {
"type": "integer"
}
}
},
{
"type": "object",
"required": [
"ok",
"found",
"a_steps",
"b_steps"
],
"properties": {
"ok": {
"const": true
},
"found": {
"type": "boolean"
},
"reordered": {
"type": "boolean"
},
"a_steps": {
"type": "array",
"items": {
"$ref": "#/$defs/step"
}
},
"b_steps": {
"type": "array",
"items": {
"$ref": "#/$defs/step"
}
},
"gates": {
"type": "array",
"items": {
"type": "integer"
}
},
"form": {
"type": "integer"
}
}
}
]
},
"step": {
"type": "object",
"required": [
"rule",
"why"
],
"properties": {
"rule": {
"type": "string"
},
"why": {
"type": "string"
}
}
},
"novelty": {
"description": "A program's structural distance to the known constructions and to programs given, each known construction it is found to be, and the measures it beats a reference on that the cost does not weigh.",
"anyOf": [
{
"type": "object",
"required": [
"ok",
"compared",
"nearest",
"rediscovers"
],
"properties": {
"ok": {
"const": true
},
"qubits": {
"type": "integer"
},
"compared": {
"type": "integer"
},
"nearest": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"required": [
"name",
"distance"
],
"properties": {
"name": {
"type": "string"
},
"distance": {
"type": "number"
}
}
}
]
},
"novelty": {
"type": [
"number",
"null"
]
},
"rediscovers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"route",
"distance"
],
"properties": {
"name": {
"type": "string"
},
"route": {
"type": "string"
},
"distance": {
"type": "number"
},
"how": {
"type": [
"string",
"null"
]
},
"prepares": {
"type": "boolean"
}
}
}
},
"unasked": {
"type": "array",
"items": {
"type": "object",
"required": [
"measure",
"candidate",
"reference"
],
"properties": {
"measure": {
"type": "string"
},
"candidate": {
"type": "number"
},
"reference": {
"type": "number"
}
}
}
}
}
},
{
"$ref": "#/$defs/error"
}
]
},
"discover_evaluate": {
"type": "object",
"description": "The engine's verdict on a generator against a workbench specification.",
"required": [
"verified",
"sizes"
],
"properties": {
"verified": {
"type": "boolean"
},
"strength": {
"type": "string",
"description": "The weakest check it passed: tableau, exact and state decide it; random is evidence."
},
"failure": {
"type": "string"
},
"sizes": {
"type": "array",
"items": {
"type": "object"
}
},
"cost": {
"type": "number"
},
"axes": {
"type": "array",
"items": {
"type": "integer"
},
"minItems": 2,
"maxItems": 2
},
"aberration": {
"type": "object"
}
}
},
"discover_archive": {
"type": "object",
"description": "A workbench archive's summary.",
"required": [
"spec",
"stats",
"front",
"cells"
],
"properties": {
"spec": {
"type": "string"
},
"task": {
"type": "string"
},
"axes": {
"type": "array"
},
"stats": {
"type": "object"
},
"joules_per_improvement": {
"type": [
"number",
"null"
]
},
"reference": {
"type": [
"object",
"null"
]
},
"best": {
"type": [
"object",
"null"
]
},
"front": {
"type": "array",
"items": {
"type": "object"
}
},
"cells": {
"type": "array",
"items": {
"type": "object"
}
},
"sources": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
},
"discover_novelty": {
"description": "What is new in one entry of a workbench archive, read at the specification's largest size.",
"anyOf": [
{
"type": "object",
"required": [
"ok",
"entry",
"compared",
"nearest",
"rediscovers"
],
"properties": {
"ok": {
"const": true
},
"qubits": {
"type": "integer"
},
"compared": {
"type": "integer"
},
"nearest": {
"anyOf": [
{
"type": "null"
},
{
"type": "object",
"required": [
"name",
"distance"
],
"properties": {
"name": {
"type": "string"
},
"distance": {
"type": "number"
}
}
}
]
},
"novelty": {
"type": [
"number",
"null"
]
},
"rediscovers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"route",
"distance"
],
"properties": {
"name": {
"type": "string"
},
"route": {
"type": "string"
},
"distance": {
"type": "number"
},
"how": {
"type": [
"string",
"null"
]
},
"prepares": {
"type": "boolean"
}
}
}
},
"unasked": {
"type": "array",
"items": {
"type": "object",
"required": [
"measure",
"candidate",
"reference"
],
"properties": {
"measure": {
"type": "string"
},
"candidate": {
"type": "number"
},
"reference": {
"type": "number"
}
}
}
},
"entry": {
"type": "string",
"description": "The entry's id."
},
"inputs": {
"type": "object",
"additionalProperties": {
"type": "integer"
},
"description": "The specification's largest size, at which it was read."
}
}
},
{
"$ref": "#/$defs/error"
}
]
},
"converge_cohort": {
"type": "object",
"description": "How diverse a set of programs is: the Vendi score (the effective number of distinct designs), each one's distance to the centroid, the medoid and the outlier, and with times, the score in windows over time.",
"required": [
"programs",
"vendi",
"share",
"centroid",
"medoid",
"outlier"
],
"properties": {
"programs": {
"type": "integer"
},
"vendi": {
"type": "number"
},
"share": {
"type": "number",
"description": "The Vendi score over the number of programs."
},
"mean_distance": {
"type": "number"
},
"centroid": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"distance"
],
"properties": {
"name": {
"type": "string"
},
"distance": {
"type": "number"
}
}
}
},
"medoid": {
"type": "string"
},
"outlier": {
"type": "string"
},
"windows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"from": {
"type": [
"integer",
"null"
]
},
"to": {
"type": [
"integer",
"null"
]
},
"programs": {
"type": "integer"
},
"vendi": {
"type": "number"
},
"share": {
"type": "number"
}
}
}
},
"narrowing": {
"type": "boolean"
}
}
},
"converge_history": {
"type": "object",
"description": "Whether the person's designs converge on a model's proposals along a program's history, and why; the versions made on their own set beside the rest.",
"required": [
"series",
"converging",
"why"
],
"properties": {
"series": {
"type": "array",
"items": {
"type": "object",
"properties": {
"version": {
"type": "string"
},
"at": {
"type": [
"integer",
"null"
]
},
"distance": {
"type": "number"
},
"share": {
"type": "number"
},
"organic": {
"type": "boolean"
}
}
}
},
"share": {
"type": [
"number",
"null"
]
},
"distance_trend": {
"type": [
"number",
"null"
]
},
"share_trend": {
"type": [
"number",
"null"
]
},
"converging": {
"type": "boolean"
},
"why": {
"type": "string"
},
"organic": {
"type": "object",
"properties": {
"versions": {
"type": "integer"
},
"distance": {
"type": [
"number",
"null"
]
}
}
},
"assisted": {
"type": "object",
"properties": {
"versions": {
"type": "integer"
},
"distance": {
"type": [
"number",
"null"
]
}
}
}
}
},
"study_measure": {
"type": "object",
"description": "The engine's measures of one participant's record: quality and its trend, diversity, novelty, authorship, convergence, selection skill, calibration of predictions, unassisted probe scores and ownership answers. A measure the record holds nothing for is left out or null.",
"required": [
"participant",
"condition"
],
"properties": {
"participant": {
"type": [
"string",
"null"
]
},
"condition": {
"type": [
"string",
"null"
]
},
"quality": {
"type": "object"
},
"diversity": {
"type": "object"
},
"novelty": {
"type": "object"
},
"authorship": {
"type": "number"
},
"convergence": {
"type": "object"
},
"selection": {
"type": "object"
},
"calibration": {
"type": "object"
},
"unassisted": {
"type": "object"
},
"ownership": {
"type": "object"
}
}
},
"study_cohort": {
"type": "object",
"description": "A study's report from its sealed protocol and the participants' sealed records: each record checked or refused with the reason, the measures per condition, each condition against the control on the primary measure with a bootstrap interval, and Cronbach's alpha of the ownership items.",
"required": [
"study",
"protocol",
"records",
"included",
"refused",
"conditions"
],
"properties": {
"study": {
"type": "string"
},
"protocol": {
"type": "string",
"description": "The sealed protocol's digest."
},
"hypotheses": {
"type": "array",
"items": {
"type": "string"
}
},
"primary": {
"type": "string"
},
"control": {
"type": "string"
},
"analysis": {
"type": "object"
},
"records": {
"type": "integer"
},
"included": {
"type": "integer"
},
"refused": {
"type": "array",
"items": {
"type": "object",
"properties": {
"record": {
"type": "integer"
},
"why": {
"type": "string"
}
}
}
},
"conditions": {
"type": "array",
"items": {
"type": "object"
}
},
"ownership_alpha": {
"type": [
"number",
"null"
]
},
"ownership_answers": {
"type": "integer"
}
}
}
}
}