conformance-results §4.1: a relying party that admits an implementation on a
conform-result/1 record requires the record accepted, its run passed (not_conformant), its
suite one whose corpus the party holds (suite_unknown), and its corpus digest that corpus's
(corpus_mismatch). wai verify --conformant [--root <wai-dir>] applies the rules against a
checkout; without it a record of a run that did not pass verifies as before. A sink kind:
wai conform sink --suite native-sink gives a sink each session of
live-conformance/native-sink/ with its answers withheld, and each configuration the corpus
states a session refuses; wai_native_sink_vectors answers [--c-abi] is the reference sink,
through its module or through the C interface the platform integrations link.
wai-breaking.yml's runner job runs the native sink both ways and the score decoder, each
record admitted against the checkout's corpus, and a planted sink that presents an object
whose digest does not match: its run must exit 1 with tampered-fragment failed, and
admission must refuse its record at rule 2. tests/cli_conform_sinks.rs holds the same, and
corpus_mismatch and suite_unknown; it has its [[test]] entry with its required features,
so check-tests-in-ci.py passes. The binaries are built with the test step's features, so
cargo reuses what that step built. The browser sink has no sink suite, and §7 says that
§4.1 has only this reference implementation, with no admission vectors.
The catalogue's receipt.verify (the new options, and the envelopes the pin-by-default commit
added) and conformance.run (the sink kind, the {case} placeholder) are exported again, and
Studio's actions regenerated from the export: actions.mjs --check had failed since that
commit. c_abi::take reads and frees no null buffer.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
8105 lines
209 KiB
JSON
8105 lines
209 KiB
JSON
{
|
|
"format": "wai.ops/1",
|
|
"toolchain": "0.4.0",
|
|
"envelope": "envelope/1",
|
|
"exit_codes": [
|
|
{
|
|
"exit": 0,
|
|
"meaning": "done; every check held"
|
|
},
|
|
{
|
|
"exit": 1,
|
|
"meaning": "ran, and a check failed"
|
|
},
|
|
{
|
|
"exit": 2,
|
|
"meaning": "usage error or invalid input"
|
|
},
|
|
{
|
|
"exit": 3,
|
|
"meaning": "authentication or permission"
|
|
},
|
|
{
|
|
"exit": 4,
|
|
"meaning": "confirmation required; nothing changed"
|
|
},
|
|
{
|
|
"exit": 5,
|
|
"meaning": "not found (file, target, room, operation)"
|
|
},
|
|
{
|
|
"exit": 6,
|
|
"meaning": "target unavailable; safe to retry"
|
|
},
|
|
{
|
|
"exit": 7,
|
|
"meaning": "internal error"
|
|
}
|
|
],
|
|
"agent_flags": [
|
|
{
|
|
"flag": "--json",
|
|
"summary": "one JSON envelope on stdout: {\"wai\": \"envelope/1\", \"op\", \"ok\", \"data\" | \"error\"}",
|
|
"aliases": []
|
|
},
|
|
{
|
|
"flag": "--dry-run",
|
|
"summary": "write nothing and send nothing; say what would be done (an operation that only reads ignores it)",
|
|
"aliases": []
|
|
},
|
|
{
|
|
"flag": "--yes",
|
|
"summary": "confirm a change that waits for confirmation; off a terminal, without it, exit 4",
|
|
"aliases": [
|
|
{
|
|
"flag": "--confirm",
|
|
"deprecated": {
|
|
"since": "0.3.0",
|
|
"use_instead": "--yes"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"flag": "--no-input",
|
|
"summary": "never ask: a change that waits for confirmation exits 4 unless --yes is given",
|
|
"aliases": []
|
|
}
|
|
],
|
|
"operations": [
|
|
{
|
|
"id": "toolchain.test",
|
|
"summary": "WAI's four steps (name, dispatch, rebuild, receipt) on a picture made here, its receipt checked offline",
|
|
"cli": "wai hello",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai hello [<dir>] WAI's four steps (name, dispatch, rebuild, receipt) on a sample, written to <dir> (wai-hello)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dir": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Where the object and its receipts are written (wai-hello).",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"quickstart"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai toolchain test",
|
|
"mcp": null,
|
|
"c": "wai_toolchain_test",
|
|
"rust": "wai::toolchain::test",
|
|
"sdk": "wai.toolchain.test"
|
|
}
|
|
},
|
|
{
|
|
"id": "project.create",
|
|
"summary": "A new project from one of the examples, written into a new or empty directory; --list names the templates",
|
|
"cli": "wai create",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai create <dir> --template <name> | create --list a new project from one of the examples"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dir": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A directory that does not exist or is empty.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"template": {
|
|
"type": "string",
|
|
"description": "The template, one of `wai create --list`.",
|
|
"x-cli": {
|
|
"flag": "--template"
|
|
}
|
|
},
|
|
"list": {
|
|
"type": "boolean",
|
|
"description": "List the templates instead.",
|
|
"x-cli": {
|
|
"flag": "--list"
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"template",
|
|
"title",
|
|
"files"
|
|
]
|
|
}
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai project create",
|
|
"mcp": null,
|
|
"c": "wai_project_create",
|
|
"rust": "wai::project::create",
|
|
"sdk": "wai.project.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "dev.start",
|
|
"summary": "A relay, a room service and the room page on one origin on this machine, for development; --check starts, checks every piece and stops",
|
|
"cli": "wai dev",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai dev [--port P] [--dir D] [--site DIR] [--watch FILE [--watch-ms MS]] [--call] [--remote]",
|
|
" [--show [--audience N]] [--messaging] [--e2ee] [--publishers N] [--check] [--for S] [--web DIR]",
|
|
" [--relay BIN] [--room BIN]",
|
|
" --port P the origin's port on 127.0.0.1 (8080; 0 picks a free one)",
|
|
" --dir D keys, configuration and logs (.wai/dev)",
|
|
" --site DIR your page: DIR is served at /, the room client beside it at /room/",
|
|
" --publishers N places in the room (4)",
|
|
" --watch FILE a watch room: everyone in it watches FILE together (.wav, .webm, .mp4,",
|
|
" .ogg, .mp3); --watch-ms MS its duration, read from a WAV file's header",
|
|
" --call the room is a call: /room/call.html places one, rings, answers",
|
|
" --remote the room is one host's shared screen; prints the host's invitation",
|
|
" --show the room is a show: hosts on camera, an audience that votes in polls",
|
|
" the room's clock opens and signs (co-performance); --audience N each",
|
|
" viewer's inputs to a poll (1)",
|
|
" --messaging a conversation beside the room, at /msg-api/: /room/messages.html",
|
|
" --e2ee every room end-to-end encrypted",
|
|
" --check start, check every piece through the origin, report, stop",
|
|
" --for S stop after S seconds",
|
|
" --web DIR the room client's files (beside this binary: ../share/wai/web; $WAI_WEB)",
|
|
" --relay BIN wai-relay (beside this binary, then $PATH; $WAI_RELAY_BIN)",
|
|
" --room BIN wai-room (beside this binary, then $PATH; $WAI_ROOM_BIN)",
|
|
" WAI Studio is served at /_wai/ when its files are found ($WAI_STUDIO, or share/wai/studio",
|
|
" beside this binary).",
|
|
" A wai.json in the current directory (`wai create` writes one) gives the defaults; a flag",
|
|
" wins over it. Ctrl-C stops everything. With --json and without --check, the first line",
|
|
" is {\"ready\": true, ...}."
|
|
],
|
|
"placement": "local",
|
|
"effect": "runs",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "dev",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"port": {
|
|
"type": "integer",
|
|
"description": "The origin's port on 127.0.0.1 (8080; 0 picks a free one).",
|
|
"x-cli": {
|
|
"flag": "--port"
|
|
}
|
|
},
|
|
"dir": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Keys, configuration and logs (.wai/dev).",
|
|
"x-cli": {
|
|
"flag": "--dir"
|
|
}
|
|
},
|
|
"site": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A directory served at /.",
|
|
"x-cli": {
|
|
"flag": "--site"
|
|
}
|
|
},
|
|
"watch": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A file everyone in a watch room watches together.",
|
|
"x-cli": {
|
|
"flag": "--watch"
|
|
}
|
|
},
|
|
"watch_ms": {
|
|
"type": "integer",
|
|
"description": "The watch file's duration in milliseconds.",
|
|
"x-cli": {
|
|
"flag": "--watch-ms"
|
|
}
|
|
},
|
|
"call": {
|
|
"type": "boolean",
|
|
"description": "The room is a call.",
|
|
"x-cli": {
|
|
"flag": "--call"
|
|
}
|
|
},
|
|
"remote": {
|
|
"type": "boolean",
|
|
"description": "The room is one host's shared screen.",
|
|
"x-cli": {
|
|
"flag": "--remote"
|
|
}
|
|
},
|
|
"show": {
|
|
"type": "boolean",
|
|
"description": "The room is a show: hosts on camera, an audience that votes in polls.",
|
|
"x-cli": {
|
|
"flag": "--show"
|
|
}
|
|
},
|
|
"audience": {
|
|
"type": "integer",
|
|
"description": "With --show, each viewer's inputs to a poll (1).",
|
|
"x-cli": {
|
|
"flag": "--audience"
|
|
}
|
|
},
|
|
"messaging": {
|
|
"type": "boolean",
|
|
"description": "A conversation beside the room.",
|
|
"x-cli": {
|
|
"flag": "--messaging"
|
|
}
|
|
},
|
|
"e2ee": {
|
|
"type": "boolean",
|
|
"description": "Every room end-to-end encrypted.",
|
|
"x-cli": {
|
|
"flag": "--e2ee"
|
|
}
|
|
},
|
|
"publishers": {
|
|
"type": "integer",
|
|
"description": "Places in the room (4).",
|
|
"x-cli": {
|
|
"flag": "--publishers"
|
|
}
|
|
},
|
|
"check": {
|
|
"type": "boolean",
|
|
"description": "Start, check every piece, report and stop.",
|
|
"x-cli": {
|
|
"flag": "--check"
|
|
}
|
|
},
|
|
"for_s": {
|
|
"type": "integer",
|
|
"description": "Stop after this many seconds.",
|
|
"x-cli": {
|
|
"flag": "--for"
|
|
}
|
|
},
|
|
"web": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The room client's files.",
|
|
"x-cli": {
|
|
"flag": "--web"
|
|
}
|
|
},
|
|
"relay": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The relay's binary.",
|
|
"x-cli": {
|
|
"flag": "--relay"
|
|
}
|
|
},
|
|
"room": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The room service's binary.",
|
|
"x-cli": {
|
|
"flag": "--room"
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"ready",
|
|
"seconds",
|
|
"steps",
|
|
"checks",
|
|
"origin"
|
|
]
|
|
},
|
|
"stream": {
|
|
"type": "object",
|
|
"required": [
|
|
"ready"
|
|
],
|
|
"properties": {
|
|
"ready": {
|
|
"type": "boolean"
|
|
},
|
|
"origin": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai dev start",
|
|
"mcp": "dev_start",
|
|
"c": "wai_dev_start",
|
|
"rust": "wai::dev::start",
|
|
"sdk": "wai.dev.start"
|
|
}
|
|
},
|
|
{
|
|
"id": "receipt.verify",
|
|
"summary": "Every receipt index (*.wai.receipts) under each path, its group receipts and claims checked offline, and every conformance result, fleet report bundle and envelope there",
|
|
"cli": "wai verify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai verify <path>... [--conformant [--root <wai-dir>]] the receipts (receipt indexes *.wai.receipts), conformance",
|
|
" results (*.wai-conform.json), fleet report bundles (*.wai-fleet.json) and envelopes' pins (*.wai) under each path,",
|
|
" checked offline; --conformant admits a result only for a run that passed against this checkout's corpus"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"paths": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "Files or directories holding receipt indexes, conformance results, fleet report bundles or envelopes.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"conformant": {
|
|
"type": "boolean",
|
|
"description": "Admit each conformance result only when its run passed, against the corpus of a checkout.",
|
|
"x-cli": {
|
|
"flag": "--conformant"
|
|
}
|
|
},
|
|
"root": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "With --conformant, the wai/ directory of the checkout whose corpus a result names.",
|
|
"x-cli": {
|
|
"flag": "--root"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"paths"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"quickstart"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai receipt verify",
|
|
"mcp": "receipt_verify",
|
|
"c": "wai_receipt_verify",
|
|
"rust": "wai::receipt::verify",
|
|
"sdk": "wai.receipt.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "envelope.inspect",
|
|
"summary": "What an envelope holds and whether this build decodes it: media, intent, pin, capability, fallback, the dispatch verdict and the conformance checks",
|
|
"cli": "wai inspect",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai inspect <in.wai> what a WAI1 or WAI2 envelope holds, and the verdict of SPEC §4's dispatch here"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A .wai envelope.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"path"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai envelope inspect",
|
|
"mcp": "envelope_inspect",
|
|
"c": "wai_envelope_inspect",
|
|
"rust": "wai::envelope::inspect",
|
|
"sdk": "wai.envelope.inspect"
|
|
}
|
|
},
|
|
{
|
|
"id": "envelope.wrap",
|
|
"summary": "Carry a registered capability's bytes in an envelope, byte for byte, under SPEC's intent, role and candidate rules",
|
|
"cli": "wai wrap",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai wrap <capability> <payload> [-o out.wai] [--fallback <cap>] [--intent <intent>]",
|
|
" [--companion <cap> <payload>]... WAI2: companions bound to the payload"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {
|
|
"type": "string",
|
|
"description": "A registered capability (`wai capabilities`).",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"payload": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The bytes to carry.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The envelope (out.wai).",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
},
|
|
"fallback": {
|
|
"type": "string",
|
|
"description": "A WAI1 fallback capability.",
|
|
"x-cli": {
|
|
"flag": "--fallback"
|
|
}
|
|
},
|
|
"intent": {
|
|
"type": "string",
|
|
"description": "The envelope's intent (replicate where SPEC §7 allows it).",
|
|
"x-cli": {
|
|
"flag": "--intent"
|
|
}
|
|
},
|
|
"companion": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "A companion capability and its payload, bound to the payload.",
|
|
"x-cli": {
|
|
"flag": "--companion"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"capability",
|
|
"payload"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai envelope wrap",
|
|
"mcp": "envelope_wrap",
|
|
"c": "wai_envelope_wrap",
|
|
"rust": "wai::envelope::wrap",
|
|
"sdk": "wai.envelope.wrap"
|
|
}
|
|
},
|
|
{
|
|
"id": "envelope.unwrap",
|
|
"summary": "An envelope's capability and its checks, and with -o its payload or one component, exactly as wrapped",
|
|
"cli": "wai unwrap",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai unwrap <in.wai> [-o payload] [--component <i>] extract any registered capability's bytes"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A .wai envelope.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Where the payload is written.",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
},
|
|
"component": {
|
|
"type": "integer",
|
|
"description": "A WAI2 component's index.",
|
|
"x-cli": {
|
|
"flag": "--component"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"path"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai envelope unwrap",
|
|
"mcp": null,
|
|
"c": "wai_envelope_unwrap",
|
|
"rust": "wai::envelope::unwrap",
|
|
"sdk": "wai.envelope.unwrap"
|
|
}
|
|
},
|
|
{
|
|
"id": "media.encode",
|
|
"summary": "Encode a file with a codec this build holds, in an envelope; AVC and HEVC through the device's own encoders, with a signed record",
|
|
"cli": "wai encode",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai encode <codec> <input> [-o out.wai] [-q quality] codecs: png jpeg avif jxl jxl-lossless opus flac av1 av1-lossless zstd xz",
|
|
" a build with `floor` alone encodes png and zstd; the others need `codecs`",
|
|
" image codecs: .rgb (with .meta holding 'H W') or a PNG/JPEG file; audio: .f32 (raw mono float32)",
|
|
" with .meta holding the sample rate; video: packed RGB frames with .meta 'N H W fps_num fps_den';",
|
|
" text codecs: any file",
|
|
"wai encode avc|hevc <in.y4m> [-o out.wai] [--encoder auto|platform|va|gpu-driver|software] [--library <path>]",
|
|
" [--device <node|ordinal>] [--hardware yes|no] [--kbps <n>] [--size WxH] [--idr-every <frames> |",
|
|
" --idr-plan <plan.txt>] [--es <out>] [--record <out.json> --key <seed>] [--meter <counter> [--rounds <n>]]",
|
|
" (a build with `platform_encode`)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"codec": {
|
|
"type": "string",
|
|
"description": "png, jpeg, avif, jxl, jxl-lossless, opus, flac, av1, av1-lossless, zstd, xz; or avc, hevc.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"input": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The file to encode.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The envelope (out.wai).",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
},
|
|
"quality": {
|
|
"type": "integer",
|
|
"description": "Quality, 1 to 100 (75).",
|
|
"x-cli": {
|
|
"flag": "-q"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"codec",
|
|
"input"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"any": [
|
|
"floor",
|
|
"codecs",
|
|
"platform_encode"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai media encode",
|
|
"mcp": null,
|
|
"c": "wai_media_encode",
|
|
"rust": "wai::media::encode",
|
|
"sdk": "wai.media.encode"
|
|
}
|
|
},
|
|
{
|
|
"id": "media.decode",
|
|
"summary": "Decode an envelope through SPEC §4's dispatch to raw samples, with a .meta file beside them",
|
|
"cli": "wai decode",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai decode <in.wai> -o <output> a build with `floor` decodes png, flac and zstd; `codecs` the rest"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A .wai envelope.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The decoded samples.",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"any": [
|
|
"floor",
|
|
"codecs"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai media decode",
|
|
"mcp": null,
|
|
"c": "wai_media_decode",
|
|
"rust": "wai::media::decode",
|
|
"sdk": "wai.media.decode"
|
|
}
|
|
},
|
|
{
|
|
"id": "media.generate",
|
|
"summary": "Make a wai.generate.spectral picture natively and print its SHA-256, or write its instruction object",
|
|
"cli": "wai generate",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai generate --model <json> (--prompt <s> --seed <u32> --steps <n> | --instr <object>) --size WxH -o <out.rgb>",
|
|
" make a wai.generate.spectral picture (RGB8) and print its SHA-256; --sizes WxH,... --write-instr",
|
|
" <object> writes the instruction object of form v0 (SPEC §5)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"model": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The model file.",
|
|
"x-cli": {
|
|
"flag": "--model"
|
|
}
|
|
},
|
|
"prompt": {
|
|
"type": "string",
|
|
"description": "The prompt.",
|
|
"x-cli": {
|
|
"flag": "--prompt"
|
|
}
|
|
},
|
|
"seed": {
|
|
"type": "integer",
|
|
"description": "The seed.",
|
|
"x-cli": {
|
|
"flag": "--seed"
|
|
}
|
|
},
|
|
"steps": {
|
|
"type": "integer",
|
|
"description": "The steps.",
|
|
"x-cli": {
|
|
"flag": "--steps"
|
|
}
|
|
},
|
|
"instr": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "An instruction object of form v0.",
|
|
"x-cli": {
|
|
"flag": "--instr"
|
|
}
|
|
},
|
|
"size": {
|
|
"type": "string",
|
|
"description": "WxH.",
|
|
"x-cli": {
|
|
"flag": "--size"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The picture, RGB8.",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"model"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"description": "The picture's or instruction object's digests, as `wai generate --json` prints them"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"generate"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai media generate",
|
|
"mcp": null,
|
|
"c": "wai_media_generate",
|
|
"rust": "wai::media::generate",
|
|
"sdk": "wai.media.generate"
|
|
}
|
|
},
|
|
{
|
|
"id": "media.inspect",
|
|
"summary": "What a file is, from its bytes alone: the formats they fit with the bytes that say so, its tracks, its protection, and measures where no format is recognised",
|
|
"cli": "wai identify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai identify <file> [--json] any file, not only an envelope (extensions/media-identify.md); unknown stays unknown"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Any file.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"path"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"format",
|
|
"size",
|
|
"verdict",
|
|
"candidates",
|
|
"probes_accepted",
|
|
"embedded",
|
|
"embedded_capped",
|
|
"measures"
|
|
],
|
|
"description": "The formats the bytes fit, each with the bytes that say so and how far they were followed; what a probe accepted; signatures found inside; and measures that hold whatever the bytes are"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"identify"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai media inspect",
|
|
"mcp": "media_inspect",
|
|
"c": "wai_media_inspect",
|
|
"rust": "wai::media::inspect",
|
|
"sdk": "wai.media.inspect"
|
|
}
|
|
},
|
|
{
|
|
"id": "media.upscale",
|
|
"summary": "Upscale a PNG exactly, by an integer network under a pinned prior, with a signed record a verifier recomputes",
|
|
"cli": "wai upscale run",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai upscale run <in.png> --prior <p.wsr> [--derivation sr2|sr4] -o <out.png>",
|
|
" [--record <out.json> --envelope <in.wai> --key <seed>] [--issued-at <date-time>] [--json]",
|
|
" an 8-bit RGB PNG; --record signs what exact-upscale §7 recomputes from --envelope and the prior"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "An 8-bit RGB PNG.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"prior": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The WSR1 prior.",
|
|
"x-cli": {
|
|
"flag": "--prior"
|
|
}
|
|
},
|
|
"derivation": {
|
|
"type": "string",
|
|
"description": "sr2 (the default) or sr4.",
|
|
"x-cli": {
|
|
"flag": "--derivation"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The picture, a PNG.",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
},
|
|
"record": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The signed upscale record.",
|
|
"x-cli": {
|
|
"flag": "--record"
|
|
}
|
|
},
|
|
"envelope": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The WAI1 of the input, which the record names.",
|
|
"x-cli": {
|
|
"flag": "--envelope"
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "The record's signing seed: 64 hexadecimal digits, or a file holding them.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"prior",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"width",
|
|
"height",
|
|
"subpixels",
|
|
"files"
|
|
],
|
|
"description": "What `wai upscale run` or `wai tonemap run` made: the subpixels it would bill, each file it wrote with its digest, and the record's link hash"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"exact_upscale"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai media upscale",
|
|
"mcp": null,
|
|
"c": "wai_media_upscale",
|
|
"rust": "wai::media::upscale",
|
|
"sdk": "wai.media.upscale"
|
|
}
|
|
},
|
|
{
|
|
"id": "upscale.verify",
|
|
"summary": "An upscale record recomputed from its input and its prior, and the picture held to it",
|
|
"cli": "wai upscale verify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai upscale verify <record.json> --envelope <in.wai> --prior <p.wsr> [--picture <out.png>]",
|
|
" the record's outcome as JSON (extensions/exact-upscale.md §7, under require-proof); exit 1 when it is refused"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"record": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The upscale record.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"envelope": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The WAI1 of the input, which the record names.",
|
|
"x-cli": {
|
|
"flag": "--envelope"
|
|
}
|
|
},
|
|
"prior": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The WSR1 prior the record names.",
|
|
"x-cli": {
|
|
"flag": "--prior"
|
|
}
|
|
},
|
|
"picture": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The picture: its samples are held to the record's output.",
|
|
"x-cli": {
|
|
"flag": "--picture"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"record",
|
|
"envelope",
|
|
"prior"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"outcome"
|
|
],
|
|
"description": "accept, with the record's link hash and the subpixels it states; or refuse, with the reason and where"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"exact_upscale"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai upscale verify",
|
|
"mcp": null,
|
|
"c": "wai_upscale_verify",
|
|
"rust": "wai::upscale::verify",
|
|
"sdk": "wai.upscale.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "media.tonemap",
|
|
"summary": "Render a still's gain map exactly at the headrooms named, with a signed record a verifier recomputes",
|
|
"cli": "wai tonemap run",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai tonemap run <in.wai> --headrooms <h,h,...> --out <dir> [--input-class <class>]",
|
|
" [--record <out.json> --key <seed>] [--issued-at <date-time>] [--json]",
|
|
" a WAI2 of a PNG base and its gain map; a headroom is in 1/10000 of a stop; each rendition is RGB16"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A WAI2 of a PNG base and its gain map.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"headrooms": {
|
|
"type": "string",
|
|
"description": "The headrooms, in 1/10000 of a stop, joined by commas.",
|
|
"x-cli": {
|
|
"flag": "--headrooms"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The directory the renditions are written in.",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
},
|
|
"input_class": {
|
|
"type": "string",
|
|
"description": "The input's class (captured).",
|
|
"x-cli": {
|
|
"flag": "--input-class"
|
|
}
|
|
},
|
|
"record": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The signed rendition record.",
|
|
"x-cli": {
|
|
"flag": "--record"
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"description": "The record's signing seed: 64 hexadecimal digits, or a file holding them.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"headrooms",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"width",
|
|
"height",
|
|
"subpixels",
|
|
"files"
|
|
],
|
|
"description": "What `wai upscale run` or `wai tonemap run` made: the subpixels it would bill, each file it wrote with its digest, and the record's link hash"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"exact_tonemap"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai media tonemap",
|
|
"mcp": null,
|
|
"c": "wai_media_tonemap",
|
|
"rust": "wai::media::tonemap",
|
|
"sdk": "wai.media.tonemap"
|
|
}
|
|
},
|
|
{
|
|
"id": "tonemap.verify",
|
|
"summary": "A rendition record recomputed from its envelope, and the renditions held to it",
|
|
"cli": "wai tonemap verify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai tonemap verify <record.json> --envelope <in.wai> [--renditions <dir>]",
|
|
" the record's outcome as JSON (extensions/exact-tonemap.md §8, under require-proof); exit 1 when it is refused"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"record": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The rendition record.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"envelope": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The WAI2 the record names.",
|
|
"x-cli": {
|
|
"flag": "--envelope"
|
|
}
|
|
},
|
|
"renditions": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The directory `wai tonemap run` wrote: each rendition is held to its picture.",
|
|
"x-cli": {
|
|
"flag": "--renditions"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"record",
|
|
"envelope"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"outcome"
|
|
],
|
|
"description": "accept, with the record's link hash and the subpixels it states; or refuse, with the reason and where"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"exact_tonemap"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai tonemap verify",
|
|
"mcp": null,
|
|
"c": "wai_tonemap_verify",
|
|
"rust": "wai::tonemap::verify",
|
|
"sdk": "wai.tonemap.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "score.build",
|
|
"summary": "A WSCR score from integer note fields",
|
|
"cli": "wai score build",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai score build <notes.json> -o <out.wscr> a WSCR from integer note fields"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"notes": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The note fields, JSON.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The score.",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"notes",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"description": "The score's digests, as `wai score build|render --json` print them"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"score"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai score build",
|
|
"mcp": null,
|
|
"c": "wai_score_build",
|
|
"rust": "wai::score::build",
|
|
"sdk": "wai.score.build"
|
|
}
|
|
},
|
|
{
|
|
"id": "score.decode",
|
|
"summary": "A score's reference mixdown and its digests (pcm_sha256, mixdown_blake3, score_hash)",
|
|
"cli": "wai score render",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai score render <in.wscr> [--pcm <out.s16>] the reference mixdown and its digests"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"score": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A WSCR score.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"pcm": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Where the mixdown is written.",
|
|
"x-cli": {
|
|
"flag": "--pcm"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"score"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"description": "The score's digests, as `wai score build|render --json` print them"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"score"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai score decode",
|
|
"mcp": null,
|
|
"c": "wai_score_decode",
|
|
"rust": "wai::score::decode",
|
|
"sdk": "wai.score.decode"
|
|
}
|
|
},
|
|
{
|
|
"id": "encoder.list",
|
|
"summary": "What each encoder interface offers on this device, for AVC and HEVC",
|
|
"cli": "wai encoders",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai encoders [--library <path>] what each encoder interface offers here"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"library": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A software encoder library.",
|
|
"x-cli": {
|
|
"flag": "--library"
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"platform_encode"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai encoder list",
|
|
"mcp": null,
|
|
"c": "wai_encoder_list",
|
|
"rust": "wai::encoder::list",
|
|
"sdk": "wai.encoder.list"
|
|
}
|
|
},
|
|
{
|
|
"id": "encoder.verify",
|
|
"summary": "A signed encode record checked, against the stream and its source where given",
|
|
"cli": "wai encode-record verify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai encode-record verify <record.json> [--stream <es>] [--source <in.y4m>]"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"record": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The signed record.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"stream": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The elementary stream it names.",
|
|
"x-cli": {
|
|
"flag": "--stream"
|
|
}
|
|
},
|
|
"source": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The source it names.",
|
|
"x-cli": {
|
|
"flag": "--source"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"record"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"platform_encode"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai encoder verify",
|
|
"mcp": null,
|
|
"c": "wai_encoder_verify",
|
|
"rust": "wai::encoder::verify",
|
|
"sdk": "wai.encoder.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "package.build",
|
|
"summary": "A package packed by the reference packager wai-pack from a policy, a source per component and a supplied floor, with its signed package receipt",
|
|
"cli": "wai package build",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai package build --policy <policy.toml> --out <dir> --key <seed.hex> [--source <id>=<file>]... [--floor <dir>]",
|
|
" [--signer-id <id>] [--meter none|model:<mW>] [--packer <wai-pack>] [wai-pack pack's other flags]",
|
|
" the reference packager's pack (extensions/packaging.md): the policy's components packed into <dir>, new or empty,",
|
|
" with the package receipt (package.receipt.json); the packer is --packer, $WAI_PACK_BIN, wai-pack beside wai,",
|
|
" or wai-pack on PATH"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"policy": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The packaging policy (extensions/packaging.md §3).",
|
|
"x-cli": {
|
|
"flag": "--policy"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A new or empty directory, written with the package.",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The packager's signing key: a 32-byte seed, in hexadecimal.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
},
|
|
"source": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "A component's source, <id>=<file>; each component's own by default.",
|
|
"x-cli": {
|
|
"flag": "--source"
|
|
}
|
|
},
|
|
"floor": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A supplied floor's directory (floor/ beside the policy by default).",
|
|
"x-cli": {
|
|
"flag": "--floor"
|
|
}
|
|
},
|
|
"signer_id": {
|
|
"type": "string",
|
|
"description": "The receipt's signer id (the key's did:key by default).",
|
|
"x-cli": {
|
|
"flag": "--signer-id"
|
|
}
|
|
},
|
|
"meter": {
|
|
"type": "string",
|
|
"description": "none, or model:<milliwatts>: the meter of the receipt's figure.",
|
|
"x-cli": {
|
|
"flag": "--meter"
|
|
}
|
|
},
|
|
"packer": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The packer's binary (wai-pack).",
|
|
"x-cli": {
|
|
"flag": "--packer"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"policy",
|
|
"out",
|
|
"key"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai package build",
|
|
"mcp": null,
|
|
"c": "wai_package_build",
|
|
"rust": "wai::package::build",
|
|
"sdk": "wai.package.build"
|
|
}
|
|
},
|
|
{
|
|
"id": "package.verify",
|
|
"summary": "A package verified by the reference packager wai-pack: every reason it is refused, or its counts and pack digest",
|
|
"cli": "wai package verify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai package verify <dir> [--parent <dir>] [--packer <wai-pack>] the reference packager's verify",
|
|
" (extensions/packaging.md §9): the package's receipt, stage indexes, objects and floor; with --parent, a re-pack against",
|
|
" the package its receipt names; exit 1 when refused"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dir": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The package's directory.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"parent": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The package a re-pack's receipt names.",
|
|
"x-cli": {
|
|
"flag": "--parent"
|
|
}
|
|
},
|
|
"packer": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The packer's binary (wai-pack).",
|
|
"x-cli": {
|
|
"flag": "--packer"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"dir"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai package verify",
|
|
"mcp": null,
|
|
"c": "wai_package_verify",
|
|
"rust": "wai::package::verify",
|
|
"sdk": "wai.package.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "registry.list",
|
|
"summary": "Every registered capability with its fidelity, licence class, replicate class and role, and whether this build decodes it",
|
|
"cli": "wai capabilities",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai capabilities the registered capabilities, their tier, licence, replicate class and role"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai registry list",
|
|
"mcp": "registry_list",
|
|
"c": "wai_registry_list",
|
|
"rust": "wai::registry::list",
|
|
"sdk": "wai.registry.list"
|
|
}
|
|
},
|
|
{
|
|
"id": "registry.export",
|
|
"summary": "Write, or with --check compare, the registry's machine-readable export and the generated table of REGISTRY.md",
|
|
"cli": "wai registry export",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai registry export [--root <wai-dir>] [--check] write (or compare) registry/capabilities.json, its",
|
|
" schema, vocab/v2.* and the generated table of REGISTRY.md"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "maintainer",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"root": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The wai/ directory.",
|
|
"x-cli": {
|
|
"flag": "--root"
|
|
}
|
|
},
|
|
"check": {
|
|
"type": "boolean",
|
|
"description": "Compare, write nothing.",
|
|
"x-cli": {
|
|
"flag": "--check"
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai registry export",
|
|
"mcp": null,
|
|
"c": "wai_registry_export",
|
|
"rust": "wai::registry::export",
|
|
"sdk": "wai.registry.export"
|
|
}
|
|
},
|
|
{
|
|
"id": "prior.list",
|
|
"summary": "The listing of a parameter set (wai.prior.set) on stdout, and its pin on stderr",
|
|
"cli": "wai prior-set",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai prior-set <root> print the listing of a parameter set (wai.prior.set) and its pin"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"root": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The parameter set's directory.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"root"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai prior list",
|
|
"mcp": null,
|
|
"c": "wai_prior_list",
|
|
"rust": "wai::prior::list",
|
|
"sdk": "wai.prior.list"
|
|
}
|
|
},
|
|
{
|
|
"id": "stage.encode",
|
|
"summary": "A refinement layer over a base and the layers below it, toward a target",
|
|
"cli": "wai stage refine",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai stage refine --base <b.wai> [--on <L.wai>]... --target <file> --q N [--predictor identity|up2|rate:NUM/DEN]",
|
|
" [--span F:C] [--out-dims D0,D1,D2] [--max-symbols N] [--table-per-unit] -o L.wai"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"base": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The base envelope.",
|
|
"x-cli": {
|
|
"flag": "--base"
|
|
}
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The target samples.",
|
|
"x-cli": {
|
|
"flag": "--target"
|
|
}
|
|
},
|
|
"q": {
|
|
"type": "integer",
|
|
"description": "The quantiser.",
|
|
"x-cli": {
|
|
"flag": "--q"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The layer.",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"base",
|
|
"target",
|
|
"q",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"staged",
|
|
"video_int",
|
|
"audio_int",
|
|
"splat_int"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai stage encode",
|
|
"mcp": null,
|
|
"c": "wai_stage_encode",
|
|
"rust": "wai::stage::encode",
|
|
"sdk": "wai.stage.encode"
|
|
}
|
|
},
|
|
{
|
|
"id": "stage.decode",
|
|
"summary": "Envelopes taken in order: each layer offered, each base decoded and refined, with each report and the units",
|
|
"cli": "wai stage apply",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai stage apply <envelope>... each layer offered, a base decoded (SPEC §4) and refined; the reports and units, or a JSON trace"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"envelopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "The base, then its layers.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"envelopes"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"description": "The trace of every stage reached, as `wai stage apply --json` prints it"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"staged",
|
|
"video_int",
|
|
"audio_int",
|
|
"splat_int"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai stage decode",
|
|
"mcp": null,
|
|
"c": "wai_stage_decode",
|
|
"rust": "wai::stage::decode",
|
|
"sdk": "wai.stage.decode"
|
|
}
|
|
},
|
|
{
|
|
"id": "stage.build",
|
|
"summary": "A wai.video.int_motion base of N frames of RGB8 (WIV1, keyframe 0, zero motion)",
|
|
"cli": "wai stage base",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai stage base --frames <file> --dims N,H,W --q Q -o base.wai"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"frames": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The frames, packed RGB8.",
|
|
"x-cli": {
|
|
"flag": "--frames"
|
|
}
|
|
},
|
|
"dims": {
|
|
"type": "string",
|
|
"description": "N,H,W.",
|
|
"x-cli": {
|
|
"flag": "--dims"
|
|
}
|
|
},
|
|
"q": {
|
|
"type": "integer",
|
|
"description": "The quantiser.",
|
|
"x-cli": {
|
|
"flag": "--q"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The base envelope.",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"frames",
|
|
"dims",
|
|
"q",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"staged",
|
|
"video_int",
|
|
"audio_int",
|
|
"splat_int"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai stage build",
|
|
"mcp": null,
|
|
"c": "wai_stage_build",
|
|
"rust": "wai::stage::build",
|
|
"sdk": "wai.stage.build"
|
|
}
|
|
},
|
|
{
|
|
"id": "stage.inspect",
|
|
"summary": "A refinement layer's refines, its WIR1 header and its declared cost",
|
|
"cli": "wai stage inspect",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai stage inspect <L.wai>"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"layer": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A layer envelope.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"layer"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"staged",
|
|
"video_int",
|
|
"audio_int",
|
|
"splat_int"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai stage inspect",
|
|
"mcp": null,
|
|
"c": "wai_stage_inspect",
|
|
"rust": "wai::stage::inspect",
|
|
"sdk": "wai.stage.inspect"
|
|
}
|
|
},
|
|
{
|
|
"id": "stage.wrap",
|
|
"summary": "WAI1 envelopes packed into one WAI2, their manifests verbatim",
|
|
"cli": "wai stage pack",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai stage pack <base.wai> <L.wai>... -o x.wai"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"envelopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "The base, then its layers.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The WAI2 envelope.",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"envelopes",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"staged",
|
|
"video_int",
|
|
"audio_int",
|
|
"splat_int"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai stage wrap",
|
|
"mcp": null,
|
|
"c": "wai_stage_wrap",
|
|
"rust": "wai::stage::wrap",
|
|
"sdk": "wai.stage.wrap"
|
|
}
|
|
},
|
|
{
|
|
"id": "stage.unwrap",
|
|
"summary": "One component of a WAI2 envelope as its WAI1 envelope",
|
|
"cli": "wai stage explode",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai stage explode <x.wai> <i> [-o out.wai]"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A WAI2 envelope.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"index": {
|
|
"type": "integer",
|
|
"description": "The component's index.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The WAI1 envelope.",
|
|
"x-cli": {
|
|
"flag": "-o"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"index"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"staged",
|
|
"video_int",
|
|
"audio_int",
|
|
"splat_int"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai stage unwrap",
|
|
"mcp": null,
|
|
"c": "wai_stage_unwrap",
|
|
"rust": "wai::stage::unwrap",
|
|
"sdk": "wai.stage.unwrap"
|
|
}
|
|
},
|
|
{
|
|
"id": "http.export",
|
|
"summary": "Envelopes named by their content hash, each with its head proof and entity tag, ready for an origin",
|
|
"cli": "wai http publish",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http publish <in.wai>... --out <dir>"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"envelopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "The envelopes.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The directory.",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"envelopes",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"http"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai http export",
|
|
"mcp": null,
|
|
"c": "wai_http_export",
|
|
"rust": "wai::http::export",
|
|
"sdk": "wai.http.export"
|
|
}
|
|
},
|
|
{
|
|
"id": "http.inspect",
|
|
"summary": "The codecs parameter a sequence of envelopes advertises: its union and its floor",
|
|
"cli": "wai http codecs",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http codecs <in.wai>..."
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"envelopes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "The envelopes.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"envelopes"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"http"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai http inspect",
|
|
"mcp": null,
|
|
"c": "wai_http_inspect",
|
|
"rust": "wai::http::inspect",
|
|
"sdk": "wai.http.inspect"
|
|
}
|
|
},
|
|
{
|
|
"id": "http.start",
|
|
"summary": "An origin on loopback serving a published directory with http-delivery's headers, ranges and If-Range",
|
|
"cli": "wai http origin",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http origin --root <dir> [--port P] [--delay-range FIRST-LAST:MS]"
|
|
],
|
|
"placement": "local",
|
|
"effect": "runs",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"root": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The published directory.",
|
|
"x-cli": {
|
|
"flag": "--root"
|
|
}
|
|
},
|
|
"port": {
|
|
"type": "integer",
|
|
"description": "The port on 127.0.0.1.",
|
|
"x-cli": {
|
|
"flag": "--port"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"root"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"http"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai http start",
|
|
"mcp": null,
|
|
"c": "wai_http_start",
|
|
"rust": "wai::http::start",
|
|
"sdk": "wai.http.start"
|
|
}
|
|
},
|
|
{
|
|
"id": "hls.build",
|
|
"summary": "An HLS rendition of published objects",
|
|
"cli": "wai http hls",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http hls --objects <list.json> --out <dir> [--master NAME]"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"objects": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The objects, JSON.",
|
|
"x-cli": {
|
|
"flag": "--objects"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The directory.",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"objects",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"http"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai hls build",
|
|
"mcp": null,
|
|
"c": "wai_hls_build",
|
|
"rust": "wai::hls::build",
|
|
"sdk": "wai.hls.build"
|
|
}
|
|
},
|
|
{
|
|
"id": "dash.build",
|
|
"summary": "A DASH manifest of published objects",
|
|
"cli": "wai http mpd",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http mpd --objects <list.json> --out <wai.mpd> [--period-id ID] [--set-id N]"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"objects": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The objects, JSON.",
|
|
"x-cli": {
|
|
"flag": "--objects"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The manifest.",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"objects",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"http"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai dash build",
|
|
"mcp": null,
|
|
"c": "wai_dash_build",
|
|
"rust": "wai::dash::build",
|
|
"sdk": "wai.dash.build"
|
|
}
|
|
},
|
|
{
|
|
"id": "playlist.lock",
|
|
"summary": "A media playlist sealed with a signed manifest receipt",
|
|
"cli": "wai http seal-playlist",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http seal-playlist <m3u8> --key <seed> [--signer-id ID] [--content-id ID] [--parent <mr.json>] [--out <dir>]"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"playlist": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The playlist.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The signing seed.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"playlist",
|
|
"key"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"http",
|
|
"video_manifest"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai playlist lock",
|
|
"mcp": null,
|
|
"c": "wai_playlist_lock",
|
|
"rust": "wai::playlist::lock",
|
|
"sdk": "wai.playlist.lock"
|
|
}
|
|
},
|
|
{
|
|
"id": "playlist.verify",
|
|
"summary": "A media playlist checked against its manifest receipt",
|
|
"cli": "wai http check-playlist",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http check-playlist <m3u8> --receipt <mr.json> [--parent <mr.json>] [--classical <m3u8>]"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"playlist": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The playlist.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"receipt": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Its manifest receipt.",
|
|
"x-cli": {
|
|
"flag": "--receipt"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"playlist",
|
|
"receipt"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"http",
|
|
"video_manifest"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai playlist verify",
|
|
"mcp": null,
|
|
"c": "wai_playlist_verify",
|
|
"rust": "wai::playlist::verify",
|
|
"sdk": "wai.playlist.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "corpus.generate",
|
|
"summary": "The HTTP conformance corpus: generated, verified, or its differential and fuzz cases written",
|
|
"cli": "wai http vectors",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http vectors gen|verify <http-conformance dir>",
|
|
"wai http vectors diff|fuzz <dir> --seed S --count N --out F"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "maintainer",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mode": {
|
|
"type": "string",
|
|
"description": "gen, verify, diff or fuzz.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"dir": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The corpus directory.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"mode",
|
|
"dir"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"http"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai corpus generate",
|
|
"mcp": null,
|
|
"c": "wai_corpus_generate",
|
|
"rust": "wai::corpus::generate",
|
|
"sdk": "wai.corpus.generate"
|
|
}
|
|
},
|
|
{
|
|
"id": "http.load",
|
|
"summary": "An object fetched by the byte-range procedure, repeatedly, and the record of each run",
|
|
"cli": "wai http bench",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http bench --url URL --runs N --advertise CAP [--advertise CAP]... --out F"
|
|
],
|
|
"placement": "client",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"url": {
|
|
"type": "string",
|
|
"description": "The object's URL.",
|
|
"x-cli": {
|
|
"flag": "--url"
|
|
}
|
|
},
|
|
"runs": {
|
|
"type": "integer",
|
|
"description": "How many runs.",
|
|
"x-cli": {
|
|
"flag": "--runs"
|
|
}
|
|
},
|
|
"advertise": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "A capability this sink advertises.",
|
|
"x-cli": {
|
|
"flag": "--advertise"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The record.",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"url",
|
|
"runs",
|
|
"advertise",
|
|
"out"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"http"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai http load",
|
|
"mcp": null,
|
|
"c": "wai_http_load",
|
|
"rust": "wai::http::load",
|
|
"sdk": "wai.http.load"
|
|
}
|
|
},
|
|
{
|
|
"id": "receipt.fetch",
|
|
"summary": "An object's receipt index fetched over HTTP and checked, its signers confirmed under the origin's key log where named",
|
|
"cli": "wai http receipts",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai http receipts --url URL [--advertise CAP]... [--held fetch|none] [--join] [--max-walk N] [--fetch-budget N]",
|
|
" [--deadline-ms MS] [--key-origin https://HOST[:PORT] [--pin-key-log FILE | --test-plaintext-connect HOST:PORT]]"
|
|
],
|
|
"placement": "client",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"url": {
|
|
"type": "string",
|
|
"description": "The object's URL.",
|
|
"x-cli": {
|
|
"flag": "--url"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"url"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"http",
|
|
"receipt_claims"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai receipt fetch",
|
|
"mcp": null,
|
|
"c": "wai_receipt_fetch",
|
|
"rust": "wai::receipt::fetch",
|
|
"sdk": "wai.receipt.fetch"
|
|
}
|
|
},
|
|
{
|
|
"id": "compat.check",
|
|
"summary": "What the working tree breaks against a git ref, by category (wire, record, api); a break passes once the CHANGELOG names it",
|
|
"cli": "wai breaking",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai breaking --against <git-ref> [--category wire|record|api] [--only <surface>,...] [--skip <surface>,...]",
|
|
" [--root <dir>] [--target-dir <dir>] [--all] exit 1 on a break the CHANGELOG does not acknowledge"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"against": {
|
|
"type": "string",
|
|
"description": "The git ref to compare with.",
|
|
"x-cli": {
|
|
"flag": "--against"
|
|
}
|
|
},
|
|
"category": {
|
|
"type": "string",
|
|
"description": "wire, record or api: the categories checked, cumulative (api).",
|
|
"x-cli": {
|
|
"flag": "--category"
|
|
}
|
|
},
|
|
"only": {
|
|
"type": "string",
|
|
"description": "Only these surfaces, comma-separated.",
|
|
"x-cli": {
|
|
"flag": "--only"
|
|
}
|
|
},
|
|
"skip": {
|
|
"type": "string",
|
|
"description": "Not these surfaces, comma-separated.",
|
|
"x-cli": {
|
|
"flag": "--skip"
|
|
}
|
|
},
|
|
"root": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The repository's root (.).",
|
|
"x-cli": {
|
|
"flag": "--root"
|
|
}
|
|
},
|
|
"target_dir": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Where the Rust API's description is built.",
|
|
"x-cli": {
|
|
"flag": "--target-dir"
|
|
}
|
|
},
|
|
"all": {
|
|
"type": "boolean",
|
|
"description": "List every finding, compatible ones too.",
|
|
"x-cli": {
|
|
"flag": "--all"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"against"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"against",
|
|
"findings"
|
|
],
|
|
"description": "Each finding's id, category, what changed and whether the CHANGELOG acknowledges it"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai compat check",
|
|
"mcp": null,
|
|
"c": "wai_compat_check",
|
|
"rust": "wai::compat::check",
|
|
"sdk": "wai.compat.check"
|
|
}
|
|
},
|
|
{
|
|
"id": "conformance.run",
|
|
"summary": "WAI's conformance corpus run against another implementation, through a command or an HTTP adapter, its result a signed record wai verify checks",
|
|
"cli": "wai conform",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai conform <kind> --suite <suite> --impl <command or URL> [--key <file>] [--out <file>] [--root <wai-dir>]",
|
|
" [--timeout <seconds>] [--name <text>] [--version <text>] [--all] [--yes] `wai conformance list` names",
|
|
" the kinds and suites; a record that exists is replaced only with --yes (--confirm, deprecated, is the same)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"description": "The kind of implementation (wai conformance list): a decoder, a verifier, an origin, a packager, a sink.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"suite": {
|
|
"type": "string",
|
|
"description": "The suite (wai conformance list).",
|
|
"x-cli": {
|
|
"flag": "--suite"
|
|
}
|
|
},
|
|
"impl": {
|
|
"type": "string",
|
|
"description": "The implementation: a command with {case}/{in}/{out}/{corpus} placeholders, or a URL.",
|
|
"x-cli": {
|
|
"flag": "--impl"
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The seed the record is signed with.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The record (<suite>.wai-conform.json).",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
},
|
|
"root": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The wai/ directory whose corpora are run.",
|
|
"x-cli": {
|
|
"flag": "--root"
|
|
}
|
|
},
|
|
"timeout": {
|
|
"type": "integer",
|
|
"description": "Seconds a case may take.",
|
|
"x-cli": {
|
|
"flag": "--timeout"
|
|
}
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The implementation's name, for the record.",
|
|
"x-cli": {
|
|
"flag": "--name"
|
|
}
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"description": "The implementation's version, for the record.",
|
|
"x-cli": {
|
|
"flag": "--version"
|
|
}
|
|
},
|
|
"all": {
|
|
"type": "boolean",
|
|
"description": "List every case, passed ones too.",
|
|
"x-cli": {
|
|
"flag": "--all"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"kind",
|
|
"impl"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"conformant",
|
|
"cases",
|
|
"passed",
|
|
"failed"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"quickstart"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai conformance run",
|
|
"mcp": "conformance_run",
|
|
"c": "wai_conformance_run",
|
|
"rust": "wai::conformance::run",
|
|
"sdk": "wai.conformance.run"
|
|
}
|
|
},
|
|
{
|
|
"id": "conformance.list",
|
|
"summary": "The kinds and suites wai conform runs, each suite's corpus and its cases",
|
|
"cli": "wai conformance list",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai conformance list [--root <wai-dir>] (also wai conform --list)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"root": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The wai/ directory whose corpora are listed.",
|
|
"x-cli": {
|
|
"flag": "--root"
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"suites"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"quickstart"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai conformance list",
|
|
"mcp": "conformance_list",
|
|
"c": "wai_conformance_list",
|
|
"rust": "wai::conformance::list",
|
|
"sdk": "wai.conformance.list"
|
|
}
|
|
},
|
|
{
|
|
"id": "enrolment.create",
|
|
"summary": "A node's enrolment signed with the organisation key, written to a file and, with --target, given to a fleet service",
|
|
"cli": "wai enrolment create",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai enrolment create <node-key> --role <role> --key <file> [--label L] [--from µs] [--until µs] [--out F]",
|
|
" [--target URL] [--yes] a node's enrolment (WFE1), signed with the organisation key, written to F",
|
|
" (<node>.wfe without --target) and, with --target, given to the fleet service there; changing the service",
|
|
" or replacing a file waits for --yes (--confirm, deprecated, is the same)"
|
|
],
|
|
"placement": "client",
|
|
"effect": "writes-target",
|
|
"dry_run": true,
|
|
"confirm": "when-changing-the-target-or-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"node": {
|
|
"type": "string",
|
|
"description": "The node's Ed25519 public key, 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"role": {
|
|
"type": "string",
|
|
"description": "relay, compositor, ingest, room, ledger or audit.",
|
|
"x-cli": {
|
|
"flag": "--role"
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The organisation key's file: 32 bytes, or 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
},
|
|
"label": {
|
|
"type": "string",
|
|
"description": "The node's label, at most 64 bytes.",
|
|
"x-cli": {
|
|
"flag": "--label"
|
|
}
|
|
},
|
|
"from": {
|
|
"type": "integer",
|
|
"description": "The start of the span it holds, microseconds since 1970 (0).",
|
|
"x-cli": {
|
|
"flag": "--from"
|
|
}
|
|
},
|
|
"until": {
|
|
"type": "integer",
|
|
"description": "The end of that span, microseconds since 1970 (none).",
|
|
"x-cli": {
|
|
"flag": "--until"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The enrolment's file (<node>.wfe when no --target is given).",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"description": "A fleet service's http:// address, given the enrolment.",
|
|
"x-cli": {
|
|
"flag": "--target"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"node",
|
|
"role",
|
|
"key"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"node",
|
|
"role",
|
|
"organisation",
|
|
"digest",
|
|
"enrolment"
|
|
],
|
|
"description": "The enrolment (WFE1, hexadecimal), its digest, and the file and service it went to"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"fleet"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai enrolment create",
|
|
"mcp": null,
|
|
"c": "wai_enrolment_create",
|
|
"rust": "wai::enrolment::create",
|
|
"sdk": "wai.enrolment.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "enrolment.list",
|
|
"summary": "The nodes a fleet service holds enrolled, each with its role, label and how many records it gave",
|
|
"cli": "wai enrolment list",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai enrolment list --target URL the nodes the fleet service at URL holds enrolled"
|
|
],
|
|
"placement": "client",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"target": {
|
|
"type": "string",
|
|
"description": "The fleet service's http:// address.",
|
|
"x-cli": {
|
|
"flag": "--target"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"enrolments"
|
|
],
|
|
"description": "Each node the fleet service holds enrolled: its key, role, label and records"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai enrolment list",
|
|
"mcp": null,
|
|
"c": "wai_enrolment_list",
|
|
"rust": "wai::enrolment::list",
|
|
"sdk": "wai.enrolment.list"
|
|
}
|
|
},
|
|
{
|
|
"id": "report.create",
|
|
"summary": "The fleet report of a period, signed by a fleet service over the enrolments and records it holds",
|
|
"cli": "wai report create",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai report create --target URL --start µs --end µs [--yes] the fleet report of [start, end), signed by the",
|
|
" fleet service at URL; it changes the service, so it waits for --yes (--confirm, deprecated, is the same)"
|
|
],
|
|
"placement": "client",
|
|
"effect": "writes-target",
|
|
"dry_run": true,
|
|
"confirm": "always",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"target": {
|
|
"type": "string",
|
|
"description": "The fleet service's http:// address.",
|
|
"x-cli": {
|
|
"flag": "--target"
|
|
}
|
|
},
|
|
"start": {
|
|
"type": "integer",
|
|
"description": "The period's start, microseconds since 1970.",
|
|
"x-cli": {
|
|
"flag": "--start"
|
|
}
|
|
},
|
|
"end": {
|
|
"type": "integer",
|
|
"description": "The period's end, after its start.",
|
|
"x-cli": {
|
|
"flag": "--end"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"target",
|
|
"start",
|
|
"end"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"report",
|
|
"outcome"
|
|
],
|
|
"description": "The report's digest and its outcome as extensions/fleet.md §7.3 states it"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai report create",
|
|
"mcp": null,
|
|
"c": "wai_report_create",
|
|
"rust": "wai::report::create",
|
|
"sdk": "wai.report.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "report.export",
|
|
"summary": "A fleet report's bundle fetched from a fleet service, its report recomputed here, then written to a file",
|
|
"cli": "wai report export",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai report export <digest> --target URL [--out F] [--yes] the report's bundle from the fleet service at URL,",
|
|
" recomputed by this build and written to F (<digest>.wai-fleet.json) for `wai verify`; replacing a file",
|
|
" waits for --yes (--confirm, deprecated, is the same)"
|
|
],
|
|
"placement": "client",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"digest": {
|
|
"type": "string",
|
|
"description": "The report's digest, 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"target": {
|
|
"type": "string",
|
|
"description": "The fleet service's http:// address.",
|
|
"x-cli": {
|
|
"flag": "--target"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The bundle's file (<digest>.wai-fleet.json).",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"digest",
|
|
"target"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"file",
|
|
"outcome"
|
|
],
|
|
"description": "The bundle's file and its outcome, recomputed here"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"fleet"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai report export",
|
|
"mcp": null,
|
|
"c": "wai_report_export",
|
|
"rust": "wai::report::export",
|
|
"sdk": "wai.report.export"
|
|
}
|
|
},
|
|
{
|
|
"id": "route.verify",
|
|
"summary": "A route record checked offline against its request, price book and routing policy, and against its hops' OER/2 receipts where given",
|
|
"cli": "wai route verify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai route verify <document.json> a verification document (extensions/route-record.md §7.1): the record's outcome",
|
|
" (§7.3) as JSON, recomputed from the request, the price book and the policy; exit 1 when it is refused"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"document": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The verification document: the request, price book, policy and record, and the hops' receipts.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"document"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"outcome"
|
|
],
|
|
"description": "The outcome of extensions/route-record.md §7.3: accept with the record's digest, the served and billed hops, the deadline, the order, the decision, the removals and the unmetered hops; or refuse with the reason and where"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"route_record"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai route verify",
|
|
"mcp": null,
|
|
"c": "wai_route_verify",
|
|
"rust": "wai::route::verify",
|
|
"sdk": "wai.route.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "channel.import",
|
|
"summary": "A linear channel's feeds (an XMLTV schedule, Media RSS catalogues or the JSON form, and a Media Playlist's SCTE-35 date ranges) imported into its signed receipt, its signed lineup and its breaks' cues",
|
|
"cli": "wai channel import",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai channel import --channel ID (--xmltv F [--mrss F]... | --mrss F... | --feed F) [--playlist F] --key K",
|
|
" [--mrss-owner O]... [--owner O] [--signer-id S] [--id-system N] [--xmltv-channel X] [--start-ms T] [--artwork DIR]",
|
|
" [--window-start T --window-end T] [--parent HEX] [--out-dir D] [--yes] the receipt (channel.json), the lineup",
|
|
" (lineup.wlu) and the cues (cues.json), written to D (.); a refusal's code is its reason; replacing a file waits",
|
|
" for --yes (--confirm, deprecated, is the same)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"channel": {
|
|
"type": "string",
|
|
"description": "The channel id.",
|
|
"x-cli": {
|
|
"flag": "--channel"
|
|
}
|
|
},
|
|
"xmltv": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "An XMLTV document: the schedule.",
|
|
"x-cli": {
|
|
"flag": "--xmltv"
|
|
}
|
|
},
|
|
"mrss": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "A Media RSS document: a catalogue. Repeated.",
|
|
"x-cli": {
|
|
"flag": "--mrss"
|
|
}
|
|
},
|
|
"mrss_owner": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "The rights holder of each --mrss document's items, in their order: none, or one each.",
|
|
"x-cli": {
|
|
"flag": "--mrss-owner"
|
|
}
|
|
},
|
|
"feed": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The JSON form of a schedule, its catalogue and its breaks.",
|
|
"x-cli": {
|
|
"flag": "--feed"
|
|
}
|
|
},
|
|
"playlist": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The channel's HLS Media Playlist, whose SCTE-35 date ranges are its breaks.",
|
|
"x-cli": {
|
|
"flag": "--playlist"
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The operator's key file: 32 bytes, or 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
},
|
|
"owner": {
|
|
"type": "string",
|
|
"description": "The rights holder of every asset no other input gives one.",
|
|
"x-cli": {
|
|
"flag": "--owner"
|
|
}
|
|
},
|
|
"signer_id": {
|
|
"type": "string",
|
|
"description": "The receipt's signer id (the operator key's did:key).",
|
|
"x-cli": {
|
|
"flag": "--signer-id"
|
|
}
|
|
},
|
|
"id_system": {
|
|
"type": "string",
|
|
"description": "The XMLTV episode-num system that names a programme's asset (wai-asset-id).",
|
|
"x-cli": {
|
|
"flag": "--id-system"
|
|
}
|
|
},
|
|
"xmltv_channel": {
|
|
"type": "string",
|
|
"description": "The XMLTV channel id whose programmes are read (the channel id).",
|
|
"x-cli": {
|
|
"flag": "--xmltv-channel"
|
|
}
|
|
},
|
|
"start_ms": {
|
|
"type": "integer",
|
|
"description": "Where a schedule of Media RSS items alone begins, milliseconds since 1970.",
|
|
"x-cli": {
|
|
"flag": "--start-ms"
|
|
}
|
|
},
|
|
"artwork": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The directory holding the artwork files the feeds' icons and thumbnails name.",
|
|
"x-cli": {
|
|
"flag": "--artwork"
|
|
}
|
|
},
|
|
"window_start": {
|
|
"type": "integer",
|
|
"description": "The receipt's window's start (the schedule's first start).",
|
|
"x-cli": {
|
|
"flag": "--window-start"
|
|
}
|
|
},
|
|
"window_end": {
|
|
"type": "integer",
|
|
"description": "The receipt's window's end (the schedule's last end).",
|
|
"x-cli": {
|
|
"flag": "--window-end"
|
|
}
|
|
},
|
|
"parent": {
|
|
"type": "string",
|
|
"description": "The receipt hash of the window before this one, 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"flag": "--parent"
|
|
}
|
|
},
|
|
"out_dir": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Where channel.json, lineup.wlu and cues.json are written (.).",
|
|
"x-cli": {
|
|
"flag": "--out-dir"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"channel",
|
|
"key"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"channel",
|
|
"receipt",
|
|
"receipt_hash",
|
|
"schedule_root",
|
|
"lineup",
|
|
"lineup_digest",
|
|
"cues"
|
|
],
|
|
"description": "The files written (the receipt, the lineup, the cues), the receipt's identity and schedule root, the lineup's digest, and their counts"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"channel_lineup"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai channel import",
|
|
"mcp": null,
|
|
"c": "wai_channel_import",
|
|
"rust": "wai::channel::import",
|
|
"sdk": "wai.channel.import"
|
|
}
|
|
},
|
|
{
|
|
"id": "channel.guide",
|
|
"summary": "A channel's guide, an XMLTV document or a now/next document, rendered from its receipt and its lineup and naming both",
|
|
"cli": "wai channel guide",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai channel guide --receipt R --lineup L [--from T --to T | --now-next --at T] [--out F] [--yes] the XMLTV guide",
|
|
" of a range (the whole schedule), or the now/next document of an instant, written to F (guide.xml, now-next.json);",
|
|
" replacing a file waits for --yes (--confirm, deprecated, is the same)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"receipt": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The channel receipt, in its JSON carriage.",
|
|
"x-cli": {
|
|
"flag": "--receipt"
|
|
}
|
|
},
|
|
"lineup": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The lineup's file.",
|
|
"x-cli": {
|
|
"flag": "--lineup"
|
|
}
|
|
},
|
|
"from": {
|
|
"type": "integer",
|
|
"description": "The range's start, milliseconds since 1970 (the schedule's first start).",
|
|
"x-cli": {
|
|
"flag": "--from"
|
|
}
|
|
},
|
|
"to": {
|
|
"type": "integer",
|
|
"description": "The range's end (the schedule's last end).",
|
|
"x-cli": {
|
|
"flag": "--to"
|
|
}
|
|
},
|
|
"now_next": {
|
|
"type": "boolean",
|
|
"description": "The now/next document of --at instead.",
|
|
"x-cli": {
|
|
"flag": "--now-next"
|
|
}
|
|
},
|
|
"at": {
|
|
"type": "integer",
|
|
"description": "The instant of a now/next document, milliseconds since 1970.",
|
|
"x-cli": {
|
|
"flag": "--at"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The guide's file (guide.xml, or now-next.json).",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"receipt",
|
|
"lineup"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"file",
|
|
"format",
|
|
"schedule_root",
|
|
"lineup"
|
|
],
|
|
"description": "The guide's file and format (xmltv or now-next), the sources it names, and its range or instant"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"channel_lineup"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai channel guide",
|
|
"mcp": null,
|
|
"c": "wai_channel_guide",
|
|
"rust": "wai::channel::guide",
|
|
"sdk": "wai.channel.guide"
|
|
}
|
|
},
|
|
{
|
|
"id": "channel.verify",
|
|
"summary": "A channel's receipt, its lineup and a guide verified together: the guide recomputed from the two and compared, each programme with whether it aired",
|
|
"cli": "wai channel verify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai channel verify --receipt R --lineup L [--guide G] the receipt, the lineup and the guide checked together;",
|
|
" exit 1 with the reason when one does not verify"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"receipt": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The channel receipt, in its JSON carriage.",
|
|
"x-cli": {
|
|
"flag": "--receipt"
|
|
}
|
|
},
|
|
"lineup": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The lineup's file.",
|
|
"x-cli": {
|
|
"flag": "--lineup"
|
|
}
|
|
},
|
|
"guide": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "An XMLTV guide or a now/next document.",
|
|
"x-cli": {
|
|
"flag": "--guide"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"receipt",
|
|
"lineup"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"verdict",
|
|
"part",
|
|
"receipt",
|
|
"lineup",
|
|
"guide",
|
|
"entry"
|
|
],
|
|
"description": "What extensions/channel-lineup.md §8.3 states: the verdict and the part it is about, the receipt's identity, the lineup's digest, and the guide's programmes, each with whether it aired"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"channel_lineup"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai channel verify",
|
|
"mcp": null,
|
|
"c": "wai_channel_verify",
|
|
"rust": "wai::channel::verify",
|
|
"sdk": "wai.channel.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "mcp.start",
|
|
"summary": "WAI's operations as tools for a coding agent: a Model Context Protocol server on standard input and output, in toolsets",
|
|
"cli": "wai mcp",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai mcp [--toolset core,dev,app] [--read-only] [--project DIR] [--spec-root DIR] [--room-bin BIN]",
|
|
" serves until standard input closes; --dry-run names the tools it would serve and serves nothing"
|
|
],
|
|
"placement": "local",
|
|
"effect": "runs",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"toolset": {
|
|
"type": "string",
|
|
"description": "The toolsets to offer, comma-separated (core when none is named).",
|
|
"x-cli": {
|
|
"flag": "--toolset"
|
|
}
|
|
},
|
|
"read_only": {
|
|
"type": "boolean",
|
|
"description": "Offer only the tools that read or run a verifier.",
|
|
"x-cli": {
|
|
"flag": "--read-only"
|
|
}
|
|
},
|
|
"project": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The directory the server may write in (the current one).",
|
|
"x-cli": {
|
|
"flag": "--project"
|
|
}
|
|
},
|
|
"spec_root": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The wai/ directory whose text and corpora the tools read.",
|
|
"x-cli": {
|
|
"flag": "--spec-root"
|
|
}
|
|
},
|
|
"room_bin": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The room service the development room runs.",
|
|
"x-cli": {
|
|
"flag": "--room-bin"
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": {
|
|
"description": "One JSON-RPC 2.0 message per line, the Model Context Protocol"
|
|
},
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"mcp"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai mcp start",
|
|
"mcp": null,
|
|
"c": "wai_mcp_start",
|
|
"rust": "wai::mcp::start",
|
|
"sdk": "wai.mcp.start"
|
|
}
|
|
},
|
|
{
|
|
"id": "agent.setup",
|
|
"summary": "A project made ready for coding agents: AGENTS.md, an import of it in a CLAUDE.md already there, and wai mcp registered in its MCP configuration",
|
|
"cli": "wai setup-agent",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai setup-agent [--dir D] [--all] [--only FILE,...] [--toolset core,dev,app] [--command PROGRAM]",
|
|
" a file that exists changes only once confirmed (--yes, or yes at a terminal); --dry-run shows each diff"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dir": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The project directory (the current one).",
|
|
"x-cli": {
|
|
"flag": "--dir"
|
|
}
|
|
},
|
|
"all": {
|
|
"type": "boolean",
|
|
"description": "Write every agent's configuration file, not only those whose directory is there.",
|
|
"x-cli": {
|
|
"flag": "--all"
|
|
}
|
|
},
|
|
"only": {
|
|
"type": "string",
|
|
"description": "Only these files, comma-separated.",
|
|
"x-cli": {
|
|
"flag": "--only"
|
|
}
|
|
},
|
|
"toolset": {
|
|
"type": "string",
|
|
"description": "The toolsets the registered server offers.",
|
|
"x-cli": {
|
|
"flag": "--toolset"
|
|
}
|
|
},
|
|
"command": {
|
|
"type": "string",
|
|
"description": "The program the registration runs (wai).",
|
|
"x-cli": {
|
|
"flag": "--command"
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"project",
|
|
"dry_run",
|
|
"files"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai agent setup",
|
|
"mcp": null,
|
|
"c": "wai_agent_setup",
|
|
"rust": "wai::agent::setup",
|
|
"sdk": "wai.agent.setup"
|
|
}
|
|
},
|
|
{
|
|
"id": "app.guide",
|
|
"summary": "The line language and every WAI widget, as a model writing a WAI app is told them",
|
|
"cli": "wai app guide",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai app guide what a model writing an app made with Create is told"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "app",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"app"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai app guide",
|
|
"mcp": "app_guide",
|
|
"c": "wai_app_guide",
|
|
"rust": "wai::app::guide",
|
|
"sdk": "wai.app.guide"
|
|
}
|
|
},
|
|
{
|
|
"id": "app.check",
|
|
"summary": "An app program checked against the WAI registry and WAI's rules, every error with its line and reason code; in a project, its room and runtime too",
|
|
"cli": "wai app check",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai app check [<dir> | <app.oui>] exit 1 when something does not hold, each failure named"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "app",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"program": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A project directory or a program (.).",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"program",
|
|
"errors",
|
|
"failures",
|
|
"checked"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"app"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai app check",
|
|
"mcp": "app_check",
|
|
"c": "wai_app_check",
|
|
"rust": "wai::app::check",
|
|
"sdk": "wai.app.check"
|
|
}
|
|
},
|
|
{
|
|
"id": "app.export",
|
|
"summary": "An app made with Create written as a project: the program, wai.json naming its room, the page and its runtime, a README, AGENTS.md and the licence",
|
|
"cli": "wai app export",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai app export <app.oui> <dir> [--runtime DIR] the same as wai create <dir> --from <app.oui>"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "app",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"program": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The program made with Create.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"dir": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A directory that does not exist or is empty.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"runtime": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A Create runtime ($WAI_APP_RUNTIME, or share/wai/app beside wai).",
|
|
"x-cli": {
|
|
"flag": "--runtime"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"program",
|
|
"dir"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"app"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai app export",
|
|
"mcp": "app_export",
|
|
"c": "wai_app_export",
|
|
"rust": "wai::app::export",
|
|
"sdk": "wai.app.export"
|
|
}
|
|
},
|
|
{
|
|
"id": "app.stream",
|
|
"summary": "A program streamed into the person's open Create page through the bridge wai mcp runs on loopback",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai (wai mcp --toolset app: app_stream)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "runs",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": null,
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "app",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"program": {
|
|
"type": "string",
|
|
"description": "The program's text."
|
|
},
|
|
"chunk": {
|
|
"type": "integer",
|
|
"description": "Characters a chunk (24)."
|
|
},
|
|
"pace_ms": {
|
|
"type": "integer",
|
|
"description": "Milliseconds between chunks (30)."
|
|
}
|
|
},
|
|
"required": [
|
|
"program"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"description": "The tool's structured result"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"app"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": "app_stream",
|
|
"c": "wai_app_stream",
|
|
"rust": "wai::app::stream",
|
|
"sdk": "wai.app.stream"
|
|
}
|
|
},
|
|
{
|
|
"id": "registry.show",
|
|
"summary": "One capability's registry entry, whether this build decodes it, its role, and the specification lines that name it",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai (wai mcp: registry_show)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": null,
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"capability": {
|
|
"type": "string",
|
|
"description": "A capability string, e.g. wai.image.avif."
|
|
}
|
|
},
|
|
"required": [
|
|
"capability"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"description": "The tool's structured result"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": "registry_show",
|
|
"c": "wai_registry_show",
|
|
"rust": "wai::registry::show",
|
|
"sdk": "wai.registry.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "docs.search",
|
|
"summary": "Lines of the specification and its extensions holding every word of a query, each with its file, line and section",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai (wai mcp: docs_search)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": null,
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"query": {
|
|
"type": "string",
|
|
"description": "Words that must all appear on a line."
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"description": "At most this many hits (20)."
|
|
}
|
|
},
|
|
"required": [
|
|
"query"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"description": "The tool's structured result"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": "docs_search",
|
|
"c": "wai_docs_search",
|
|
"rust": "wai::docs::search",
|
|
"sdk": "wai.docs.search"
|
|
}
|
|
},
|
|
{
|
|
"id": "dev.stop",
|
|
"summary": "The development relay and room service a wai mcp server started, stopped",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai (wai mcp: dev_stop)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "runs",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": null,
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "dev",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"description": "The tool's structured result"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": "dev_stop",
|
|
"c": "wai_dev_stop",
|
|
"rust": "wai::dev::stop",
|
|
"sdk": "wai.dev.stop"
|
|
}
|
|
},
|
|
{
|
|
"id": "room.join",
|
|
"summary": "A test principal enters the development room with its grant, publishes its tracks, and is seen joined by the room's clock",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai (wai mcp: room_join)"
|
|
],
|
|
"placement": "client",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": null,
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "dev",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"target": {
|
|
"type": "string",
|
|
"description": "local: the development room on this machine."
|
|
},
|
|
"principal": {
|
|
"type": "string",
|
|
"description": "A test principal granted the publisher role."
|
|
},
|
|
"objects": {
|
|
"type": "integer",
|
|
"description": "Objects on each track (1)."
|
|
}
|
|
},
|
|
"required": [
|
|
"principal"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"description": "The tool's structured result"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": "room_join",
|
|
"c": "wai_room_join",
|
|
"rust": "wai::room::join",
|
|
"sdk": "wai.room.join"
|
|
}
|
|
},
|
|
{
|
|
"id": "room.leave",
|
|
"summary": "A test principal's session in the development room closed, and its leave seen by the room's clock",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai (wai mcp: room_leave)"
|
|
],
|
|
"placement": "client",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": null,
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "dev",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"target": {
|
|
"type": "string",
|
|
"description": "local: the development room on this machine."
|
|
},
|
|
"principal": {
|
|
"type": "string",
|
|
"description": "The test principal's name."
|
|
}
|
|
},
|
|
"required": [
|
|
"principal"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"description": "The tool's structured result"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": "room_leave",
|
|
"c": "wai_room_leave",
|
|
"rust": "wai::room::leave",
|
|
"sdk": "wai.room.leave"
|
|
}
|
|
},
|
|
{
|
|
"id": "session.show",
|
|
"summary": "The development room's session as a verifier is given it: descriptor, grants, key-log head and the clock's event chain",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai (wai mcp: session_show)"
|
|
],
|
|
"placement": "client",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": null,
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": true,
|
|
"http": false
|
|
},
|
|
"toolset": "dev",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"target": {
|
|
"type": "string",
|
|
"description": "local: the development room on this machine."
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"description": "The tool's structured result"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": "session_show",
|
|
"c": "wai_session_show",
|
|
"rust": "wai::session::show",
|
|
"sdk": "wai.session.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "service.show",
|
|
"summary": "The service's health",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET / (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_service_show",
|
|
"rust": "wai::service::show",
|
|
"sdk": "wai.service.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "service.check",
|
|
"summary": "The service's health",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /health (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/health"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1health/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_service_check",
|
|
"rust": "wai::service::check",
|
|
"sdk": "wai.service.check"
|
|
}
|
|
},
|
|
{
|
|
"id": "room.show",
|
|
"summary": "The current room",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /room (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/room"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1room/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_room_show",
|
|
"rust": "wai::room::show",
|
|
"sdk": "wai.room.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "room.grant",
|
|
"summary": "A grant for a key",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /grant (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/grant"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": true,
|
|
"http": true
|
|
},
|
|
"toolset": "dev",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1grant/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": "room_grant",
|
|
"c": "wai_room_grant",
|
|
"rust": "wai::room::grant",
|
|
"sdk": "wai.room.grant"
|
|
}
|
|
},
|
|
{
|
|
"id": "admission.show",
|
|
"summary": "The room's admission receipt so far",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /age/receipt (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/age/receipt"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1age~1receipt/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_admission_show",
|
|
"rust": "wai::admission::show",
|
|
"sdk": "wai.admission.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "mls.tail",
|
|
"summary": "The room's log of MLS messages",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /mls (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/mls"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1mls/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_mls_tail",
|
|
"rust": "wai::mls::tail",
|
|
"sdk": "wai.mls.tail"
|
|
}
|
|
},
|
|
{
|
|
"id": "mls.import",
|
|
"summary": "A KeyPackage for a granted principal's Add",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /mls/key-package (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/mls/key-package"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1mls~1key-package/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_mls_import",
|
|
"rust": "wai::mls::import",
|
|
"sdk": "wai.mls.import"
|
|
}
|
|
},
|
|
{
|
|
"id": "mls.update",
|
|
"summary": "A GroupInfo, or a commit and its Welcome",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /mls/post (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/mls/post"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1mls~1post/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_mls_update",
|
|
"rust": "wai::mls::update",
|
|
"sdk": "wai.mls.update"
|
|
}
|
|
},
|
|
{
|
|
"id": "performance.list",
|
|
"summary": "The clock's log of objects",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /co/objects (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/co/objects"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1co~1objects/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_performance_list",
|
|
"rust": "wai::performance::list",
|
|
"sdk": "wai.performance.list"
|
|
}
|
|
},
|
|
{
|
|
"id": "performance.show",
|
|
"summary": "The room's co-performance as the clock holds it",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /co/state (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/co/state"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1co~1state/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_performance_show",
|
|
"rust": "wai::performance::show",
|
|
"sdk": "wai.performance.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "schedule.create",
|
|
"summary": "A turn schedule the clock signs",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /co/schedule (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/co/schedule"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1co~1schedule/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_schedule_create",
|
|
"rust": "wai::schedule::create",
|
|
"sdk": "wai.schedule.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "handover.create",
|
|
"summary": "A handover the clock signs",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /co/handover (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/co/handover"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1co~1handover/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_handover_create",
|
|
"rust": "wai::handover::create",
|
|
"sdk": "wai.handover.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "window.create",
|
|
"summary": "A selection window the clock signs",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /co/window (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/co/window"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1co~1window/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_window_create",
|
|
"rust": "wai::window::create",
|
|
"sdk": "wai.window.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "fidelity.create",
|
|
"summary": "A fidelity statement now",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /co/fidelity (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/co/fidelity"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1co~1fidelity/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_fidelity_create",
|
|
"rust": "wai::fidelity::create",
|
|
"sdk": "wai.fidelity.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "time.show",
|
|
"summary": "The service's clock",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /watch/time (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/watch/time"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1watch~1time/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_time_show",
|
|
"rust": "wai::time::show",
|
|
"sdk": "wai.time.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "source.fetch",
|
|
"summary": "The watch room's source, whole",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /watch/source (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/watch/source"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1watch~1source/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_source_fetch",
|
|
"rust": "wai::source::fetch",
|
|
"sdk": "wai.source.fetch"
|
|
}
|
|
},
|
|
{
|
|
"id": "watch.setup",
|
|
"summary": "A challenge for a join's proof",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /watch/challenge (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/watch/challenge"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1watch~1challenge/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_watch_setup",
|
|
"rust": "wai::watch::setup",
|
|
"sdk": "wai.watch.setup"
|
|
}
|
|
},
|
|
{
|
|
"id": "watch.tail",
|
|
"summary": "The watch room's log",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /watch (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/watch"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1watch/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_watch_tail",
|
|
"rust": "wai::watch::tail",
|
|
"sdk": "wai.watch.tail"
|
|
}
|
|
},
|
|
{
|
|
"id": "watch.show",
|
|
"summary": "The room as a co-watch verifier is given it",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /watch/room (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/watch/room"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1watch~1room/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_watch_show",
|
|
"rust": "wai::watch::show",
|
|
"sdk": "wai.watch.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "watch.join",
|
|
"summary": "A viewer enters by a proof of its key",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /watch/join (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/watch/join"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1watch~1join/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_watch_join",
|
|
"rust": "wai::watch::join",
|
|
"sdk": "wai.watch.join"
|
|
}
|
|
},
|
|
{
|
|
"id": "watch.update",
|
|
"summary": "A viewer's events, checked and carried in order",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /watch/post (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/watch/post"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1watch~1post/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_watch_update",
|
|
"rust": "wai::watch::update",
|
|
"sdk": "wai.watch.update"
|
|
}
|
|
},
|
|
{
|
|
"id": "control.grant",
|
|
"summary": "The host hands control over",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /remote/control (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/remote/control"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1remote~1control/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_control_grant",
|
|
"rust": "wai::control::grant",
|
|
"sdk": "wai.control.grant"
|
|
}
|
|
},
|
|
{
|
|
"id": "remote.show",
|
|
"summary": "The session as the clock holds it",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /remote/room (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/remote/room"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1remote~1room/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_remote_show",
|
|
"rust": "wai::remote::show",
|
|
"sdk": "wai.remote.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "remote.verify",
|
|
"summary": "That session verified",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /remote/state (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/remote/state"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1remote~1state/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_remote_verify",
|
|
"rust": "wai::remote::verify",
|
|
"sdk": "wai.remote.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "conversation.show",
|
|
"summary": "The conversation",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /msg (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/msg"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_conversation_show",
|
|
"rust": "wai::conversation::show",
|
|
"sdk": "wai.conversation.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "conversation.setup",
|
|
"summary": "A challenge for a proof",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /msg/challenge (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/msg/challenge"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg~1challenge/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_conversation_setup",
|
|
"rust": "wai::conversation::setup",
|
|
"sdk": "wai.conversation.setup"
|
|
}
|
|
},
|
|
{
|
|
"id": "conversation.join",
|
|
"summary": "A key that proves itself is admitted",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /msg/join (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/msg/join"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg~1join/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_conversation_join",
|
|
"rust": "wai::conversation::join",
|
|
"sdk": "wai.conversation.join"
|
|
}
|
|
},
|
|
{
|
|
"id": "conversation.tail",
|
|
"summary": "The log as it is owed to the caller",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /msg/log (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/msg/log"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg~1log/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_conversation_tail",
|
|
"rust": "wai::conversation::tail",
|
|
"sdk": "wai.conversation.tail"
|
|
}
|
|
},
|
|
{
|
|
"id": "conversation.import",
|
|
"summary": "A member's KeyPackage",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /msg/key-package (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/msg/key-package"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg~1key-package/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_conversation_import",
|
|
"rust": "wai::conversation::import",
|
|
"sdk": "wai.conversation.import"
|
|
}
|
|
},
|
|
{
|
|
"id": "conversation.update",
|
|
"summary": "A GroupInfo, or a commit and its Welcome",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /msg/mls (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/msg/mls"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg~1mls/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_conversation_update",
|
|
"rust": "wai::conversation::update",
|
|
"sdk": "wai.conversation.update"
|
|
}
|
|
},
|
|
{
|
|
"id": "message.create",
|
|
"summary": "A message",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /msg/post (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/msg/post"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg~1post/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_message_create",
|
|
"rust": "wai::message::create",
|
|
"sdk": "wai.message.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "acknowledgement.create",
|
|
"summary": "An acknowledgement",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /msg/ack (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/msg/ack"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg~1ack/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_acknowledgement_create",
|
|
"rust": "wai::acknowledgement::create",
|
|
"sdk": "wai.acknowledgement.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "conversation.leave",
|
|
"summary": "The caller leaves",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /msg/leave (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/msg/leave"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg~1leave/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_conversation_leave",
|
|
"rust": "wai::conversation::leave",
|
|
"sdk": "wai.conversation.leave"
|
|
}
|
|
},
|
|
{
|
|
"id": "member.delete",
|
|
"summary": "The owner removes a member",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /msg/remove (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/msg/remove"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1msg~1remove/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_member_delete",
|
|
"rust": "wai::member::delete",
|
|
"sdk": "wai.member.delete"
|
|
}
|
|
},
|
|
{
|
|
"id": "call.setup",
|
|
"summary": "A challenge for a proof",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /call/challenge (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/call/challenge"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1call~1challenge/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_call_setup",
|
|
"rust": "wai::call::setup",
|
|
"sdk": "wai.call.setup"
|
|
}
|
|
},
|
|
{
|
|
"id": "call.create",
|
|
"summary": "Place a call",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /call/place (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/call/place"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1call~1place/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_call_create",
|
|
"rust": "wai::call::create",
|
|
"sdk": "wai.call.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "call.invite",
|
|
"summary": "Ring invitees",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /call/ring (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/call/ring"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1call~1ring/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_call_invite",
|
|
"rust": "wai::call::invite",
|
|
"sdk": "wai.call.invite"
|
|
}
|
|
},
|
|
{
|
|
"id": "inbox.show",
|
|
"summary": "The caller's inbox",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /inbox (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/inbox"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1inbox/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_inbox_show",
|
|
"rust": "wai::inbox::show",
|
|
"sdk": "wai.inbox.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "answer.create",
|
|
"summary": "Accept, decline or cancel",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai POST /call/answer (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "writes-target",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "POST",
|
|
"path": "/call/answer"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1call~1answer/post"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_answer_create",
|
|
"rust": "wai::answer::create",
|
|
"sdk": "wai.answer.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "call.show",
|
|
"summary": "The current call",
|
|
"cli": null,
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai GET /call (the room service)"
|
|
],
|
|
"placement": "service",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": null,
|
|
"route": {
|
|
"service": "wai-room",
|
|
"method": "GET",
|
|
"path": "/call"
|
|
},
|
|
"doors": {
|
|
"cli": false,
|
|
"mcp": false,
|
|
"http": true
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"$ref": "joule-code/joule-code-rs/crates/joule-moq-room/openapi.json#/paths/~1call/get"
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"properties": {
|
|
"text": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"text"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": null,
|
|
"mcp": null,
|
|
"c": "wai_call_show",
|
|
"rust": "wai::call::show",
|
|
"sdk": "wai.call.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "contract.create",
|
|
"summary": "A channel's share contract from its terms, signed with the operator key; each owner countersigns it",
|
|
"cli": "wai contract create",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai contract create <terms.json> --key <file> [--out F] [--yes] the share contract (WRC1) of the terms, signed",
|
|
" with the operator key, every countersignature still to come, written to F (<digest>.wrc); each owner adds",
|
|
" its own with `wai contract accept`; replacing a file waits for --yes (--confirm, deprecated, is the same)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"terms": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The terms: start, end, currency, channel, channel_signer, rule, between, carriers, owners, splits and assets.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The operator key's file: 32 bytes, or 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The contract's file (<digest>.wrc).",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"terms",
|
|
"key"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"digest",
|
|
"operator",
|
|
"channel",
|
|
"owners",
|
|
"in_force",
|
|
"contract",
|
|
"file"
|
|
],
|
|
"description": "The share contract (WRC1, hexadecimal), its digest, each owner and whether it has countersigned, and the file it went to"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"revenue_share"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai contract create",
|
|
"mcp": null,
|
|
"c": "wai_contract_create",
|
|
"rust": "wai::contract::create",
|
|
"sdk": "wai.contract.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "contract.update",
|
|
"summary": "An owner's countersignature added to a share contract, after its rules and the operator's signature are checked",
|
|
"cli": "wai contract accept",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai contract accept <contract> --key <file> [--out F] [--yes] the owner's countersignature added to the contract,",
|
|
" written to F (the contract's own file when F is not given); replacing a file waits for --yes (--confirm,",
|
|
" deprecated, is the same)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"contract": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The contract's file (WRC1).",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The owner key's file: 32 bytes, or 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Where the countersigned contract goes (the contract's own file).",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"contract",
|
|
"key"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"digest",
|
|
"operator",
|
|
"channel",
|
|
"owners",
|
|
"in_force",
|
|
"contract",
|
|
"file"
|
|
],
|
|
"description": "The share contract (WRC1, hexadecimal), its digest, each owner and whether it has countersigned, and the file it went to"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"revenue_share"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai contract update",
|
|
"mcp": null,
|
|
"c": "wai_contract_update",
|
|
"rust": "wai::contract::update",
|
|
"sdk": "wai.contract.update"
|
|
}
|
|
},
|
|
{
|
|
"id": "statement.create",
|
|
"summary": "A party's revenue-share statement for a period, recomputed from the ledger's invoices and the channel's program-as-run, signed with the operator key",
|
|
"cli": "wai statement create",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai statement create <inputs.json> --party <key> --start µs --end µs --key <file> [--out F] [--yes] the statement",
|
|
" (WRS1) of the party for [start, end), computed from a verification document without its statement (the",
|
|
" contract, other contracts, runs and ledger documents), signed with the operator key and written with its",
|
|
" document to F (<digest>.wai-share.json) for `wai statement verify`; replacing a file waits for --yes"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"inputs": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A verification document without its statement: contract, contracts, runs and ledgers.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"party": {
|
|
"type": "string",
|
|
"description": "The party's key, 64 hexadecimal digits: the operator or an owner.",
|
|
"x-cli": {
|
|
"flag": "--party"
|
|
}
|
|
},
|
|
"start": {
|
|
"type": "integer",
|
|
"description": "The period's start, microseconds since 1970.",
|
|
"x-cli": {
|
|
"flag": "--start"
|
|
}
|
|
},
|
|
"end": {
|
|
"type": "integer",
|
|
"description": "The period's end, after its start.",
|
|
"x-cli": {
|
|
"flag": "--end"
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The operator key's file: 32 bytes, or 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The verification document's file (<digest>.wai-share.json).",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"inputs",
|
|
"party",
|
|
"start",
|
|
"end",
|
|
"key"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"file",
|
|
"statement",
|
|
"outcome"
|
|
],
|
|
"description": "The statement (WRS1, hexadecimal), the file its verification document went to, and its outcome, recomputed here"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"revenue_share"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai statement create",
|
|
"mcp": null,
|
|
"c": "wai_statement_create",
|
|
"rust": "wai::statement::create",
|
|
"sdk": "wai.statement.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "statement.verify",
|
|
"summary": "A revenue-share statement's verification document checked: every line recomputed from the public records, or the reason it is refused",
|
|
"cli": "wai statement verify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai statement verify <document.json> the outcome of a statement's verification document: each line, each split's",
|
|
" division and each impression's attribution, recomputed; exit 1 with the reason on a refusal"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"document": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The verification document: contract, contracts, statement, runs and ledgers.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"document"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"outcome",
|
|
"statement",
|
|
"contract",
|
|
"party",
|
|
"role",
|
|
"lines",
|
|
"total"
|
|
],
|
|
"description": "An accepted statement's outcome (revenue-share §8.3): its lines, each split's division, every impression attributed, and the total"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"revenue_share"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai statement verify",
|
|
"mcp": null,
|
|
"c": "wai_statement_verify",
|
|
"rust": "wai::statement::verify",
|
|
"sdk": "wai.statement.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "opportunity.create",
|
|
"summary": "A party's opportunity report for a period: the ad breaks a channel's signed cues and program-as-run prove in the programmes it shares in, signed with the issuer key",
|
|
"cli": "wai opportunity create",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai opportunity create <inputs.json> --party <key> --start µs --end µs --key <file> [--out F] [--yes] the report",
|
|
" (WOR1) of the party for [start, end), computed from a verification document without its report (the",
|
|
" contract, other contracts, runs and rooms), signed with the issuer key and written with its document to F",
|
|
" (<digest>.wai-opportunity.json) for `wai opportunity verify`; replacing a file waits for --yes"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"inputs": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A verification document without its report: contract, contracts, runs and rooms.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"party": {
|
|
"type": "string",
|
|
"description": "The party's key, 64 hexadecimal digits: the operator or an owner.",
|
|
"x-cli": {
|
|
"flag": "--party"
|
|
}
|
|
},
|
|
"start": {
|
|
"type": "integer",
|
|
"description": "The period's start, microseconds since 1970.",
|
|
"x-cli": {
|
|
"flag": "--start"
|
|
}
|
|
},
|
|
"end": {
|
|
"type": "integer",
|
|
"description": "The period's end, after its start.",
|
|
"x-cli": {
|
|
"flag": "--end"
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The issuer key's file: 32 bytes, or 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The verification document's file (<digest>.wai-opportunity.json).",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"inputs",
|
|
"party",
|
|
"start",
|
|
"end",
|
|
"key"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"file",
|
|
"report",
|
|
"outcome"
|
|
],
|
|
"description": "The opportunity report (WOR1, hexadecimal), the file its verification document went to, and its outcome, recomputed here"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"opportunity_report"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai opportunity create",
|
|
"mcp": null,
|
|
"c": "wai_opportunity_create",
|
|
"rust": "wai::opportunity::create",
|
|
"sdk": "wai.opportunity.create"
|
|
}
|
|
},
|
|
{
|
|
"id": "opportunity.verify",
|
|
"summary": "An opportunity report's or a statement check's verification document checked: every break, line and flag recomputed from the records, or the reason it is refused",
|
|
"cli": "wai opportunity verify",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai opportunity verify <document.json> the outcome of a report's or a check's verification document: each break",
|
|
" attributed, each line and flag recomputed; exit 1 with the reason on a refusal"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"document": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The verification document: a report's (contract, contracts, report, runs, rooms) or a check's (report, reported, statement, check).",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"document"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"outcome"
|
|
],
|
|
"description": "An accepted report's outcome (opportunity-report §8.3: every break attributed, each line and the totals) or an accepted check's (§11.3: each line's opportunities, reported and signed figures and flags)"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": {
|
|
"all": [
|
|
"opportunity_report"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai opportunity verify",
|
|
"mcp": null,
|
|
"c": "wai_opportunity_verify",
|
|
"rust": "wai::opportunity::verify",
|
|
"sdk": "wai.opportunity.verify"
|
|
}
|
|
},
|
|
{
|
|
"id": "statement.check",
|
|
"summary": "A platform's reported statement checked against an opportunity report and, when given, the operator's signed statement, signed with the issuer key",
|
|
"cli": "wai statement check",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai statement check <report.json> <reported> [--statement <document.json>] [--floor ppm] [--ceiling ppm] --key <file> [--out F] [--yes]",
|
|
" the check (WCK1) of a reported statement (JSON, or CSV for a file named .csv) beside a report's verification",
|
|
" document and a signed statement's, at the bounds given (500000 and 2000000 when not), signed with the issuer",
|
|
" key and written with its document to F (<digest>.wai-check.json); replacing a file waits for --yes"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-a-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "preview",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"report": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A report's verification document, with its report.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"reported": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The reported statement: JSON, or CSV for a file named .csv.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
},
|
|
"statement": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "A signed revenue-share statement's verification document of the same party and period.",
|
|
"x-cli": {
|
|
"flag": "--statement"
|
|
}
|
|
},
|
|
"floor": {
|
|
"type": "integer",
|
|
"description": "The lower bound, in millionths of the period's rate (500000).",
|
|
"x-cli": {
|
|
"flag": "--floor"
|
|
}
|
|
},
|
|
"ceiling": {
|
|
"type": "integer",
|
|
"description": "The upper bound, in millionths of the period's rate (2000000).",
|
|
"x-cli": {
|
|
"flag": "--ceiling"
|
|
}
|
|
},
|
|
"key": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The issuer key's file: 32 bytes, or 64 hexadecimal digits.",
|
|
"x-cli": {
|
|
"flag": "--key"
|
|
}
|
|
},
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "The verification document's file (<digest>.wai-check.json).",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"report",
|
|
"reported",
|
|
"key"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"file",
|
|
"check",
|
|
"outcome"
|
|
],
|
|
"description": "The statement check (WCK1, hexadecimal), the file its verification document went to, and its outcome, recomputed here"
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": true,
|
|
"needs": {
|
|
"all": [
|
|
"opportunity_report"
|
|
]
|
|
},
|
|
"names": {
|
|
"cli": "wai statement check",
|
|
"mcp": null,
|
|
"c": "wai_statement_check",
|
|
"rust": "wai::statement::check",
|
|
"sdk": "wai.statement.check"
|
|
}
|
|
},
|
|
{
|
|
"id": "ops.list",
|
|
"summary": "Every operation of this catalogue: its id, command line, effect and whether this build holds it",
|
|
"cli": "wai ops list",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai ops list every operation, its id and command line"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"summary",
|
|
"cli",
|
|
"effect",
|
|
"placement",
|
|
"toolset",
|
|
"stability",
|
|
"available"
|
|
]
|
|
}
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai ops list",
|
|
"mcp": null,
|
|
"c": "wai_ops_list",
|
|
"rust": "wai::ops::list",
|
|
"sdk": "wai.ops.list"
|
|
}
|
|
},
|
|
{
|
|
"id": "ops.search",
|
|
"summary": "The operations that match a task, ranked, offline: up to five",
|
|
"cli": "wai ops search",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai ops search \"<task>\" up to five operations that match, ranked, offline"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"task": {
|
|
"type": "string",
|
|
"description": "What you want to do, in words.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"task"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "array",
|
|
"maxItems": 5,
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"summary",
|
|
"cli",
|
|
"score"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"summary": {
|
|
"type": "string"
|
|
},
|
|
"cli": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"score": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai ops search",
|
|
"mcp": null,
|
|
"c": "wai_ops_search",
|
|
"rust": "wai::ops::search",
|
|
"sdk": "wai.ops.search"
|
|
}
|
|
},
|
|
{
|
|
"id": "ops.show",
|
|
"summary": "One operation's entry: its input and output schemas, effect, placement and command line",
|
|
"cli": "wai ops show",
|
|
"aliases": [
|
|
"wai ops schema"
|
|
],
|
|
"usage": [
|
|
"wai ops show <id> one operation's entry, as JSON (also wai ops schema)"
|
|
],
|
|
"placement": "local",
|
|
"effect": "reads",
|
|
"dry_run": false,
|
|
"confirm": "never",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"description": "An operation id, noun.verb.",
|
|
"x-cli": {
|
|
"positional": true
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"id"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"summary",
|
|
"input",
|
|
"output",
|
|
"effect",
|
|
"placement"
|
|
]
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai ops show",
|
|
"mcp": null,
|
|
"c": "wai_ops_show",
|
|
"rust": "wai::ops::show",
|
|
"sdk": "wai.ops.show"
|
|
}
|
|
},
|
|
{
|
|
"id": "ops.export",
|
|
"summary": "The catalogue as JSON (wai.ops/1), what other tools and CI read; --check compares a file with it",
|
|
"cli": "wai ops export",
|
|
"aliases": [],
|
|
"usage": [
|
|
"wai ops export [--out FILE | --check FILE] the catalogue as JSON, to stdout, to FILE, or compared with FILE"
|
|
],
|
|
"placement": "local",
|
|
"effect": "writes-project",
|
|
"dry_run": true,
|
|
"confirm": "when-replacing-an-unnamed-file",
|
|
"route": null,
|
|
"doors": {
|
|
"cli": true,
|
|
"mcp": false,
|
|
"http": false
|
|
},
|
|
"toolset": "core",
|
|
"stability": "stable",
|
|
"input": {
|
|
"type": "object",
|
|
"properties": {
|
|
"out": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Write the export here.",
|
|
"x-cli": {
|
|
"flag": "--out"
|
|
}
|
|
},
|
|
"check": {
|
|
"type": "string",
|
|
"format": "path",
|
|
"description": "Compare this file with the export; exit 1 when they differ.",
|
|
"x-cli": {
|
|
"flag": "--check"
|
|
}
|
|
}
|
|
},
|
|
"required": [],
|
|
"additionalProperties": false
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"required": [
|
|
"format",
|
|
"toolchain",
|
|
"envelope",
|
|
"operations"
|
|
],
|
|
"properties": {
|
|
"format": {
|
|
"const": "wai.ops/1"
|
|
}
|
|
}
|
|
},
|
|
"stream": null,
|
|
"since": "0.3.0",
|
|
"deprecated": null,
|
|
"receipt": false,
|
|
"needs": null,
|
|
"names": {
|
|
"cli": "wai ops export",
|
|
"mcp": null,
|
|
"c": "wai_ops_export",
|
|
"rust": "wai::ops::export",
|
|
"sdk": "wai.ops.export"
|
|
}
|
|
}
|
|
]
|
|
}
|