open-standards/wai/wai-quantum-cli/schemas/local-tools.v1.json
Transaction Science 30f8fd2f8c wai-quantum schemas over the integrated stack: the verdict, the J codes, estimates, targets, the debugger and the repair, and every tool's output held
- verdict.v1.json (wai.quantum.verdict/1), target.v1.json
  (wai.quantum.target/1) and estimate.v1.json (wai.quantum.estimate/1) are
  committed; verdict::json_schema() and targets::schema() are those files.
- tools.v1.json: the job layer's J codes beside the reader's, a refusal as
  data, the repair, debug_step and debug_branches, the target listing and a
  target's summary, and every draw format; the job request's intent,
  verdict, target and repair, the result's verdict, target and repaired, and
  the plan's target.
- Every tool on both servers has its output schema (Registry::tool_output):
  its answer or a refusal as data, the verdict beside either and required for
  a tool that states one, and an $id versioning it
  (wai-quantum://schemas/TOOL/1). The strict every-tool tests call
  repair_qasm, estimate_resources, debug_step, debug_branches, list_targets,
  show_target and run_on_target too, and the refusals.
- An estimate's sealed result names its engine and schema; its re-run
  check leaves both out, so an estimate another version sealed re-runs.
  Pins that moved: wai-web's ESTIMATE_DIGEST (aaa42bc8… to 0cd25cf6…). The
  no-verdict byte pins in engine::job hold the bytes they held, the stamp
  left out of what they hash.
- The tool lists regenerated.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 23:44:28 -04:00

340 lines
8.3 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-cli/schemas/local-tools.v1.json",
"title": "wai.quantum.local-tools/1",
"description": "The answers of the local MCP server's own tools (wai-quantum mcp), those the command line writes beside the engine's: a receipt's check, the workbench archive's submissions, a program's history, the person's taste, and the person's own providers. Each is a $def; every tool's outputSchema in tools/list is its answer's schema standing alone. The engine's answers are in wai-quantum's schemas.",
"$defs": {
"verify": {
"description": "Whether a job's receipt seals its request and its result, and the key that signed it; for an estimate, also every estimate's receipt and the request re-run here.",
"anyOf": [
{
"type": "object",
"description": "Whether a job's receipt seals its request and its result, and the key that signed it.",
"required": [
"valid",
"key"
],
"properties": {
"valid": {
"type": "boolean"
},
"key": {
"type": [
"string",
"null"
],
"description": "The signing key, 32 bytes in hex."
}
}
},
{
"$ref": "https://git.transaction.science/Transaction-Science/open-standards/raw/branch/main/wai/wai-quantum/schemas/estimate.v1.json#/$defs/verify"
}
]
},
"discover_submit": {
"type": "object",
"description": "What the archive did with a generator, and its best entry after.",
"required": [
"outcome",
"best"
],
"properties": {
"outcome": {
"type": "object"
},
"best": {
"type": [
"object",
"null"
]
}
}
},
"history_commit": {
"type": "object",
"description": "The version an agent's edit was recorded as, and in whose name.",
"required": [
"version",
"parent",
"by",
"history"
],
"properties": {
"version": {
"type": "string"
},
"parent": {
"type": "string"
},
"by": {
"type": [
"object",
"null"
],
"properties": {
"kind": {
"enum": [
"person",
"assistant",
"agent",
"engine",
"origin"
]
},
"name": {
"type": [
"string",
"null"
]
}
}
},
"history": {
"type": "string",
"description": "The history file's path."
}
}
},
"history_changes": {
"type": "object",
"required": [
"changes",
"rules"
],
"properties": {
"changes": {
"type": "array",
"items": {
"type": "object"
}
},
"breaches": {},
"rules": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"history_blame": {
"type": "object",
"required": [
"version",
"lines",
"authorship"
],
"properties": {
"version": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "object"
}
},
"authorship": {
"type": "object"
}
}
},
"history_log": {
"type": "object",
"required": [
"versions",
"check"
],
"properties": {
"versions": {
"type": "array",
"items": {
"type": "object"
}
},
"check": {
"type": "object"
}
}
},
"taste_rank": {
"type": "object",
"description": "Programs ranked by the person's own taste profile: each with its score, its parts' scores and its typicality; where the parts or the cost put another first; and whether the ranking narrows what comes first.",
"required": [
"choices",
"ranked"
],
"properties": {
"choices": {
"type": "integer",
"description": "The choices the profile has learned from."
},
"dial": {
"type": "number",
"description": "The novelty dial, -1 to 1."
},
"ranked": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"score",
"final"
],
"properties": {
"name": {
"type": "string"
},
"score": {
"type": "number"
},
"final": {
"type": "number"
},
"novelty": {
"type": [
"number",
"null"
]
},
"typicality": {
"type": [
"number",
"null"
]
},
"cost": {
"type": [
"number",
"null"
]
},
"parts": {
"type": "object",
"additionalProperties": {
"type": "number"
}
}
}
}
},
"disagree": {
"type": "array",
"items": {
"type": "object",
"properties": {
"part": {
"type": "string"
},
"first": {
"type": "string"
}
}
}
},
"narrowing": {
"type": [
"object",
"null"
]
}
}
},
"taste_next": {
"type": "object",
"description": "The pair the person's taste profile is least sure of that the engine proves equal, or why there is none.",
"required": [
"a"
],
"properties": {
"a": {
"type": [
"string",
"null"
]
},
"b": {
"type": "string"
},
"how": {
"type": "string",
"description": "How the engine proved them equal."
},
"p_a": {
"type": "number",
"description": "The profile's probability that the person prefers a."
},
"why": {
"type": "string"
}
}
},
"providers_list": {
"type": "object",
"description": "The person's providers, and where each one's credential is; with free, what is free.",
"required": [
"registry",
"providers"
],
"properties": {
"registry": {
"type": "string",
"description": "The registry file's path."
},
"providers": {
"type": "array",
"items": {
"type": "object"
}
},
"free": {
"type": "object"
}
}
},
"provider_estimate": {
"type": "object",
"description": "The dry run of a job on a provider: nothing submitted, nothing spent.",
"required": [
"dry_run",
"provider",
"plan",
"estimate",
"free",
"confirm"
],
"properties": {
"dry_run": {
"const": true
},
"provider": {
"type": "object"
},
"calibration": {
"type": [
"string",
"null"
]
},
"billing": {
"type": "object"
},
"plan": {
"type": "object"
},
"estimate": {
"type": "object"
},
"free": {
"type": "boolean"
},
"confirm": {
"type": "string",
"description": "What the person reads before confirming a run that is not free."
}
}
}
}
}