[package] name = "jouleclaw-agent-auth" version.workspace = true edition.workspace = true license.workspace = true repository.workspace = true authors.workspace = true description = "Agentic authorization telemetry primitive — typed AgentIdentity with Ed25519-anchored capability declaration, typed AuthorizationDecision (Allow / Deny { reason }), AuthorizationSpan carrying agent.id + agent.public_key + capability + decision path + trust/drift scores. Tracks Abdel Fang's OpenTelemetry semconv proposal (issue 180) so JouleClaw consumers emit observability-tool-compatible spans. Closes the gap between jouleclaw-prov (CLAIM provenance) and the agent-action authorization layer — distinct from jouleclaw-approve (which is approval gates on energy budgets), distinct from jouleclaw-foreman (resolution envelope). Capability-first authorization: declare what the agent is allowed to do up front; everything else is denied with a typed reason." [dependencies] serde = { workspace = true } serde_json = { workspace = true } thiserror = { workspace = true } blake3 = { workspace = true } ed25519-dalek = { workspace = true } chrono = { workspace = true, features = ["serde"] } hex = "0.4"