[package] name = "jouleclaw-attestor" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true authors.workspace = true description = "Attestor role typing for JouleClaw. Distinguishes Self-attested (the agent runtime signs its own receipts) from Independent (a third-party mediator signs after observing) from Quorum (M-of-N board of attestors agrees). Pinned-key policy on the verifier side: which AttestorRole is required for a given receipt class to be accepted. The Notarized Agents (arxiv 2606.04193) doctrine: independent attestation > self-attestation when the receipt is consumed off-host." [dependencies] serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true }