open-standards/wai/live-conformance/usage/README.md
Transaction Science d1a1fdb6b1 wai.ai.usage: the class in jwp-receipts, the room and HTTP and MoQ bindings, registry, CI and the second implementation
jwp-receipts registers the consumption class (§2.4.13) with its step 4 and
step 6 reasons and its authority; live-rooms gains §3.8 and the ai_usage
grant attribute; http-delivery §5.6 maps the signed statement onto the
Content-Usage and TDMRep fields; moq-streaming-format §4 adds the
wai_ai_usage catalog field. The registry export lists wai.ai.usage, WAU1,
wai_ai_usage and the proposed WAI-Usage-Claim field. ai_usage_verify.py is
the corpus's second implementation, and claim_verify.py reads the class's
steps 1 to 4.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-21 05:23:29 -04:00

3.1 KiB

live-conformance/usage — AI usage preferences and consumption claims

The corpus of extensions/ai-usage.md §10, in one file, vectors.json. Its keys name every key by its role, as 64 lowercase hexadecimal digits; its revisions are the vocabulary revisions §3 reads. Each section is a list of cases, each with its name, a description, its inputs and its outcome:

  • statements (§3): json, a statement's text. accept: the digest and the preferences of every term it names, by vocabulary (allow, disallow or unknown); or refuse and the reason.
  • publications: each a group of objects under one key, its group receipt (jwp-receipts §2.4.1) and, for a room's media, its room.
  • objects (§4.1): envelope (hexadecimal) and its object receipt, under its publication's group. held: the content_hash, the statement's digest or null, and t, the manifest's live.t or null; or refuse and the reason.
  • rooms (§4.2, §4.3): descriptor, grants and usage records, each hexadecimal. The outcome holds grants and records, each accept or the index and reason of the first refused; terms, each grant the room accepts with its principal and its terms' digest, null for none or grant_usage_malformed; and, where the records are accepted, in_effect: the statements governing an object at each instant t (null for an object with no time).
  • responses (§4.4): an object of a publication and its response fields, each a name and a value. accept and the vocabularies the fields state unsigned, or refuse and the reason.
  • catalogs (§4.5): a catalog track entry and the objects of its track.
  • claims (§6): the claim's wire text and its context: the publications whose held objects the verifier holds, the room, and the claim before it of its signer, previous, by name, or null when the verifier is given none. accept and each object's outcome (allowed, unknown or outside), in the order of the claim's objects; or refuse, the jwp-receipts §3.1 step and the reason.
  • gates (§7): the policy, the agent by its key's name, the groups served, the claims given, by name, each verified with its own context, and the group requested. serve, or refuse and the reason.

A verifier that reaches another outcome, reason, step, digest, preference, terms or object outcome does not conform. Payloads are opaque test bytes that no case decodes.

Provenance. Generated here: wai_ai_usage_vectors gen writes the file from statements, envelopes, rooms and claims authored in code, from fixed seeds. Each key is SHA-256 of a fixed label and an index; every time is a constant (the room's t0 is 2026-10-21T00:00:00Z); every origin and URL is an .example name (RFC 2606); and Ed25519 signing is deterministic (RFC 8032), so the file is the same bytes on every machine. The generator asserts that each case reaches the outcome it was written to have and that the corpus gives every reason of §9. ai_usage_verify.py, beside this directory, is the second implementation.