- schemas/ beside the crate's manifest: the job request, the job result, the
job as a host returns it, the receipt (its second form; the first still
verifies), the plan, the answers of the engine's tools, and the versions a
host reports, each wai.quantum.<document>/<major> kept as <document>.v<major>.json.
- engine::schema: the names, stamp() (engine {name, version} and schema in
every result run::run and provider::result give), versions(), and a
checker for the subset of JSON Schema the files use, which also refuses a
member a schema does not name so a test fails when the code drifts.
- The receipt's form is unchanged: what it seals is the result's RFC 8785
text, which now holds two more members. Two job bodies sealed by the
engine as it was before (testdata/*-legacy.json) still verify, their
digests pinned.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
43 lines
2.1 KiB
JSON
43 lines
2.1 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/versions.v1.json",
|
|
"title": "wai.quantum.versions/1",
|
|
"description": "What a host reports of its versions: the engine's name and version, the host's own (the command line, the job service), the schema of every document it writes by its versioned name, the protocols it speaks, and where the policy and the deprecations are. wai-quantum version --json prints it; both MCP servers give it in initialize (_meta) and the job service in quantum_service_info.",
|
|
"type": "object",
|
|
"required": ["schema", "engine", "schemas", "policy", "deprecations"],
|
|
"properties": {
|
|
"schema": { "const": "wai.quantum.versions/1" },
|
|
"engine": {
|
|
"type": "object",
|
|
"required": ["name", "version"],
|
|
"properties": {
|
|
"name": { "const": "wai-quantum" },
|
|
"version": { "type": "string" }
|
|
}
|
|
},
|
|
"host": {
|
|
"type": "object",
|
|
"description": "The program reporting: its crate's name and version.",
|
|
"required": ["name", "version"],
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"version": { "type": "string" }
|
|
}
|
|
},
|
|
"schemas": {
|
|
"type": "object",
|
|
"description": "Each document's schema, by its versioned name (wai.quantum.<document>/<major>, kept as <document>.v<major>.json).",
|
|
"additionalProperties": { "type": "string" }
|
|
},
|
|
"protocols": {
|
|
"type": "object",
|
|
"description": "The protocols the host speaks: the Model Context Protocol versions its server answers, newest first, and the open provider protocol.",
|
|
"properties": {
|
|
"mcp": { "type": "array", "items": { "type": "string" } },
|
|
"provider": { "type": "string" }
|
|
}
|
|
},
|
|
"policy": { "type": "string", "description": "What is stable, for how long, and how a change is announced." },
|
|
"deprecations": { "type": "string", "description": "Each deprecated item, the version that deprecated it, and its replacement." }
|
|
}
|
|
}
|