SPEC §3.1 defines the pin a manifest carries (conditioning.prior, and a WAI2 rendition's prior): id, sha256, determinism, and the optional form, tier and supersedes. The digest covers the whole parameter set. A set of several files is pinned through its listing, the new registered prior form wai.prior.set. A sink verifies the pin before it decodes, reports a refusal with one of an ordered set of snake_case reasons, and decodes only from the set it verified. Tier is a closed vocabulary; supersedes is informative. A pin that does not resolve makes its capability unsupported for that envelope: SPEC §4 dispatch continues at the fallback, §7.1 selection at the next rendition, and an inert envelope's error names the reasons. A rendition entry may carry id, sha256 and, on a companion, companion_of_id. SPEC §7 gains a Digests subsection, and §8 says how a MINOR revision adds an optional member. In wai-rs: the manifest types are #[non_exhaustive] with builders; a new pin module verifies pins in memory and on disk; Wai::dispatch_verified, WaiMulti::pick and primary check pins and component digests; every neural decoder reads through ParamSource; a codec-free `ffi` feature carries the C envelope surface with wai_envelope_select and wai_neural_decode_ex. wai-web wraps wai::container. New vectors: the int_mlicpp set-form twin and the pin-conformance corpus with an independent Python verifier, plus sha256.json sidecars for the vectors of capabilities that decode against a parameter set. Squashed from wai/stream-a-parameter-set-identity onto link 12. Conflicts are resolved to keep both sides; the integration commits that follow make the two streams agree. Co-Authored-By: Claude Opus 5.5 <[email protected]>
58 lines
2.4 KiB
Text
58 lines
2.4 KiB
Text
{
|
|
"@context": {
|
|
"@version": 1.1,
|
|
"wai": "https://wai.transaction.science/vocab/v1#",
|
|
"xsd": "http://www.w3.org/2001/XMLSchema#",
|
|
"prov": "http://www.w3.org/ns/prov#",
|
|
|
|
"Manifest": "wai:Manifest",
|
|
"Capability": "wai:Capability",
|
|
"Codec": "wai:Codec",
|
|
"Path": "wai:Path",
|
|
"NeuralPrior": "wai:NeuralPrior",
|
|
"Stream": "wai:Stream",
|
|
"Envelope": "wai:Envelope",
|
|
|
|
"modality": { "@id": "wai:modality", "@type": "@vocab" },
|
|
"codec": { "@id": "wai:codec", "@type": "@id" },
|
|
"path": { "@id": "wai:path", "@type": "@vocab" },
|
|
"capabilities_required": { "@id": "wai:capabilitiesRequired", "@container": "@list" },
|
|
"ParameterSetPin": "wai:ParameterSetPin",
|
|
"prior": { "@id": "wai:prior", "@context": {
|
|
"id": { "@id": "wai:pinId", "@type": "xsd:string" },
|
|
"sha256": { "@id": "wai:pinSha256", "@type": "xsd:string" },
|
|
"determinism": { "@id": "wai:pinDeterminism", "@type": "xsd:string" },
|
|
"form": { "@id": "wai:pinForm", "@type": "xsd:string" },
|
|
"tier": { "@id": "wai:pinTier" },
|
|
"supersedes": { "@id": "wai:pinSupersedes" }
|
|
} },
|
|
"shared_prior_uri": { "@id": "wai:sharedPriorUri", "@type": "@id" },
|
|
"shared_prior_hash": { "@id": "wai:sharedPriorHash", "@type": "xsd:string" },
|
|
"content_hash": { "@id": "wai:contentHash", "@type": "xsd:string" },
|
|
"size": { "@id": "wai:size", "@type": "xsd:nonNegativeInteger" },
|
|
"media_type": { "@id": "wai:mediaType", "@type": "xsd:string" },
|
|
"encoded_at": { "@id": "wai:encodedAt", "@type": "xsd:dateTime" },
|
|
"decoded_at": { "@id": "wai:decodedAt", "@type": "xsd:dateTime" },
|
|
"schema_id": { "@id": "wai:schemaId", "@type": "xsd:string" },
|
|
|
|
"Image": "wai:Image",
|
|
"Audio": "wai:Audio",
|
|
"Video": "wai:Video",
|
|
"Volume": "wai:Volume",
|
|
"Mesh": "wai:Mesh",
|
|
"Compressed": "wai:Compressed",
|
|
|
|
"Neural": "wai:NeuralPath",
|
|
"Zeroth": "wai:ZerothPath",
|
|
|
|
"PNG": "wai:PNG",
|
|
"JPEG": "wai:JPEG",
|
|
"AVIF": "wai:AVIF",
|
|
"JXL": "wai:JPEGXL",
|
|
"FLAC": "wai:FLAC",
|
|
"Opus": "wai:Opus",
|
|
"AV1": "wai:AV1",
|
|
"zstd": "wai:zstd",
|
|
"XZ": "wai:XZ"
|
|
}
|
|
}
|