{ "name": "wai-quantum", "displayName": "WAI Quantum", "description": "OpenQASM 3 with the WAI Quantum engine: its diagnostics, completion, hover with each gate's matrix and cost, definitions, renames, formatting, Run, Plan, Critique, Shortcuts and Receipt run on this machine, and a debugger that steps a program forward and back through its state and its branches", "version": "0.1.0", "publisher": "transaction-science", "license": "Apache-2.0", "repository": { "type": "git", "url": "https://git.transaction.science/Transaction-Science/open-standards", "directory": "wai/tools/wai-quantum-editor" }, "homepage": "https://wai.transaction.science/quantum-run", "engines": { "vscode": "^1.91.0" }, "categories": [ "Programming Languages", "Formatters", "Linters", "Debuggers" ], "keywords": [ "openqasm", "qasm", "quantum", "language server", "debugger" ], "main": "./dist/extension.js", "activationEvents": [ "onLanguage:openqasm", "onDebugResolve:wai-quantum" ], "contributes": { "languages": [ { "id": "openqasm", "aliases": [ "OpenQASM", "openqasm", "qasm" ], "extensions": [ ".qasm" ], "configuration": "./language-configuration.json" } ], "grammars": [ { "language": "openqasm", "scopeName": "source.openqasm", "path": "./syntaxes/openqasm.tmLanguage.json" } ], "breakpoints": [ { "language": "openqasm" } ], "debuggers": [ { "type": "wai-quantum", "label": "WAI Quantum", "languages": [ "openqasm" ], "configurationAttributes": { "launch": { "required": [ "program" ], "properties": { "program": { "type": "string", "default": "${file}", "description": "The program to debug." }, "stopOnEntry": { "type": "boolean", "default": true, "description": "Stop before the first step, rather than at the first breakpoint." }, "inputs": { "type": "object", "additionalProperties": { "type": "integer" }, "default": {}, "description": "The values a generator's integer inputs are read at, as {\"n\": 4}." }, "noise": { "type": "object", "description": "Noise channels and their probabilities (depolarizing_1q, depolarizing_2q, amplitude_damping, dephasing, readout): the density matrix is stepped, beside the noiseless state." }, "method": { "type": "string", "enum": [ "auto", "exact", "statevector", "density_matrix" ], "default": "auto", "description": "What the engine steps: the bit-exact or double-precision state vector, or the density matrix." }, "outcomes": { "type": "array", "items": { "type": "integer", "enum": [ 0, 1 ] }, "description": "The outcome of each measurement the path meets, in order (a recorded path, replayed); the likelier when not given." } } } }, "initialConfigurations": [ { "type": "wai-quantum", "request": "launch", "name": "Debug the program", "program": "${file}", "stopOnEntry": true } ], "configurationSnippets": [ { "label": "WAI Quantum: Debug the program", "description": "Step through an OpenQASM program on the engine", "body": { "type": "wai-quantum", "request": "launch", "name": "Debug the program", "program": "^\"\\${file}\"", "stopOnEntry": true } } ] } ], "configuration": { "title": "WAI Quantum", "properties": { "waiQuantum.path": { "type": "string", "default": "wai-quantum", "markdownDescription": "The `wai-quantum` command line the editor runs as its language server (`wai-quantum lsp`): a name on the `PATH`, or a full path." }, "waiQuantum.serverArgs": { "type": "array", "items": { "type": "string" }, "default": [], "markdownDescription": "More arguments for `wai-quantum lsp`, as `[\"--key\", \"/path/to/key\"]` to sign runs with that key, or `[\"--demo-key\"]` for the published demo key." }, "waiQuantum.inputs": { "type": "object", "additionalProperties": { "type": "integer" }, "default": {}, "markdownDescription": "The values a generator's integer inputs are read at, as `{\"n\": 8}`. An input not given is read at 4." }, "waiQuantum.shots": { "type": [ "integer", "null" ], "default": null, "markdownDescription": "The shots Run and Receipt sample; the engine's own default (1024) when not set." }, "waiQuantum.trace.server": { "type": "string", "enum": [ "off", "messages", "verbose" ], "default": "off", "description": "Log the messages between the editor and the language server." } } }, "commands": [ { "command": "waiQuantum.run", "title": "Run the program here", "category": "WAI Quantum" }, { "command": "waiQuantum.plan", "title": "Plan the program", "category": "WAI Quantum" }, { "command": "waiQuantum.critique", "title": "Critique the program", "category": "WAI Quantum" }, { "command": "waiQuantum.shortcuts", "title": "Find the program's classical shortcuts", "category": "WAI Quantum" }, { "command": "waiQuantum.receipt", "title": "Run the program and show its receipt", "category": "WAI Quantum" }, { "command": "waiQuantum.debug", "title": "Debug the program", "category": "WAI Quantum" }, { "command": "waiQuantum.showOutput", "title": "Show the results", "category": "WAI Quantum" }, { "command": "waiQuantum.restart", "title": "Restart the language server", "category": "WAI Quantum" } ], "menus": { "commandPalette": [ { "command": "waiQuantum.run", "when": "editorLangId == openqasm" }, { "command": "waiQuantum.plan", "when": "editorLangId == openqasm" }, { "command": "waiQuantum.critique", "when": "editorLangId == openqasm" }, { "command": "waiQuantum.shortcuts", "when": "editorLangId == openqasm" }, { "command": "waiQuantum.receipt", "when": "editorLangId == openqasm" }, { "command": "waiQuantum.debug", "when": "editorLangId == openqasm" } ] } }, "scripts": { "build": "node build.mjs", "package": "node build.mjs && vsce package --no-dependencies --baseContentUrl https://git.transaction.science/Transaction-Science/open-standards/src/branch/main/wai/tools/wai-quantum-editor --baseImagesUrl https://git.transaction.science/Transaction-Science/open-standards/raw/branch/main/wai/tools/wai-quantum-editor --out wai-quantum.vsix", "test": "node test/check.mjs" }, "dependencies": { "vscode-languageclient": "10.1.2" }, "devDependencies": { "@vscode/vsce": "4.0.0", "esbuild": "0.28.2", "luaparse": "0.3.1", "smol-toml": "1.9.0" } }