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]>
465 lines
11 KiB
JSON
465 lines
11 KiB
JSON
{
|
|
"about": "SPEC.md \u00a73.1, \u00a77: the first finding a verifier makes about a manifest's pins without holding a parameter set (\"ok\" when it makes none). For a WAI2 manifest the finding is [entry index, reason].",
|
|
"cases": [
|
|
{
|
|
"name": "stream_wai_conforms",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_mlicpp"
|
|
},
|
|
"conditioning": {
|
|
"kind": "int_mlicpp",
|
|
"prior": {
|
|
"id": "int_mlicpp/synthetic-s20260929",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int-mlicpp/i64"
|
|
}
|
|
},
|
|
"target": {
|
|
"w": 64,
|
|
"h": 64
|
|
}
|
|
},
|
|
"expect": "ok"
|
|
},
|
|
{
|
|
"name": "prior_not_applicable",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.image.png"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "prior_not_applicable"
|
|
},
|
|
{
|
|
"name": "prior_not_applicable_before_malformed",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.image.png"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "AB",
|
|
"determinism": "int-rans/p16+int/i64"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "prior_not_applicable"
|
|
},
|
|
{
|
|
"name": "pin_malformed",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_mlicpp"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7EF44F3B1FC4A2DF6C3E3B68460F595CAE3D31CB7F9018699E29E738340272A4",
|
|
"determinism": "int-rans/p16+int/i64"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "pin_malformed"
|
|
},
|
|
{
|
|
"name": "tier_unregistered",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "improve",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_mlicpp"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"tier": "decode_equivalence"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "tier_unregistered"
|
|
},
|
|
{
|
|
"name": "supersedes_malformed",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_mlicpp"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"supersedes": {
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4"
|
|
}
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "supersedes_malformed"
|
|
},
|
|
{
|
|
"name": "form_not_registered",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "improve",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_mlicpp"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"form": "wai.image.png"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "form_not_registered"
|
|
},
|
|
{
|
|
"name": "form_required",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "improve",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.bmshj2018"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "form_required"
|
|
},
|
|
{
|
|
"name": "form_required_for_the_fallback",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "improve",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_mlicpp",
|
|
"fallback": "wai.neural.elic"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "form_required"
|
|
},
|
|
{
|
|
"name": "unregistered_capability_form_required",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "improve",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.future"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "form_required"
|
|
},
|
|
{
|
|
"name": "tier_exceeds_class",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "improve",
|
|
"model_requirement": {
|
|
"capability": "wai.image.jpegai"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"form": "wai.prior.set",
|
|
"tier": "decode-equivalence"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "tier_exceeds_class"
|
|
},
|
|
{
|
|
"name": "tier_at_class",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "improve",
|
|
"model_requirement": {
|
|
"capability": "wai.image.jpegai"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"form": "wai.prior.set",
|
|
"tier": "entropy-consistency"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "ok"
|
|
},
|
|
{
|
|
"name": "replicate_tier",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_synth"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "1c4705d17c01f865b20d785191c7f63b5c18dcc8fce77e15852cf8240b7368be",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"tier": "none"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "replicate_tier"
|
|
},
|
|
{
|
|
"name": "replicate_tier_legacy_float_words",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_synth"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "1c4705d17c01f865b20d785191c7f63b5c18dcc8fce77e15852cf8240b7368be",
|
|
"determinism": "int-rans/p16+onnx-f32"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "replicate_tier"
|
|
},
|
|
{
|
|
"name": "replicate_unpinned",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_synth"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k"
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "replicate_unpinned"
|
|
},
|
|
{
|
|
"name": "replicate_form_not_exact",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_synth"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "1c4705d17c01f865b20d785191c7f63b5c18dcc8fce77e15852cf8240b7368be",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"form": "wai.prior.nnc"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "replicate_form_not_exact"
|
|
},
|
|
{
|
|
"name": "replicate_set_form_sound",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_mlicpp"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "85a05b0dac15566c5a657ddeee253eaa9f54ce852ae04924f5b04151901d9d1b",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"form": "wai.prior.set",
|
|
"tier": "decode-equivalence"
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "ok"
|
|
},
|
|
{
|
|
"name": "null_member_equals_absent",
|
|
"manifest": {
|
|
"wai": "1.0",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"model_requirement": {
|
|
"capability": "wai.neural.int_mlicpp"
|
|
},
|
|
"conditioning": {
|
|
"kind": "k",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"form": null,
|
|
"tier": null,
|
|
"supersedes": null
|
|
}
|
|
},
|
|
"target": null
|
|
},
|
|
"expect": "ok"
|
|
},
|
|
{
|
|
"name": "wai2_entry_index",
|
|
"manifest": {
|
|
"wai": "1.1",
|
|
"media": "image",
|
|
"intent": "replicate",
|
|
"renditions": [
|
|
{
|
|
"capability": "wai.neural.int_mlicpp",
|
|
"kind": "int_mlicpp",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "c4232f2e2d5f76cce4ac782b254a91410a2ab89b22792f8356585549938a0e92",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"tier": "decode-equivalence",
|
|
"supersedes": {
|
|
"sha256": "29bc4a3984b2ca82ab4656e459e7c34b5af9f507309bcf88ed7b00561692ff0a"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"capability": "wai.neural.int_mlicpp",
|
|
"kind": "int_mlicpp",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "29bc4a3984b2ca82ab4656e459e7c34b5af9f507309bcf88ed7b00561692ff0a",
|
|
"determinism": "int-rans/p16+int/i64",
|
|
"tier": "decode-equivalence"
|
|
}
|
|
},
|
|
{
|
|
"capability": "wai.image.avif",
|
|
"kind": "avif"
|
|
}
|
|
],
|
|
"target": null
|
|
},
|
|
"expect": "ok"
|
|
},
|
|
{
|
|
"name": "wai2_entry_finding",
|
|
"manifest": {
|
|
"wai": "1.1",
|
|
"media": "image",
|
|
"intent": "improve",
|
|
"renditions": [
|
|
{
|
|
"capability": "wai.image.avif",
|
|
"kind": "avif"
|
|
},
|
|
{
|
|
"capability": "wai.neural.glc",
|
|
"kind": "glc",
|
|
"prior": {
|
|
"id": "conformance",
|
|
"sha256": "7ef44f3b1fc4a2df6c3e3b68460f595cae3d31cb7f9018699e29e738340272a4",
|
|
"determinism": "int-rans/p16+int/i64"
|
|
}
|
|
}
|
|
],
|
|
"target": null
|
|
},
|
|
"expect": [
|
|
1,
|
|
"form_required"
|
|
]
|
|
}
|
|
]
|
|
}
|