| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
no-vanity-metrics / WAI public text names no comparison (pull_request) Successful in 5s
no-vanity-metrics / WAI public text names no company or product (pull_request) Successful in 3s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m9s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m59s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m30s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1m11s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 1m10s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m14s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m23s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m10s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 4m17s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 14s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 7m41s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 8s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 24s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 48s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 1m52s
wai-ops integer operators / linux-x86_64 (pull_request) Successful in 22s
wai-ops integer operators / wasm32-wasip2 (wasmtime) (pull_request) Successful in 22s
wai-ops integer operators / wasm32 under Node (pull_request) Successful in 19s
wai-ops integer operators / independent checker (Python) (pull_request) Successful in 11s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 4s
WAI section references / cited sections exist (pull_request) Successful in 10s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 2m50s
workflow hygiene / every workflow supersedes its own queue (pull_request) Successful in 4s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 14m47s
wai-pack / wai-pack · linux (pull_request) Successful in 1m6s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 1m46s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 19s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m14s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 20m46s
standards workspaces build + test / aac-rs (pull_request) Successful in 10m39s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 4m15s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 1m29s
standards workspaces build + test / map-rs (pull_request) Successful in 52s
standards workspaces build + test / mesh-rs (pull_request) Successful in 1m15s
standards workspaces build + test / openpay (pull_request) Successful in 5m42s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 13m8s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 56s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 4m22s
wai-ops integer operators / linux-aarch64 (pull_request) Successful in 58s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 1m57s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 2m48s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 7m6s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 10m6s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 29s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 3m11s
wai-ops integer operators / macos-arm64 (pull_request) Successful in 25s
wai-pack / wai-pack · macos (pull_request) Successful in 2m13s
Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| certificates | ||
| graphs | ||
| sets | ||
| stage | ||
| vectors | ||
| .gitattributes | ||
| README.md | ||
ops-conformance — the integer operator set
Vectors for wai-ops/1, the integer operator set
(extensions/integer-operators.md): its graph
operators (§5), its stage operators (§5E), the WHG1 graph form (§10), and the
canonical lowerings of the registered integer network forms (§13).
Provenance. Generated here by wai-ops vectors gen from fixed SplitMix64
sequences: every graph, parameter, input and stream under vectors/, stage/,
graphs/ and sets/ is generated integers, with no media. The lowered graphs under
certificates/ are those of the sets this corpus generates and of the parameter sets
other corpora commit, which keep their own provenance (certificates/index.json
names each one's corpus).
Equivalence. An operator implementation of a profile (§7) conforms when it
reproduces every vector tagged with that profile, refusals included: the same load
outcome, and for every decode the same output integers or the same refusal code. A
lowering conforms when it writes every lowered graph byte for byte.
Layout
vectors/<operator>.jsonl— graph vectors whose graph has one operator (§14.1).stage/<operator>.jsonl— stage-operator vectors (§14.1).graphs/<name>.jsonl— graph vectors whose graph has several operators (§14.2):phase— a transposed convolution and the same computed as phase convolutions, interleaved bypixel_shuffleand cropped (§9.3), as the graph's two outputs;state— state inputs carried across decodes (§10.3), a refused decode among them;load— a graph refused at each load check of §10.5, steps 1–7, and acropplanned at load (§5.10);run— a decode refused at each step of §4's run, and the order between them and within step 3 (the caps, then the shape rule, thenmax_elems);lower_<form>— each lowering of §13 on a small set fromsets/.
sets/<name>/— the small parameter sets thelower_*vectors lower, one per lowering, in their registered forms.certificates/<capability>/<set digest>/<role>.whg1— each lowered graph (§14.3).certificates/index.json— every set lowered here: its capability, its lowering, its members (the name in the set and the file, relative towai/, that holds it), its digest, and the path of each lowered graph, in §13.0's role order.
Files are compared as bytes; .gitattributes turns off line-ending conversion.
This corpus has no sha256.json sidecar (SPEC §7 Digests). Every vector states its
output integers in full, or its refusal code, and never a digest of them. The only
digest in certificates/ is each set's SHA-256, which identifies a parameter set. The
output digests that a capability reproduces through its lowering (integer-operators §14.4)
stay in that capability's own corpus.
The vector files
Every file follows integer-operators §14.1, which is normative for every field: the
graph vector and its decodes, the stage vector with its modes, each operator's
in and expect (the predictors' layouts included), and the refusal index at.
In short:
- Every file is JSON Lines: one canonical JSON value per line (§8.5's rules), each line ending with one line feed.
- A graph vector's decodes list the graph's data inputs only; the decodes of one vector are one sequence, and a refused decode changes no state (§10.3).
loadis the outcome of load steps 1–8 (§10.5); every vector here loads or is refused at steps 1–7 (see below). A vector whose load is refused has no decodes and lists both profiles; one that loads lists exactly the profiles its verdict meets.atis −1 for a refusal before any symbol or element, the symbol's index forrans64_decode(the number of symbols for a refusal after the last one), and, formans_decode, the position whose step refuses, or, for a flush that belongs to no single position, the last position whoseinstep ran.- A vector of
graphs/lower_<form>.jsonlhas the id<file>/<set>/<role>/…: its graph is that role of the setsets/<set>/as lowered.
What this corpus does not cover yet
Load step 8 has no implementation in wai-ops yet: its bounds pass and verdict land
with the certifier. Until then the uncertified switch skips it, and the generator
writes no vector whose outcome depends on it; a generated case whose graph meets no
profile is dropped, and vectors gen reports the count. So these coverage classes
of §14.1 item 6, each a load refusal at step 8, are not here yet:
sigmoidandeluon an input range that reaches−2^63, refused at load (the corpus has the decoding side, ranges that stop at−(2^63 − 1));- an
rqwhoseqpasses 64 bits whileyfits, refused at load underacc64(conv,conv_transpose,rescale,chscale,mul,gram,apply); - a
lut16whose input range passes[−32767, 32767], and acheckrange that no value of its producer can meet (§8.1); - a graph refused at step 8 in
graphs/load.jsonl.
The independent checker already runs step 8 and recomputes every vector's
profiles from its own bounds pass, so these vectors are checked the day they land.
The lowered sets
certificates/index.json lists every set. A set of one file is identified by its
file's SHA-256, and a set of several files by the SHA-256 of its wai.prior.set
listing over the member names the index gives (SPEC §3.1). wai.world.model has no
registered set yet: its two networks are named T.whm and g_s.whm here, and its
lowering's latent channel count, which the initial latent fixes, is the entry's c.
Generation and verification
cd wai/wai-ops
cargo run --release --features uncertified --bin wai-ops -- vectors gen ..
writes every file here but this README and .gitattributes.
cargo run --release --features uncertified --bin wai-ops -- vectors verify ..
recomputes every vector file from its inputs, re-lowers every set, and regenerates
the corpus, and requires every byte to equal the committed one. The same check runs
built for wasm32-wasip2 under a WASI runtime, and, for the vector files,
wai-ops/node/verify.mjs runs the recomputation as a wasm32-unknown-unknown
module under a browser's engine.
python3 -I tools/wai_ops_check.py ops-conformance
is the independent checker: Python standard library only, sharing no code with
wai-ops, and held to the extension's text: where the two disagree, the text
decides, and the disagreement is a bug in one of them. It rewrites every vector file
from its inputs, load (steps 1–8) and profiles from its own bounds pass and
verdict (§8.1–§8.5) included; re-lowers every set and requires each lowered graph,
and that each loads; and requires each lowering vector's graph to be the role its id
names. Every byte must equal the committed one.