| Filename | Latest commit message | Latest commit date |
|---|---|---|
influence_verify.py is the second implementation of extensions/influence.md: it verifies each session with contribution_verify.py, regenerates every conditioned step, reads usage statements with ai_usage_verify.py and statements with settlement_verify.py (now amended for kind 2 lines and their bases), and computes every share, line and report itself. Registers wai.media.influence (registry, wire identifiers, SPEC §5, CHANGELOG, CI step, export); the settlement corpus's reserved-line vector becomes a line whose basis is not given. Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| README.md | ||
| vectors.json | ||
live-conformance/influence — influence attribution
The corpus of extensions/influence.md §10, in one file,
vectors.json: the model files its sessions generate with (models, each its sha256 and its
file as text), and three kinds of vector, each with the outcome a verifier gives it.
- cases (§8.1): a
policy(tier); acontributioncase, as the contribution corpus writes one (its session, memberships, record, disclosed steps with their proofs, map, openings, theRGB8states it holds in hexadecimal, the model files it holds by SHA-256, and its origin claims), whose states also hold the reference images and whose model files also hold the adapters; theconditioningrecords, thetermsand thecataloguesit holds, each as a JSON text; and theattribution, a JSON text. - statements (§6.2): a settlement statement (
WSS1) in hexadecimal; the acknowledgements it settles (records, each itsrecordin hexadecimal and the item list of each of its entries); and the names of the cases given beside it as its attributions (given). - reports (§7.2): a report as a JSON text, the owner's
terms, and the name of the statement an auditor holds (audit), ornullfor a report verified by its owner alone.
Influence equivalence. For each vector, a conforming verifier reaches the outcome it states:
refuse: thereasonand where,at: a case's["contribution", …](contribution's place),["terms", i],["catalogue", i],["conditioning", i],["conditioning", i, "reference", j],["attribution"],["attribution", "model", k],["step", i],["shares"],["shares", k]or["policy"]; a statement's settlement places,["basis", k, …]or["given", i, …]; a report's["report"],["report", "output", i],["terms", i]or["statement", …];accept: for a case, thestatementsof §8.3 (the tier, the record and attribution link hashes, each conditioning record's status, weights and references' preferences, the computed and stated shares and whether they were compared, each owner bucket's tier, and the estimates as stated); for a statement, settlement §8.3's figures with its attribution lines and itsbases; for a report, its owner, its amount and each output's basis and amount.
A verifier that reaches another outcome, reason, place or statement does not conform.
Provenance. wai_influence_vectors gen writes vectors.json from records authored in code:
every key is SHA-256 of the corpus's label and an index, every drawn picture, brush stroke and
reference image is SHA-256 output of a label, every generated picture is made by
wai.generate.spectral, alone or under wai-influence:spectral-blend, with the model file of its
conformance vector (wai-rs/tests/vectors/generate/generate_spectral_model.json, held here byte
for byte in models) or with a second model file written from it in code (other colour offsets
and a lower top frequency, also held in models), every time is a constant, and Ed25519 signing
is deterministic, so the file is the same bytes on every machine. Every state is named by the
SHA-256 of its RGB8 samples, and every settled object by a content hash that is a label's
SHA-256: no object's bytes are in the corpus, and none is decoded.
python3 -I ../influence_verify.py .