open-standards/wai/wai-quantum/schemas/job.v1.json
Transaction Science 7d0c795f63
Some checks failed
wai-quantum clippy / does this change touch it (push) Successful in 14s
wai-audit collector and player integration / does this change touch it (push) Successful in 32s
joule-moq-room room service / joule-moq-room · does this change touch it (push) Successful in 35s
wai-quantum command line / does this change touch it (push) Successful in 22s
wai-quantum pulse and dynamics / does this change touch it (push) Successful in 16s
wai-quantum for Python / does this change touch it (push) Successful in 14s
wai-quantum qudit jobs / does this change touch it (push) Successful in 26s
wai-quantum error correction and mitigation / does this change touch it (push) Successful in 29s
WAI operation catalogue / does this change touch it (push) Successful in 1m18s
wai-quantum docs, course and locales / does this change touch it (push) Successful in 59s
wai-quantum extension points / does this change touch it (push) Successful in 24s
wai-quantum service / does this change touch it (push) Successful in 19s
wai-quantum for JavaScript / does this change touch it (push) Successful in 58s
wai-quantum studio and desktop / does this change touch it (push) Successful in 16s
wai-quantum editors / does this change touch it (push) Successful in 1m1s
wai-quantum OpenQASM reader / does this change touch it (push) Successful in 1m0s
wai-quantum other formats / does this change touch it (push) Successful in 1m1s
wai-quantum contract / does this change touch it (push) Successful in 1m3s
wai-quantum service / service energy · linux packages (push) Failing after 8s
wai-quantum variational and algorithm library / does this change touch it (push) Successful in 15s
wai-quantum resource estimation / does this change touch it (push) Successful in 1m1s
wai-quantum views in agent hosts / does this change touch it (push) Successful in 13s
WAI Studio / does this change touch it (push) Successful in 18s
wai-sink-android native sink library / does this change touch it (push) Successful in 44s
wai-quantum verdicts and repairs / does this change touch it (push) Successful in 1m34s
wai-sink-swift native sink package / does this change touch it (push) Successful in 1m32s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (push) Successful in 4m11s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (push) Successful in 3m59s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Successful in 5m57s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Successful in 5m24s
wai-quantum extension points / the registry and the example · linux-arm64 (push) Successful in 6m36s
joule-moq-room room service / joule-moq-room, every target (push) Successful in 7m27s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 19s
wai-quantum energy-landscape jobs / does this change touch it (push) Successful in 14s
wai-quantum wasmQ / does this change touch it (push) Successful in 16s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs under wasm32-wasip2 (wasmtime) (push) Successful in 1m2s
wai-quantum qudit jobs / the module and the conformance set under wasm32-wasip2 (wasmtime) (push) Successful in 1m15s
wai-audit collector and player integration / collector · linux (push) Successful in 3m41s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs · linux, release (push) Successful in 3m59s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (push) Successful in 16s
wai-quantum error correction and mitigation / codes, decoders, texts and mitigation · linux, release (push) Successful in 3m0s
wai-quantum for Python / python · linux (push) Successful in 4m41s
wai-quantum clippy / clippy, warnings denied, every feature set · linux (push) Successful in 6m12s
wai-quantum docs, course and locales / the course and the command line's languages · linux (push) Successful in 3m2s
wai-quantum extension points / the registry under wasm32-wasip2 (wasmtime) (push) Successful in 2m2s
wai-quantum OpenQASM reader / corpus under wasm32-wasip2 (wasmtime) (push) Successful in 1m13s
wai-quantum extension points / the registry and the example · linux (push) Successful in 4m12s
wai-quantum OpenQASM reader / reader and corpus · linux (push) Successful in 2m19s
wai-quantum studio and desktop / studio · browser (push) Successful in 3m45s
wai-quantum contract / the policy is linked, and the deprecations page reads (push) Successful in 11s
WAI operation catalogue / the catalogue and every door · linux (push) Successful in 8m8s
wai-quantum other formats / the set under wasm32-wasip2 (wasmtime) (push) Successful in 2m45s
wai-quantum energy-landscape jobs / the same bits · linux-arm64 (push) Successful in 12m19s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (push) Successful in 2m7s
wai-quantum qudit jobs / the module, the job, the conformance set, the referee and the verb · linux (push) Successful in 11m22s
wai-quantum for JavaScript / javascript · linux (push) Successful in 7m5s
wai-quantum other formats / readers, writers and the set · linux (push) Successful in 6m10s
wai-quantum contract / API compatibility · linux (push) Successful in 4m53s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Successful in 1m18s
wai-quantum editors / editors · linux (push) Successful in 6m14s
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (push) Successful in 1m19s
wai-quantum studio and desktop / desktop app · linux (push) Successful in 11m24s
wai-quantum resource estimation / estimation and calibration · linux, release (push) Successful in 6m20s
wai-quantum contract / schemas and the committed tool lists · linux (push) Successful in 9m3s
wai-quantum views in agent hosts / views · the page and its engine (push) Successful in 7m45s
wai-quantum service / service · linux (push) Successful in 15m16s
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (push) Successful in 4m2s
wai-quantum views in agent hosts / views · a scripted host (push) Successful in 9m32s
wai-quantum command line / command line · linux (push) Successful in 29m20s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Failing after 2m13s
wai-quantum wasmQ / the reference modules rebuild to their modules of record · linux (push) Failing after 41s
WAI Studio / Studio in WebKit · linux (push) Successful in 20m52s
wai-quantum energy-landscape jobs / native against WebAssembly, over many seeds (push) Successful in 4m54s
wai-quantum wasmQ / interpreter and vectors under wasm32-wasip2 (wasmtime) (push) Successful in 4m25s
wai-quantum wasmQ / profile, engines, reference modules, adversarial, vectors · linux (push) Successful in 7m31s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (push) Failing after 36m28s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 10m13s
wai-quantum energy-landscape jobs / reader, kernels, answers and the stated result · linux, release (push) Successful in 11m40s
wai-quantum energy-landscape jobs / the module under wasm32-wasip2 (wasmtime) (push) Successful in 13m17s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Successful in 2m2s
wai-quantum command line / command line · macos (push) Successful in 2m41s
wai-quantum for Python / python · macos (push) Successful in 2m59s
wai-quantum qudit jobs / the same bits · macos (push) Successful in 2m4s
wai-quantum studio and desktop / desktop app · windows (push) Successful in 10m36s
wai-quantum editors / editors · macos (push) Successful in 1m39s
wai-quantum studio and desktop / desktop app · macos (push) Successful in 4m44s
wai-quantum pulse and dynamics / the same bits · macos (push) Failing after 10m28s
wai-quantum service / service · macos (push) Successful in 7m32s
WAI Studio / Studio in Chromium and Firefox · macos (push) Successful in 10m17s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Successful in 6m48s
wai-quantum wasmQ / profile, engines, reference modules, adversarial, vectors · macos (push) Successful in 2m9s
wai-quantum energy-landscape jobs / the same bits · macos (push) Successful in 7m13s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Successful in 14m44s
WAI Quantum: wasmQ envelopes and qudit jobs on the job service and both MCP servers
Until now a wasmQ envelope ran only from the command line and a qudit job only from the
engine and the command line; the service and the MCP servers could verify a wasmQ job and
run neither.

- The job service runs both as jobs (src/hybrid.rs): POST /v1/wasmq (the envelope's bytes,
  {"envelope_base64"} or {"example"}; GET /v1/wasmq/examples) and POST /v1/qudit, each
  admitted in the order of what each step costs, opened or read and planned in a reading
  child (a refusal keeps its code, W001-W017 or J090-J092), queued within the client's and
  the service's limits, run in a worker (wasmQ on the native engine), kept in the store
  across a restart (the envelope under the digest its receipt binds) and sealed with the
  service's key; each waits as POST /v1/run does. The job's request is what the receipt
  binds: the contract and the envelope's digest, or the qudit request. The service's
  limits refuse, never truncate, and say so: an envelope past 786,432 bytes or whose run
  asks more than 2^38 of the profile's operations (quantum-wasmq §4.8) is refused J031
  before it is queued, naming `wai-quantum run`; one past a job's memory is refused as any
  job is; a worker past its memory or the job's time is stopped and the job fails saying
  which, nothing sealed. A fault the envelope's own budgets cause is sealed. A wasmQ/2 run's
  energy.run is the worker's figure, read as every job's (the process's CPU energy on
  macOS, the packages' over its window on Linux), or the unmetered form with the reason.
- MCP: run_wasmq (wai_wasmq::tool) and run_qudit (engine::qudit::tools) on both servers.
  The command line's runs a wasmQ/2 envelope in a process of its own and reads its energy
  as `wai-quantum run` does; the service's runs each as a job, output schema
  service-tools.v1.json#/$defs/hybrid_job, and get_quantum_job states such a job's verdict
  from what it holds. docs/local-mcp.json, docs/service-mcp.json, llms.txt, llms-full.txt
  and the skill's tools.md regenerated (WAI_QUANTUM_BLESS=1).
- wai-wasmq: examples (seven conformance envelopes, byte for byte, a repo test holds them
  to the set), asks (a run's work and memory from the bundle alone), tool, and
  run::seal_for (sealing from the request a receipt binds).
- Schemas: wasmq.v1.json; job.v1.json's request and result take a wasmQ run's and a qudit
  job's. Specs: quantum-wasmq §7 and §11.9, quantum-sim §9.10.

Tested on the build hosts (Linux x86_64 Framework; the service's hybrid tests also on macOS
arm64): wai-wasmq all tests and clippy -D warnings; wai-quantum --features full
engine::schema:: engine::qudit:: quantum_qudit:: (36 passed) and the qudit workflow's pin
(26 passed, unchanged); the service's mcp::, hybrid::, discovery::, offload:: unit tests and
tests/hybrid.rs (4: both kinds over HTTP and MCP, each verified and reproduced, the four
limits, the energy) and clippy -D warnings; wai-quantum-cli's whole suite, its MCP stdio
test of both kinds among it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-10 18:55:11 -05:00

42 lines
3.7 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/job.v1.json",
"title": "wai.quantum.job/1",
"description": "A job as a host returns it: its status, the method its plan chose and why, the request as submitted, and, once it is done, the result with its receipt: a job's result, or for a set (a request with programs or a sweep, its method set) the set's result. The command line's run --json, the local MCP server's run_quantum_circuit and a run on the person's own provider give a finished job; the job service also gives its id and times, and a job still queued or running, or failed with its error. A job's receipt verifies from this document alone: request and result.",
"type": "object",
"required": ["status", "request"],
"properties": {
"id": { "type": "string", "description": "The job service's id for the job." },
"status": { "enum": ["queued", "running", "done", "failed", "cancelled", "interrupted"], "description": "interrupted: the job service stopped while the job ran, after it had run it again once from its request, so it has no result; error says so." },
"method": { "type": "string", "description": "The method the plan chose; set for a set; on the job service, wasmq for a wasmQ envelope's run and qudit for a qudit job." },
"why": { "type": "string", "description": "Why the plan chose the method." },
"estimate": {
"type": "object",
"description": "What the plan admitted the job with.",
"required": ["memory_bytes", "work"],
"properties": {
"memory_bytes": { "type": "integer", "minimum": 0 },
"work": { "type": "integer", "minimum": 0, "description": "In the method's own unit." }
}
},
"request": { "description": "The request as submitted; on the job service, a wasmQ envelope's is what its receipt binds (the contract and the envelope's digest), and a qudit job's is its own.", "anyOf": [{ "$ref": "job-request.v1.json" }, { "$ref": "wasmq.v1.json#/$defs/request" }, { "type": "object", "required": ["d", "qudits", "gates"], "description": "A qudit job's request (qudit.v1.json, quantum-sim.md section 9)." }] },
"result": { "description": "A job's result; a set's; on the job service, a wasmQ envelope's run (method wasmq) or a qudit job's (method qudit).", "anyOf": [{ "$ref": "job-result.v1.json" }, { "$ref": "set.v1.json" }, { "$ref": "wasmq.v1.json#/$defs/result" }, { "$ref": "qudit.v1.json#/$defs/run" }] },
"error": { "type": "string", "description": "Why a job failed, or why it was interrupted." },
"interruptions": { "type": "array", "items": { "type": "integer" }, "description": "The job service: each time it stopped while the job ran, in milliseconds since 1970. A job that was running when the service stopped is queued again, once, to run from its stored request." },
"submitted_ms": { "type": "integer", "description": "The job service: when it was submitted, in milliseconds since 1970." },
"started_ms": { "type": "integer" },
"finished_ms": { "type": "integer" },
"peak_rss_bytes": { "type": "integer", "description": "The job service: the most memory the job's process held." },
"digests": {
"type": "object",
"description": "The job service: the BLAKE3 digests its store keeps the job's objects under (the request, each program, the result and the receipt).",
"properties": {
"algorithm": { "const": "blake3" },
"request": { "type": ["string", "null"] },
"programs": { "type": "array", "items": { "type": "string" } },
"result": { "type": "string" },
"receipt": { "type": "string" }
}
}
}
}