open-standards/wai/quantum-studio/package.json
Transaction Science d4d5f4dd48 wai-quantum: the engine's answers as views inside agent hosts, the receipt checked in the view
Both MCP servers serve six ui:// views (a circuit, a result with its
verdict, a receipt, a critique, an estimate's frontier, a device target's
map) through the protocol's extension for interactive views, version
2026-01-26, to a host that says it draws them: each tool names its view in
_meta.ui.resourceUri, the view's data (the engine's layout and the circuit
in words, a target's map) rides in the result's _meta, and the service's
poll_quantum_job, which a view calls while a job runs, is kept from the
model. The service keeps no session, so the client's word travels in the
session id it is given at initialize. Every host gets each such answer in
plain words.

The views are one self-contained page (736 KB, held under 1 MiB) built from
the Studio's components, carrying the engine (wai-quantum-views) as
WebAssembly and translated to JavaScript. Under the extension's default
content-security policy the browser refuses WebAssembly, so the JavaScript
form checks the receipt there; a scripted host in a headless browser draws
every view from both servers under both policies and holds the check, a
changed result, the size and no outside request. The page rebuilds to the
same bytes in the CI image.

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

29 lines
1 KiB
JSON

{
"name": "wai-quantum-studio",
"version": "0.1.0",
"private": true,
"description": "Quantum Studio: an editor for OpenQASM programs, run in this browser, on the desktop or on the quantum job service by the same engine, every result naming its method and accuracy and its receipt checked where it is shown. One interface for the browser and the desktop app.",
"license": "Apache-2.0",
"type": "module",
"scripts": {
"build": "node build.mjs",
"test": "node test/studio.test.mjs",
"build:views": "bash ../wai-quantum-views/build.sh",
"test:views": "node test/views.test.mjs"
},
"dependencies": {
"@codemirror/autocomplete": "6.20.4",
"@codemirror/commands": "6.11.1",
"@codemirror/language": "6.13.1",
"@codemirror/lint": "6.9.7",
"@codemirror/search": "6.7.2",
"@codemirror/state": "6.7.6",
"@codemirror/view": "6.43.15",
"@lezer/highlight": "1.2.5"
},
"devDependencies": {
"binaryen": "132.0.0",
"esbuild": "0.27.4",
"playwright": "1.60.0"
}
}